librw/src/d3d/rwd3dimpl.h

77 lines
2.0 KiB
C
Raw Normal View History

namespace rw {
namespace d3d {
#ifdef RW_D3D9
void openIm2D(void);
2017-08-29 10:12:56 +02:00
void closeIm2D(void);
2020-04-24 19:06:11 +02:00
void im2DRenderLine(void *vertices, int32 numVertices, int32 vert1, int32 vert2);
void im2DRenderTriangle(void *vertices, int32 numVertices, int32 vert1, int32 vert2, int32 vert3);
void im2DRenderPrimitive(PrimitiveType primType, void *vertices, int32 numVertices);
void im2DRenderIndexedPrimitive(PrimitiveType primType, void *vertices, int32 numVertices, void *indices, int32 numIndices);
2017-08-29 10:12:56 +02:00
void openIm3D(void);
void closeIm3D(void);
2020-05-06 09:22:29 +02:00
void im3DTransform(void *vertices, int32 numVertices, Matrix *world, uint32 flags);
2020-04-24 19:06:11 +02:00
void im3DRenderPrimitive(PrimitiveType primType);
void im3DRenderIndexedPrimitive(PrimitiveType primType, void *indices, int32 numIndices);
2017-08-29 10:12:56 +02:00
void im3DEnd(void);
2020-04-16 09:10:11 +02:00
struct DisplayMode
{
D3DDISPLAYMODE mode;
uint32 flags;
};
struct D3d9Globals
{
HWND window;
IDirect3D9 *d3d9;
int numAdapters;
int adapter;
D3DCAPS9 caps;
DisplayMode *modes;
int numModes;
int currentMode;
DisplayMode startMode;
2020-04-16 09:10:11 +02:00
D3DPRESENT_PARAMETERS present;
int numTextures;
int numVertexShaders;
int numPixelShaders;
int numVertexBuffers;
int numIndexBuffers;
int numVertexDeclarations;
2020-04-16 09:10:11 +02:00
};
extern D3d9Globals d3d9Globals;
void addVidmemRaster(Raster *raster);
void removeVidmemRaster(Raster *raster);
void addDynamicVB(uint32 length, uint32 fvf, IDirect3DVertexBuffer9 **buf); // NB: don't share this pointer
void removeDynamicVB(IDirect3DVertexBuffer9 **buf);
2020-04-24 19:06:11 +02:00
void addDynamicIB(uint32 length, IDirect3DIndexBuffer9 **buf); // NB: don't share this pointer
void removeDynamicIB(IDirect3DIndexBuffer9 **buf);
2020-04-16 09:10:11 +02:00
int findFormatDepth(uint32 format);
2020-04-16 23:09:47 +02:00
void destroyD3D9Raster(Raster *raster);
#endif
Raster *rasterCreate(Raster *raster);
2019-08-07 22:37:43 +02:00
uint8 *rasterLock(Raster *raster, int32 level, int32 lockMode);
void rasterUnlock(Raster *raster, int32 level);
int32 rasterNumLevels(Raster *raster);
bool32 imageFindRasterFormat(Image *img, int32 type,
int32 *width, int32 *height, int32 *depth, int32 *format);
bool32 rasterFromImage(Raster *raster, Image *image);
2016-07-15 11:55:52 +02:00
Image *rasterToImage(Raster *raster);
}
}