# Copyright (c) 2001, Stanford University # All rights reserved. # # See the file LICENSE.txt for information on redistributing this software. # This script generates the include/state/cr_currentpointers.h file. from __future__ import print_function import sys sys.path.append( "../glapi_parser" ) import apiutil from pack_currenttypes import * apiutil.CopyrightC() print(""" /* DO NOT EDIT - THIS FILE GENERATED BY THE pack_currentheader.py SCRIPT */ #ifndef CR_CURRENT_H #define CR_CURRENT_H #include "state/cr_limits.h" """) sorted_keys = sorted(current_fns.keys()) for k in sorted_keys: name = k.lower(); print("typedef struct {") if 'array' in current_fns[k]: print("\tconst unsigned char *ptr[%s];" % current_fns[k]['array']) else: print("\tconst unsigned char *ptr;") for type in current_fns[k]['types']: for size in current_fns[k]['sizes']: if 'array' in current_fns[k]: print("\tconst unsigned char *%s%d[%s];" % (type, size, current_fns[k]['array'])) else: print("\tconst unsigned char *%s%d;" % (type, size)) print("} GL%s_p;\n" % name) print("typedef struct attrs {") for k in sorted_keys: name = k.lower() field = '%s%s' % (k[:1].lower(),k[1:]) print("\tGL%s_p %s;" % (name,field)) print(" } CRCurrentStateAttr;") print("typedef struct {") print(""" CRCurrentStateAttr c; unsigned char *vtx_op; unsigned char *vtx_data; unsigned char *begin_op; unsigned char *begin_data; unsigned int vtx_count; unsigned int vtx_max; unsigned int vtx_count_begin; unsigned int attribsUsedMask; unsigned int changedVertexAttrib; } CRCurrentStatePointers; #endif /* CR_CURRENT_H */ """)