#ifndef OPENB3D_DDSLOADER_DDSLOADER_BMX_DEBUG_WIN32_X64_H
#define OPENB3D_DDSLOADER_DDSLOADER_BMX_DEBUG_WIN32_X64_H

#include <brl.mod/blitz.mod/.bmx/blitz.bmx.debug.win32.x64.h>
#include <pub.mod/glew.mod/.bmx/glew.bmx.debug.win32.x64.h>
#include <pub.mod/opengl.mod/.bmx/opengl.bmx.debug.win32.x64.h>
#include <brl.mod/glmax2d.mod/.bmx/glmax2d.bmx.debug.win32.x64.h>
#include <brl.mod/ramstream.mod/.bmx/ramstream.bmx.debug.win32.x64.h>
#include <brl.mod/retro.mod/.bmx/retro.bmx.debug.win32.x64.h>
#include <brl.mod/map.mod/.bmx/map.bmx.debug.win32.x64.h>
#include "source.bmx.debug.win32.x64.h"
int __bb_openb3d_ddsloader_ddsloader();
struct openb3d_ddsloader_TPixmapLoaderDDS_obj;
struct openb3d_ddsloader_TDDS_obj;
void _openb3d_ddsloader_TPixmapLoaderDDS_New(struct openb3d_ddsloader_TPixmapLoaderDDS_obj* o);
typedef struct brl_pixmap_TPixmap_obj* (*openb3d_ddsloader_TPixmapLoaderDDS_LoadPixmap_TTStream_m)(struct openb3d_ddsloader_TPixmapLoaderDDS_obj*,struct brl_stream_TStream_obj*);
struct brl_pixmap_TPixmap_obj* _openb3d_ddsloader_TPixmapLoaderDDS_LoadPixmap_TTStream(struct openb3d_ddsloader_TPixmapLoaderDDS_obj*,struct brl_stream_TStream_obj*);
struct BBClass_openb3d_ddsloader_TPixmapLoaderDDS {
	struct BBClass_brl_pixmap_TPixmapLoader*  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_ddsloader_TPixmapLoaderDDS_LoadPixmap_TTStream_m m_LoadPixmap_TTStream;
};

