mirror of
https://github.com/aap/librw.git
synced 2025-01-23 01:02:38 +00:00
57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
namespace rw {
|
|
|
|
struct PipeAttribute
|
|
{
|
|
const char *name;
|
|
uint32 attrib;
|
|
};
|
|
|
|
struct Atomic;
|
|
|
|
class Pipeline
|
|
{
|
|
public:
|
|
uint32 pluginID;
|
|
uint32 pluginData;
|
|
uint32 platform;
|
|
|
|
Pipeline(uint32 platform);
|
|
Pipeline(Pipeline *p);
|
|
~Pipeline(void);
|
|
virtual void dump(void);
|
|
};
|
|
|
|
class ObjPipeline : public Pipeline
|
|
{
|
|
public:
|
|
ObjPipeline(uint32 platform) : Pipeline(platform) {}
|
|
virtual void instance(Atomic *atomic);
|
|
virtual void uninstance(Atomic *atomic);
|
|
virtual void render(Atomic *atomic);
|
|
};
|
|
|
|
void findMinVertAndNumVertices(uint16 *indices, uint32 numIndices, uint32 *minVert, int32 *numVertices);
|
|
|
|
// everything xbox, d3d8 and d3d9 may want to use
|
|
enum {
|
|
VERT_BYTE2 = 1,
|
|
VERT_BYTE3,
|
|
VERT_SHORT2,
|
|
VERT_SHORT3,
|
|
VERT_NORMSHORT2,
|
|
VERT_NORMSHORT3,
|
|
VERT_FLOAT2,
|
|
VERT_FLOAT3,
|
|
VERT_ARGB,
|
|
VERT_COMPNORM
|
|
};
|
|
|
|
void instV3d(int type, uint8 *dst, float *src, uint32 numVertices, uint32 stride);
|
|
void uninstV3d(int type, float *dst, uint8 *src, uint32 numVertices, uint32 stride);
|
|
void instV2d(int type, uint8 *dst, float *src, uint32 numVertices, uint32 stride);
|
|
void uninstV2d(int type, float *dst, uint8 *src, uint32 numVertices, uint32 stride);
|
|
bool32 instColor(int type, uint8 *dst, uint8 *src, uint32 numVertices, uint32 stride);
|
|
void uninstColor(int type, uint8 *dst, uint8 *src, uint32 numVertices, uint32 stride);
|
|
|
|
}
|