52 lines
841 B
C
52 lines
841 B
C
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "CPStructs.h"
|
||
|
#include "VertexLoader.h"
|
||
|
#include "DecodedVArray.h"
|
||
|
|
||
|
extern float shiftLookup[32];
|
||
|
|
||
|
struct UV
|
||
|
{
|
||
|
float u,v,w;
|
||
|
};
|
||
|
|
||
|
struct D3DVertex {
|
||
|
Vec3 pos;
|
||
|
Vec3 normal;
|
||
|
u32 colors[2];
|
||
|
UV uv[8];
|
||
|
};
|
||
|
|
||
|
enum Collection
|
||
|
{
|
||
|
C_NOTHING=0,
|
||
|
C_TRIANGLES=1,
|
||
|
C_LINES=2,
|
||
|
C_POINTS=3
|
||
|
};
|
||
|
extern const Collection collectionTypeLUT[8];
|
||
|
|
||
|
class CVertexHandler
|
||
|
{
|
||
|
private:
|
||
|
static Collection collection;
|
||
|
// Pipeline
|
||
|
|
||
|
static void PrepareRender();
|
||
|
static void AddIndices(int _primitive, int _numVertices);
|
||
|
|
||
|
public:
|
||
|
static void Init();
|
||
|
static void Shutdown();
|
||
|
|
||
|
static void BeginFrame();
|
||
|
|
||
|
static void CreateDeviceObjects();
|
||
|
static void DestroyDeviceObjects();
|
||
|
|
||
|
static void DrawVertices(int _primitive, int _numVertices, const DecodedVArray *varray);
|
||
|
static void Flush();
|
||
|
};
|