librw/src/rwrender.h

96 lines
1.7 KiB
C
Raw Normal View History

2017-08-29 10:12:56 +02:00
namespace rw {
// Render states
enum RenderState
{
TEXTURERASTER,
TEXTUREADDRESS,
TEXTUREADDRESSU,
TEXTUREADDRESSV,
TEXTUREFILTER,
VERTEXALPHA,
2017-08-29 10:12:56 +02:00
SRCBLEND,
DESTBLEND,
ZTESTENABLE,
ZWRITEENABLE,
FOGENABLE,
FOGCOLOR,
2018-01-03 18:02:02 +01:00
CULLMODE,
2017-08-29 10:12:56 +02:00
// TODO:
// fog type, density ?
// ? shademode
// ???? stencil
// platform specific or opaque?
ALPHATESTFUNC,
2020-04-25 12:16:04 +02:00
ALPHATESTREF,
// emulation of PS2 GS alpha test
// in the mode where it still writes color but nor depth
GSALPHATEST,
GSALPHATESTREF
2017-08-29 10:12:56 +02:00
};
enum AlphaTestFunc
{
ALPHAALWAYS,
2017-08-29 10:12:56 +02:00
ALPHAGREATEREQUAL,
ALPHALESS
};
2018-01-03 18:02:02 +01:00
enum CullMode
{
CULLNONE = 1,
2018-01-03 18:02:02 +01:00
CULLBACK,
CULLFRONT
};
2017-08-29 10:12:56 +02:00
enum BlendFunction
{
BLENDZERO = 1,
2017-08-29 10:12:56 +02:00
BLENDONE,
BLENDSRCCOLOR,
BLENDINVSRCCOLOR,
BLENDSRCALPHA,
BLENDINVSRCALPHA,
BLENDDESTALPHA,
BLENDINVDESTALPHA,
BLENDDESTCOLOR,
BLENDINVDESTCOLOR,
BLENDSRCALPHASAT
2017-08-29 10:12:56 +02:00
// TODO: add more perhaps
};
void SetRenderState(int32 state, uint32 value);
void SetRenderStatePtr(int32 state, void *value);
2017-08-29 10:12:56 +02:00
uint32 GetRenderState(int32 state);
void *GetRenderStatePtr(int32 state);
2017-08-29 10:12:56 +02:00
// Im2D
namespace im2d {
float32 GetNearZ(void);
float32 GetFarZ(void);
void RenderLine(void *verts, int32 numVerts, int32 vert1, int32 vert2);
void RenderTriangle(void *verts, int32 numVerts, int32 vert1, int32 vert2, int32 vert3);
2017-08-29 10:12:56 +02:00
void RenderIndexedPrimitive(PrimitiveType, void *verts, int32 numVerts, void *indices, int32 numIndices);
void RenderPrimitive(PrimitiveType type, void *verts, int32 numVerts);
2017-08-29 10:12:56 +02:00
}
// Im3D
namespace im3d {
void Transform(void *vertices, int32 numVertices, Matrix *world);
2020-04-24 19:06:11 +02:00
void RenderPrimitive(PrimitiveType primType);
void RenderIndexedPrimitive(PrimitiveType primType, void *indices, int32 numIndices);
2017-08-29 10:12:56 +02:00
void End(void);
}
2017-08-29 14:05:45 +02:00
}