// Generated Code - DO NOT EDIT !!
// generated by 'emugen'
#ifndef __foo_server_proc_t_h
#define __foo_server_proc_t_h



#include "foo_types.h"
#ifndef foo_APIENTRY
#define foo_APIENTRY 
#endif
typedef void (foo_APIENTRY *fooAlphaFunc_server_proc_t) (FooInt, FooFloat);
typedef FooBoolean (foo_APIENTRY *fooIsBuffer_server_proc_t) (void*);
typedef void (foo_APIENTRY *fooUnsupported_server_proc_t) (void*);
typedef void (foo_APIENTRY *fooDoEncoderFlush_server_proc_t) (FooInt);
typedef void (foo_APIENTRY *fooTakeConstVoidPtrConstPtr_server_proc_t) (const void* const*);


#endif
