intel: Refactor the wrapping of textures with renderbuffers
Before this commit, the renderbuffer's region was updated in intel_renderbuffer_texture(). This commit moves the update into intel_update_wrapper(), which is a more logical location for updates. This is in preparation for the next commit, which allocates and updates the texture's hiz region in intel_update_wrapper(). Having the two region updates located in the same function makes good form. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Chad Versace <chad@chad-versace.us>
This commit is contained in:
@@ -420,6 +420,8 @@ static GLboolean
|
|||||||
intel_update_wrapper(struct gl_context *ctx, struct intel_renderbuffer *irb,
|
intel_update_wrapper(struct gl_context *ctx, struct intel_renderbuffer *irb,
|
||||||
struct gl_texture_image *texImage)
|
struct gl_texture_image *texImage)
|
||||||
{
|
{
|
||||||
|
struct intel_texture_image *intel_image = intel_texture_image(texImage);
|
||||||
|
|
||||||
if (!intel_span_supports_format(texImage->TexFormat)) {
|
if (!intel_span_supports_format(texImage->TexFormat)) {
|
||||||
DBG("Render to texture BAD FORMAT %s\n",
|
DBG("Render to texture BAD FORMAT %s\n",
|
||||||
_mesa_get_format_name(texImage->TexFormat));
|
_mesa_get_format_name(texImage->TexFormat));
|
||||||
@@ -438,6 +440,12 @@ intel_update_wrapper(struct gl_context *ctx, struct intel_renderbuffer *irb,
|
|||||||
irb->Base.Delete = intel_delete_renderbuffer;
|
irb->Base.Delete = intel_delete_renderbuffer;
|
||||||
irb->Base.AllocStorage = intel_nop_alloc_storage;
|
irb->Base.AllocStorage = intel_nop_alloc_storage;
|
||||||
|
|
||||||
|
/* Point the renderbuffer's region to the texture's region. */
|
||||||
|
if (irb->region != intel_image->mt->region) {
|
||||||
|
intel_region_release(&irb->region);
|
||||||
|
intel_region_reference(&irb->region, intel_image->mt->region);
|
||||||
|
}
|
||||||
|
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -543,13 +551,6 @@ intel_render_texture(struct gl_context * ctx,
|
|||||||
att->Texture->Name, newImage->Width, newImage->Height,
|
att->Texture->Name, newImage->Width, newImage->Height,
|
||||||
irb->Base.RefCount);
|
irb->Base.RefCount);
|
||||||
|
|
||||||
/* point the renderbufer's region to the texture image region */
|
|
||||||
if (irb->region != intel_image->mt->region) {
|
|
||||||
if (irb->region)
|
|
||||||
intel_region_release(&irb->region);
|
|
||||||
intel_region_reference(&irb->region, intel_image->mt->region);
|
|
||||||
}
|
|
||||||
|
|
||||||
intel_set_draw_offset_for_image(intel_image, att->Zoffset);
|
intel_set_draw_offset_for_image(intel_image, att->Zoffset);
|
||||||
intel_image->used_as_render_target = GL_TRUE;
|
intel_image->used_as_render_target = GL_TRUE;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user