diff options
author | Brian Paul <[email protected]> | 2012-08-24 08:31:37 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2012-08-24 14:08:57 -0600 |
commit | d47a6ada9ca9670c60fc141fabadf40c63031c08 (patch) | |
tree | f39bc5068fec91606b1e03c7c602a864c1e89762 /src/mesa/drivers/dri | |
parent | ba7218061b6a6c09d5d20f12de6267673276e094 (diff) |
mesa: add texture target field to ChooseTextureFormat() driver hook
This will let us choose the actual hardware format depending on the
type of texture.
v2: fixup radeon, nouveau, intel and swrast drivers too
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.c | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nouveau_texture.c | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_texture.c | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_texture.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/swrast/swrast.c | 3 |
5 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index 3a610c244b1..ad78e0a29d8 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -237,7 +237,8 @@ intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer * except they're less useful because you can't texture with * them. */ - rb->Format = intel->ctx.Driver.ChooseTextureFormat(ctx, internalFormat, + rb->Format = intel->ctx.Driver.ChooseTextureFormat(ctx, GL_TEXTURE_2D, + internalFormat, GL_NONE, GL_NONE); break; case GL_STENCIL_INDEX: diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.c b/src/mesa/drivers/dri/nouveau/nouveau_texture.c index 0e42758040f..37f7577b3d7 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_texture.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.c @@ -232,7 +232,8 @@ nouveau_unmap_texture_image(struct gl_context *ctx, struct gl_texture_image *ti, } static gl_format -nouveau_choose_tex_format(struct gl_context *ctx, GLint internalFormat, +nouveau_choose_tex_format(struct gl_context *ctx, GLenum target, + GLint internalFormat, GLenum srcFormat, GLenum srcType) { switch (internalFormat) { diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index 11b825d9dab..e405f9746f1 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -311,6 +311,7 @@ static gl_format radeonChoose8888TexFormat(radeonContextPtr rmesa, } gl_format radeonChooseTextureFormat_mesa(struct gl_context * ctx, + GLenum target, GLint internalFormat, GLenum format, GLenum type) diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.h b/src/mesa/drivers/dri/radeon/radeon_texture.h index abcce54806d..88aace840bb 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.h +++ b/src/mesa/drivers/dri/radeon/radeon_texture.h @@ -58,6 +58,7 @@ void radeon_swrast_map_texture_images(struct gl_context *ctx, struct gl_texture_ void radeon_swrast_unmap_texture_images(struct gl_context *ctx, struct gl_texture_object *texObj); gl_format radeonChooseTextureFormat_mesa(struct gl_context * ctx, + GLenum target, GLint internalFormat, GLenum format, GLenum type); diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 7773fd9050a..9aed2f6e6c5 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -632,13 +632,14 @@ viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) } static gl_format swrastChooseTextureFormat(struct gl_context * ctx, + GLenum target, GLint internalFormat, GLenum format, GLenum type) { if (internalFormat == GL_RGB) return MESA_FORMAT_XRGB8888; - return _mesa_choose_tex_format(ctx, internalFormat, format, type); + return _mesa_choose_tex_format(ctx, target, internalFormat, format, type); } static void |