Lines Matching defs:drawable

51    struct dri_drawable *drawable =
53 struct dri_screen *screen = dri_screen(drawable->sPriv);
59 drawable->stvis.samples > 1 ? drawable->msaa_textures
60 : drawable->textures;
67 new_mask = (statt_mask & ~drawable->texture_mask);
75 lastStamp = drawable->dPriv->lastStamp;
76 new_stamp = (drawable->texture_stamp != lastStamp);
79 if (new_stamp && drawable->update_drawable_info)
80 drawable->update_drawable_info(drawable);
82 drawable->allocate_textures(ctx, drawable, statts, count);
90 drawable->texture_stamp = lastStamp;
91 drawable->texture_mask = statt_mask;
93 } while (lastStamp != drawable->dPriv->lastStamp);
103 drawable->num_damage_rects,
104 drawable->damage_rects);
123 struct dri_drawable *drawable =
127 return drawable->flush_frontbuffer(ctx, drawable, statt);
138 struct dri_drawable *drawable =
141 if (drawable->flush_swapbuffers)
142 drawable->flush_swapbuffers(ctx, drawable);
156 struct dri_drawable *drawable = NULL;
161 drawable = CALLOC_STRUCT(dri_drawable);
162 if (drawable == NULL)
165 dri_fill_st_visual(&drawable->stvis, screen, visual);
168 drawable->base.visual = &drawable->stvis;
169 drawable->base.flush_front = dri_st_framebuffer_flush_front;
170 drawable->base.validate = dri_st_framebuffer_validate;
171 drawable->base.flush_swapbuffers = dri_st_framebuffer_flush_swapbuffers;
172 drawable->base.st_manager_private = (void *) drawable;
174 drawable->screen = screen;
175 drawable->sPriv = sPriv;
176 drawable->dPriv = dPriv;
178 dPriv->driverPrivate = (void *)drawable;
179 p_atomic_set(&drawable->base.stamp, 1);
180 drawable->base.ID = p_atomic_inc_return(&drifb_ID);
181 drawable->base.state_manager = &screen->base;
185 FREE(drawable);
192 struct dri_drawable *drawable = dri_drawable(dPriv);
193 struct dri_screen *screen = drawable->screen;
198 pipe_resource_reference(&drawable->textures[i], NULL);
200 pipe_resource_reference(&drawable->msaa_textures[i], NULL);
203 &drawable->throttle_fence, NULL);
205 /* Notify the st manager that this drawable is no longer valid */
206 stapi->destroy_drawable(stapi, &drawable->base);
208 FREE(drawable->damage_rects);
209 FREE(drawable);
218 struct dri_drawable *drawable,
225 if (drawable->texture_mask & (1 << statt))
230 if (drawable->texture_mask & (1 << i)) {
236 drawable->texture_stamp = drawable->dPriv->lastStamp - 1;
238 drawable->base.validate(ctx->st, &drawable->base, statts, count, NULL);
250 struct dri_drawable *drawable = dri_drawable(dPriv);
256 dri_drawable_validate_att(ctx, drawable, ST_ATTACHMENT_FRONT_LEFT);
258 /* Use the pipe resource associated with the X drawable */
259 pt = drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
287 drawable->update_tex_buffer(drawable, ctx, pt);
314 dri_drawable_get_format(struct dri_drawable *drawable,
325 * when they get an sRGB drawable. st/mesa receives "drawable->stvis"
329 *format = util_format_linear(drawable->stvis.color_format);
333 *format = drawable->stvis.depth_stencil_format;
393 struct dri_drawable *drawable,
396 struct pipe_resource *src = drawable->textures[att];
397 struct pipe_resource *zsbuf = drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL];
405 struct dri_drawable *drawable;
418 if (args->drawable->stvis.samples > 1 &&
423 args->drawable->textures[ST_ATTACHMENT_BACK_LEFT],
424 args->drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]);
427 args->drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT] &&
428 args->drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]) {
432 /* FRONT_LEFT is resolved in drawable->flush_frontbuffer. */
435 dri_postprocessing(args->ctx, args->drawable, ST_ATTACHMENT_BACK_LEFT);
439 if (args->drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL])
440 pipe->invalidate_resource(pipe, args->drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL]);
441 if (args->drawable->msaa_textures[ST_ATTACHMENT_DEPTH_STENCIL])
442 pipe->invalidate_resource(pipe, args->drawable->msaa_textures[ST_ATTACHMENT_DEPTH_STENCIL]);
447 args->drawable->textures[ST_ATTACHMENT_BACK_LEFT]);
450 pipe->flush_resource(pipe, args->drawable->textures[ST_ATTACHMENT_BACK_LEFT]);
457 * \param drawable the drawable to flush
468 struct dri_drawable *drawable = dri_drawable(dPriv);
482 if (drawable) {
484 if (drawable->flushing)
487 drawable->flushing = true;
494 drawable->textures[ST_ATTACHMENT_BACK_LEFT]) {
502 args.drawable = drawable;
515 drawable &&
519 struct pipe_screen *screen = drawable->screen->base.screen;
525 if (drawable->throttle_fence) {
526 screen->fence_finish(screen, NULL, drawable->throttle_fence, PIPE_TIMEOUT_INFINITE);
527 screen->fence_reference(screen, &drawable->throttle_fence, NULL);
529 drawable->throttle_fence = new_fence;
535 if (drawable) {
536 drawable->flushing = false;
545 drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT];
547 drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT] =
548 drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT];
549 drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT] = tmp;
554 p_atomic_inc(&drawable->base.stamp);