diff --git a/inc/hgl/graph/VertexArray.h b/inc/hgl/graph/VertexArray.h index dd70d6b4..46ae1626 100644 --- a/inc/hgl/graph/VertexArray.h +++ b/inc/hgl/graph/VertexArray.h @@ -30,11 +30,6 @@ namespace hgl VertexBufferBase *vertex_buffer; VertexBufferBase *color_buffer; - private: - - bool _SetVertexBuffer (VertexBufferBase *); ///<真实设置顶点缓冲区数据 - bool _SetElementBuffer (); ///<真实设置索引缓冲区数据 - public: VertexArray(uint prim,uint max_vertex_attrib); @@ -53,7 +48,7 @@ namespace hgl public: //特殊缓冲区独立设置函数 - bool SetElementBuffer (VertexBufferBase *vb); ///<设置索引缓冲区数据 + bool SetElementBuffer (VertexBufferBase *eb); ///<设置索引缓冲区数据 bool SetVertexBuffer (VertexBufferBase *vb); ///<设置顶点缓冲区数据 bool SetColorBuffer (VertexBufferBase *vb,PixelCompoment cf); ///<设置颜色缓冲区数据 diff --git a/src/RenderDriver/VertexArray.cpp b/src/RenderDriver/VertexArray.cpp index bc07971a..d5353b03 100644 --- a/src/RenderDriver/VertexArray.cpp +++ b/src/RenderDriver/VertexArray.cpp @@ -51,18 +51,16 @@ namespace hgl int VertexArray::AddVertexAttribBuffer(VertexBufferBase *vb) { if(!vb)return(false); + if(vb->GetBufferType()!=GL_ARRAY_BUFFER)return(false); - const int index=vertex_buffer_list.Add(vb); - - _SetVertexBuffer(vb); //各种真实渲染器处理 - - return(index); + return vertex_buffer_list.Add(vb); } - bool VertexArray::SetElementBuffer(VertexBufferBase *vb) + bool VertexArray::SetElementBuffer(VertexBufferBase *eb) { - if(!vb)return(false); - element_buffer=vb; + if(!eb)return(false); + if(eb->GetBufferType()!=GL_ELEMENT_ARRAY_BUFFER)return(false); + element_buffer=eb; return(true); }