pipe_resource_reference(&stImage->pt, NULL);
}
- _mesa_align_free(stImage->TexData);
- stImage->TexData = NULL;
-
free(stImage->transfer);
stImage->transfer = NULL;
stImage->num_transfers = 0;
DBG("%s\n", __FUNCTION__);
- assert(!stImage->TexData);
assert(!stImage->pt); /* xxx this might be wrong */
/* Look if the parent texture object has space for this image */
pipe_resource_reference(&stImage->pt, NULL);
}
- else if (stImage->TexData) {
- /* Copy from malloc'd memory */
- /* XXX this should be re-examined/tested with a compressed format */
- GLuint blockSize = util_format_get_blocksize(stObj->pt->format);
- GLuint srcRowStride = stImage->base.Width * blockSize;
- GLuint srcSliceStride = stImage->base.Height * srcRowStride;
- st_texture_image_data(st,
- stObj->pt,
- stImage->base.Face,
- dstLevel,
- stImage->TexData,
- srcRowStride,
- srcSliceStride);
- _mesa_align_free(stImage->TexData);
- stImage->TexData = NULL;
- }
-
pipe_resource_reference(&stImage->pt, stObj->pt);
}
{
struct gl_texture_image base;
- /** Used to store texture data that doesn't fit in the parent
- * object's mipmap buffer.
- */
- GLubyte *TexData;
-
/* If stImage->pt != NULL, image data is stored here.
- * Else if stImage->TexData != NULL, image is stored there.
* Else there is no image data.
*/
struct pipe_resource *pt;