Lines Matching refs:vao

137                           struct gl_vertex_array_object *vao)
146 const GLbitfield enabled = vao->Enabled;
148 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_GENERIC0;
150 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_POSITION;
152 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_IDENTITY;
162 struct gl_vertex_array_object *vao,
166 struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
167 assert(!vao->SharedAndImmutable);
172 if (vao->BufferBinding[bindingIndex].BufferObj)
173 vao->VertexAttribBufferMask |= array_bit;
175 vao->VertexAttribBufferMask &= ~array_bit;
177 if (vao->BufferBinding[bindingIndex].InstanceDivisor)
178 vao->NonZeroDivisorMask |= array_bit;
180 vao->NonZeroDivisorMask &= ~array_bit;
182 vao->BufferBinding[array->BufferBindingIndex]._BoundArrays &= ~array_bit;
183 vao->BufferBinding[bindingIndex]._BoundArrays |= array_bit;
187 vao->NewArrays |= vao->Enabled & array_bit;
188 vao->NonDefaultStateMask |= array_bit | BITFIELD_BIT(bindingIndex);
199 struct gl_vertex_array_object *vao,
205 assert(index < ARRAY_SIZE(vao->BufferBinding));
206 assert(!vao->SharedAndImmutable);
207 struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
238 vao->VertexAttribBufferMask &= ~binding->_BoundArrays;
240 vao->VertexAttribBufferMask |= binding->_BoundArrays;
244 vao->NewArrays |= vao->Enabled & binding->_BoundArrays;
245 vao->NonDefaultStateMask |= BITFIELD_BIT(index);
256 struct gl_vertex_array_object *vao,
261 &vao->BufferBinding[bindingIndex];
262 assert(!vao->SharedAndImmutable);
268 vao->NonZeroDivisorMask |= binding->_BoundArrays;
270 vao->NonZeroDivisorMask &= ~binding->_BoundArrays;
272 vao->NewArrays |= vao->Enabled & binding->_BoundArrays;
273 vao->NonDefaultStateMask |= BITFIELD_BIT(bindingIndex);
633 struct gl_vertex_array_object *vao,
639 struct gl_array_attributes *const array = &vao->VertexAttrib[attrib];
642 assert(!vao->SharedAndImmutable);
655 vao->NewArrays |= vao->Enabled & VERT_BIT(attrib);
656 vao->NonDefaultStateMask |= BITFIELD_BIT(attrib);
679 struct gl_vertex_array_object *vao,
787 * \param vao the vao to update
803 struct gl_vertex_array_object *vao,
821 if (ctx->API == API_OPENGL_CORE && (vao == ctx->Array.DefaultVAO)) {
851 if (ptr != NULL && vao != ctx->Array.DefaultVAO &&
861 struct gl_vertex_array_object *vao,
869 validate_array(ctx, func, vao, obj, attrib, legalTypes, sizeMin, sizeMax,
872 return validate_array_format(ctx, func, vao, attrib, legalTypes, sizeMin,
881 * \param vao the vao to update
896 struct gl_vertex_array_object *vao,
904 _mesa_update_array_format(ctx, vao, attrib, size, type, format,
908 _mesa_vertex_attrib_binding(ctx, vao, attrib, attrib);
911 struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
915 vao->NewArrays |= vao->Enabled & VERT_BIT(attrib);
916 vao->NonDefaultStateMask |= BITFIELD_BIT(attrib);
922 _mesa_bind_vertex_buffer(ctx, vao, attrib,
933 struct gl_vertex_array_object** vao,
937 *vao = _mesa_lookup_vao_err(ctx, vaobj, true, caller);
938 if (!(*vao))
1011 struct gl_vertex_array_object* vao;
1015 &vao, &vbo,
1020 vao, vbo,
1026 update_array(ctx, vao, vbo,
1083 struct gl_vertex_array_object* vao;
1087 &vao, &vbo,
1092 vao, vbo,
1098 update_array(ctx, vao, vbo,
1163 struct gl_vertex_array_object* vao;
1167 &vao, &vbo,
1172 vao, vbo,
1178 update_array(ctx, vao, vbo,
1225 struct gl_vertex_array_object* vao;
1229 &vao, &vbo,
1234 vao, vbo,
1240 update_array(ctx, vao, vbo,
1289 struct gl_vertex_array_object* vao;
1293 &vao, &vbo,
1298 vao, vbo,
1304 update_array(ctx, vao, vbo,
1364 struct gl_vertex_array_object* vao;
1368 &vao, &vbo,
1373 vao, vbo,
1379 update_array(ctx, vao, vbo,
1443 struct gl_vertex_array_object* vao;
1447 &vao, &vbo,
1452 vao, vbo,
1458 update_array(ctx, vao, vbo,
1481 struct gl_vertex_array_object* vao;
1485 &vao, &vbo,
1496 vao, vbo,
1502 update_array(ctx, vao, vbo,
1555 struct gl_vertex_array_object* vao;
1559 &vao, &vbo,
1564 vao, vbo,
1570 update_array(ctx, vao, vbo,
1676 struct gl_vertex_array_object* vao;
1680 &vao, &vbo,
1699 vao, vbo,
1705 update_array(ctx, vao, vbo,
1717 struct gl_vertex_array_object* vao;
1721 &vao, &vbo,
1733 vao, vbo,
1739 update_array(ctx, vao, vbo,
1817 struct gl_vertex_array_object* vao;
1821 &vao, &vbo,
1835 vao, vbo,
1841 update_array(ctx, vao, vbo,
1876 struct gl_vertex_array_object *vao,
1880 assert(!vao->SharedAndImmutable);
1883 attrib_bits &= ~vao->Enabled;
1886 vao->Enabled |= attrib_bits;
1887 vao->NewArrays |= attrib_bits;
1888 vao->NonDefaultStateMask |= attrib_bits;
1892 update_attribute_map_mode(ctx, vao);
1894 vao->_EnabledWithMapMode =
1895 _mesa_vao_enable_to_vp_inputs(vao->_AttributeMapMode, vao->Enabled);
1901 struct gl_vertex_array_object *vao,
1910 _mesa_enable_vertex_array_attrib(ctx, vao, VERT_ATTRIB_GENERIC(index));
1936 struct gl_vertex_array_object *vao;
1945 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glEnableVertexArrayAttrib");
1946 if (!vao)
1949 enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttrib");
1956 struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
1959 if (!vao)
1962 enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttribEXT");
1970 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
1971 _mesa_enable_vertex_array_attrib(ctx, vao, VERT_ATTRIB_GENERIC(index));
1977 struct gl_vertex_array_object *vao,
1981 assert(!vao->SharedAndImmutable);
1984 attrib_bits &= vao->Enabled;
1987 vao->Enabled &= ~attrib_bits;
1988 vao->NewArrays |= attrib_bits;
1992 update_attribute_map_mode(ctx, vao);
1994 vao->_EnabledWithMapMode =
1995 _mesa_vao_enable_to_vp_inputs(vao->_AttributeMapMode, vao->Enabled);
2028 struct gl_vertex_array_object *vao;
2037 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glDisableVertexArrayAttrib");
2038 if (!vao)
2047 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2054 struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
2057 if (!vao)
2066 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2074 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
2076 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2087 const struct gl_vertex_array_object *vao,
2099 assert(VERT_ATTRIB_GENERIC(index) < ARRAY_SIZE(vao->VertexAttrib));
2101 array = &vao->VertexAttrib[VERT_ATTRIB_GENERIC(index)];
2105 return !!(vao->Enabled & VERT_BIT_GENERIC(index));
2115 buf = vao->BufferBinding[array->BufferBindingIndex].BufferObj;
2132 return vao->BufferBinding[array->BufferBindingIndex].InstanceDivisor;
2357 struct gl_vertex_array_object *vao;
2366 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glGetVertexArrayIndexediv");
2367 if (!vao)
2397 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
2400 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Stride;
2403 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
2406 buf = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].BufferObj;
2410 params[0] = get_vertex_array_attrib(ctx, vao, index, pname,
2422 struct gl_vertex_array_object *vao;
2430 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glGetVertexArrayIndexed64iv");
2431 if (!vao)
2466 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
2806 struct gl_vertex_array_object * const vao = ctx->Array.VAO;
2808 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2821 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2822 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2837 struct gl_vertex_array_object * const vao = ctx->Array.VAO;
2850 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2863 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2864 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2874 struct gl_vertex_array_object * vao;
2881 vao = _mesa_lookup_vao_err(ctx, vaobj,
2884 if (!vao)
2898 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2911 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2912 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2919 struct gl_vertex_array_object *vao,
2925 vao->BufferBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj;
2957 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex),
2967 struct gl_vertex_array_object *vao,
3012 vertex_array_vertex_buffer(ctx, vao, bindingIndex, buffer, offset,
3059 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3060 vertex_array_vertex_buffer(ctx, vao, bindingIndex, buffer, offset,
3070 struct gl_vertex_array_object *vao;
3078 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayVertexBuffer");
3079 if (!vao)
3082 vertex_array_vertex_buffer_err(ctx, vao, bindingIndex, buffer, offset,
3092 struct gl_vertex_array_object *vao;
3093 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayBindVertexBufferEXT");
3094 if (!vao)
3097 vertex_array_vertex_buffer_err(ctx, vao, bindingIndex, buffer, offset,
3104 struct gl_vertex_array_object *vao,
3122 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(first + i),
3184 &vao->BufferBinding[VERT_ATTRIB_GENERIC(first + i)];
3201 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(first + i),
3212 struct gl_vertex_array_object *vao,
3232 vertex_array_vertex_buffers(ctx, vao, first, count, buffers, offsets,
3280 struct gl_vertex_array_object *vao = ctx->Array.VAO;
3287 _mesa_bind_vertex_buffer(ctx, vao, i, NULL,
3289 vao->BufferBinding[i].Stride, false, false);
3300 _mesa_bind_vertex_buffer(ctx, vao, i, buf, buffers[param_index].offset,
3301 vao->BufferBinding[i].Stride, true, true);
3315 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3316 vertex_array_vertex_buffers(ctx, vao, first, count,
3328 struct gl_vertex_array_object *vao;
3336 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayVertexBuffers");
3337 if (!vao)
3340 vertex_array_vertex_buffers_err(ctx, vao, first, count,
3447 struct gl_vertex_array_object *vao;
3454 vao = _mesa_lookup_vao(ctx, vaobj);
3455 if (!vao)
3458 vao = _mesa_lookup_vao_err(ctx, vaobj, isExtDsa, func);
3459 if (!vao)
3474 if (!validate_array_format(ctx, func, vao,
3483 _mesa_update_array_format(ctx, vao, VERT_ATTRIB_GENERIC(attribIndex), size,
3563 struct gl_vertex_array_object *vao,
3592 assert(VERT_ATTRIB_GENERIC(attribIndex) < ARRAY_SIZE(vao->VertexAttrib));
3594 _mesa_vertex_attrib_binding(ctx, vao,
3639 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3640 _mesa_vertex_attrib_binding(ctx, vao,
3650 struct gl_vertex_array_object *vao;
3658 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayAttribBinding");
3659 if (!vao)
3662 vertex_array_attrib_binding(ctx, vao, attribIndex, bindingIndex,
3671 struct gl_vertex_array_object *vao;
3672 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayVertexAttribBindingEXT");
3673 if (!vao)
3676 vertex_array_attrib_binding(ctx, vao, attribIndex, bindingIndex,
3683 struct gl_vertex_array_object *vao,
3707 vertex_binding_divisor(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex), divisor);
3749 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3750 vertex_binding_divisor(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex), divisor);
3758 struct gl_vertex_array_object *vao;
3767 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayBindingDivisor");
3768 if (!vao)
3771 vertex_array_binding_divisor(ctx, vao, bindingIndex, divisor,
3780 struct gl_vertex_array_object *vao;
3789 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayVertexBindingDivisorEXT");
3790 if (!vao)
3793 vertex_array_binding_divisor(ctx, vao, bindingIndex, divisor,
3803 const struct gl_vertex_array_object *vao = ctx->Array.VAO;
3805 fprintf(stderr, "Array Object %u\n", vao->Name);
3807 GLbitfield mask = vao->Enabled;
3810 const struct gl_array_attributes *array = &vao->VertexAttrib[i];
3813 &vao->BufferBinding[array->BufferBindingIndex];
3828 * \param vao the container vertex array object
3835 struct gl_vertex_array_object *vao,
3838 assert(index < ARRAY_SIZE(vao->VertexAttrib));
3839 struct gl_array_attributes *array = &vao->VertexAttrib[index];
3840 assert(index < ARRAY_SIZE(vao->BufferBinding));
3841 struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
3861 struct gl_vertex_array_object *vao = &ctx->Array.DefaultVAOState;
3863 vao->RefCount = 1;
3864 vao->SharedAndImmutable = false;
3867 for (unsigned i = 0; i < ARRAY_SIZE(vao->VertexAttrib); i++) {
3870 init_array(ctx, vao, VERT_ATTRIB_NORMAL, 3, GL_FLOAT);
3873 init_array(ctx, vao, VERT_ATTRIB_COLOR1, 3, GL_FLOAT);
3876 init_array(ctx, vao, VERT_ATTRIB_FOG, 1, GL_FLOAT);
3879 init_array(ctx, vao, VERT_ATTRIB_COLOR_INDEX, 1, GL_FLOAT);
3882 init_array(ctx, vao, VERT_ATTRIB_EDGEFLAG, 1, GL_UNSIGNED_BYTE);
3885 init_array(ctx, vao, VERT_ATTRIB_POINT_SIZE, 1, GL_FLOAT);
3888 init_array(ctx, vao, i, 4, GL_FLOAT);
3893 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_IDENTITY;
3920 struct gl_vertex_array_object *vao = (struct gl_vertex_array_object *) data;
3922 _mesa_delete_vao(ctx, vao);
3940 struct gl_vertex_array_object* vao;
3944 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
3946 if (!vao)
3962 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Format.Size;
3965 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Format.Type;
3968 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Stride;
3971 buf = vao->BufferBinding[VERT_ATTRIB_POS].BufferObj;
3975 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Format.Size;
3978 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Format.Type;
3981 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Stride;
3984 buf = vao->BufferBinding[VERT_ATTRIB_COLOR0].BufferObj;
3988 *param = vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Stride;
3991 buf = vao->BufferBinding[VERT_ATTRIB_EDGEFLAG].BufferObj;
3995 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Format.Type;
3998 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Stride;
4001 buf = vao->BufferBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj;
4005 *param = vao->VertexAttrib[VERT_ATTRIB_NORMAL].Format.Type;
4008 *param = vao->VertexAttrib[VERT_ATTRIB_NORMAL].Stride;
4011 buf = vao->BufferBinding[VERT_ATTRIB_NORMAL].BufferObj;
4015 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Format.Size;
4018 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Format.Type;
4021 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Stride;
4024 buf = vao->BufferBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj;
4028 *param = vao->VertexAttrib[VERT_ATTRIB_FOG].Format.Type;
4031 *param = vao->VertexAttrib[VERT_ATTRIB_FOG].Stride;
4034 buf = vao->BufferBinding[VERT_ATTRIB_FOG].BufferObj;
4038 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Format.Size;
4041 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Format.Type;
4044 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Stride;
4047 buf = vao->BufferBinding[VERT_ATTRIB_COLOR1].BufferObj;
4053 *param = !!(vao->Enabled & VERT_BIT_POS);
4056 *param = !!(vao->Enabled & VERT_BIT_COLOR0);
4059 *param = !!(vao->Enabled & VERT_BIT_EDGEFLAG);
4062 *param = !!(vao->Enabled & VERT_BIT_COLOR_INDEX);
4065 *param = !!(vao->Enabled & VERT_BIT_NORMAL);
4068 *param = !!(vao->Enabled & VERT_BIT_TEX(ctx->Array.ActiveTexture));
4071 *param = !!(vao->Enabled & VERT_BIT_FOG);
4074 *param = !!(vao->Enabled & VERT_BIT_COLOR1);
4086 _get_vao_pointerv(pname, vao, &ptr, "glGetVertexArrayIntegervEXT");
4099 struct gl_vertex_array_object* vao;
4101 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4103 if (!vao)
4128 _get_vao_pointerv(pname, vao, param, "glGetVertexArrayPointervEXT");
4135 struct gl_vertex_array_object* vao;
4138 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4140 if (!vao)
4156 *param = !!(vao->Enabled & VERT_BIT_TEX(index));
4159 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Format.Size;
4162 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Format.Type;
4165 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Stride;
4168 buf = vao->BufferBinding[VERT_ATTRIB_TEX(index)].BufferObj;
4172 *param = get_vertex_array_attrib(ctx, vao, index, pname, "glGetVertexArrayIntegeri_vEXT");
4180 struct gl_vertex_array_object* vao;
4182 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4184 if (!vao)
4200 *param = (GLvoid *) vao->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Ptr;
4203 *param = (GLvoid *) vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Ptr;