#ifndef OPENB3D_B3DGLGRAPHICS_B3DGLGRAPHICS_BMX_DEBUG_WIN32_X86_H
#define OPENB3D_B3DGLGRAPHICS_B3DGLGRAPHICS_BMX_DEBUG_WIN32_X86_H

#include <brl.mod/blitz.mod/.bmx/blitz.bmx.debug.win32.x86.h>
#include <openb3d.mod/openb3dcore.mod/.bmx/openb3dcore.bmx.debug.win32.x86.h>
#include <openb3d.mod/stbimageloader.mod/.bmx/stbimageloader.bmx.debug.win32.x86.h>
#include <brl.mod/jpgloader.mod/.bmx/jpgloader.bmx.debug.win32.x86.h>
#include <brl.mod/pngloader.mod/.bmx/pngloader.bmx.debug.win32.x86.h>
int __bb_openb3d_b3dglgraphics_b3dglgraphics();
struct openb3d_b3dglgraphics_TDebug_obj;
void _openb3d_b3dglgraphics_TDebug_New(struct openb3d_b3dglgraphics_TDebug_obj* o);
typedef void (*openb3d_b3dglgraphics_TDebug_DebugWorld_v_f)();
void openb3d_b3dglgraphics_TDebug_DebugWorld_v();
typedef struct openb3d_openb3dcore_TEntity_obj* (*openb3d_b3dglgraphics_TDebug_DebugEntity_TTEntity_TTEntityTTCamera_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
struct openb3d_openb3dcore_TEntity_obj* openb3d_b3dglgraphics_TDebug_DebugEntity_TTEntity_TTEntityTTCamera(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_UpdateBoundingSphere_v_TTEntity_f)(struct openb3d_openb3dcore_TEntity_obj*);
void openb3d_b3dglgraphics_TDebug_UpdateBoundingSphere_v_TTEntity(struct openb3d_openb3dcore_TEntity_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_UpdateSurface_v_TTEntityTTSurface_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
void openb3d_b3dglgraphics_TDebug_UpdateSurface_v_TTEntityTTSurface(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_UpdateMarker_v_TTEntityTTCamera_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
void openb3d_b3dglgraphics_TDebug_UpdateMarker_v_TTEntityTTCamera(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_EntityInfo1_v_TTEntity_f)(struct openb3d_openb3dcore_TEntity_obj*);
void openb3d_b3dglgraphics_TDebug_EntityInfo1_v_TTEntity(struct openb3d_openb3dcore_TEntity_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_EntityInfo2_v_TTEntityTTSurface_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
void openb3d_b3dglgraphics_TDebug_EntityInfo2_v_TTEntityTTSurface(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_EntityInfo3_v_TTEntityTTSurface_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
void openb3d_b3dglgraphics_TDebug_EntityInfo3_v_TTEntityTTSurface(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TSurface_obj*);
typedef void (*openb3d_b3dglgraphics_TDebug_EntityInfo4_v_TTEntityTTCamera_f)(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
void openb3d_b3dglgraphics_TDebug_EntityInfo4_v_TTEntityTTCamera(struct openb3d_openb3dcore_TEntity_obj*,struct openb3d_openb3dcore_TCamera_obj*);
struct BBClass_openb3d_b3dglgraphics_TDebug {
	BBClass*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	openb3d_b3dglgraphics_TDebug_DebugWorld_v_f f_DebugWorld_v;
	openb3d_b3dglgraphics_TDebug_DebugEntity_TTEntity_TTEntityTTCamera_f f_DebugEntity_TTEntity_TTEntityTTCamera;
	openb3d_b3dglgraphics_TDebug_UpdateBoundingSphere_v_TTEntity_f f_UpdateBoundingSphere_v_TTEntity;
	openb3d_b3dglgraphics_TDebug_UpdateSurface_v_TTEntityTTSurface_f f_UpdateSurface_v_TTEntityTTSurface;
	openb3d_b3dglgraphics_TDebug_UpdateMarker_v_TTEntityTTCamera_f f_UpdateMarker_v_TTEntityTTCamera;
	openb3d_b3dglgraphics_TDebug_EntityInfo1_v_TTEntity_f f_EntityInfo1_v_TTEntity;
	openb3d_b3dglgraphics_TDebug_EntityInfo2_v_TTEntityTTSurface_f f_EntityInfo2_v_TTEntityTTSurface;
	openb3d_b3dglgraphics_TDebug_EntityInfo3_v_TTEntityTTSurface_f f_EntityInfo3_v_TTEntityTTSurface;
	openb3d_b3dglgraphics_TDebug_EntityInfo4_v_TTEntityTTCamera_f f_EntityInfo4_v_TTEntityTTCamera;
};

struct openb3d_b3dglgraphics_TDebug_obj {
	struct BBClass_openb3d_b3dglgraphics_TDebug* clas;
};
extern struct BBClass_openb3d_b3dglgraphics_TDebug openb3d_b3dglgraphics_TDebug;
extern BBINT openb3d_b3dglgraphics_TDebug_cno;
extern BBINT openb3d_b3dglgraphics_TDebug_surf_no;
extern BBINT openb3d_b3dglgraphics_TDebug_info;
extern BBINT openb3d_b3dglgraphics_TDebug_show_ents;
extern struct openb3d_openb3dcore_TMesh_obj* openb3d_b3dglgraphics_TDebug_bounding_sphere;
extern struct openb3d_openb3dcore_TMesh_obj* openb3d_b3dglgraphics_TDebug_debug_mesh;
extern struct openb3d_openb3dcore_TSurface_obj* openb3d_b3dglgraphics_TDebug_debug_surf;
extern struct openb3d_openb3dcore_TMesh_obj* openb3d_b3dglgraphics_TDebug_marker;
void openb3d_b3dglgraphics_Graphics3D(BBINT bbt_width,BBINT bbt_height,BBINT bbt_depth,BBINT bbt_mode,BBINT bbt_rate,BBINT bbt_flags,BBINT bbt_usecanvas,BBINT bbt_x,BBINT bbt_y);
void openb3d_b3dglgraphics_Text(BBINT bbt_x,BBINT bbt_y,BBSTRING bbt_txt);
BBINT openb3d_b3dglgraphics_ShadowText(BBSTRING bbt_msg,BBINT bbt_x,BBINT bbt_y);
void openb3d_b3dglgraphics_TextColor(BBBYTE bbt_red,BBBYTE bbt_green,BBBYTE bbt_blue);

#endif
