Пример #1
0
/*
* 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 );
}
Пример #2
0
/*
* 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 );
}