Lines Matching refs:vao

138                           struct gl_vertex_array_object *vao)
147 const GLbitfield enabled = vao->Enabled;
149 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_GENERIC0;
151 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_POSITION;
153 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_IDENTITY;
163 struct gl_vertex_array_object *vao,
167 struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
168 assert(!vao->SharedAndImmutable);
173 if (vao->BufferBinding[bindingIndex].BufferObj)
174 vao->VertexAttribBufferMask |= array_bit;
176 vao->VertexAttribBufferMask &= ~array_bit;
178 if (vao->BufferBinding[bindingIndex].InstanceDivisor)
179 vao->NonZeroDivisorMask |= array_bit;
181 vao->NonZeroDivisorMask &= ~array_bit;
183 vao->BufferBinding[array->BufferBindingIndex]._BoundArrays &= ~array_bit;
184 vao->BufferBinding[bindingIndex]._BoundArrays |= array_bit;
188 if (vao->Enabled & array_bit) {
189 vao->NewVertexBuffers = true;
190 vao->NewVertexElements = true;
193 vao->NonDefaultStateMask |= array_bit | BITFIELD_BIT(bindingIndex);
204 struct gl_vertex_array_object *vao,
210 assert(index < ARRAY_SIZE(vao->BufferBinding));
211 assert(!vao->SharedAndImmutable);
212 struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
243 vao->VertexAttribBufferMask &= ~binding->_BoundArrays;
245 vao->VertexAttribBufferMask |= binding->_BoundArrays;
249 if (vao->Enabled & binding->_BoundArrays) {
250 vao->NewVertexBuffers = true;
252 if (!vao->IsDynamic)
253 vao->NewVertexElements = true;
256 vao->NonDefaultStateMask |= BITFIELD_BIT(index);
267 struct gl_vertex_array_object *vao,
272 &vao->BufferBinding[bindingIndex];
273 assert(!vao->SharedAndImmutable);
279 vao->NonZeroDivisorMask |= binding->_BoundArrays;
281 vao->NonZeroDivisorMask &= ~binding->_BoundArrays;
283 if (vao->Enabled & binding->_BoundArrays) {
284 vao->NewVertexBuffers = true;
285 vao->NewVertexElements = true;
288 vao->NonDefaultStateMask |= BITFIELD_BIT(bindingIndex);
648 struct gl_vertex_array_object *vao,
654 struct gl_array_attributes *const array = &vao->VertexAttrib[attrib];
657 assert(!vao->SharedAndImmutable);
670 if (vao->Enabled & VERT_BIT(attrib))
671 vao->NewVertexElements = true;
673 vao->NonDefaultStateMask |= BITFIELD_BIT(attrib);
696 struct gl_vertex_array_object *vao,
804 * \param vao the vao to update
820 struct gl_vertex_array_object *vao,
838 if (ctx->API == API_OPENGL_CORE && (vao == ctx->Array.DefaultVAO)) {
868 if (ptr != NULL && vao != ctx->Array.DefaultVAO &&
878 struct gl_vertex_array_object *vao,
886 validate_array(ctx, func, vao, obj, attrib, legalTypes, sizeMin, sizeMax,
889 return validate_array_format(ctx, func, vao, attrib, legalTypes, sizeMin,
898 * \param vao the vao to update
913 struct gl_vertex_array_object *vao,
921 _mesa_update_array_format(ctx, vao, attrib, size, type, format,
925 _mesa_vertex_attrib_binding(ctx, vao, attrib, attrib);
928 struct gl_array_attributes *array = &vao->VertexAttrib[attrib];
933 if (vao->Enabled & VERT_BIT(attrib)) {
934 vao->NewVertexBuffers = true;
936 if (!vao->IsDynamic)
937 vao->NewVertexElements = true;
940 vao->NonDefaultStateMask |= BITFIELD_BIT(attrib);
946 _mesa_bind_vertex_buffer(ctx, vao, attrib,
957 struct gl_vertex_array_object** vao,
961 *vao = _mesa_lookup_vao_err(ctx, vaobj, true, caller);
962 if (!(*vao))
1035 struct gl_vertex_array_object* vao;
1039 &vao, &vbo,
1044 vao, vbo,
1050 update_array(ctx, vao, vbo,
1107 struct gl_vertex_array_object* vao;
1111 &vao, &vbo,
1116 vao, vbo,
1122 update_array(ctx, vao, vbo,
1187 struct gl_vertex_array_object* vao;
1191 &vao, &vbo,
1196 vao, vbo,
1202 update_array(ctx, vao, vbo,
1249 struct gl_vertex_array_object* vao;
1253 &vao, &vbo,
1258 vao, vbo,
1264 update_array(ctx, vao, vbo,
1313 struct gl_vertex_array_object* vao;
1317 &vao, &vbo,
1322 vao, vbo,
1328 update_array(ctx, vao, vbo,
1388 struct gl_vertex_array_object* vao;
1392 &vao, &vbo,
1397 vao, vbo,
1403 update_array(ctx, vao, vbo,
1467 struct gl_vertex_array_object* vao;
1471 &vao, &vbo,
1476 vao, vbo,
1482 update_array(ctx, vao, vbo,
1505 struct gl_vertex_array_object* vao;
1509 &vao, &vbo,
1520 vao, vbo,
1526 update_array(ctx, vao, vbo,
1579 struct gl_vertex_array_object* vao;
1583 &vao, &vbo,
1588 vao, vbo,
1594 update_array(ctx, vao, vbo,
1700 struct gl_vertex_array_object* vao;
1704 &vao, &vbo,
1723 vao, vbo,
1729 update_array(ctx, vao, vbo,
1741 struct gl_vertex_array_object* vao;
1745 &vao, &vbo,
1757 vao, vbo,
1763 update_array(ctx, vao, vbo,
1841 struct gl_vertex_array_object* vao;
1845 &vao, &vbo,
1859 vao, vbo,
1865 update_array(ctx, vao, vbo,
1900 struct gl_vertex_array_object *vao,
1904 assert(!vao->SharedAndImmutable);
1907 attrib_bits &= ~vao->Enabled;
1910 vao->Enabled |= attrib_bits;
1911 vao->NewVertexBuffers = true;
1912 vao->NewVertexElements = true;
1913 vao->NonDefaultStateMask |= attrib_bits;
1917 update_attribute_map_mode(ctx, vao);
1919 vao->_EnabledWithMapMode =
1920 _mesa_vao_enable_to_vp_inputs(vao->_AttributeMapMode, vao->Enabled);
1926 struct gl_vertex_array_object *vao,
1935 _mesa_enable_vertex_array_attrib(ctx, vao, VERT_ATTRIB_GENERIC(index));
1961 struct gl_vertex_array_object *vao;
1970 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glEnableVertexArrayAttrib");
1971 if (!vao)
1974 enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttrib");
1981 struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
1984 if (!vao)
1987 enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttribEXT");
1995 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
1996 _mesa_enable_vertex_array_attrib(ctx, vao, VERT_ATTRIB_GENERIC(index));
2002 struct gl_vertex_array_object *vao,
2006 assert(!vao->SharedAndImmutable);
2009 attrib_bits &= vao->Enabled;
2012 vao->Enabled &= ~attrib_bits;
2013 vao->NewVertexBuffers = true;
2014 vao->NewVertexElements = true;
2018 update_attribute_map_mode(ctx, vao);
2020 vao->_EnabledWithMapMode =
2021 _mesa_vao_enable_to_vp_inputs(vao->_AttributeMapMode, vao->Enabled);
2054 struct gl_vertex_array_object *vao;
2063 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glDisableVertexArrayAttrib");
2064 if (!vao)
2073 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2080 struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
2083 if (!vao)
2092 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2100 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
2102 _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
2113 const struct gl_vertex_array_object *vao,
2125 assert(VERT_ATTRIB_GENERIC(index) < ARRAY_SIZE(vao->VertexAttrib));
2127 array = &vao->VertexAttrib[VERT_ATTRIB_GENERIC(index)];
2131 return !!(vao->Enabled & VERT_BIT_GENERIC(index));
2141 buf = vao->BufferBinding[array->BufferBindingIndex].BufferObj;
2158 return vao->BufferBinding[array->BufferBindingIndex].InstanceDivisor;
2383 struct gl_vertex_array_object *vao;
2392 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glGetVertexArrayIndexediv");
2393 if (!vao)
2423 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
2426 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Stride;
2429 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
2432 buf = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].BufferObj;
2436 params[0] = get_vertex_array_attrib(ctx, vao, index, pname,
2448 struct gl_vertex_array_object *vao;
2456 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glGetVertexArrayIndexed64iv");
2457 if (!vao)
2492 params[0] = vao->BufferBinding[VERT_ATTRIB_GENERIC(index)].Offset;
2832 struct gl_vertex_array_object * const vao = ctx->Array.VAO;
2834 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2847 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2848 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2863 struct gl_vertex_array_object * const vao = ctx->Array.VAO;
2876 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2889 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2890 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2900 struct gl_vertex_array_object * vao;
2907 vao = _mesa_lookup_vao_err(ctx, vaobj,
2910 if (!vao)
2924 assert(genericIndex < ARRAY_SIZE(vao->VertexAttrib));
2937 _mesa_vertex_attrib_binding(ctx, vao, genericIndex, genericIndex);
2938 vertex_binding_divisor(ctx, vao, genericIndex, divisor);
2945 struct gl_vertex_array_object *vao,
2951 vao->BufferBinding[VERT_ATTRIB_GENERIC(bindingIndex)].BufferObj;
2983 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex),
2993 struct gl_vertex_array_object *vao,
3038 vertex_array_vertex_buffer(ctx, vao, bindingIndex, buffer, offset,
3085 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3086 vertex_array_vertex_buffer(ctx, vao, bindingIndex, buffer, offset,
3096 struct gl_vertex_array_object *vao;
3104 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayVertexBuffer");
3105 if (!vao)
3108 vertex_array_vertex_buffer_err(ctx, vao, bindingIndex, buffer, offset,
3118 struct gl_vertex_array_object *vao;
3119 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayBindVertexBufferEXT");
3120 if (!vao)
3123 vertex_array_vertex_buffer_err(ctx, vao, bindingIndex, buffer, offset,
3130 struct gl_vertex_array_object *vao,
3148 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(first + i),
3210 &vao->BufferBinding[VERT_ATTRIB_GENERIC(first + i)];
3227 _mesa_bind_vertex_buffer(ctx, vao, VERT_ATTRIB_GENERIC(first + i),
3238 struct gl_vertex_array_object *vao,
3258 vertex_array_vertex_buffers(ctx, vao, first, count, buffers, offsets,
3306 struct gl_vertex_array_object *vao = ctx->Array.VAO;
3313 _mesa_bind_vertex_buffer(ctx, vao, i, NULL,
3315 vao->BufferBinding[i].Stride, false, false);
3326 _mesa_bind_vertex_buffer(ctx, vao, i, buf, buffers[param_index].offset,
3327 vao->BufferBinding[i].Stride, true, true);
3341 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3342 vertex_array_vertex_buffers(ctx, vao, first, count,
3354 struct gl_vertex_array_object *vao;
3362 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayVertexBuffers");
3363 if (!vao)
3366 vertex_array_vertex_buffers_err(ctx, vao, first, count,
3473 struct gl_vertex_array_object *vao;
3480 vao = _mesa_lookup_vao(ctx, vaobj);
3481 if (!vao)
3484 vao = _mesa_lookup_vao_err(ctx, vaobj, isExtDsa, func);
3485 if (!vao)
3500 if (!validate_array_format(ctx, func, vao,
3509 _mesa_update_array_format(ctx, vao, VERT_ATTRIB_GENERIC(attribIndex), size,
3589 struct gl_vertex_array_object *vao,
3618 assert(VERT_ATTRIB_GENERIC(attribIndex) < ARRAY_SIZE(vao->VertexAttrib));
3620 _mesa_vertex_attrib_binding(ctx, vao,
3665 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3666 _mesa_vertex_attrib_binding(ctx, vao,
3676 struct gl_vertex_array_object *vao;
3684 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayAttribBinding");
3685 if (!vao)
3688 vertex_array_attrib_binding(ctx, vao, attribIndex, bindingIndex,
3697 struct gl_vertex_array_object *vao;
3698 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayVertexAttribBindingEXT");
3699 if (!vao)
3702 vertex_array_attrib_binding(ctx, vao, attribIndex, bindingIndex,
3709 struct gl_vertex_array_object *vao,
3733 vertex_binding_divisor(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex), divisor);
3775 struct gl_vertex_array_object *vao = _mesa_lookup_vao(ctx, vaobj);
3776 vertex_binding_divisor(ctx, vao, VERT_ATTRIB_GENERIC(bindingIndex), divisor);
3784 struct gl_vertex_array_object *vao;
3793 vao = _mesa_lookup_vao_err(ctx, vaobj, false, "glVertexArrayBindingDivisor");
3794 if (!vao)
3797 vertex_array_binding_divisor(ctx, vao, bindingIndex, divisor,
3806 struct gl_vertex_array_object *vao;
3815 vao = _mesa_lookup_vao_err(ctx, vaobj, true, "glVertexArrayVertexBindingDivisorEXT");
3816 if (!vao)
3819 vertex_array_binding_divisor(ctx, vao, bindingIndex, divisor,
3829 const struct gl_vertex_array_object *vao = ctx->Array.VAO;
3831 fprintf(stderr, "Array Object %u\n", vao->Name);
3833 GLbitfield mask = vao->Enabled;
3836 const struct gl_array_attributes *array = &vao->VertexAttrib[i];
3839 &vao->BufferBinding[array->BufferBindingIndex];
3854 * \param vao the container vertex array object
3861 struct gl_vertex_array_object *vao,
3864 assert(index < ARRAY_SIZE(vao->VertexAttrib));
3865 struct gl_array_attributes *array = &vao->VertexAttrib[index];
3866 assert(index < ARRAY_SIZE(vao->BufferBinding));
3867 struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
3887 struct gl_vertex_array_object *vao = &ctx->Array.DefaultVAOState;
3889 vao->RefCount = 1;
3890 vao->SharedAndImmutable = false;
3893 for (unsigned i = 0; i < ARRAY_SIZE(vao->VertexAttrib); i++) {
3896 init_array(ctx, vao, VERT_ATTRIB_NORMAL, 3, GL_FLOAT);
3899 init_array(ctx, vao, VERT_ATTRIB_COLOR1, 3, GL_FLOAT);
3902 init_array(ctx, vao, VERT_ATTRIB_FOG, 1, GL_FLOAT);
3905 init_array(ctx, vao, VERT_ATTRIB_COLOR_INDEX, 1, GL_FLOAT);
3908 init_array(ctx, vao, VERT_ATTRIB_EDGEFLAG, 1, GL_UNSIGNED_BYTE);
3911 init_array(ctx, vao, VERT_ATTRIB_POINT_SIZE, 1, GL_FLOAT);
3914 init_array(ctx, vao, i, 4, GL_FLOAT);
3919 vao->_AttributeMapMode = ATTRIBUTE_MAP_MODE_IDENTITY;
3946 struct gl_vertex_array_object *vao = (struct gl_vertex_array_object *) data;
3948 _mesa_delete_vao(ctx, vao);
3966 struct gl_vertex_array_object* vao;
3970 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
3972 if (!vao)
3988 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Format.Size;
3991 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Format.Type;
3994 *param = vao->VertexAttrib[VERT_ATTRIB_POS].Stride;
3997 buf = vao->BufferBinding[VERT_ATTRIB_POS].BufferObj;
4001 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Format.Size;
4004 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Format.Type;
4007 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR0].Stride;
4010 buf = vao->BufferBinding[VERT_ATTRIB_COLOR0].BufferObj;
4014 *param = vao->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Stride;
4017 buf = vao->BufferBinding[VERT_ATTRIB_EDGEFLAG].BufferObj;
4021 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Format.Type;
4024 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Stride;
4027 buf = vao->BufferBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj;
4031 *param = vao->VertexAttrib[VERT_ATTRIB_NORMAL].Format.Type;
4034 *param = vao->VertexAttrib[VERT_ATTRIB_NORMAL].Stride;
4037 buf = vao->BufferBinding[VERT_ATTRIB_NORMAL].BufferObj;
4041 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Format.Size;
4044 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Format.Type;
4047 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Stride;
4050 buf = vao->BufferBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj;
4054 *param = vao->VertexAttrib[VERT_ATTRIB_FOG].Format.Type;
4057 *param = vao->VertexAttrib[VERT_ATTRIB_FOG].Stride;
4060 buf = vao->BufferBinding[VERT_ATTRIB_FOG].BufferObj;
4064 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Format.Size;
4067 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Format.Type;
4070 *param = vao->VertexAttrib[VERT_ATTRIB_COLOR1].Stride;
4073 buf = vao->BufferBinding[VERT_ATTRIB_COLOR1].BufferObj;
4079 *param = !!(vao->Enabled & VERT_BIT_POS);
4082 *param = !!(vao->Enabled & VERT_BIT_COLOR0);
4085 *param = !!(vao->Enabled & VERT_BIT_EDGEFLAG);
4088 *param = !!(vao->Enabled & VERT_BIT_COLOR_INDEX);
4091 *param = !!(vao->Enabled & VERT_BIT_NORMAL);
4094 *param = !!(vao->Enabled & VERT_BIT_TEX(ctx->Array.ActiveTexture));
4097 *param = !!(vao->Enabled & VERT_BIT_FOG);
4100 *param = !!(vao->Enabled & VERT_BIT_COLOR1);
4112 _get_vao_pointerv(pname, vao, &ptr, "glGetVertexArrayIntegervEXT");
4125 struct gl_vertex_array_object* vao;
4127 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4129 if (!vao)
4154 _get_vao_pointerv(pname, vao, param, "glGetVertexArrayPointervEXT");
4161 struct gl_vertex_array_object* vao;
4164 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4166 if (!vao)
4182 *param = !!(vao->Enabled & VERT_BIT_TEX(index));
4185 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Format.Size;
4188 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Format.Type;
4191 *param = vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Stride;
4194 buf = vao->BufferBinding[VERT_ATTRIB_TEX(index)].BufferObj;
4198 *param = get_vertex_array_attrib(ctx, vao, index, pname, "glGetVertexArrayIntegeri_vEXT");
4206 struct gl_vertex_array_object* vao;
4208 vao = _mesa_lookup_vao_err(ctx, vaobj, true,
4210 if (!vao)
4226 *param = (GLvoid *) vao->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Ptr;
4229 *param = (GLvoid *) vao->VertexAttrib[VERT_ATTRIB_TEX(index)].Ptr;