struct openb3d_ddsloader_TPixmapLoaderDDS_obj {
	struct BBClass_openb3d_ddsloader_TPixmapLoaderDDS* clas;
	struct brl_pixmap_TPixmapLoader_obj* _brl_pixmap_tpixmaploader__succ;
};
extern struct BBClass_openb3d_ddsloader_TPixmapLoaderDDS openb3d_ddsloader_TPixmapLoaderDDS;
void _openb3d_ddsloader_TDDS_New(struct openb3d_ddsloader_TDDS_obj* o);
typedef struct openb3d_ddsloader_TDDS_obj* (*openb3d_ddsloader_TDDS_CreateObject_TTDDS_pb_f)(BBBYTE*);
struct openb3d_ddsloader_TDDS_obj* openb3d_ddsloader_TDDS_CreateObject_TTDDS_pb(BBBYTE*);
typedef void (*openb3d_ddsloader_TDDS_FreeObject_v_pb_f)(BBBYTE*);
void openb3d_ddsloader_TDDS_FreeObject_v_pb(BBBYTE*);
typedef struct openb3d_ddsloader_TDDS_obj* (*openb3d_ddsloader_TDDS_GetObject_TTDDS_pb_f)(BBBYTE*);
struct openb3d_ddsloader_TDDS_obj* openb3d_ddsloader_TDDS_GetObject_TTDDS_pb(BBBYTE*);
typedef BBBYTE* (*openb3d_ddsloader_TDDS_GetInstance_pb_TTDDS_f)(struct openb3d_ddsloader_TDDS_obj*);
BBBYTE* openb3d_ddsloader_TDDS_GetInstance_pb_TTDDS(struct openb3d_ddsloader_TDDS_obj*);
typedef void (*openb3d_ddsloader_TDDS_InitFields_m)(struct openb3d_ddsloader_TDDS_obj*);
void _openb3d_ddsloader_TDDS_InitFields(struct openb3d_ddsloader_TDDS_obj*);
typedef BBSTRING (*openb3d_ddsloader_TDDS_StringPtr_S_pb_f)(BBBYTE*);
BBSTRING openb3d_ddsloader_TDDS_StringPtr_S_pb(BBBYTE*);
typedef void (*openb3d_ddsloader_TDDS_DebugFields_ii_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT);
void _openb3d_ddsloader_TDDS_DebugFields_ii(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT);
typedef void (*openb3d_ddsloader_TDDS_FreeDDS_m)(struct openb3d_ddsloader_TDDS_obj*);
void _openb3d_ddsloader_TDDS_FreeDDS(struct openb3d_ddsloader_TDDS_obj*);
typedef BBINT (*openb3d_ddsloader_TDDS_GetPitch_iii_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT,BBINT);
BBINT _openb3d_ddsloader_TDDS_GetPitch_iii(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT,BBINT);
typedef BBINT (*openb3d_ddsloader_TDDS_IsCompressed_m)(struct openb3d_ddsloader_TDDS_obj*);
BBINT _openb3d_ddsloader_TDDS_IsCompressed(struct openb3d_ddsloader_TDDS_obj*);
typedef void (*openb3d_ddsloader_TDDS_ImageParameters_i_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT);
void _openb3d_ddsloader_TDDS_ImageParameters_i(struct openb3d_ddsloader_TDDS_obj*,BBINT);
typedef void (*openb3d_ddsloader_TDDS_TextureParameters_i_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT);
void _openb3d_ddsloader_TDDS_TextureParameters_i(struct openb3d_ddsloader_TDDS_obj*,BBINT);
typedef void (*openb3d_ddsloader_TDDS_UploadTexture2D_i_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT);
void _openb3d_ddsloader_TDDS_UploadTexture2D_i(struct openb3d_ddsloader_TDDS_obj*,BBINT);
typedef void (*openb3d_ddsloader_TDDS_UploadTextureSubImage2D_iiiipbiii_m)(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT,BBINT,BBINT,BBBYTE*,BBINT,BBINT,BBINT);
void _openb3d_ddsloader_TDDS_UploadTextureSubImage2D_iiiipbiii(struct openb3d_ddsloader_TDDS_obj*,BBINT,BBINT,BBINT,BBINT,BBBYTE*,BBINT,BBINT,BBINT);
typedef void (*openb3d_ddsloader_TDDS_UploadTextureCubeMap_m)(struct openb3d_ddsloader_TDDS_obj*);
void _openb3d_ddsloader_TDDS_UploadTextureCubeMap(struct openb3d_ddsloader_TDDS_obj*);
struct BBClass_openb3d_ddsloader_TDDS {
	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_ddsloader_TDDS_CreateObject_TTDDS_pb_f f_CreateObject_TTDDS_pb;
	openb3d_ddsloader_TDDS_FreeObject_v_pb_f f_FreeObject_v_pb;
	openb3d_ddsloader_TDDS_GetObject_TTDDS_pb_f f_GetObject_TTDDS_pb;
	openb3d_ddsloader_TDDS_GetInstance_pb_TTDDS_f f_GetInstance_pb_TTDDS;
	openb3d_ddsloader_TDDS_InitFields_m m_InitFields;
	openb3d_ddsloader_TDDS_StringPtr_S_pb_f f_StringPtr_S_pb;
	openb3d_ddsloader_TDDS_DebugFields_ii_m m_DebugFields_ii;
	openb3d_ddsloader_TDDS_FreeDDS_m m_FreeDDS;
	openb3d_ddsloader_TDDS_GetPitch_iii_m m_GetPitch_iii;
	openb3d_ddsloader_TDDS_IsCompressed_m m_IsCompressed;
	openb3d_ddsloader_TDDS_ImageParameters_i_m m_ImageParameters_i;
	openb3d_ddsloader_TDDS_TextureParameters_i_m m_TextureParameters_i;
	openb3d_ddsloader_TDDS_UploadTexture2D_i_m m_UploadTexture2D_i;
	openb3d_ddsloader_TDDS_UploadTextureSubImage2D_iiiipbiii_m m_UploadTextureSubImage2D_iiiipbiii;
	openb3d_ddsloader_TDDS_UploadTextureCubeMap_m m_UploadTextureCubeMap;
};

