From dfdd037ed3694b6e7bd15bc53509d9a9f89ea843 Mon Sep 17 00:00:00 2001 From: Shinovon Date: Tue, 12 May 2026 08:55:18 +0500 Subject: [PATCH] Fixes --- src/core/config.h | 2 + src/rw/TexRead.cpp | 97 ++++++++++++++-------------- vendor/librw/src/gl/rwgl3.h | 2 +- vendor/librw/src/gles1/gl1raster.cpp | 21 +++--- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/core/config.h b/src/core/config.h index 26bec20..9771ebe 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -1,9 +1,11 @@ #pragma once +#ifdef _DEBUG #define LOGS #ifdef __SYMBIAN32__ #define LOGS_RDEBUG #endif +#endif #ifdef AUDIO_OAL #undef AUDIO_OAL diff --git a/src/rw/TexRead.cpp b/src/rw/TexRead.cpp index 87e2d64..146140b 100644 --- a/src/rw/TexRead.cpp +++ b/src/rw/TexRead.cpp @@ -95,67 +95,69 @@ static int clamp(int size, int targetSize) static void halveTexture(RwTexture *texture){ if(texture == nil) - return; + return; + debug("halving %s", texture->name); - RwRaster *oldRaster = RwTextureGetRaster(texture); - if(oldRaster == nil) - return; + RwRaster *oldRaster = RwTextureGetRaster(texture); + if(oldRaster == nil) + return; - int oldWidth = RwRasterGetWidth(oldRaster); - int oldHeight = RwRasterGetHeight(oldRaster); + int oldWidth = RwRasterGetWidth(oldRaster); + int oldHeight = RwRasterGetHeight(oldRaster); - // dividir a la mitad, mínimo 16x16 - int newWidth = oldWidth > 16 ? oldWidth / 2 : oldWidth; - int newHeight = oldHeight > 16 ? oldHeight / 2 : oldHeight; + // dividir a la mitad, mínimo 16x16 + int newWidth = oldWidth > 16 ? oldWidth / 2 : oldWidth; + int newHeight = oldHeight > 16 ? oldHeight / 2 : oldHeight; - // si ya es suficientemente chica, no hacer nada - if(newWidth == oldWidth && newHeight == oldHeight) - return; + // si ya es suficientemente chica, no hacer nada + if(newWidth == oldWidth && newHeight == oldHeight) + return; - // toImage() funciona porque el backingStore está populado - RwImage *image = oldRaster->toImage(); - if(image == nil){ - debug("downscaleTexture: toImage FAILED for %dx%d", oldWidth, oldHeight); - return; - } + // toImage() funciona porque el backingStore está populado + RwImage *image = oldRaster->toImage(); + if(image == nil){ + debug("downscaleTexture: toImage FAILED for %dx%d", oldWidth, oldHeight); + return; + } - RwImage *resized = resizeImage(image, newWidth, newHeight); - RwImageDestroy(image); - if(resized == nil){ - debug("downscaleTexture: resizeImage FAILED"); - return; - } + RwImage *resized = resizeImage(image, newWidth, newHeight); + RwImageDestroy(image); + if(resized == nil){ + debug("downscaleTexture: resizeImage FAILED"); + return; + } - // crear nuevo raster en formato compatible con GLES1 - int32 w, h, d, f; - rw::Raster::imageFindRasterFormat(resized, rw::Raster::TEXTURE, &w, &h, &d, &f); + // crear nuevo raster en formato compatible con GLES1 + int32 w, h, d, f; + rw::Raster::imageFindRasterFormat(resized, rw::Raster::TEXTURE, &w, &h, &d, &f); #ifdef RW_GLES1 - RwRaster *newRaster = rw::Raster::create(w, h, d, f | rw::Raster::TEXTURE, rw::PLATFORM_GLES1); + RwRaster *newRaster = rw::Raster::create(w, h, d, f | rw::Raster::TEXTURE, rw::PLATFORM_GLES1); #else - RwRaster *newRaster = rw::Raster::create(w, h, d, f | rw::Raster::TEXTURE, rw::PLATFORM_GL3); + RwRaster *newRaster = rw::Raster::create(w, h, d, f | rw::Raster::TEXTURE, rw::PLATFORM_GL3); #endif - if(newRaster == nil){ - debug("downscaleTexture: raster create FAILED"); - RwImageDestroy(resized); - return; - } - - if(newRaster->setFromImage(resized) == nil){ - debug("downscaleTexture: setFromImage FAILED"); - RwRasterDestroy(newRaster); - RwImageDestroy(resized); - return; - } - + if(newRaster == nil){ + debug("downscaleTexture: raster create FAILED"); RwImageDestroy(resized); - RwTextureSetRaster(texture, newRaster); - RwRasterDestroy(oldRaster); + return; + } + + if(newRaster->setFromImage(resized) == nil){ + debug("downscaleTexture: setFromImage FAILED"); + RwRasterDestroy(newRaster); + RwImageDestroy(resized); + return; + } + + RwImageDestroy(resized); + RwTextureSetRaster(texture, newRaster); + RwRasterDestroy(oldRaster); } static void downscaleTexture(RwTexture *texture) { RwRaster *oldRaster = RwTextureGetRaster(texture); if (oldRaster == nil) return; + debug("downscaling %s", texture->name); extern bool moreVram; int targetSize = moreVram ? 64 : 32; @@ -211,7 +213,6 @@ RwTextureGtaStreamRead(RwStream *stream) #ifdef __SYMBIAN32__ else if (gGameState != GS_PLAYING_GAME || FrontEndMenuManager.m_bMenuActive) { if (tex != nil && tex->raster != nil && (RwRasterGetWidth(tex->raster) > 128 || RwRasterGetHeight(tex->raster) > 128)) { -// debug("downscaling %s", tex->name); halveTexture(tex); } } @@ -533,7 +534,7 @@ CreateTxdImageForVideoCard() // so let's hope that is the case for all rw::gl3::needToReadBackTextures = true; #elif defined RW_GLES1 - rw::gl1::needToReadBackTextures = true; + rw::gles1::needToReadBackTextures = true; #endif #ifdef DISABLE_VSYNC_ON_TEXTURE_CONVERSION @@ -585,7 +586,7 @@ CreateTxdImageForVideoCard() #ifdef RW_GL3 rw::gl3::needToReadBackTextures = false; #elif defined RW_GLES1 - rw::gl1::needToReadBackTextures = false; + rw::gles1::needToReadBackTextures = false; #endif return false; } @@ -622,7 +623,7 @@ CreateTxdImageForVideoCard() #ifdef RW_GL3 rw::gl3::needToReadBackTextures = false; #elif defined RW_GLES1 - rw::gl1::needToReadBackTextures = false; + rw::gles1::needToReadBackTextures = false; #endif if (!pDir->WriteDirFile("models\\txd.dir")) { diff --git a/vendor/librw/src/gl/rwgl3.h b/vendor/librw/src/gl/rwgl3.h index f5b966a..4a5b8a2 100644 --- a/vendor/librw/src/gl/rwgl3.h +++ b/vendor/librw/src/gl/rwgl3.h @@ -18,7 +18,7 @@ #endif #endif -#if 0 +#ifdef _DEBUG extern void re3_debug(const char *format, ...); extern void re3_trace(const char *filename, unsigned int lineno, const char *func, const char *format, ...); #define CHECK_GL_ERROR(trace) do { \ diff --git a/vendor/librw/src/gles1/gl1raster.cpp b/vendor/librw/src/gles1/gl1raster.cpp index e258225..8e7a0fd 100644 --- a/vendor/librw/src/gles1/gl1raster.cpp +++ b/vendor/librw/src/gles1/gl1raster.cpp @@ -395,11 +395,8 @@ rasterLock(Raster *raster, int32 level, int32 lockMode) px = (uint8*)rwMalloc(allocSz, MEMDUR_EVENT | ID_DRIVER); assert(raster->pixels == nil); raster->pixels = px; -#ifdef __SYMBIAN32__ + memset(px, 0, allocSz); -#else - glReadBuffer(GL_BACK); -#endif glReadPixels(0, 0, raster->width, raster->height, GL_RGB, GL_UNSIGNED_BYTE, px); raster->privateFlags = lockMode; @@ -501,11 +498,11 @@ void rasterUnlock(Raster *raster, int32 level){ rwFree(raster->pixels); raster->pixels = nil; #endif - raster->width = raster->originalWidth; - raster->height = raster->originalHeight; - raster->stride = raster->originalStride; - raster->pixels = raster->originalPixels; - raster->privateFlags = 0; + raster->width = raster->originalWidth; + raster->height = raster->originalHeight; + raster->stride = raster->originalStride; + raster->pixels = raster->originalPixels; + raster->privateFlags = 0; } int32 @@ -751,8 +748,8 @@ void evictRaster(Raster *raster); static void* destroyNativeRaster(void *object, int32 offset, int32) { - Raster *raster = (Raster*)object; - Gl1Raster *natras = PLUGINOFFSET(Gl1Raster, object, offset); + Raster *raster = (Raster*)object; + Gl1Raster *natras = PLUGINOFFSET(Gl1Raster, object, offset); #ifdef RW_GLES1 evictRaster(raster); switch(raster->type){ @@ -786,7 +783,7 @@ destroyNativeRaster(void *object, int32 offset, int32) natras->backingStore = nil; } #endif - return object; + return object; } static void*