2016-06-27 21:59:35 +02:00
|
|
|
namespace rw {
|
|
|
|
namespace d3d {
|
|
|
|
|
2017-08-27 17:13:10 +02:00
|
|
|
#ifdef RW_D3D9
|
|
|
|
void openIm2D(void);
|
2017-08-29 10:12:56 +02:00
|
|
|
void closeIm2D(void);
|
2018-12-17 21:23:41 +01: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);
|
2017-08-27 17:13:10 +02:00
|
|
|
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);
|
|
|
|
void im3DTransform(void *vertices, int32 numVertices, Matrix *world);
|
|
|
|
void im3DRenderIndexed(PrimitiveType primType, void *indices, int32 numIndices);
|
|
|
|
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;
|
2020-04-18 09:47:19 +02:00
|
|
|
DisplayMode startMode;
|
2020-04-16 09:10:11 +02:00
|
|
|
|
|
|
|
D3DPRESENT_PARAMETERS present;
|
2020-04-17 14:34:37 +02:00
|
|
|
|
|
|
|
int numTextures;
|
|
|
|
int numVertexShaders;
|
|
|
|
int numPixelShaders;
|
|
|
|
int numVertexBuffers;
|
|
|
|
int numIndexBuffers;
|
|
|
|
int numVertexDeclarations;
|
2020-04-16 09:10:11 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
extern D3d9Globals d3d9Globals;
|
|
|
|
|
2020-04-17 14:34:37 +02:00
|
|
|
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-16 09:10:11 +02:00
|
|
|
int findFormatDepth(uint32 format);
|
2020-04-16 23:09:47 +02:00
|
|
|
void destroyD3D9Raster(Raster *raster);
|
2020-04-20 11:50:41 +02:00
|
|
|
|
2017-08-27 17:13:10 +02:00
|
|
|
#endif
|
|
|
|
|
2020-04-17 21:44:32 +02:00
|
|
|
Raster *rasterCreate(Raster *raster);
|
2019-08-07 22:37:43 +02:00
|
|
|
uint8 *rasterLock(Raster *raster, int32 level, int32 lockMode);
|
2016-06-27 21:59:35 +02:00
|
|
|
void rasterUnlock(Raster *raster, int32 level);
|
|
|
|
int32 rasterNumLevels(Raster *raster);
|
2020-04-17 21:44:32 +02:00
|
|
|
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);
|
2016-06-27 21:59:35 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|