/* * RB_BindVBO */ void RB_BindVBO( int id, int primitive ) { mesh_vbo_t *vbo; rb.primitive = primitive; if( id < RB_VBO_NONE ) { vbo = rb.dynamicStreams[-id - 1].vbo; } else if( id == RB_VBO_NONE ) { vbo = NULL; } else { vbo = R_GetVBOByIndex( id ); } rb.currentVBOId = id; rb.currentVBO = vbo; if( !vbo ) { RB_BindArrayBuffer( 0 ); RB_BindElementArrayBuffer( 0 ); return; } RB_BindArrayBuffer( vbo->vertexId ); RB_BindElementArrayBuffer( vbo->elemId ); }
/* * RB_BindVBO */ void RB_BindVBO( int id, int primitive ) { mesh_vbo_t *vbo; vboSlice_t *batch; if( rb.currentVBOId == id ) { return; } if( id < RB_VBO_NONE ) { vbo = rb.streamVBOs[-id - 1]; batch = &rb.batches[-id - 1]; } else if( id == RB_VBO_NONE ) { vbo = NULL; batch = NULL; } else { vbo = R_GetVBOByIndex( id ); batch = NULL; } rb.primitive = primitive; rb.currentVBOId = id; rb.currentVBO = vbo; rb.currentBatch = batch; if( !vbo ) { RB_BindArrayBuffer( 0 ); RB_BindElementArrayBuffer( 0 ); return; } RB_BindArrayBuffer( vbo->vertexId ); RB_BindElementArrayBuffer( vbo->elemId ); }