e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# All rights reserved.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport sys
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport apiutil
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncapiutil.CopyrightC()
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncprint """#include <stdio.h>
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_error.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_spu.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "state/cr_statetypes.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#if defined(WINDOWS)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#define ERROR_APIENTRY __stdcall
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#else
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#define ERROR_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#define ERROR_UNUSED(x) ((void)x)"""
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynckeys = apiutil.GetDispatchedFunctions(sys.argv[1]+"/APIspec.txt")
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncfor func_name in keys:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return_type = apiutil.ReturnType(func_name)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync params = apiutil.Parameters(func_name)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '\nstatic %s ERROR_APIENTRY error%s( %s )' % (return_type, func_name, apiutil.MakeDeclarationString(params ))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '{'
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Handle the void parameter list
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync for (name, type, vecSize) in params:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '\tERROR_UNUSED(%s);' % name
8cfa647ca09ad159c86f6a6263a18112951a3783vboxsync print '\tcrError( "ERROR SPU: Unsupported function gl%s called!" );' % func_name
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if return_type != "void":
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '\treturn (%s)0;' % return_type
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '}'
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncprint 'SPUNamedFunctionTable _cr_error_table[] = {'
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncfor index in range(len(keys)):
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync func_name = keys[index]
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync print '\t{ "%s", (SPUGenericFunction) error%s },' % (func_name, func_name )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncprint '\t{ NULL, NULL }'
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncprint '};'