summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2015-11-21 10:32:07 +0100
committerdegasus <wickmarkus@web.de>2015-11-24 22:48:49 +0100
commitfc00598785fc02393864dd3521056d70086ee4b7 (patch)
treee058656173b1eaf7e7d13709c3cc024afb435dd8 /Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp
parentdf799dd12466a319c5616027980db0dbcadaa7de (diff)
NativeVertexFormat: Inline Initialize in contructor
They were only called at once, so no need to seperate them. This also removes the only dereference of the NativeVertexFormat in VideoCommon, so backends may just return nullptr.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp31
1 files changed, 13 insertions, 18 deletions
diff --git a/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp b/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp
index f7f3ab301a..004692999f 100644
--- a/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp
+++ b/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp
@@ -21,19 +21,9 @@
namespace OGL
{
-NativeVertexFormat* VertexManager::CreateNativeVertexFormat()
+NativeVertexFormat* VertexManager::CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_decl)
{
- return new GLVertexFormat();
-}
-
-GLVertexFormat::GLVertexFormat()
-{
-
-}
-
-GLVertexFormat::~GLVertexFormat()
-{
- glDeleteVertexArrays(1, &VAO);
+ return new GLVertexFormat(vtx_decl);
}
static inline GLuint VarToGL(VarType t)
@@ -56,7 +46,7 @@ static void SetPointer(u32 attrib, u32 stride, const AttributeFormat &format)
glVertexAttribPointer(attrib, format.components, VarToGL(format.type), true, stride, (u8*)nullptr + format.offset);
}
-void GLVertexFormat::Initialize(const PortableVertexDeclaration &_vtx_decl)
+GLVertexFormat::GLVertexFormat(const PortableVertexDeclaration& _vtx_decl)
{
this->vtx_decl = _vtx_decl;
u32 vertex_stride = _vtx_decl.stride;
@@ -74,22 +64,27 @@ void GLVertexFormat::Initialize(const PortableVertexDeclaration &_vtx_decl)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vm->m_index_buffers);
glBindBuffer(GL_ARRAY_BUFFER, vm->m_vertex_buffers);
- SetPointer(SHADER_POSITION_ATTRIB, vertex_stride, vtx_decl.position);
+ SetPointer(SHADER_POSITION_ATTRIB, vertex_stride, _vtx_decl.position);
for (int i = 0; i < 3; i++)
- SetPointer(SHADER_NORM0_ATTRIB+i, vertex_stride, vtx_decl.normals[i]);
+ SetPointer(SHADER_NORM0_ATTRIB+i, vertex_stride, _vtx_decl.normals[i]);
for (int i = 0; i < 2; i++)
- SetPointer(SHADER_COLOR0_ATTRIB+i, vertex_stride, vtx_decl.colors[i]);
+ SetPointer(SHADER_COLOR0_ATTRIB+i, vertex_stride, _vtx_decl.colors[i]);
for (int i = 0; i < 8; i++)
- SetPointer(SHADER_TEXTURE0_ATTRIB+i, vertex_stride, vtx_decl.texcoords[i]);
+ SetPointer(SHADER_TEXTURE0_ATTRIB+i, vertex_stride, _vtx_decl.texcoords[i]);
- SetPointer(SHADER_POSMTX_ATTRIB, vertex_stride, vtx_decl.posmtx);
+ SetPointer(SHADER_POSMTX_ATTRIB, vertex_stride, _vtx_decl.posmtx);
vm->m_last_vao = VAO;
}
+GLVertexFormat::~GLVertexFormat()
+{
+ glDeleteVertexArrays(1, &VAO);
+}
+
void GLVertexFormat::SetupVertexPointers()
{
}