dolphin/Source/Plugins/Plugin_VideoMerge/Src/VertexManager.h

48 lines
960 B
C++

#ifndef _VERTExMANAGER_H_
#define _VERTExMANAGER_H_
#include "NativeVertexFormat.h"
#include "NativeVertexWriter.h"
#include "BPMemory.h"
enum
{
MAXVBUFFERSIZE = 0x50000,
MAXIBUFFERSIZE = 0x10000,
};
using VertexManager::s_pBaseBufferPointer;
using VertexManager::s_pCurBufferPointer;
extern NativeVertexFormat *g_nativeVertexFmt;
class VertexManagerBase
{
public:
VertexManagerBase();
virtual ~VertexManagerBase();
static void Flush();
virtual void Draw(u32 stride, bool alphapass) = 0;
virtual NativeVertexFormat* CreateNativeVertexFormat() = 0;
static void AddIndices(int _primitive, int _numVertices);
static int GetRemainingSize();
static int GetRemainingVertices(int primitive);
static void AddVertices(int _primitive, int _numVertices);
static void ResetBuffer();
protected:
static u16* TIBuffer;
static u16* LIBuffer;
static u16* PIBuffer;
static bool Flushed;
static int lastPrimitive;
static u8* LocalVBuffer;
};
#endif