struct openb3d_ddsloader_TDDS_obj {
	struct BBClass_openb3d_ddsloader_TDDS* clas;
	BBBYTE* _openb3d_ddsloader_tdds_buffer;
	BBARRAY _openb3d_ddsloader_tdds_mipmaps;
	BBINT* _openb3d_ddsloader_tdds_width;
	BBINT* _openb3d_ddsloader_tdds_height;
	BBINT* _openb3d_ddsloader_tdds_depth;
	BBINT* _openb3d_ddsloader_tdds_mipmapcount;
	BBINT* _openb3d_ddsloader_tdds_pitch;
	BBINT* _openb3d_ddsloader_tdds_size;
	BBBYTE* _openb3d_ddsloader_tdds_dxt;
	BBINT* _openb3d_ddsloader_tdds_format;
	BBINT* _openb3d_ddsloader_tdds_components;
	BBINT* _openb3d_ddsloader_tdds_target;
	struct brl_pixmap_TPixmap_obj* _openb3d_ddsloader_tdds_pixmap;
	BBBYTE* _openb3d_ddsloader_tdds_bmx_buffer;
	BBBYTE* _openb3d_ddsloader_tdds_instance;
	BBINT _openb3d_ddsloader_tdds_exists;
};
extern struct BBClass_openb3d_ddsloader_TDDS openb3d_ddsloader_TDDS;
extern struct brl_linkedlist_TList_obj* openb3d_ddsloader_TDDS_dds_list;
extern struct brl_map_ptrmap_TPtrMap_obj* openb3d_ddsloader_TDDS_dds_map;
extern BBBYTE* DirectDrawSurfaceUChar_(BBBYTE* bbt_obj,BBINT bbt_varid);
extern BBINT* DirectDrawSurfaceInt_(BBBYTE* bbt_obj,BBINT bbt_varid);
extern BBINT* DirectDrawSurfaceUInt_(BBBYTE* bbt_obj,BBINT bbt_varid);
extern BBBYTE* DirectDrawSurfaceArray_(BBBYTE* bbt_obj,BBINT bbt_varid,BBINT bbt_index);
extern BBBYTE* DDSLoadSurface_(BBBYTE* bbt_filename,BBINT bbt_Flip,BBBYTE* bbt_buffer,BBSIZET bbt_bufsize);
extern void DDSFreeDirectDrawSurface_(BBBYTE* bbt_surface,BBINT bbt_free_buffer);
extern BBINT DDSCountMipmaps_(BBINT bbt_width,BBINT bbt_height);
extern void DDSCopyRect_(BBBYTE* bbt_src,BBINT bbt_srcW,BBINT bbt_srcH,BBINT bbt_srcX,BBINT bbt_srcY,BBBYTE* bbt_dst,BBINT bbt_dstW,BBINT bbt_dstH,BBINT bbt_bPP,BBINT bbt_invert,BBINT bbt_format);
struct brl_max2d_image_TImage_obj* openb3d_ddsloader_LoadImageDDS(BBOBJECT bbt_url,BBINT bbt_flags,BBINT bbt_mr,BBINT bbt_mg,BBINT bbt_mb);
struct brl_max2d_image_TImage_obj* openb3d_ddsloader_LoadAnimImageDDS(BBOBJECT bbt_url,BBINT bbt_cell_width,BBINT bbt_cell_height,BBINT bbt_first_cell,BBINT bbt_cell_count,BBINT bbt_flags,BBINT bbt_mr,BBINT bbt_mg,BBINT bbt_mb);

#endif
