Mipmap fix
This commit is contained in:
parent
19288918f0
commit
b08bbebf12
27
GL/texture.c
27
GL/texture.c
|
@ -1215,12 +1215,15 @@ void _glAllocateSpaceForMipmaps(TextureObject* active) {
|
||||||
GLuint size = active->baseDataSize;
|
GLuint size = active->baseDataSize;
|
||||||
|
|
||||||
/* Copy the data out of the pvr and back to ram */
|
/* Copy the data out of the pvr and back to ram */
|
||||||
GLubyte* temp = (GLubyte*) malloc(size);
|
GLubyte* temp = NULL;
|
||||||
memcpy(temp, active->data, size);
|
if(active->data) {
|
||||||
|
temp = (GLubyte*) malloc(size);
|
||||||
|
memcpy(temp, active->data, size);
|
||||||
|
|
||||||
/* Free the PVR data */
|
/* Free the PVR data */
|
||||||
yalloc_free(YALLOC_BASE, active->data);
|
yalloc_free(YALLOC_BASE, active->data);
|
||||||
active->data = NULL;
|
active->data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Figure out how much room to allocate for mipmaps */
|
/* Figure out how much room to allocate for mipmaps */
|
||||||
GLuint bytes = _glGetMipmapDataSize(active);
|
GLuint bytes = _glGetMipmapDataSize(active);
|
||||||
|
@ -1228,17 +1231,15 @@ void _glAllocateSpaceForMipmaps(TextureObject* active) {
|
||||||
active->data = yalloc_alloc_and_defrag(bytes);
|
active->data = yalloc_alloc_and_defrag(bytes);
|
||||||
|
|
||||||
gl_assert(active->data);
|
gl_assert(active->data);
|
||||||
if(!active->data) {
|
|
||||||
|
if(temp) {
|
||||||
|
/* If there was existing data, then copy it where it should go */
|
||||||
|
memcpy(_glGetMipmapLocation(active, 0), temp, size);
|
||||||
|
|
||||||
|
/* We no longer need this */
|
||||||
free(temp);
|
free(temp);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there was existing data, then copy it where it should go */
|
|
||||||
memcpy(_glGetMipmapLocation(active, 0), temp, size);
|
|
||||||
|
|
||||||
/* We no longer need this */
|
|
||||||
free(temp);
|
|
||||||
|
|
||||||
/* Set the data offset depending on whether or not this is a
|
/* Set the data offset depending on whether or not this is a
|
||||||
* paletted texure */
|
* paletted texure */
|
||||||
active->baseDataOffset = _glGetMipmapDataOffset(active, 0);
|
active->baseDataOffset = _glGetMipmapDataOffset(active, 0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user