mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
st/mesa: use _mesa_texstore()
This commit is contained in:
parent
49263e0856
commit
6480210b89
2 changed files with 47 additions and 60 deletions
|
|
@ -392,8 +392,6 @@ make_texture(struct st_context *st,
|
|||
GLboolean success;
|
||||
GLubyte *dest;
|
||||
const GLbitfield imageTransferStateSave = ctx->_ImageTransferState;
|
||||
const StoreTexImageFunc storeImage =
|
||||
_mesa_get_texstore_func(mformat->MesaFormat);
|
||||
|
||||
/* we'll do pixel transfer in a fragment shader */
|
||||
ctx->_ImageTransferState = 0x0;
|
||||
|
|
@ -410,17 +408,17 @@ make_texture(struct st_context *st,
|
|||
* Note that the image is actually going to be upside down in
|
||||
* the texture. We deal with that with texcoords.
|
||||
*/
|
||||
success = storeImage(ctx, 2, /* dims */
|
||||
baseFormat, /* baseInternalFormat */
|
||||
mformat, /* gl_texture_format */
|
||||
dest, /* dest */
|
||||
0, 0, 0, /* dstX/Y/Zoffset */
|
||||
transfer->stride, /* dstRowStride, bytes */
|
||||
&dstImageOffsets, /* dstImageOffsets */
|
||||
width, height, 1, /* size */
|
||||
format, type, /* src format/type */
|
||||
pixels, /* data source */
|
||||
unpack);
|
||||
success = _mesa_texstore(ctx, 2, /* dims */
|
||||
baseFormat, /* baseInternalFormat */
|
||||
mformat, /* gl_texture_format */
|
||||
dest, /* dest */
|
||||
0, 0, 0, /* dstX/Y/Zoffset */
|
||||
transfer->stride, /* dstRowStride, bytes */
|
||||
&dstImageOffsets, /* dstImageOffsets */
|
||||
width, height, 1, /* size */
|
||||
format, type, /* src format/type */
|
||||
pixels, /* data source */
|
||||
unpack);
|
||||
|
||||
/* unmap */
|
||||
screen->transfer_unmap(screen, transfer);
|
||||
|
|
|
|||
|
|
@ -417,7 +417,6 @@ compress_with_blit(GLcontext * ctx,
|
|||
struct pipe_surface *dst_surface;
|
||||
struct pipe_transfer *tex_xfer;
|
||||
void *map;
|
||||
StoreTexImageFunc storeImage;
|
||||
|
||||
if (!stImage->pt) {
|
||||
/* XXX: Can this happen? Should we assert? */
|
||||
|
|
@ -464,18 +463,15 @@ compress_with_blit(GLcontext * ctx,
|
|||
0, 0, width, height); /* x, y, w, h */
|
||||
map = screen->transfer_map(screen, tex_xfer);
|
||||
|
||||
storeImage = _mesa_get_texstore_func(mesa_format->MesaFormat);
|
||||
|
||||
|
||||
storeImage(ctx, 2, GL_RGBA, mesa_format,
|
||||
map, /* dest ptr */
|
||||
0, 0, 0, /* dest x/y/z offset */
|
||||
tex_xfer->stride, /* dest row stride (bytes) */
|
||||
dstImageOffsets, /* image offsets (for 3D only) */
|
||||
width, height, 1, /* size */
|
||||
format, type, /* source format/type */
|
||||
pixels, /* source data */
|
||||
unpack); /* source data packing */
|
||||
_mesa_texstore(ctx, 2, GL_RGBA, mesa_format,
|
||||
map, /* dest ptr */
|
||||
0, 0, 0, /* dest x/y/z offset */
|
||||
tex_xfer->stride, /* dest row stride (bytes) */
|
||||
dstImageOffsets, /* image offsets (for 3D only) */
|
||||
width, height, 1, /* size */
|
||||
format, type, /* source format/type */
|
||||
pixels, /* source data */
|
||||
unpack); /* source data packing */
|
||||
|
||||
screen->transfer_unmap(screen, tex_xfer);
|
||||
screen->tex_transfer_destroy(tex_xfer);
|
||||
|
|
@ -737,19 +733,17 @@ st_TexImage(GLcontext * ctx,
|
|||
_mesa_image_image_stride(unpack, width, height, format, type);
|
||||
GLint i;
|
||||
const GLubyte *src = (const GLubyte *) pixels;
|
||||
StoreTexImageFunc storeImage =
|
||||
_mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
|
||||
|
||||
for (i = 0; i < depth; i++) {
|
||||
if (!storeImage(ctx, dims,
|
||||
texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texImage->Data,
|
||||
0, 0, 0, /* dstX/Y/Zoffset */
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
format, type, src, unpack)) {
|
||||
if (!_mesa_texstore(ctx, dims,
|
||||
texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texImage->Data,
|
||||
0, 0, 0, /* dstX/Y/Zoffset */
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
format, type, src, unpack)) {
|
||||
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage");
|
||||
}
|
||||
|
||||
|
|
@ -1056,9 +1050,6 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level,
|
|||
const GLubyte *src;
|
||||
/* init to silence warning only: */
|
||||
enum pipe_transfer_usage transfer_usage = PIPE_TRANSFER_WRITE;
|
||||
StoreTexImageFunc storeImage =
|
||||
_mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
|
||||
|
||||
|
||||
DBG("%s target %s level %d offset %d,%d %dx%d\n", __FUNCTION__,
|
||||
_mesa_lookup_enum_by_nr(target),
|
||||
|
|
@ -1115,14 +1106,14 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level,
|
|||
dstRowStride = stImage->transfer->stride;
|
||||
|
||||
for (i = 0; i < depth; i++) {
|
||||
if (!storeImage(ctx, dims, texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texImage->Data,
|
||||
0, 0, 0,
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
format, type, src, packing)) {
|
||||
if (!_mesa_texstore(ctx, dims, texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texImage->Data,
|
||||
0, 0, 0,
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
format, type, src, packing)) {
|
||||
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexSubImage");
|
||||
}
|
||||
|
||||
|
|
@ -1361,8 +1352,6 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
|
|||
const GLint dstRowStride = stImage->transfer->stride;
|
||||
struct gl_texture_image *texImage = &stImage->base;
|
||||
struct gl_pixelstore_attrib unpack = ctx->DefaultPacking;
|
||||
StoreTexImageFunc storeImage =
|
||||
_mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
|
||||
|
||||
if (st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP) {
|
||||
unpack.Invert = GL_TRUE;
|
||||
|
|
@ -1380,16 +1369,16 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
|
|||
* is actually RGBA but the user created the texture as GL_RGB we
|
||||
* need to fill-in/override the alpha channel with 1.0.
|
||||
*/
|
||||
storeImage(ctx, dims,
|
||||
texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texDest,
|
||||
0, 0, 0,
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
GL_RGBA, GL_FLOAT, tempSrc, /* src */
|
||||
&unpack);
|
||||
_mesa_texstore(ctx, dims,
|
||||
texImage->_BaseFormat,
|
||||
texImage->TexFormat,
|
||||
texDest,
|
||||
0, 0, 0,
|
||||
dstRowStride,
|
||||
texImage->ImageOffsets,
|
||||
width, height, 1,
|
||||
GL_RGBA, GL_FLOAT, tempSrc, /* src */
|
||||
&unpack);
|
||||
}
|
||||
else {
|
||||
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexSubImage");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue