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/state_tracker | |
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/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_format.c | 4 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_format.h | 3 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_manager.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index 962b092507b..404b0410637 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -1631,8 +1631,8 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat, * Called via ctx->Driver.ChooseTextureFormat(). */ gl_format -st_ChooseTextureFormat(struct gl_context *ctx, GLint internalFormat, - GLenum format, GLenum type) +st_ChooseTextureFormat(struct gl_context *ctx, GLenum target, + GLint internalFormat, GLenum format, GLenum type) { boolean want_renderable = internalFormat == 3 || internalFormat == 4 || diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h index 7cf92eb41e6..2eef2c0d438 100644 --- a/src/mesa/state_tracker/st_format.h +++ b/src/mesa/state_tracker/st_format.h @@ -63,7 +63,8 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type, GLboolean renderable); extern gl_format -st_ChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, +st_ChooseTextureFormat(struct gl_context * ctx, GLenum target, + GLint internalFormat, GLenum format, GLenum type); diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index c050048aa5d..df73d0e1bf1 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -533,7 +533,7 @@ st_context_teximage(struct st_context_iface *stctxi, else internalFormat = GL_RGB; - texFormat = st_ChooseTextureFormat(ctx, internalFormat, + texFormat = st_ChooseTextureFormat(ctx, target, internalFormat, GL_BGRA, GL_UNSIGNED_BYTE); _mesa_init_teximage_fields(ctx, texImage, |