intel: Add a function for creating a private window system buffer.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Eric Anholt 2012-07-04 10:52:31 -07:00 committed by Chad Versace
parent bf484024b9
commit 433ff3e16e
2 changed files with 20 additions and 2 deletions

View File

@ -228,8 +228,6 @@ intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer
struct intel_renderbuffer *irb = intel_renderbuffer(rb);
rb->NumSamples = quantize_num_samples(intel, rb->NumSamples);
ASSERT(rb->Name != 0);
switch (internalFormat) {
default:
/* Use the same format-choice logic as for textures.
@ -427,6 +425,23 @@ intel_create_renderbuffer(gl_format format)
return irb;
}
/**
* Private window-system buffers (as opposed to ones shared with the display
* server created with intel_create_renderbuffer()) are most similar in their
* handling to user-created renderbuffers, but they have a resize handler that
* may be called at intel_update_renderbuffers() time.
*/
struct intel_renderbuffer *
intel_create_private_renderbuffer(gl_format format)
{
struct intel_renderbuffer *irb;
irb = intel_create_renderbuffer(format);
irb->Base.Base.AllocStorage = intel_alloc_renderbuffer_storage;
return irb;
}
/**
* Create a new renderbuffer object.
* Typically called via glBindRenderbufferEXT().

View File

@ -136,6 +136,9 @@ intel_framebuffer_has_hiz(struct gl_framebuffer *fb);
extern struct intel_renderbuffer *
intel_create_renderbuffer(gl_format format);
struct intel_renderbuffer *
intel_create_private_renderbuffer(gl_format format);
struct gl_renderbuffer*
intel_create_wrapped_renderbuffer(struct gl_context * ctx,
int width, int height,