(view as text)
diff --git a/Source/Core/VideoBackends/D3D/VertexManager.cpp b/Source/Core/VideoBackends/D3D/VertexManager.cpp
index 75ca01a..f8274ee 100644
--- a/Source/Core/VideoBackends/D3D/VertexManager.cpp
+++ b/Source/Core/VideoBackends/D3D/VertexManager.cpp
@@ -77,6 +77,12 @@ void VertexManager::DestroyDeviceObjects()
VertexManager::VertexManager()
{
+ LocalVBuffer.resize(MAXVBUFFERSIZE);
+ s_pCurBufferPointer = s_pBaseBufferPointer = &LocalVBuffer[0];
+ s_pEndBufferPointer = s_pBaseBufferPointer + LocalVBuffer.size();
+
+ LocalIBuffer.resize(MAXIBUFFERSIZE);
+
CreateDeviceObjects();
}
@@ -222,4 +228,10 @@ void VertexManager::vFlush()
g_renderer->RestoreState();
}
+void VertexManager::ResetBuffer(u32 stride)
+{
+ s_pCurBufferPointer = s_pBaseBufferPointer;
+ IndexGenerator::Start(GetIndexBuffer());
+}
+
} // namespace
diff --git a/Source/Core/VideoBackends/D3D/VertexManager.h b/Source/Core/VideoBackends/D3D/VertexManager.h
index 9440c73..644d13a 100644
--- a/Source/Core/VideoBackends/D3D/VertexManager.h
+++ b/Source/Core/VideoBackends/D3D/VertexManager.h
@@ -22,6 +22,10 @@ public:
void CreateDeviceObjects();
void DestroyDeviceObjects();
+protected:
+ virtual void ResetBuffer(u32 stride);
+ u16* GetIndexBuffer() { return &LocalIBuffer[0]; }
+
private:
void PrepareDrawBuffers();
@@ -41,6 +45,9 @@ private:
LineGeometryShader m_lineShader;
PointGeometryShader m_pointShader;
+
+ std::vector<u8> LocalVBuffer;
+ std::vector<u16> LocalIBuffer;
};
} // namespace
diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp
index aac64cd..96d0ce3 100644
--- a/Source/Core/VideoCommon/VertexManagerBase.cpp
+++ b/Source/Core/VideoCommon/VertexManagerBase.cpp
@@ -39,12 +39,6 @@ static const PrimitiveType primitive_from_gx[8] = {
VertexManager::VertexManager()
{
- LocalVBuffer.resize(MAXVBUFFERSIZE);
- s_pCurBufferPointer = s_pBaseBufferPointer = &LocalVBuffer[0];
- s_pEndBufferPointer = s_pBaseBufferPointer + LocalVBuffer.size();
-
- LocalIBuffer.resize(MAXIBUFFERSIZE);
-
IsFlushed = true;
}
@@ -52,12 +46,6 @@ VertexManager::~VertexManager()
{
}
-void VertexManager::ResetBuffer(u32 stride)
-{
- s_pCurBufferPointer = s_pBaseBufferPointer;
- IndexGenerator::Start(GetIndexBuffer());
-}
-
u32 VertexManager::GetRemainingSize()
{
return (u32)(s_pEndBufferPointer - s_pCurBufferPointer);
diff --git a/Source/Core/VideoCommon/VertexManagerBase.h b/Source/Core/VideoCommon/VertexManagerBase.h
index 1540da7..1acbfef 100644
--- a/Source/Core/VideoCommon/VertexManagerBase.h
+++ b/Source/Core/VideoCommon/VertexManagerBase.h
@@ -51,14 +51,11 @@ public:
virtual void DestroyDeviceObjects(){};
protected:
- u16* GetIndexBuffer() { return &LocalIBuffer[0]; }
- u8* GetVertexBuffer() { return &s_pBaseBufferPointer[0]; }
-
virtual void vDoState(PointerWrap& p) { }
static PrimitiveType current_primitive_type;
- virtual void ResetBuffer(u32 stride);
+ virtual void ResetBuffer(u32 stride) = 0;
private:
static bool IsFlushed;
@@ -66,9 +63,6 @@ private:
//virtual void Draw(u32 stride, bool alphapass) = 0;
// temp
virtual void vFlush() = 0;
-
- std::vector<u8> LocalVBuffer;
- std::vector<u16> LocalIBuffer;
};
extern VertexManager *g_vertex_manager;