Cocoa Port:

- Optimize some utility functions
- Make the OpenGL renderer the default 3D renderer in the legacy port
- Fix compiling issue in the legacy port
- Build frameworks now all use SDK relative paths instead of absolute paths

OpenGL Renderer:
- Allow it to compile using the OS X v10.4 Tiger SDK
- OpenGL feature support checks now run an SDK check in addition to the GPU check
This commit is contained in:
rogerman 2013-01-04 01:40:52 +00:00
parent 9ab3c45c2a
commit 777fd6bc78
8 changed files with 243 additions and 149 deletions

View File

@ -1,7 +1,7 @@
/* /*
Copyright (C) 2006 yopyop Copyright (C) 2006 yopyop
Copyright (C) 2006-2007 shash Copyright (C) 2006-2007 shash
Copyright (C) 2008-2012 DeSmuME team Copyright (C) 2008-2013 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -52,9 +52,14 @@ static void ENDGL() {
#include <GL/glext.h> #include <GL/glext.h>
#else #else
#ifdef __APPLE__ #ifdef __APPLE__
#include <AvailabilityMacros.h>
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glext.h> #include <OpenGL/glext.h>
#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
#include "cocoa/macosx_10_4_compat.h"
#endif
// We're not exactly committing to OpenGL 3.2 Core Profile just yet, so redefine APPLE // We're not exactly committing to OpenGL 3.2 Core Profile just yet, so redefine APPLE
// extensions for VAO as a temporary measure. // extensions for VAO as a temporary measure.
#ifdef GL_APPLE_vertex_array_object #ifdef GL_APPLE_vertex_array_object
@ -427,11 +432,15 @@ static void createShaders()
glGetShaderInfoLog == NULL) glGetShaderInfoLog == NULL)
NOSHADERS("Shaders aren't supported by your system.");*/ NOSHADERS("Shaders aren't supported by your system.");*/
#if !defined(GL_ARB_shader_objects) || !defined(GL_ARB_vertex_shader) || !defined(GL_ARB_fragment_shader) || !defined(GL_ARB_vertex_program)
NOSHADERS("Shaders aren't supported by your system.");
#else
if ((strstr(extString, "GL_ARB_shader_objects") == NULL) || if ((strstr(extString, "GL_ARB_shader_objects") == NULL) ||
(strstr(extString, "GL_ARB_vertex_shader") == NULL) || (strstr(extString, "GL_ARB_vertex_shader") == NULL) ||
(strstr(extString, "GL_ARB_fragment_shader") == NULL) || (strstr(extString, "GL_ARB_fragment_shader") == NULL) ||
(strstr(extString, "GL_ARB_vertex_program") == NULL) ) (strstr(extString, "GL_ARB_vertex_program") == NULL) )
NOSHADERS("Shaders aren't supported by your system."); NOSHADERS("Shaders aren't supported by your system.");
#endif
vertexShaderID = glCreateShader(GL_VERTEX_SHADER); vertexShaderID = glCreateShader(GL_VERTEX_SHADER);
if(!vertexShaderID) if(!vertexShaderID)
@ -643,7 +652,11 @@ static char OGLInit(void)
#endif #endif
// VBO Setup // VBO Setup
#if !defined(GL_ARB_vertex_buffer_object)
isVBOSupported = false;
#else
isVBOSupported = (strstr(extString, "GL_ARB_vertex_buffer_object") == NULL) ? false : true; isVBOSupported = (strstr(extString, "GL_ARB_vertex_buffer_object") == NULL) ? false : true;
#endif
if (isVBOSupported) if (isVBOSupported)
{ {
glGenBuffersARB(1, &vboVertexID); glGenBuffersARB(1, &vboVertexID);
@ -653,7 +666,11 @@ static char OGLInit(void)
} }
// PBO Setup // PBO Setup
#if !defined(GL_ARB_pixel_buffer_object)
isPBOSupported = false;
#else
isPBOSupported = (strstr(extString, "GL_ARB_pixel_buffer_object") == NULL) ? false : true; isPBOSupported = (strstr(extString, "GL_ARB_pixel_buffer_object") == NULL) ? false : true;
#endif
if (isPBOSupported) if (isPBOSupported)
{ {
glGenBuffersARB(2, pboRenderDataID); glGenBuffersARB(2, pboRenderDataID);
@ -743,10 +760,14 @@ static char OGLInit(void)
} }
// VAO Setup // VAO Setup
#if !defined(GL_ARB_vertex_array_object) && !defined(GL_APPLE_vertex_array_object)
isVAOSupported = false;
#else
isVAOSupported = ( !isVBOSupported || isVAOSupported = ( !isVBOSupported ||
!isShaderSupported || !isShaderSupported ||
(strstr(extString, "GL_ARB_vertex_array_object") == NULL && (strstr(extString, "GL_ARB_vertex_array_object") == NULL &&
strstr(extString, "GL_APPLE_vertex_array_object") == NULL) ) ? false : true; strstr(extString, "GL_APPLE_vertex_array_object") == NULL) ) ? false : true;
#endif
if (isVAOSupported) if (isVAOSupported)
{ {
glGenVertexArrays(1, &vaoMainStatesID); glGenVertexArrays(1, &vaoMainStatesID);
@ -765,11 +786,15 @@ static char OGLInit(void)
} }
// FBO Setup // FBO Setup
isFBOSupported = ( (strstr(extString, "GL_ARB_framebuffer_object") == NULL) && #if ( !defined(GL_ARB_framebuffer_object) ) && ( !defined(GL_EXT_framebuffer_object) || \
(strstr(extString, "GL_EXT_framebuffer_object") == NULL || !defined(GL_EXT_framebuffer_blit) || \
strstr(extString, "GL_EXT_framebuffer_blit") == NULL || !defined(GL_EXT_packed_depth_stencil) )
strstr(extString, "GL_EXT_packed_depth_stencil") == NULL) ) ? false : true; isFBOSupported = false;
#else
isFBOSupported = ( (strstr(extString, "GL_ARB_framebuffer_object") == NULL) && (strstr(extString, "GL_EXT_framebuffer_object") == NULL ||
strstr(extString, "GL_EXT_framebuffer_blit") == NULL ||
strstr(extString, "GL_EXT_packed_depth_stencil") == NULL) ) ? false : true;
#endif
if (isFBOSupported) if (isFBOSupported)
{ {
// ClearImage/Rear-plane // ClearImage/Rear-plane

View File

@ -832,6 +832,7 @@
AB73B1D214BDA94800F49C92 /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C214BDA94800F49C92 /* Icon_Pause_420x420.png */; }; AB73B1D214BDA94800F49C92 /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C214BDA94800F49C92 /* Icon_Pause_420x420.png */; };
AB73B1D314BDA94800F49C92 /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C314BDA94800F49C92 /* Icon_Speed1x_420x420.png */; }; AB73B1D314BDA94800F49C92 /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C314BDA94800F49C92 /* Icon_Speed1x_420x420.png */; };
AB73B1D414BDA94800F49C92 /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C414BDA94800F49C92 /* Icon_Speed2x_420x420.png */; }; AB73B1D414BDA94800F49C92 /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB73B1C414BDA94800F49C92 /* Icon_Speed2x_420x420.png */; };
AB751A681696535D00AFA00D /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB06CD2E135B8ACE00E977B3 /* OGLRender.cpp */; };
AB7522E414C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB7522E414C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; };
AB7522E514C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB7522E514C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; };
AB7522E614C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB7522E614C7D879009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB7522E314C7D879009B97B3 /* AppIcon_FirmwareConfig.icns */; };
@ -841,6 +842,19 @@
AB8FE37814B652EC009E20B1 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8FE37514B652EC009E20B1 /* cocoa_util.mm */; }; AB8FE37814B652EC009E20B1 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8FE37514B652EC009E20B1 /* cocoa_util.mm */; };
AB8FE37914B652EC009E20B1 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8FE37514B652EC009E20B1 /* cocoa_util.mm */; }; AB8FE37914B652EC009E20B1 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB8FE37514B652EC009E20B1 /* cocoa_util.mm */; };
AB8FE48C14B6657D009E20B1 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1D14AACACC00E83E91 /* libz.dylib */; }; AB8FE48C14B6657D009E20B1 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1D14AACACC00E83E91 /* libz.dylib */; };
AB97D29616964D01002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45116964DF2002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45216964E0A002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45316964E0F002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45416964E14002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45516964E26002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D45616964E2D002AC11B /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; };
AB97D50916964E30002AC11B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
AB97D58716964E34002AC11B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1D14AACACC00E83E91 /* libz.dylib */; };
AB97D58816964E3A002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97D29516964D01002AC11B /* Accelerate.framework */; };
AB97D58916964E3F002AC11B /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; };
AB97D58A16964E42002AC11B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
AB97D58B16964E44002AC11B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1D14AACACC00E83E91 /* libz.dylib */; };
ABAC890914B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; ABAC890914B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; };
ABAC890A14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; ABAC890A14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; };
ABAC890B14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; }; ABAC890B14B7943E001B299F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC890814B7943E001B299F /* main.m */; };
@ -1002,15 +1016,15 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
1F4B55030F53921B00C8B514 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = "<group>"; }; 1F4B55030F53921B00C8B514 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = "<group>"; };
1F4B550D0F53928000C8B514 /* Italian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Italian; path = translations/Italian.lproj/Localizable.strings; sourceTree = "<group>"; }; 1F4B550D0F53928000C8B514 /* Italian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Italian; path = translations/Italian.lproj/Localizable.strings; sourceTree = "<group>"; };
1F4B550E0F53928400C8B514 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = translations/Japanese.lproj/Localizable.strings; sourceTree = "<group>"; }; 1F4B550E0F53928400C8B514 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = translations/Japanese.lproj/Localizable.strings; sourceTree = "<group>"; };
1F4B550F0F53928700C8B514 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = translations/French.lproj/Localizable.strings; sourceTree = "<group>"; }; 1F4B550F0F53928700C8B514 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = translations/French.lproj/Localizable.strings; sourceTree = "<group>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
729BECE60D9D57F600ED561B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; 729BECE60D9D57F600ED561B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
729BECEF0D9D581900ED561B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; }; 729BECEF0D9D581900ED561B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
72C000020D9D59E60046B7EA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 72C000020D9D59E60046B7EA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
7FA9121A1426523900E2ABDD /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = "<group>"; }; 7FA9121A1426523900E2ABDD /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = "<group>"; };
7FA9121B1426523900E2ABDD /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = "<group>"; }; 7FA9121B1426523900E2ABDD /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = "<group>"; };
@ -1283,6 +1297,7 @@
AB8FE30A14B647D6009E20B1 /* macosx_10_4_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macosx_10_4_compat.h; sourceTree = "<group>"; }; AB8FE30A14B647D6009E20B1 /* macosx_10_4_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macosx_10_4_compat.h; sourceTree = "<group>"; };
AB8FE37414B652EC009E20B1 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = "<group>"; }; AB8FE37414B652EC009E20B1 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = "<group>"; };
AB8FE37514B652EC009E20B1 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = "<group>"; }; AB8FE37514B652EC009E20B1 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = "<group>"; };
AB97D29516964D01002AC11B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
ABAC890814B7943E001B299F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; ABAC890814B7943E001B299F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
ABBF045E14B5144D00E505A0 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = "translations/English.lproj/MainMenu (Legacy).xib"; sourceTree = "<group>"; }; ABBF045E14B5144D00E505A0 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = "translations/English.lproj/MainMenu (Legacy).xib"; sourceTree = "<group>"; };
ABBF04CB14B51BBB00E505A0 /* Chinese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = "<group>"; }; ABBF04CB14B51BBB00E505A0 /* Chinese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = "<group>"; };
@ -1325,9 +1340,13 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
1EFD51B70F892B1A00B029BB /* Cocoa.framework in Frameworks */, AB97D58816964E3A002AC11B /* Accelerate.framework in Frameworks */,
1EFD51B80F892B1A00B029BB /* OpenGL.framework in Frameworks */, AB97D58916964E3F002AC11B /* AppKit.framework in Frameworks */,
1EFD51B90F892B1A00B029BB /* AudioUnit.framework in Frameworks */, 1EFD51B90F892B1A00B029BB /* AudioUnit.framework in Frameworks */,
1EFD51B70F892B1A00B029BB /* Cocoa.framework in Frameworks */,
AB97D58A16964E42002AC11B /* Foundation.framework in Frameworks */,
1EFD51B80F892B1A00B029BB /* OpenGL.framework in Frameworks */,
AB97D58B16964E44002AC11B /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1335,11 +1354,12 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, AB97D45216964E0A002AC11B /* Accelerate.framework in Frameworks */,
729BECE70D9D57F600ED561B /* OpenGL.framework in Frameworks */,
729BECF00D9D581900ED561B /* AudioUnit.framework in Frameworks */,
AB06CCD6135B8AA200E977B3 /* AppKit.framework in Frameworks */, AB06CCD6135B8AA200E977B3 /* AppKit.framework in Frameworks */,
729BECF00D9D581900ED561B /* AudioUnit.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
AB06CCD7135B8AA300E977B3 /* Foundation.framework in Frameworks */, AB06CCD7135B8AA300E977B3 /* Foundation.framework in Frameworks */,
729BECE70D9D57F600ED561B /* OpenGL.framework in Frameworks */,
AB0A0D1E14AACACC00E83E91 /* libz.dylib in Frameworks */, AB0A0D1E14AACACC00E83E91 /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1348,11 +1368,12 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB0A0DA214AACE9500E83E91 /* Cocoa.framework in Frameworks */, AB97D29616964D01002AC11B /* Accelerate.framework in Frameworks */,
AB0A0DA314AACE9500E83E91 /* OpenGL.framework in Frameworks */,
AB0A0DA414AACE9500E83E91 /* AudioUnit.framework in Frameworks */,
AB0A0DA514AACE9500E83E91 /* AppKit.framework in Frameworks */, AB0A0DA514AACE9500E83E91 /* AppKit.framework in Frameworks */,
AB0A0DA414AACE9500E83E91 /* AudioUnit.framework in Frameworks */,
AB0A0DA214AACE9500E83E91 /* Cocoa.framework in Frameworks */,
AB0A0DA614AACE9500E83E91 /* Foundation.framework in Frameworks */, AB0A0DA614AACE9500E83E91 /* Foundation.framework in Frameworks */,
AB0A0DA314AACE9500E83E91 /* OpenGL.framework in Frameworks */,
AB0A0DA714AACE9500E83E91 /* libz.dylib in Frameworks */, AB0A0DA714AACE9500E83E91 /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1361,11 +1382,12 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB18154E15D212B4007A6CC3 /* Cocoa.framework in Frameworks */, AB97D45316964E0F002AC11B /* Accelerate.framework in Frameworks */,
AB18154F15D212B4007A6CC3 /* OpenGL.framework in Frameworks */,
AB18155015D212B4007A6CC3 /* AudioUnit.framework in Frameworks */,
AB18155115D212B4007A6CC3 /* AppKit.framework in Frameworks */, AB18155115D212B4007A6CC3 /* AppKit.framework in Frameworks */,
AB18155015D212B4007A6CC3 /* AudioUnit.framework in Frameworks */,
AB18154E15D212B4007A6CC3 /* Cocoa.framework in Frameworks */,
AB18155215D212B4007A6CC3 /* Foundation.framework in Frameworks */, AB18155215D212B4007A6CC3 /* Foundation.framework in Frameworks */,
AB18154F15D212B4007A6CC3 /* OpenGL.framework in Frameworks */,
AB18155315D212B4007A6CC3 /* libz.dylib in Frameworks */, AB18155315D212B4007A6CC3 /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1374,11 +1396,12 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB1815EA15D21469007A6CC3 /* Cocoa.framework in Frameworks */, AB97D45116964DF2002AC11B /* Accelerate.framework in Frameworks */,
AB1815EB15D21469007A6CC3 /* OpenGL.framework in Frameworks */,
AB1815EC15D21469007A6CC3 /* AudioUnit.framework in Frameworks */,
AB1815ED15D21469007A6CC3 /* AppKit.framework in Frameworks */, AB1815ED15D21469007A6CC3 /* AppKit.framework in Frameworks */,
AB1815EC15D21469007A6CC3 /* AudioUnit.framework in Frameworks */,
AB1815EA15D21469007A6CC3 /* Cocoa.framework in Frameworks */,
AB1815EE15D21469007A6CC3 /* Foundation.framework in Frameworks */, AB1815EE15D21469007A6CC3 /* Foundation.framework in Frameworks */,
AB1815EB15D21469007A6CC3 /* OpenGL.framework in Frameworks */,
AB1815EF15D21469007A6CC3 /* libz.dylib in Frameworks */, AB1815EF15D21469007A6CC3 /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1387,9 +1410,13 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB18169015D214F2007A6CC3 /* Cocoa.framework in Frameworks */, AB97D45516964E26002AC11B /* Accelerate.framework in Frameworks */,
AB18169115D214F2007A6CC3 /* OpenGL.framework in Frameworks */, AB97D45616964E2D002AC11B /* AppKit.framework in Frameworks */,
AB18169215D214F2007A6CC3 /* AudioUnit.framework in Frameworks */, AB18169215D214F2007A6CC3 /* AudioUnit.framework in Frameworks */,
AB18169015D214F2007A6CC3 /* Cocoa.framework in Frameworks */,
AB97D50916964E30002AC11B /* Foundation.framework in Frameworks */,
AB18169115D214F2007A6CC3 /* OpenGL.framework in Frameworks */,
AB97D58716964E34002AC11B /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1397,11 +1424,12 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
ABFE42AD143E32F0009A3CCE /* Cocoa.framework in Frameworks */, AB97D45416964E14002AC11B /* Accelerate.framework in Frameworks */,
ABFE42AE143E32F0009A3CCE /* OpenGL.framework in Frameworks */,
ABFE42AF143E32F0009A3CCE /* AudioUnit.framework in Frameworks */,
ABFE42B0143E32F0009A3CCE /* AppKit.framework in Frameworks */, ABFE42B0143E32F0009A3CCE /* AppKit.framework in Frameworks */,
ABFE42AF143E32F0009A3CCE /* AudioUnit.framework in Frameworks */,
ABFE42AD143E32F0009A3CCE /* Cocoa.framework in Frameworks */,
ABFE42B1143E32F0009A3CCE /* Foundation.framework in Frameworks */, ABFE42B1143E32F0009A3CCE /* Foundation.framework in Frameworks */,
ABFE42AE143E32F0009A3CCE /* OpenGL.framework in Frameworks */,
AB8FE48C14B6657D009E20B1 /* libz.dylib in Frameworks */, AB8FE48C14B6657D009E20B1 /* libz.dylib in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1444,6 +1472,7 @@
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
AB97D29516964D01002AC11B /* Accelerate.framework */,
29B97324FDCFA39411CA2CEA /* AppKit.framework */, 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
729BECEF0D9D581900ED561B /* AudioUnit.framework */, 729BECEF0D9D581900ED561B /* AudioUnit.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
@ -2914,6 +2943,7 @@
AB18134615D1FB4B007A6CC3 /* Platform.cpp in Sources */, AB18134615D1FB4B007A6CC3 /* Platform.cpp in Sources */,
AB18134915D1FB4B007A6CC3 /* Util.cpp in Sources */, AB18134915D1FB4B007A6CC3 /* Util.cpp in Sources */,
AB18136E15D1FB73007A6CC3 /* arm_jit.cpp in Sources */, AB18136E15D1FB73007A6CC3 /* arm_jit.cpp in Sources */,
AB751A681696535D00AFA00D /* OGLRender.cpp in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View File

@ -577,6 +577,10 @@
AB73AA2E1507C9F500A310C8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; AB73AA2E1507C9F500A310C8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; };
AB73AA2F1507C9F500A310C8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; AB73AA2F1507C9F500A310C8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; };
AB75226F14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; AB75226F14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; };
AB97C554169646D1002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; };
AB97D5E516964F3B002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; };
AB97D60916964F48002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; };
AB97D60C16964F54002AC11B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB97C553169646D1002AC11B /* Accelerate.framework */; };
ABA03570169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; ABA03570169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; };
ABA03571169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; ABA03571169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; };
ABA03572169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; }; ABA03572169127C000817C69 /* troubleshootingWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */; };
@ -822,9 +826,9 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = "<group>"; }; AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = "<group>"; };
@ -918,6 +922,7 @@
AB901BE21420707800348EEC /* Chinese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = "<group>"; }; AB901BE21420707800348EEC /* Chinese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = "<group>"; };
AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = "<group>"; }; AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = "<group>"; };
AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = "<group>"; }; AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = "<group>"; };
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 = "<group>"; }; AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; sourceTree = "<group>"; };
ABA0356E169127BB00817C69 /* troubleshootingWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = troubleshootingWindowDelegate.h; sourceTree = "<group>"; }; ABA0356E169127BB00817C69 /* troubleshootingWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = troubleshootingWindowDelegate.h; sourceTree = "<group>"; };
ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = troubleshootingWindowDelegate.mm; sourceTree = "<group>"; }; ABA0356F169127C000817C69 /* troubleshootingWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = troubleshootingWindowDelegate.mm; sourceTree = "<group>"; };
@ -1212,6 +1217,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB97D60C16964F54002AC11B /* Accelerate.framework in Frameworks */,
AB2F3C3B15CF9C6000858373 /* AppKit.framework in Frameworks */, AB2F3C3B15CF9C6000858373 /* AppKit.framework in Frameworks */,
AB2F3C3C15CF9C6000858373 /* AudioUnit.framework in Frameworks */, AB2F3C3C15CF9C6000858373 /* AudioUnit.framework in Frameworks */,
AB2F3C3D15CF9C6000858373 /* Cocoa.framework in Frameworks */, AB2F3C3D15CF9C6000858373 /* Cocoa.framework in Frameworks */,
@ -1226,6 +1232,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB97C554169646D1002AC11B /* Accelerate.framework in Frameworks */,
AB711F771481C35F009011C8 /* AppKit.framework in Frameworks */, AB711F771481C35F009011C8 /* AppKit.framework in Frameworks */,
AB711F751481C35F009011C8 /* AudioUnit.framework in Frameworks */, AB711F751481C35F009011C8 /* AudioUnit.framework in Frameworks */,
AB711F741481C35F009011C8 /* Cocoa.framework in Frameworks */, AB711F741481C35F009011C8 /* Cocoa.framework in Frameworks */,
@ -1240,6 +1247,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB97D5E516964F3B002AC11B /* Accelerate.framework in Frameworks */,
AB73AA291507C9F500A310C8 /* AppKit.framework in Frameworks */, AB73AA291507C9F500A310C8 /* AppKit.framework in Frameworks */,
AB73AA2A1507C9F500A310C8 /* AudioUnit.framework in Frameworks */, AB73AA2A1507C9F500A310C8 /* AudioUnit.framework in Frameworks */,
AB73AA2B1507C9F500A310C8 /* Cocoa.framework in Frameworks */, AB73AA2B1507C9F500A310C8 /* Cocoa.framework in Frameworks */,
@ -1254,6 +1262,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB97D60916964F48002AC11B /* Accelerate.framework in Frameworks */,
ABAD103F15ACE7A00000EC47 /* AppKit.framework in Frameworks */, ABAD103F15ACE7A00000EC47 /* AppKit.framework in Frameworks */,
ABAD104015ACE7A00000EC47 /* AudioUnit.framework in Frameworks */, ABAD104015ACE7A00000EC47 /* AudioUnit.framework in Frameworks */,
ABAD104115ACE7A00000EC47 /* Cocoa.framework in Frameworks */, ABAD104115ACE7A00000EC47 /* Cocoa.framework in Frameworks */,
@ -1309,6 +1318,7 @@
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
AB97C553169646D1002AC11B /* Accelerate.framework */,
29B97324FDCFA39411CA2CEA /* AppKit.framework */, 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,

