VertexArray在添加数据区时,增加类型判断

This commit is contained in:
hyzboy 2018-12-07 15:34:16 +08:00
parent 1fd65faade
commit d5bfd51a87
2 changed files with 7 additions and 14 deletions

View File

@ -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); ///<设置颜色缓冲区数据

View File

@ -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);
}