Lines Matching defs:obj
63 struct gl_transform_feedback_object *obj = data;
64 if (obj->Active && obj->program == callback_data->prog)
95 struct gl_transform_feedback_object *obj;
97 obj = CALLOC_STRUCT(gl_transform_feedback_object);
98 if (!obj)
101 obj->Name = name;
102 obj->RefCount = 1;
103 obj->EverBound = GL_FALSE;
105 return obj;
110 struct gl_transform_feedback_object *obj)
114 for (i = 0; i < ARRAY_SIZE(obj->draw_count); i++)
115 pipe_so_target_reference(&obj->draw_count[i], NULL);
118 for (i = 0; i < obj->num_targets; i++) {
119 pipe_so_target_reference(&obj->targets[i], NULL);
122 for (unsigned i = 0; i < ARRAY_SIZE(obj->Buffers); i++) {
123 _mesa_reference_buffer_object(ctx, &obj->Buffers[i], NULL);
126 free(obj->Label);
127 FREE(obj);
135 struct gl_transform_feedback_object *obj)
137 if (*ptr == obj)
157 if (obj) {
158 assert(obj->RefCount > 0);
161 obj->RefCount++;
162 obj->EverBound = GL_TRUE;
163 *ptr = obj;
200 struct gl_transform_feedback_object *obj =
203 delete_transform_feedback(ctx, obj);
230 * Fill in the correct Size value for each buffer in \c obj.
248 struct gl_transform_feedback_object *obj)
252 GLintptr offset = obj->Offset[i];
254 = obj->Buffers[i] == NULL ? 0 : obj->Buffers[i]->Size;
258 if (obj->RequestedSize[i] == 0) {
269 computed_size = MIN2(available_space, obj->RequestedSize[i]);
273 obj->Size[i] = computed_size & ~0x3;
284 const struct gl_transform_feedback_object *obj,
299 max_for_this_buffer = obj->Size[i] / (4 * stride);
335 struct gl_transform_feedback_object *obj;
341 obj = ctx->TransformFeedback.CurrentObject;
382 if (obj->Active) {
390 if (obj->BufferNames[i] == 0) {
402 obj->Active = GL_TRUE;
405 compute_transform_feedback_buffer_sizes(obj);
415 = _mesa_compute_max_transform_feedback_vertices(ctx, obj, info);
416 obj->GlesRemainingPrims = max_vertices / vertices_per_prim;
419 if (obj->program != source) {
420 _mesa_reference_program_(ctx, &obj->program, source);
421 obj->program = source;
428 max_num_targets = MIN2(ARRAY_SIZE(obj->Buffers),
429 ARRAY_SIZE(obj->targets));
433 struct gl_buffer_object *bo = obj->Buffers[i];
436 unsigned stream = obj->program->sh.LinkedTransformFeedback->
440 if (!obj->targets[i] ||
441 obj->targets[i] == obj->draw_count[stream] ||
442 obj->targets[i]->buffer != bo->buffer ||
443 obj->targets[i]->buffer_offset != obj->Offset[i] ||
444 obj->targets[i]->buffer_size != obj->Size[i]) {
448 obj->Offset[i],
449 obj->Size[i]);
451 pipe_so_target_reference(&obj->targets[i], NULL);
452 obj->targets[i] = so_target;
455 obj->num_targets = i+1;
457 pipe_so_target_reference(&obj->targets[i], NULL);
462 cso_set_stream_outputs(ctx->cso_context, obj->num_targets,
463 obj->targets, offsets);
486 struct gl_transform_feedback_object *obj)
499 for (i = 0; i < ARRAY_SIZE(obj->draw_count); i++)
500 pipe_so_target_reference(&obj->draw_count[i], NULL);
502 for (i = 0; i < ARRAY_SIZE(obj->targets); i++) {
503 unsigned stream = obj->program->sh.LinkedTransformFeedback->
507 if (!obj->targets[i] || obj->draw_count[stream])
510 pipe_so_target_reference(&obj->draw_count[stream], obj->targets[i]);
513 _mesa_reference_program_(ctx, &obj->program, NULL);
532 struct gl_transform_feedback_object *obj;
535 obj = ctx->TransformFeedback.CurrentObject;
537 if (!obj->Active) {
543 end_transform_feedback(ctx, obj);
552 struct gl_transform_feedback_object *obj,
571 _mesa_set_transform_feedback_binding(ctx, obj, index, bufObj, offset, size);
583 struct gl_transform_feedback_object *obj,
594 if (obj->Active) {
663 struct gl_transform_feedback_object *obj,
668 if (obj->Active) {
682 bind_buffer_range(ctx, obj, index, bufObj, 0, 0, dsa);
694 struct gl_transform_feedback_object *obj;
696 obj = _mesa_lookup_transform_feedback_object(ctx, xfb);
697 if (!obj) {
702 return obj;
739 struct gl_transform_feedback_object *obj;
742 obj = lookup_transform_feedback_object_err(ctx, xfb,
744 if (!obj) {
756 _mesa_bind_buffer_base_transform_feedback(ctx, obj, index, bufObj, true);
764 struct gl_transform_feedback_object *obj;
767 obj = lookup_transform_feedback_object_err(ctx, xfb,
769 if (!obj) {
781 if (!_mesa_validate_buffer_range_xfb(ctx, obj, index, bufObj, offset,
786 _mesa_set_transform_feedback_binding(ctx, obj, index, bufObj, offset,
797 struct gl_transform_feedback_object *obj, GLuint index,
813 _mesa_bind_buffer_range_xfb(ctx, obj, index, bufObj, offset, 0);
831 struct gl_transform_feedback_object *obj;
839 obj = ctx->TransformFeedback.CurrentObject;
841 if (obj->Active) {
860 bind_buffer_offset(ctx, obj, index, buffer, offset, false);
1074 struct gl_transform_feedback_object *obj
1076 if (!obj) {
1081 obj, true);
1084 obj->EverBound = GL_TRUE;
1135 struct gl_transform_feedback_object *obj;
1143 obj = _mesa_lookup_transform_feedback_object(ctx, name);
1144 if (obj == NULL)
1147 return obj->EverBound;
1158 struct gl_transform_feedback_object *obj;
1160 obj = _mesa_lookup_transform_feedback_object(ctx, name);
1161 if (!no_error && !obj) {
1168 obj);
1220 struct gl_transform_feedback_object *obj
1222 if (obj) {
1223 if (obj->Active) {
1231 if (obj == ctx->TransformFeedback.CurrentObject) {
1236 reference_transform_feedback_object(&obj, NULL);
1249 struct gl_transform_feedback_object *obj)
1255 obj->Paused = GL_TRUE;
1271 struct gl_transform_feedback_object *obj;
1274 obj = ctx->TransformFeedback.CurrentObject;
1282 pause_transform_feedback(ctx, obj);
1292 struct gl_transform_feedback_object *obj)
1296 obj->Paused = GL_FALSE;
1304 cso_set_stream_outputs(ctx->cso_context, obj->num_targets,
1305 obj->targets, offsets);
1321 struct gl_transform_feedback_object *obj;
1324 obj = ctx->TransformFeedback.CurrentObject;
1326 if (!obj->Active || !obj->Paused) {
1337 if (obj->program != get_xfb_source(ctx)) {
1343 resume_transform_feedback(ctx, obj);
1349 struct gl_transform_feedback_object *obj;
1352 obj = lookup_transform_feedback_object_err(ctx, xfb,
1354 if (!obj) {
1360 *param = obj->Paused;
1363 *param = obj->Active;
1375 struct gl_transform_feedback_object *obj;
1378 obj = lookup_transform_feedback_object_err(ctx, xfb,
1380 if (!obj) {
1392 *param = obj->BufferNames[index];
1404 struct gl_transform_feedback_object *obj;
1407 obj = lookup_transform_feedback_object_err(ctx, xfb,
1409 if (!obj) {
1432 if (obj->RequestedSize[index] == 0 &&
1439 compute_transform_feedback_buffer_sizes(obj);
1442 assert(obj->RequestedSize[index] > 0);
1443 *param = obj->Offset[index];
1446 assert(obj->RequestedSize[index] > 0);
1447 *param = obj->Size[index];