View File

@ -80,6 +80,9 @@
AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; };
AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; };
AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; };
AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; };
AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; };
AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; };
@ -559,9 +562,9 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; };
AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@ -642,6 +645,7 @@
AB3ACC3D14C24D5400D7D192 /* README.MAC */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.MAC; path = ../../README.MAC; sourceTree = SOURCE_ROOT; }; AB3ACC3D14C24D5400D7D192 /* README.MAC */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.MAC; path = ../../README.MAC; sourceTree = SOURCE_ROOT; };
AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = "<group>"; }; AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = "<group>"; };
AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = "<group>"; }; AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = "<group>"; };
AB4FCEBC1692AB82000F498F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = "<group>"; }; AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = "<group>"; };
AB58F32C1364F44B0074C376 /* cocoa_file.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_file.mm; sourceTree = "<group>"; }; AB58F32C1364F44B0074C376 /* cocoa_file.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_file.mm; sourceTree = "<group>"; };
AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = "<group>"; }; AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = "<group>"; };
@ -956,6 +960,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */,
ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */, ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */,
ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */, ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
@ -970,6 +975,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */,
AB796D6615CDCBA200C59155 /* AppKit.framework in Frameworks */, AB796D6615CDCBA200C59155 /* AppKit.framework in Frameworks */,
AB796D6715CDCBA200C59155 /* AudioUnit.framework in Frameworks */, AB796D6715CDCBA200C59155 /* AudioUnit.framework in Frameworks */,
AB796D6815CDCBA200C59155 /* Cocoa.framework in Frameworks */, AB796D6815CDCBA200C59155 /* Cocoa.framework in Frameworks */,
@ -984,6 +990,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */,
ABB3C6641501BF8A00E0C22E /* AppKit.framework in Frameworks */, ABB3C6641501BF8A00E0C22E /* AppKit.framework in Frameworks */,
ABB3C6651501BF8A00E0C22E /* AudioUnit.framework in Frameworks */, ABB3C6651501BF8A00E0C22E /* AudioUnit.framework in Frameworks */,
ABB3C6661501BF8A00E0C22E /* Cocoa.framework in Frameworks */, ABB3C6661501BF8A00E0C22E /* Cocoa.framework in Frameworks */,
@ -1040,6 +1047,7 @@
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
AB4FCEBC1692AB82000F498F /* Accelerate.framework */,
29B97324FDCFA39411CA2CEA /* AppKit.framework */, 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,

