Move pipeline back into VertexLoader. Started work on VertexLoaderManager, which will cache VertexLoaders. (yep, the design plan changed a little bit).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@956 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-10-25 12:35:55 +00:00
parent 3a3eebc313
commit bc79d22f5e
12 changed files with 219 additions and 116 deletions

View File

@ -21,40 +21,25 @@
#include "CPMemory.h"
// TODO - clarify the role of this class.
// Methods to manage and cache the global state of vertex streams and flushing streams
// Also handles processing the CP registers
class VertexManager
// Handles the OpenGL details of drawing lots of vertices quickly.
// Other functionality is moving out.
namespace VertexManager
{
static TVtxDesc s_GlobalVtxDesc;
bool Init();
void Destroy();
public:
enum Collection
{
C_NOTHING=0,
C_TRIANGLES=1,
C_LINES=2,
C_POINTS=3
};
void ResetBuffer();
void ResetComponents();
static bool Init();
static void Destroy();
void AddVertices(int primitive, int numvertices);
void Flush(); // flushes the current buffer
static void ResetBuffer();
static void ResetComponents();
int GetRemainingSize(); // remaining space in the current buffer.
static void AddVertices(int primitive, int numvertices);
static void Flush(); // flushes the current buffer
void EnableComponents(u32 components); // very implementation specific - D3D9 won't need this one.
static int GetRemainingSize();
static TVtxDesc &GetVtxDesc() {return s_GlobalVtxDesc; }
static void LoadCPReg(u32 SubCmd, u32 Value);
static void EnableComponents(u32 components);
// TODO - don't expose these like this.
static u8* s_pCurBufferPointer;
// TODO: move, rename.
extern u8* s_pCurBufferPointer;
};
#endif // _VERTEXMANAGER_H