Home | History | Annotate | Download | only in vbo

Lines Matching refs:vtx

45    GLuint count = exec->vtx.vert_count;
51 exec->vtx.prim_count,
52 exec->vtx.vertex_size);
54 for (i = 0 ; i < exec->vtx.prim_count ; i++) {
55 struct _mesa_prim *prim = &exec->vtx.prim[i];
79 struct _mesa_prim *last_prim = &exec->vtx.prim[exec->vtx.prim_count - 1];
82 const GLuint sz = exec->vtx.vertex_size;
83 fi_type *dst = exec->vtx.copied.buffer;
84 const fi_type *src = exec->vtx.buffer_map + last_prim->start * sz;
177 struct gl_vertex_array *arrays = exec->vtx.arrays;
189 exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
192 assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
193 exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
200 exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
203 assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
204 exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
219 exec->vtx.inputs[VERT_ATTRIB_GENERIC0] = exec->vtx.inputs[0];
220 exec->vtx.attrsz[VERT_ATTRIB_GENERIC0] = exec->vtx.attrsz[0];
221 exec->vtx.attrtype[VERT_ATTRIB_GENERIC0] = exec->vtx.attrtype[0];
222 exec->vtx.attrptr[VERT_ATTRIB_GENERIC0] = exec->vtx.attrptr[0];
223 exec->vtx.attrsz[0] = 0;
233 if (exec->vtx.attrsz[src]) {
234 GLsizeiptr offset = (GLbyte *)exec->vtx.attrptr[src] -
235 (GLbyte *)exec->vtx.vertex;
238 assert(attr < ARRAY_SIZE(exec->vtx.inputs));
239 assert(attr < ARRAY_SIZE(exec->vtx.arrays)); /* arrays[] */
240 exec->vtx.inputs[attr] = &arrays[attr];
242 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
244 assert(exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Pointer);
247 exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Offset + offset;
251 arrays[attr].Ptr = (GLubyte *)exec->vtx.buffer_map + offset;
253 arrays[attr].Size = exec->vtx.attrsz[src];
254 arrays[attr].StrideB = exec->vtx.vertex_size * sizeof(GLfloat);
255 arrays[attr].Type = exec->vtx.attrtype[src];
257 vbo_attrtype_to_integer_flag(exec->vtx.attrtype[src]);
262 exec->vtx.bufferobj);
269 * Restore the original setting of the vtx.* variables.
274 exec->vtx.attrsz[0] = exec->vtx.attrsz[VERT_ATTRIB_GENERIC0];
275 exec->vtx.attrsz[VERT_ATTRIB_GENERIC0] = 0;
289 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
293 GLintptr offset = exec->vtx.buffer_used -
294 exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Offset;
295 GLsizeiptr length = (exec->vtx.buffer_ptr - exec->vtx.buffer_map) *
300 exec->vtx.bufferobj,
304 exec->vtx.buffer_used += (exec->vtx.buffer_ptr -
305 exec->vtx.buffer_map) * sizeof(float);
307 assert(exec->vtx.buffer_used <= VBO_VERT_BUFFER_SIZE);
308 assert(exec->vtx.buffer_ptr != NULL);
310 ctx->Driver.UnmapBuffer(ctx, exec->vtx.bufferobj, MAP_INTERNAL);
311 exec->vtx.buffer_map = NULL;
312 exec->vtx.buffer_ptr = NULL;
313 exec->vtx.max_vert = 0;
332 if (!_mesa_is_bufferobj(exec->vtx.bufferobj))
335 assert(!exec->vtx.buffer_map);
336 assert(!exec->vtx.buffer_ptr);
338 if (VBO_VERT_BUFFER_SIZE > exec->vtx.buffer_used + 1024) {
340 if (exec->vtx.bufferobj->Size > 0) {
341 exec->vtx.buffer_map =
343 exec->vtx.buffer_used,
345 exec->vtx.buffer_used),
347 exec->vtx.bufferobj,
349 exec->vtx.buffer_ptr = exec->vtx.buffer_map;
352 exec->vtx.buffer_ptr = exec->vtx.buffer_map = NULL;
356 if (!exec->vtx.buffer_map) {
358 exec->vtx.buffer_used = 0;
366 exec->vtx.bufferobj)) {
368 exec->vtx.buffer_map =
372 exec->vtx.bufferobj,
377 exec->vtx.buffer_map = NULL;
381 exec->vtx.buffer_ptr = exec->vtx.buffer_map;
383 if (!exec->vtx.buffer_map) {
398 printf("map %d..\n", exec->vtx.buffer_used);
413 if (exec->vtx.prim_count &&
414 exec->vtx.vert_count) {
416 exec->vtx.copied.nr = vbo_copy_vertices( exec );
418 if (exec->vtx.copied.nr != exec->vtx.vert_count) {
429 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
434 printf("%s %d %d\n", __func__, exec->vtx.prim_count,
435 exec->vtx.vert_count);
438 exec->vtx.prim,
439 exec->vtx.prim_count,
443 exec->vtx.vert_count - 1,
448 if (_mesa_is_bufferobj(exec->vtx.bufferobj) && !keepUnmapped) {
457 _mesa_is_bufferobj(exec->vtx.bufferobj) &&
458 exec->vtx.buffer_map) {
462 if (keepUnmapped || exec->vtx.vertex_size == 0)
463 exec->vtx.max_vert = 0;
465 exec->vtx.max_vert = vbo_compute_max_verts(exec);
467 exec->vtx.buffer_ptr = exec->vtx.buffer_map;
468 exec->vtx.prim_count = 0;
469 exec->vtx.vert_count = 0;