View File

@ -1,6 +1,6 @@
/* /*
Copyright (C) 2011 Roger Manuel Copyright (C) 2011 Roger Manuel
Copyright (C) 2012 DeSmuME team Copyright (C) 2013 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -20,6 +20,7 @@
#import "cocoa_globals.h" #import "cocoa_globals.h"
#import "types.h" #import "types.h"
#include <Accelerate/Accelerate.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
#include "../version.h" #include "../version.h"
@ -343,7 +344,9 @@ FORCEINLINE uint32_t RGB888ToRGBA8888(const uint32_t color24)
Takes: Takes:
srcBuffer - Pointer to the source 16-bit RGBA5551 pixel buffer. srcBuffer - Pointer to the source 16-bit RGBA5551 pixel buffer.
destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer. destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer.
numberPixels - The number of pixels to copy. numberPixels - The number of pixels to copy.
Returns: Returns:
@ -365,13 +368,15 @@ void RGBA5551ToRGBA8888Buffer(const uint16_t *__restrict__ srcBuffer, uint32_t *
} }
/******************************************************************************************** /********************************************************************************************
RGBA5551ToRGBA8888Buffer() RGB888ToRGBA8888Buffer()
Copies a 24-bit RGB888 pixel buffer into a 32-bit RGBA8888 pixel buffer. Copies a 24-bit RGB888 pixel buffer into a 32-bit RGBA8888 pixel buffer.
Takes: Takes:
srcBuffer - Pointer to the source 24-bit RGB888 pixel buffer. srcBuffer - Pointer to the source 24-bit RGB888 pixel buffer.
destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer. destBuffer - Pointer to the destination 32-bit RGBA8888 pixel buffer.
numberPixels - The number of pixels to copy. numberPixels - The number of pixels to copy.
Returns: Returns:
@ -399,7 +404,9 @@ void RGB888ToRGBA8888Buffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__
Takes: Takes:
normalBounds - The rectangular bounds of the normal 2D surface. normalBounds - The rectangular bounds of the normal 2D surface.
scalar - The scalar used to transform the 2D surface. scalar - The scalar used to transform the 2D surface.
angleDegrees - The rotation angle, in degrees, to transform the 2D surface. angleDegrees - The rotation angle, in degrees, to transform the 2D surface.
Returns: Returns:
@ -412,80 +419,120 @@ void RGB888ToRGBA8888Buffer(const uint32_t *__restrict__ srcBuffer, uint32_t *__
********************************************************************************************/ ********************************************************************************************/
NSSize GetTransformedBounds(NSSize normalBounds, double scalar, double angleDegrees) NSSize GetTransformedBounds(NSSize normalBounds, double scalar, double angleDegrees)
{ {
const double angleRadians = angleDegrees * (M_PI/180.0);
// The points are as follows:
//
// (x[3], y[3]) (x[2], y[2])
//
//
//
// (x[0], y[0]) (x[1], y[1])
// Do our scale and rotate transformations.
#ifdef __ACCELERATE__
// Note that although we only need to calculate 3 points, we include 4 points
// here because Accelerate prefers 16-byte alignment.
double x[] = {0.0, normalBounds.width, normalBounds.width, 0.0};
double y[] = {0.0, 0.0, normalBounds.height, normalBounds.height};
cblas_drot(4, x, 1, y, 1, scalar * cos(angleRadians), scalar * sin(angleRadians));
#else // Keep a C-version of this transformation for reference purposes.
const double w = scalar * normalBounds.width;
const double h = scalar * normalBounds.height;
const double d = hypot(w, h);
const double dAngle = atan2(h, w);
const double px = w * cos(angleRadians);
const double py = w * sin(angleRadians);
const double qx = d * cos(dAngle + angleRadians);
const double qy = d * sin(dAngle + angleRadians);
const double rx = h * cos((M_PI/2.0) + angleRadians);
const double ry = h * sin((M_PI/2.0) + angleRadians);
const double x[] = {0.0, px, qx, rx};
const double y[] = {0.0, py, qy, ry};
#endif
// Determine the transformed width, which is dependent on the location of
// the x-coordinate of point (x[2], y[2]).
NSSize transformBounds = {0.0, 0.0}; NSSize transformBounds = {0.0, 0.0};
double angleRadians = angleDegrees * (M_PI/180.0); if (x[2] > 0.0)
double w = scalar * normalBounds.width;
double h = scalar * normalBounds.height;
double d = hypot(w, h);
double dAngle = atan2(h, w);
double px = d * cos(dAngle + angleRadians);
double py = d * sin(dAngle + angleRadians);
double qx = h * cos((M_PI/2.0) + angleRadians);
double qy = h * sin((M_PI/2.0) + angleRadians);
double rx = w * cos(angleRadians);
double ry = w * sin(angleRadians);
double transformWidth = px;
double transformHeight = py;
// Determine the transform width, which is dependent on the location of
// the x-coordinate of point p.
if (px > 0.0)
{ {
transformWidth = px; if (x[2] < x[3])
if (px < qx)
{ {
transformWidth = qx - rx; transformBounds.width = x[3] - x[1];
} }
else if (px < rx) else if (x[2] < x[1])
{ {
transformWidth = rx - qx; transformBounds.width = x[1] - x[3];
}
else
{
transformBounds.width = x[2];
} }
} }
else if (px < 0.0) else if (x[2] < 0.0)
{ {
transformWidth = -px; if (x[2] > x[3])
if (px > qx)
{ {
transformWidth = -(qx - rx); transformBounds.width = -(x[3] - x[1]);
} }
else if (px > rx) else if (x[2] > x[1])
{ {
transformWidth = -(rx - qx); transformBounds.width = -(x[1] - x[3]);
} }
else
{
transformBounds.width = -x[2];
}
}
else
{
transformBounds.width = abs(x[1] - x[3]);
} }
// Determine the transform height, which is dependent on the location of // Determine the transformed height, which is dependent on the location of
// the y-coordinate of point p. // the y-coordinate of point (x[2], y[2]).
if (py > 0.0) if (y[2] > 0.0)
{ {
transformHeight = py; if (y[2] < y[3])
if (py < qy)
{ {
transformHeight = qy - ry; transformBounds.height = y[3] - y[1];
} }
else if (py < ry) else if (y[2] < y[1])
{ {
transformHeight = ry - qy; transformBounds.height = y[1] - y[3];
}
else
{
transformBounds.height = y[2];
} }
} }
else if (py < 0.0) else if (y[2] < 0.0)
{ {
transformHeight = -py; if (y[2] > y[3])
if (py > qy)
{ {
transformHeight = -(qy - ry); transformBounds.height = -(y[3] - y[1]);
} }
else if (py > ry) else if (y[2] > y[1])
{ {
transformHeight = -(ry - qy); transformBounds.height = -(y[1] - y[3]);
}
else
{
transformBounds.height = -y[2];
} }
} }
else
transformBounds.width = transformWidth; {
transformBounds.height = transformHeight; transformBounds.height = abs(y[3] - y[1]);
}
return transformBounds; return transformBounds;
} }
@ -498,8 +545,11 @@ NSSize GetTransformedBounds(NSSize normalBounds, double scalar, double angleDegr
Takes: Takes:
normalBoundsWidth - The rectangular width of the normal 2D surface. normalBoundsWidth - The rectangular width of the normal 2D surface.
normalBoundsHeight - The rectangular height of the normal 2D surface. normalBoundsHeight - The rectangular height of the normal 2D surface.
keepInBoundsWidth - The rectangular width of the keep in 2D surface. keepInBoundsWidth - The rectangular width of the keep in 2D surface.
keepInBoundsHeight - The rectangular height of the keep in 2D surface. keepInBoundsHeight - The rectangular height of the keep in 2D surface.
Returns: Returns:
@ -512,35 +562,10 @@ NSSize GetTransformedBounds(NSSize normalBounds, double scalar, double angleDegr
********************************************************************************************/ ********************************************************************************************/
double GetMaxScalarInBounds(double normalBoundsWidth, double normalBoundsHeight, double keepInBoundsWidth, double keepInBoundsHeight) double GetMaxScalarInBounds(double normalBoundsWidth, double normalBoundsHeight, double keepInBoundsWidth, double keepInBoundsHeight)
{ {
double maxX; const double maxX = (normalBoundsWidth <= 0.0) ? 0.0 : keepInBoundsWidth / normalBoundsWidth;
double maxY; const double maxY = (normalBoundsHeight <= 0.0) ? 0.0 : keepInBoundsHeight / normalBoundsHeight;
double maxS;
if (normalBoundsWidth <= 0.0) return (maxX <= maxY) ? maxX : maxY;
{
maxX = 0.0;
}
else
{
maxX = keepInBoundsWidth / normalBoundsWidth;
}
if (normalBoundsHeight <= 0.0)
{
maxY = 0.0;
}
else
{
maxY = keepInBoundsHeight / normalBoundsHeight;
}
maxS = maxY;
if (maxX < maxY)
{
maxS = maxX;
}
return maxS;
} }
/******************************************************************************************** /********************************************************************************************
@ -550,9 +575,13 @@ double GetMaxScalarInBounds(double normalBoundsWidth, double normalBoundsHeight,
Takes: Takes:
transformedPt - A point as it exists on a 2D transformed surface. transformedPt - A point as it exists on a 2D transformed surface.
normalBounds - The rectangular bounds of the normal 2D surface. normalBounds - The rectangular bounds of the normal 2D surface.
transformedBounds - The rectangular bounds of the transformed 2D surface. transformedBounds - The rectangular bounds of the transformed 2D surface.
scalar - The scalar used on the transformed 2D surface. scalar - The scalar used on the transformed 2D surface.
angleDegrees - The rotation angle, in degrees, of the transformed 2D surface. angleDegrees - The rotation angle, in degrees, of the transformed 2D surface.
Returns: Returns:
@ -563,29 +592,21 @@ double GetMaxScalarInBounds(double normalBoundsWidth, double normalBoundsHeight,
********************************************************************************************/ ********************************************************************************************/
NSPoint GetNormalPointFromTransformedPoint(NSPoint transformedPt, NSSize normalBounds, NSSize transformBounds, double scalar, double angleDegrees) NSPoint GetNormalPointFromTransformedPoint(NSPoint transformedPt, NSSize normalBounds, NSSize transformBounds, double scalar, double angleDegrees)
{ {
double angleRadians = angleDegrees * (M_PI/180.0); const double angleRadians = angleDegrees * (M_PI/180.0);
double transformedX = 0.0;
double transformedY = 0.0;
double r = 0.0;
double theta = 0.0;
double normalizedAngle = 0.0;
double normalizedX = 0.0;
double normalizedY = 0.0;
NSPoint normalizedPt = {transformedPt.x, transformedPt.y};
// Get the coordinates of the transformed point and translate the coordinate // Get the coordinates of the transformed point and translate the coordinate
// system so that the origin becomes the center. // system so that the origin becomes the center.
transformedX = transformedPt.x - (transformBounds.width / 2.0); const double transformedX = transformedPt.x - (transformBounds.width / 2.0);
transformedY = transformedPt.y - (transformBounds.height / 2.0); const double transformedY = transformedPt.y - (transformBounds.height / 2.0);
// Perform rect-polar conversion. // Perform rect-polar conversion.
// Get the radius r with respect to the origin. // Get the radius r with respect to the origin.
r = hypot(transformedX, transformedY); const double r = hypot(transformedX, transformedY);
// Get the angle theta with respect to the origin. // Get the angle theta with respect to the origin.
double theta = 0.0;
if (transformedX == 0.0) if (transformedX == 0.0)
{ {
if (transformedY > 0.0) if (transformedY > 0.0)
@ -613,13 +634,12 @@ NSPoint GetNormalPointFromTransformedPoint(NSPoint transformedPt, NSSize normalB
// Get the normalized angle and use it to rotate about the origin. // Get the normalized angle and use it to rotate about the origin.
// Then do polar-rect conversion and translate back to transformed coordinates // Then do polar-rect conversion and translate back to transformed coordinates
// with a 0 degree rotation. // with a 0 degree rotation.
normalizedAngle = theta - angleRadians; const double normalizedAngle = theta - angleRadians;
normalizedX = (r * cos(normalizedAngle)) + (normalBounds.width * scalar / 2.0); const double normalizedX = (r * cos(normalizedAngle)) + (normalBounds.width * scalar / 2.0);
normalizedY = (r * sin(normalizedAngle)) + (normalBounds.height * scalar / 2.0); const double normalizedY = (r * sin(normalizedAngle)) + (normalBounds.height * scalar / 2.0);
// Scale the location to get a one-to-one correlation to normal coordinates. // Scale the location to get a one-to-one correlation to normal coordinates.
normalizedPt.x = (CGFloat)(normalizedX / scalar); const NSPoint normalizedPt = { (CGFloat)(normalizedX / scalar), (CGFloat)(normalizedY / scalar) };
normalizedPt.y = (CGFloat)(normalizedY / scalar);
return normalizedPt; return normalizedPt;
} }

View File

@ -1,5 +1,5 @@
/* /*
Copyright (C) 2012 DeSmuME team Copyright (C) 2013 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -18,8 +18,8 @@
#ifndef MACOSX_10_4_COMPATIBILITY_H #ifndef MACOSX_10_4_COMPATIBILITY_H
#define MACOSX_10_4_COMPATIBILITY_H #define MACOSX_10_4_COMPATIBILITY_H
// Taken from NSObjCRuntime.h of the Mac OS X 10.5 SDK. // Taken from NSObjCRuntime.h of the Mac OS X v10.5 SDK.
// Defines NSInteger and NSUInteger for Mac OS X 10.4 and earlier. // Defines NSInteger and NSUInteger for Mac OS X v10.4 and earlier.
#ifndef NSINTEGER_DEFINED #ifndef NSINTEGER_DEFINED
#define NSINTEGER_DEFINED 1 #define NSINTEGER_DEFINED 1
typedef int NSInteger; typedef int NSInteger;
@ -29,8 +29,8 @@ typedef unsigned int NSUInteger;
#define NSUIntegerMax ULONG_MAX #define NSUIntegerMax ULONG_MAX
#endif #endif
// Taken from CIVector.h of the Mac OS X 10.5 SDK. // Taken from CIVector.h of the Mac OS X v10.5 SDK.
// Defines CGFloat for Mac OS X 10.4 and earlier. // Defines CGFloat for Mac OS X v10.4 and earlier.
#ifndef CGFLOAT_DEFINED #ifndef CGFLOAT_DEFINED
#define CGFLOAT_DEFINED 1 #define CGFLOAT_DEFINED 1
typedef float CGFloat; typedef float CGFloat;
@ -39,4 +39,10 @@ typedef float CGFloat;
#define CGFLOAT_IS_DOUBLE 0 #define CGFLOAT_IS_DOUBLE 0
#endif #endif
// Overrides for GL_EXT_framebuffer_blit (not available in Mac OS X v10.4)
#if !defined(GL_ARB_framebuffer_object) || !defined(GL_EXT_framebuffer_blit)
#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
#define glBlitFramebufferEXT(a, b, c, d, e, f, g, h, i, j)
#endif
#endif // MACOSX_10_4_COMPATIBILITY_H #endif // MACOSX_10_4_COMPATIBILITY_H

View File

@ -1,7 +1,7 @@
/* /*
Copyright (C) 2007 Jeff Bland Copyright (C) 2007 Jeff Bland
Copyright (C) 2011 Roger Manuel Copyright (C) 2011 Roger Manuel
Copyright (C) 2012 DeSmuME team Copyright (C) 2013 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -50,9 +50,7 @@ volatile bool execute = true;
GPU3DInterface *core3DList[] = { GPU3DInterface *core3DList[] = {
&gpu3DNull, &gpu3DNull,
&gpu3DRasterize, &gpu3DRasterize,
#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4
&gpu3Dgl, &gpu3Dgl,
#endif
NULL NULL
}; };
@ -176,7 +174,7 @@ bool OSXOpenGLRendererInit()
NSOpenGLPFAAlphaSize, (NSOpenGLPixelFormatAttribute)8, NSOpenGLPFAAlphaSize, (NSOpenGLPixelFormatAttribute)8,
NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)24, NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)24,
NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)8, NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)8,
NSOpenGLPFAOffScreen, NSOpenGLPFAAccelerated,
(NSOpenGLPixelFormatAttribute)0 (NSOpenGLPixelFormatAttribute)0
}; };
@ -238,13 +236,10 @@ bool OSXOpenGLRendererInit()
{ {
[context makeCurrentContext]; [context makeCurrentContext];
#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4
oglrender_init = &OSXOpenGLRendererInit; oglrender_init = &OSXOpenGLRendererInit;
//NDS_3D_SetDriver(CORE3DLIST_OPENGL); NDS_3D_SetDriver(CORE3DLIST_OPENGL);
NDS_3D_SetDriver(CORE3DLIST_SWRASTERIZE); //NDS_3D_SetDriver(CORE3DLIST_SWRASTERIZE);
#else
NDS_3D_SetDriver(CORE3DLIST_SWRASTERIZE);
#endif
if(!gpu3D->NDS_3D_Init()) if(!gpu3D->NDS_3D_Init())
[CocoaDSUtil quickDialogUsingTitle:NSLocalizedString(@"Error", nil) message:NSLocalizedString(@"Unable to initialize OpenGL components", nil)]; [CocoaDSUtil quickDialogUsingTitle:NSLocalizedString(@"Error", nil) message:NSLocalizedString(@"Unable to initialize OpenGL components", nil)];
} }

View File

@ -1,6 +1,6 @@
/* /*
Copyright (C) 2007 Jeff Bland Copyright (C) 2007 Jeff Bland
Copyright (C) 2012 DeSmuME team Copyright (C) 2013 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -211,7 +211,7 @@ void joinThread_gdb(void *thread_handle)
- (IBAction) bugReport:(id)sender - (IBAction) bugReport:(id)sender
{ {
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_BUG_SITE]]; [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_BUG_REPORT_SITE]];
} }
- (void) setupSlotMenuItems - (void) setupSlotMenuItems