diff options
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.c | 19 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.h | 3 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index b86df6ccba2..f9fdc361de6 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -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. @@ -428,6 +426,23 @@ intel_create_renderbuffer(gl_format format) } /** + * 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(). */ diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h index 758b4a0ec32..e14fe550b0c 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.h +++ b/src/mesa/drivers/dri/intel/intel_fbo.h @@ -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, |