mesa: rename gl_vertex_array_object::VertexBinding to BufferBinding
To be a little more understandable. Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
@@ -1566,7 +1566,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
/* conventional vertex arrays */
|
/* conventional vertex arrays */
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = IndexFuncs[TYPE_IDX(aa->array->Type)];
|
aa->offset = IndexFuncs[TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1574,7 +1574,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
|
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = _gloffset_EdgeFlagv;
|
aa->offset = _gloffset_EdgeFlagv;
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1582,7 +1582,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
|
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_NORMAL].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_NORMAL].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_NORMAL];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_NORMAL];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = NormalFuncs[TYPE_IDX(aa->array->Type)];
|
aa->offset = NormalFuncs[TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1590,7 +1590,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
|
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_COLOR0].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_COLOR0].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR0];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR0];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = ColorFuncs[aa->array->Size-3][TYPE_IDX(aa->array->Type)];
|
aa->offset = ColorFuncs[aa->array->Size-3][TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1598,7 +1598,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
|
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_COLOR1].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_COLOR1].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR1];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_COLOR1];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = SecondaryColorFuncs[TYPE_IDX(aa->array->Type)];
|
aa->offset = SecondaryColorFuncs[TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1606,7 +1606,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
|
|
||||||
if (vao->VertexAttrib[VERT_ATTRIB_FOG].Enabled) {
|
if (vao->VertexAttrib[VERT_ATTRIB_FOG].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_FOG];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_FOG];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = FogCoordFuncs[TYPE_IDX(aa->array->Type)];
|
aa->offset = FogCoordFuncs[TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
@@ -1620,7 +1620,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
* If we ever remove GL_NV_vertex_program this will have to change.
|
* If we ever remove GL_NV_vertex_program this will have to change.
|
||||||
*/
|
*/
|
||||||
at->array = attribArray;
|
at->array = attribArray;
|
||||||
at->binding = &vao->VertexBinding[attribArray->BufferBindingIndex];
|
at->binding = &vao->BufferBinding[attribArray->BufferBindingIndex];
|
||||||
assert(!at->array->Normalized);
|
assert(!at->array->Normalized);
|
||||||
at->func = AttribFuncsNV[at->array->Normalized]
|
at->func = AttribFuncsNV[at->array->Normalized]
|
||||||
[at->array->Size-1]
|
[at->array->Size-1]
|
||||||
@@ -1638,7 +1638,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
if (attribArray->Enabled) {
|
if (attribArray->Enabled) {
|
||||||
GLint intOrNorm;
|
GLint intOrNorm;
|
||||||
at->array = attribArray;
|
at->array = attribArray;
|
||||||
at->binding = &vao->VertexBinding[attribArray->BufferBindingIndex];
|
at->binding = &vao->BufferBinding[attribArray->BufferBindingIndex];
|
||||||
/* Note: we can't grab the _glapi_Dispatch->VertexAttrib1fvNV
|
/* Note: we can't grab the _glapi_Dispatch->VertexAttrib1fvNV
|
||||||
* function pointer here (for float arrays) since the pointer may
|
* function pointer here (for float arrays) since the pointer may
|
||||||
* change from one execution of _ae_ArrayElement() to
|
* change from one execution of _ae_ArrayElement() to
|
||||||
@@ -1669,7 +1669,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
* issued as the last (provoking) attribute).
|
* issued as the last (provoking) attribute).
|
||||||
*/
|
*/
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_GENERIC0];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_GENERIC0];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
assert(aa->array->Size >= 2); /* XXX fix someday? */
|
assert(aa->array->Size >= 2); /* XXX fix someday? */
|
||||||
aa->offset = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)];
|
aa->offset = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
@@ -1677,7 +1677,7 @@ _ae_update_state(struct gl_context *ctx)
|
|||||||
}
|
}
|
||||||
else if (vao->VertexAttrib[VERT_ATTRIB_POS].Enabled) {
|
else if (vao->VertexAttrib[VERT_ATTRIB_POS].Enabled) {
|
||||||
aa->array = &vao->VertexAttrib[VERT_ATTRIB_POS];
|
aa->array = &vao->VertexAttrib[VERT_ATTRIB_POS];
|
||||||
aa->binding = &vao->VertexBinding[aa->array->BufferBindingIndex];
|
aa->binding = &vao->BufferBinding[aa->array->BufferBindingIndex];
|
||||||
aa->offset = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)];
|
aa->offset = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)];
|
||||||
check_vbo(actx, aa->binding->BufferObj);
|
check_vbo(actx, aa->binding->BufferObj);
|
||||||
aa++;
|
aa++;
|
||||||
|
@@ -140,8 +140,8 @@ unbind_array_object_vbos(struct gl_context *ctx, struct gl_vertex_array_object *
|
|||||||
{
|
{
|
||||||
GLuint i;
|
GLuint i;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(obj->VertexBinding); i++)
|
for (i = 0; i < ARRAY_SIZE(obj->BufferBinding); i++)
|
||||||
_mesa_reference_buffer_object(ctx, &obj->VertexBinding[i].BufferObj, NULL);
|
_mesa_reference_buffer_object(ctx, &obj->BufferBinding[i].BufferObj, NULL);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(obj->_VertexAttrib); i++)
|
for (i = 0; i < ARRAY_SIZE(obj->_VertexAttrib); i++)
|
||||||
_mesa_reference_buffer_object(ctx, &obj->_VertexAttrib[i].BufferObj, NULL);
|
_mesa_reference_buffer_object(ctx, &obj->_VertexAttrib[i].BufferObj, NULL);
|
||||||
@@ -236,7 +236,7 @@ init_array(struct gl_context *ctx,
|
|||||||
GLuint index, GLint size, GLint type)
|
GLuint index, GLint size, GLint type)
|
||||||
{
|
{
|
||||||
struct gl_array_attributes *array = &vao->VertexAttrib[index];
|
struct gl_array_attributes *array = &vao->VertexAttrib[index];
|
||||||
struct gl_vertex_buffer_binding *binding = &vao->VertexBinding[index];
|
struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
|
||||||
|
|
||||||
array->Size = size;
|
array->Size = size;
|
||||||
array->Type = type;
|
array->Type = type;
|
||||||
@@ -357,7 +357,7 @@ _mesa_update_vao_client_arrays(struct gl_context *ctx,
|
|||||||
struct gl_vertex_buffer_binding *buffer_binding;
|
struct gl_vertex_buffer_binding *buffer_binding;
|
||||||
|
|
||||||
attrib_array = &vao->VertexAttrib[attrib];
|
attrib_array = &vao->VertexAttrib[attrib];
|
||||||
buffer_binding = &vao->VertexBinding[attrib_array->BufferBindingIndex];
|
buffer_binding = &vao->BufferBinding[attrib_array->BufferBindingIndex];
|
||||||
client_array = &vao->_VertexAttrib[attrib];
|
client_array = &vao->_VertexAttrib[attrib];
|
||||||
|
|
||||||
_mesa_update_client_array(ctx, client_array, attrib_array,
|
_mesa_update_client_array(ctx, client_array, attrib_array,
|
||||||
@@ -380,7 +380,7 @@ _mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao)
|
|||||||
const struct gl_array_attributes *attrib_array =
|
const struct gl_array_attributes *attrib_array =
|
||||||
&vao->VertexAttrib[i];
|
&vao->VertexAttrib[i];
|
||||||
const struct gl_vertex_buffer_binding *buffer_binding =
|
const struct gl_vertex_buffer_binding *buffer_binding =
|
||||||
&vao->VertexBinding[attrib_array->BufferBindingIndex];
|
&vao->BufferBinding[attrib_array->BufferBindingIndex];
|
||||||
|
|
||||||
/* Only enabled arrays shall appear in the _Enabled bitmask */
|
/* Only enabled arrays shall appear in the _Enabled bitmask */
|
||||||
assert(attrib_array->Enabled);
|
assert(attrib_array->Enabled);
|
||||||
@@ -411,7 +411,7 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
|
|||||||
const struct gl_array_attributes *attrib_array =
|
const struct gl_array_attributes *attrib_array =
|
||||||
&vao->VertexAttrib[i];
|
&vao->VertexAttrib[i];
|
||||||
const struct gl_vertex_buffer_binding *buffer_binding =
|
const struct gl_vertex_buffer_binding *buffer_binding =
|
||||||
&vao->VertexBinding[attrib_array->BufferBindingIndex];
|
&vao->BufferBinding[attrib_array->BufferBindingIndex];
|
||||||
|
|
||||||
/* Only enabled arrays shall appear in the _Enabled bitmask */
|
/* Only enabled arrays shall appear in the _Enabled bitmask */
|
||||||
assert(attrib_array->Enabled);
|
assert(attrib_array->Enabled);
|
||||||
|
@@ -1484,7 +1484,7 @@ copy_array_object(struct gl_context *ctx,
|
|||||||
for (i = 0; i < ARRAY_SIZE(src->VertexAttrib); i++) {
|
for (i = 0; i < ARRAY_SIZE(src->VertexAttrib); i++) {
|
||||||
_mesa_copy_client_array(ctx, &dest->_VertexAttrib[i], &src->_VertexAttrib[i]);
|
_mesa_copy_client_array(ctx, &dest->_VertexAttrib[i], &src->_VertexAttrib[i]);
|
||||||
_mesa_copy_vertex_attrib_array(ctx, &dest->VertexAttrib[i], &src->VertexAttrib[i]);
|
_mesa_copy_vertex_attrib_array(ctx, &dest->VertexAttrib[i], &src->VertexAttrib[i]);
|
||||||
_mesa_copy_vertex_buffer_binding(ctx, &dest->VertexBinding[i], &src->VertexBinding[i]);
|
_mesa_copy_vertex_buffer_binding(ctx, &dest->BufferBinding[i], &src->BufferBinding[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _Enabled must be the same than on push */
|
/* _Enabled must be the same than on push */
|
||||||
|
@@ -1203,10 +1203,10 @@ unbind(struct gl_context *ctx,
|
|||||||
struct gl_vertex_array_object *vao, unsigned index,
|
struct gl_vertex_array_object *vao, unsigned index,
|
||||||
struct gl_buffer_object *obj)
|
struct gl_buffer_object *obj)
|
||||||
{
|
{
|
||||||
if (vao->VertexBinding[index].BufferObj == obj) {
|
if (vao->BufferBinding[index].BufferObj == obj) {
|
||||||
_mesa_bind_vertex_buffer(ctx, vao, index, ctx->Shared->NullBufferObj,
|
_mesa_bind_vertex_buffer(ctx, vao, index, ctx->Shared->NullBufferObj,
|
||||||
vao->VertexBinding[index].Offset,
|
vao->BufferBinding[index].Offset,
|
||||||
vao->VertexBinding[index].Stride);
|
vao->BufferBinding[index].Stride);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1304,7 +1304,7 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids)
|
|||||||
_mesa_buffer_unmap_all_mappings(ctx, bufObj);
|
_mesa_buffer_unmap_all_mappings(ctx, bufObj);
|
||||||
|
|
||||||
/* unbind any vertex pointers bound to this buffer */
|
/* unbind any vertex pointers bound to this buffer */
|
||||||
for (j = 0; j < ARRAY_SIZE(vao->VertexBinding); j++) {
|
for (j = 0; j < ARRAY_SIZE(vao->BufferBinding); j++) {
|
||||||
unbind(ctx, vao, j, bufObj);
|
unbind(ctx, vao, j, bufObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -879,7 +879,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
|
|||||||
break;
|
break;
|
||||||
case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
|
case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
|
||||||
v->value_int =
|
v->value_int =
|
||||||
ctx->Array.VAO->VertexBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj->Name;
|
ctx->Array.VAO->BufferBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj->Name;
|
||||||
break;
|
break;
|
||||||
case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
|
case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
|
||||||
v->value_int = ctx->Array.VAO->IndexBufferObj->Name;
|
v->value_int = ctx->Array.VAO->IndexBufferObj->Name;
|
||||||
@@ -945,7 +945,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
|
|||||||
ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
|
ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
|
||||||
break;
|
break;
|
||||||
case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
|
case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
|
||||||
v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_POINT_SIZE].BufferObj->Name;
|
v->value_int = ctx->Array.VAO->BufferBinding[VERT_ATTRIB_POINT_SIZE].BufferObj->Name;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_FOG_COLOR:
|
case GL_FOG_COLOR:
|
||||||
@@ -2159,7 +2159,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||||||
goto invalid_enum;
|
goto invalid_enum;
|
||||||
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
||||||
goto invalid_value;
|
goto invalid_value;
|
||||||
v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
|
v->value_int = ctx->Array.VAO->BufferBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
|
||||||
return TYPE_INT;
|
return TYPE_INT;
|
||||||
|
|
||||||
case GL_VERTEX_BINDING_OFFSET:
|
case GL_VERTEX_BINDING_OFFSET:
|
||||||
@@ -2167,7 +2167,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||||||
goto invalid_enum;
|
goto invalid_enum;
|
||||||
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
||||||
goto invalid_value;
|
goto invalid_value;
|
||||||
v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
v->value_int = ctx->Array.VAO->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
||||||
return TYPE_INT;
|
return TYPE_INT;
|
||||||
|
|
||||||
case GL_VERTEX_BINDING_STRIDE:
|
case GL_VERTEX_BINDING_STRIDE:
|
||||||
@@ -2175,7 +2175,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||||||
goto invalid_enum;
|
goto invalid_enum;
|
||||||
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
||||||
goto invalid_value;
|
goto invalid_value;
|
||||||
v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].Stride;
|
v->value_int = ctx->Array.VAO->BufferBinding[VERT_ATTRIB_GENERIC(index)].Stride;
|
||||||
return TYPE_INT;
|
return TYPE_INT;
|
||||||
|
|
||||||
case GL_VERTEX_BINDING_BUFFER:
|
case GL_VERTEX_BINDING_BUFFER:
|
||||||
@@ -2183,7 +2183,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||||||
goto invalid_enum;
|
goto invalid_enum;
|
||||||
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
|
||||||
goto invalid_value;
|
goto invalid_value;
|
||||||
v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].BufferObj->Name;
|
v->value_int = ctx->Array.VAO->BufferBinding[VERT_ATTRIB_GENERIC(index)].BufferObj->Name;
|
||||||
return TYPE_INT;
|
return TYPE_INT;
|
||||||
|
|
||||||
/* ARB_shader_image_load_store */
|
/* ARB_shader_image_load_store */
|
||||||
|
@@ -236,9 +236,9 @@ descriptor=[
|
|||||||
[ "SAMPLE_ALPHA_TO_ONE_ARB", "CONTEXT_BOOL(Multisample.SampleAlphaToOne), NO_EXTRA" ],
|
[ "SAMPLE_ALPHA_TO_ONE_ARB", "CONTEXT_BOOL(Multisample.SampleAlphaToOne), NO_EXTRA" ],
|
||||||
|
|
||||||
# GL_ARB_vertex_buffer_object
|
# GL_ARB_vertex_buffer_object
|
||||||
[ "VERTEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_POS].BufferObj), NO_EXTRA" ],
|
[ "VERTEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_POS].BufferObj), NO_EXTRA" ],
|
||||||
[ "NORMAL_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_NORMAL].BufferObj), NO_EXTRA" ],
|
[ "NORMAL_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_NORMAL].BufferObj), NO_EXTRA" ],
|
||||||
[ "COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR0].BufferObj), NO_EXTRA" ],
|
[ "COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_COLOR0].BufferObj), NO_EXTRA" ],
|
||||||
[ "TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
|
[ "TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
|
||||||
|
|
||||||
# GL_OES_point_sprite
|
# GL_OES_point_sprite
|
||||||
@@ -834,10 +834,10 @@ descriptor=[
|
|||||||
[ "PRIMITIVE_RESTART_INDEX_NV", "CONTEXT_INT(Array.RestartIndex), extra_NV_primitive_restart" ],
|
[ "PRIMITIVE_RESTART_INDEX_NV", "CONTEXT_INT(Array.RestartIndex), extra_NV_primitive_restart" ],
|
||||||
|
|
||||||
# GL_ARB_vertex_buffer_object
|
# GL_ARB_vertex_buffer_object
|
||||||
[ "INDEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj), NO_EXTRA" ],
|
[ "INDEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj), NO_EXTRA" ],
|
||||||
[ "EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_EDGEFLAG].BufferObj), NO_EXTRA" ],
|
[ "EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_EDGEFLAG].BufferObj), NO_EXTRA" ],
|
||||||
[ "SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR1].BufferObj), NO_EXTRA" ],
|
[ "SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_COLOR1].BufferObj), NO_EXTRA" ],
|
||||||
[ "FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_FOG].BufferObj), NO_EXTRA" ],
|
[ "FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, BufferBinding[VERT_ATTRIB_FOG].BufferObj), NO_EXTRA" ],
|
||||||
|
|
||||||
# GL_ARB_vertex_program
|
# GL_ARB_vertex_program
|
||||||
# == GL_VERTEX_PROGRAM_NV
|
# == GL_VERTEX_PROGRAM_NV
|
||||||
|
@@ -1445,7 +1445,7 @@ struct gl_vertex_array_object
|
|||||||
struct gl_array_attributes VertexAttrib[VERT_ATTRIB_MAX];
|
struct gl_array_attributes VertexAttrib[VERT_ATTRIB_MAX];
|
||||||
|
|
||||||
/** Vertex buffer bindings */
|
/** Vertex buffer bindings */
|
||||||
struct gl_vertex_buffer_binding VertexBinding[VERT_ATTRIB_MAX];
|
struct gl_vertex_buffer_binding BufferBinding[VERT_ATTRIB_MAX];
|
||||||
|
|
||||||
/** Mask indicating which vertex arrays have vertex buffer associated. */
|
/** Mask indicating which vertex arrays have vertex buffer associated. */
|
||||||
GLbitfield64 VertexAttribBufferMask;
|
GLbitfield64 VertexAttribBufferMask;
|
||||||
|
@@ -135,7 +135,7 @@ vertex_attrib_binding(struct gl_context *ctx,
|
|||||||
{
|
{
|
||||||
struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
|
struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
|
||||||
|
|
||||||
if (!_mesa_is_bufferobj(vao->VertexBinding[bindingIndex].BufferObj))
|
if (!_mesa_is_bufferobj(vao->BufferBinding[bindingIndex].BufferObj))
|
||||||
vao->VertexAttribBufferMask &= ~VERT_BIT(attribIndex);
|
vao->VertexAttribBufferMask &= ~VERT_BIT(attribIndex);
|
||||||
else
|
else
|
||||||
vao->VertexAttribBufferMask |= VERT_BIT(attribIndex);
|
vao->VertexAttribBufferMask |= VERT_BIT(attribIndex);
|
||||||
@@ -145,8 +145,8 @@ vertex_attrib_binding(struct gl_context *ctx,
|
|||||||
|
|
||||||
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
||||||
|
|
||||||
vao->VertexBinding[array->BufferBindingIndex]._BoundArrays &= ~array_bit;
|
vao->BufferBinding[array->BufferBindingIndex]._BoundArrays &= ~array_bit;
|
||||||
vao->VertexBinding[bindingIndex]._BoundArrays |= array_bit;
|
vao->BufferBinding[bindingIndex]._BoundArrays |= array_bit;
|
||||||
|
|
||||||
array->BufferBindingIndex = bindingIndex;
|
array->BufferBindingIndex = bindingIndex;
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ _mesa_bind_vertex_buffer(struct gl_context *ctx,
|
|||||||
struct gl_buffer_object *vbo,
|
struct gl_buffer_object *vbo,
|
||||||
GLintptr offset, GLsizei stride)
|
GLintptr offset, GLsizei stride)
|
||||||
{
|
{
|
||||||
struct gl_vertex_buffer_binding *binding = &vao->VertexBinding[index];
|
struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
|
||||||
|
|
||||||
if (binding->BufferObj != vbo ||
|
if (binding->BufferObj != vbo ||
|
||||||
binding->Offset != offset ||
|
binding->Offset != offset ||
|
||||||
@@ -200,7 +200,7 @@ vertex_binding_divisor(struct gl_context *ctx,
|
|||||||
GLuint divisor)
|
GLuint divisor)
|
||||||
{
|
{
|
||||||
struct gl_vertex_buffer_binding *binding =
|
struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[bindingIndex];
|
&vao->BufferBinding[bindingIndex];
|
||||||
|
|
||||||
if (binding->InstanceDivisor != divisor) {
|
if (binding->InstanceDivisor != divisor) {
|
||||||
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
||||||
@@ -931,7 +931,7 @@ get_vertex_array_attrib(struct gl_context *ctx,
|
|||||||
case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB:
|
case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB:
|
||||||
return array->Normalized;
|
return array->Normalized;
|
||||||
case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:
|
case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:
|
||||||
return vao->VertexBinding[array->BufferBindingIndex].BufferObj->Name;
|
return vao->BufferBinding[array->BufferBindingIndex].BufferObj->Name;
|
||||||
case GL_VERTEX_ATTRIB_ARRAY_INTEGER:
|
case GL_VERTEX_ATTRIB_ARRAY_INTEGER:
|
||||||
if ((_mesa_is_desktop_gl(ctx)
|
if ((_mesa_is_desktop_gl(ctx)
|
||||||
&& (ctx->Version >= 30 || ctx->Extensions.EXT_gpu_shader4))
|
&& (ctx->Version >= 30 || ctx->Extensions.EXT_gpu_shader4))
|
||||||
@@ -947,7 +947,7 @@ get_vertex_array_attrib(struct gl_context *ctx,
|
|||||||
case GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB:
|
case GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB:
|
||||||
if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_instanced_arrays)
|
if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_instanced_arrays)
|
||||||
|| _mesa_is_gles3(ctx)) {
|
|| _mesa_is_gles3(ctx)) {
|
||||||
return vao->VertexBinding[array->BufferBindingIndex].InstanceDivisor;
|
return vao->BufferBinding[array->BufferBindingIndex].InstanceDivisor;
|
||||||
}
|
}
|
||||||
goto error;
|
goto error;
|
||||||
case GL_VERTEX_ATTRIB_BINDING:
|
case GL_VERTEX_ATTRIB_BINDING:
|
||||||
@@ -1188,16 +1188,16 @@ _mesa_GetVertexArrayIndexediv(GLuint vaobj, GLuint index,
|
|||||||
*/
|
*/
|
||||||
switch (pname) {
|
switch (pname) {
|
||||||
case GL_VERTEX_BINDING_OFFSET:
|
case GL_VERTEX_BINDING_OFFSET:
|
||||||
params[0] = vao->VertexBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
||||||
break;
|
break;
|
||||||
case GL_VERTEX_BINDING_STRIDE:
|
case GL_VERTEX_BINDING_STRIDE:
|
||||||
params[0] = vao->VertexBinding[VERT_ATTRIB_GENERIC(index)].Stride;
|
params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Stride;
|
||||||
break;
|
break;
|
||||||
case GL_VERTEX_BINDING_DIVISOR:
|
case GL_VERTEX_BINDING_DIVISOR:
|
||||||
params[0] = vao->VertexBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
|
params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
|
||||||
break;
|
break;
|
||||||
case GL_VERTEX_BINDING_BUFFER:
|
case GL_VERTEX_BINDING_BUFFER:
|
||||||
params[0] = vao->VertexBinding[VERT_ATTRIB_GENERIC(index)].BufferObj->Name;
|
params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].BufferObj->Name;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
params[0] = get_vertex_array_attrib(ctx, vao, index, pname,
|
params[0] = get_vertex_array_attrib(ctx, vao, index, pname,
|
||||||
@@ -1256,7 +1256,7 @@ _mesa_GetVertexArrayIndexed64iv(GLuint vaobj, GLuint index,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
params[0] = vao->VertexBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1742,8 +1742,8 @@ vertex_array_vertex_buffer(struct gl_context *ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (buffer ==
|
if (buffer ==
|
||||||
vao->VertexBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj->Name) {
|
vao->BufferBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj->Name) {
|
||||||
vbo = vao->VertexBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj;
|
vbo = vao->BufferBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj;
|
||||||
} else if (buffer != 0) {
|
} else if (buffer != 0) {
|
||||||
vbo = _mesa_lookup_bufferobj(ctx, buffer);
|
vbo = _mesa_lookup_bufferobj(ctx, buffer);
|
||||||
|
|
||||||
@@ -1919,7 +1919,7 @@ vertex_array_vertex_buffers(struct gl_context *ctx,
|
|||||||
|
|
||||||
if (buffers[i]) {
|
if (buffers[i]) {
|
||||||
struct gl_vertex_buffer_binding *binding =
|
struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[VERT_ATTRIB_GENERIC(first + i)];
|
&vao->BufferBinding[VERT_ATTRIB_GENERIC(first + i)];
|
||||||
|
|
||||||
if (buffers[i] == binding->BufferObj->Name)
|
if (buffers[i] == binding->BufferObj->Name)
|
||||||
vbo = binding->BufferObj;
|
vbo = binding->BufferObj;
|
||||||
@@ -2377,7 +2377,7 @@ _mesa_print_arrays(struct gl_context *ctx)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
const struct gl_vertex_buffer_binding *binding =
|
const struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[array->BufferBindingIndex];
|
&vao->BufferBinding[array->BufferBindingIndex];
|
||||||
const struct gl_buffer_object *bo = binding->BufferObj;
|
const struct gl_buffer_object *bo = binding->BufferObj;
|
||||||
|
|
||||||
fprintf(stderr, " %s: Ptr=%p, Type=%s, Size=%d, ElemSize=%u, "
|
fprintf(stderr, " %s: Ptr=%p, Type=%s, Size=%d, ElemSize=%u, "
|
||||||
|
@@ -54,7 +54,7 @@ check_array_data(struct gl_context *ctx, struct gl_vertex_array_object *vao,
|
|||||||
const struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
|
const struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
|
||||||
if (array->Enabled) {
|
if (array->Enabled) {
|
||||||
const struct gl_vertex_buffer_binding *binding =
|
const struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[array->BufferBindingIndex];
|
&vao->BufferBinding[array->BufferBindingIndex];
|
||||||
struct gl_buffer_object *bo = binding->BufferObj;
|
struct gl_buffer_object *bo = binding->BufferObj;
|
||||||
const void *data = array->Ptr;
|
const void *data = array->Ptr;
|
||||||
if (_mesa_is_bufferobj(bo)) {
|
if (_mesa_is_bufferobj(bo)) {
|
||||||
@@ -104,7 +104,7 @@ unmap_array_buffer(struct gl_context *ctx, struct gl_vertex_array_object *vao,
|
|||||||
const struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
|
const struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
|
||||||
if (array->Enabled) {
|
if (array->Enabled) {
|
||||||
const struct gl_vertex_buffer_binding *binding =
|
const struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[array->BufferBindingIndex];
|
&vao->BufferBinding[array->BufferBindingIndex];
|
||||||
struct gl_buffer_object *bo = binding->BufferObj;
|
struct gl_buffer_object *bo = binding->BufferObj;
|
||||||
if (_mesa_is_bufferobj(bo) && _mesa_bufferobj_mapped(bo, MAP_INTERNAL)) {
|
if (_mesa_is_bufferobj(bo) && _mesa_bufferobj_mapped(bo, MAP_INTERNAL)) {
|
||||||
ctx->Driver.UnmapBuffer(ctx, bo, MAP_INTERNAL);
|
ctx->Driver.UnmapBuffer(ctx, bo, MAP_INTERNAL);
|
||||||
@@ -198,7 +198,7 @@ print_draw_arrays(struct gl_context *ctx,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
const struct gl_vertex_buffer_binding *binding =
|
const struct gl_vertex_buffer_binding *binding =
|
||||||
&vao->VertexBinding[array->BufferBindingIndex];
|
&vao->BufferBinding[array->BufferBindingIndex];
|
||||||
struct gl_buffer_object *bufObj = binding->BufferObj;
|
struct gl_buffer_object *bufObj = binding->BufferObj;
|
||||||
|
|
||||||
printf("attr %s: size %d stride %d enabled %d "
|
printf("attr %s: size %d stride %d enabled %d "
|
||||||
|
Reference in New Issue
Block a user