diff --git a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj index 0c7d5bf82..c27b22dcb 100644 --- a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj @@ -1393,12 +1393,6 @@ AB8C6CBE186A950C00E3EC64 /* Image_PassME.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PassME.png; path = images/Image_PassME.png; sourceTree = ""; }; AB8C6E56186CD07E00E3EC64 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; }; AB8FFE491872032B00C10085 /* Image_PaddleController.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PaddleController.png; path = images/Image_PaddleController.png; sourceTree = ""; }; - AB901BDF1420706B00348EEC /* Japanese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Japanese; path = translations/Japanese.lproj/Localizable.strings; sourceTree = ""; }; - AB901BE01420706F00348EEC /* French */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = French; path = translations/French.lproj/Localizable.strings; sourceTree = ""; }; - AB901BE11420707400348EEC /* Italian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Italian; path = translations/Italian.lproj/Localizable.strings; sourceTree = ""; }; - AB901BE21420707800348EEC /* Chinese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = ""; }; - AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = ""; }; - AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = ""; }; AB97C553169646D1002AC11B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; sourceTree = ""; }; ABA0356E169127BB00817C69 /* troubleshootingWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = troubleshootingWindowDelegate.h; sourceTree = ""; }; @@ -4064,12 +4058,6 @@ isa = PBXVariantGroup; children = ( AB00E89114205ECC00DE561F /* English */, - AB901BE01420706F00348EEC /* French */, - AB901BE11420707400348EEC /* Italian */, - AB901BDF1420706B00348EEC /* Japanese */, - AB901BE21420707800348EEC /* Chinese */, - AB901BE31420707D00348EEC /* Norwegian */, - AB901BE41420708200348EEC /* Romanian */, ); name = Localizable.strings; sourceTree = ""; diff --git a/desmume/src/cocoa/OGLDisplayOutput.cpp b/desmume/src/cocoa/OGLDisplayOutput.cpp index 310616376..afefb63cb 100644 --- a/desmume/src/cocoa/OGLDisplayOutput.cpp +++ b/desmume/src/cocoa/OGLDisplayOutput.cpp @@ -3593,9 +3593,9 @@ typedef struct uint8_t w2; } LUTValues; -static LUTValues _LQ2xLUT[256*(2*2)*16]; -static LUTValues _HQ2xLUT[256*(2*2)*16]; -static LUTValues _HQ4xLUT[256*(4*4)*16]; +static LUTValues *_LQ2xLUT = NULL; +static LUTValues *_HQ2xLUT = NULL; +static LUTValues *_HQ4xLUT = NULL; static const GLint filterVtxBuffer[8] = {-1, -1, 1, -1, 1, 1, -1, 1}; static const GLubyte filterElementBuffer[6] = {0, 1, 2, 2, 3, 0}; @@ -3688,22 +3688,17 @@ void (*glBindVertexArrayDESMUME)(GLuint id) = &glBindVertexArray_LegacyAPPLE; void (*glDeleteVertexArraysDESMUME)(GLsizei n, const GLuint *ids) = &glDeleteVertexArrays_LegacyAPPLE; void (*glGenVertexArraysDESMUME)(GLsizei n, GLuint *ids) = &glGenVertexArrays_LegacyAPPLE; -// Turn off inlining for this function so that we don't get hit with extremely long compile times. -static NOINLINE LUTValues PackLUTValues(uint8_t p0, uint8_t p1, uint8_t p2, uint8_t w0, uint8_t w1, uint8_t w2) +static LUTValues PackLUTValues(const uint8_t p0, const uint8_t p1, const uint8_t p2, const uint8_t w0, const uint8_t w1, const uint8_t w2) { - if (w1 == 0 && w2 == 0) - { - w0 = 255; - } - else - { - const uint8_t wR = 256 / (w0 + w1 + w2); - w0 *= wR; - w1 *= wR; - w2 *= wR; - } - - return {p0*31, p1*31, p2*31, w0, w1, w2}; + const uint8_t wR = 256 / (w0 + w1 + w2); + return (LUTValues) { + p0*31, + p1*31, + p2*31, + (w1 == 0 && w2 == 0) ? 255 : w0*wR, + w1*wR, + w2*wR + }; } static void InitHQnxLUTs() @@ -3715,6 +3710,10 @@ static void InitHQnxLUTs() return; } + _LQ2xLUT = (LUTValues *)malloc(256*(2*2)*16 * sizeof(LUTValues)); + _HQ2xLUT = (LUTValues *)malloc(256*(2*2)*16 * sizeof(LUTValues)); + _HQ4xLUT = (LUTValues *)malloc(256*(4*4)*16 * sizeof(LUTValues)); + #define MUR (compare & 0x01) // top-right #define MDR (compare & 0x02) // bottom-right #define MDL (compare & 0x04) // bottom-left @@ -5425,8 +5424,8 @@ void OGLDisplayLayer::SetCPUPixelScalerOGL(const VideoFilterTypeID filterID) { bool needResizeTexture = false; const VideoFilterAttributes newFilterAttr = VideoFilter::GetAttributesByID(filterID); - const size_t oldDstBufferWidth = this->_vfDual->GetDstWidth(); - const size_t oldDstBufferHeight = this->_vfDual->GetDstHeight(); + const GLsizei oldDstBufferWidth = this->_vfDual->GetDstWidth(); + const GLsizei oldDstBufferHeight = this->_vfDual->GetDstHeight(); const GLsizei newDstBufferWidth = this->_vfDual->GetSrcWidth() * newFilterAttr.scaleMultiply / newFilterAttr.scaleDivide; const GLsizei newDstBufferHeight = this->_vfDual->GetSrcHeight() * newFilterAttr.scaleMultiply / newFilterAttr.scaleDivide;