Browse Source

Merges the two project files (1 project, 2 targets), starts using image assets, enables some warnings

master
Joshua Moerman 11 years ago
parent
commit
f386e11bf1
  1. 446
      GLEssentials.xcodeproj/project.pbxproj
  2. 2
      GLEssentials/Game.h
  3. 58
      GLEssentials/Images.xcassets/AppIcon.appiconset/Contents.json
  4. 49
      GLEssentials/Images.xcassets/LaunchImage.launchimage/Contents.json
  5. 4
      GLEssentials/OSX/GLEssentials-Info.plist
  6. 25
      GLEssentials/OSX/GLEssentialsGLView.m
  7. 2
      GLEssentials/iOS/GLEssentials-Info.plist
  8. 2
      GLEssentials/iOS/ViewController.m
  9. 254
      OSXGLEssentials.xcodeproj/project.pbxproj
  10. 3
      README.md
  11. 32
      Readme.txt
  12. 269
      iOSGLEssentials.xcodeproj/project.pbxproj

446
GLEssentials.xcodeproj/project.pbxproj

@ -0,0 +1,446 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4280D42C18E831C900E4CDFB /* Fractal-iOS.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 4280D42818E831A900E4CDFB /* Fractal-iOS.fsh */; };
4280D42D18E831D200E4CDFB /* Fractal-iOS.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 4280D42918E831A900E4CDFB /* Fractal-iOS.vsh */; };
4280D42F18E831D200E4CDFB /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4280D41C18E8311400E4CDFB /* Main_iPad.storyboard */; };
4280D43018E831D200E4CDFB /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4280D41D18E8311400E4CDFB /* Main_iPhone.storyboard */; };
4280D43118E8321100E4CDFB /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2DF18CB68A400A58D8F /* Game.m */; };
4280D43218E8321100E4CDFB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4280D41E18E8311400E4CDFB /* main.m */; };
4280D43318E8321100E4CDFB /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4280D41A18E8311400E4CDFB /* AppDelegate.m */; };
4280D43418E8321100E4CDFB /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4280D42018E8311400E4CDFB /* ViewController.m */; };
4280D43818E839C100E4CDFB /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4280D43718E839C100E4CDFB /* Images.xcassets */; };
4295A2CA18CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */; };
4295A2CB18CB4E5100A58D8F /* GLEssentialsGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */; };
4295A2CC18CB4E5100A58D8F /* GLEssentialsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */; };
4295A2E018CB68A400A58D8F /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2DF18CB68A400A58D8F /* Game.m */; };
4295A2EB18CBB0F700A58D8F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2EA18CBB0F700A58D8F /* main.m */; };
4295A2F318CBB22800A58D8F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F218CBB22800A58D8F /* MainMenu.xib */; };
4295A2FA18CBC15000A58D8F /* Fractal.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F618CBBFF100A58D8F /* Fractal.vsh */; };
4295A2FB18CBC15000A58D8F /* Fractal.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F818CBC00500A58D8F /* Fractal.fsh */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
3A1598D311B9DDB0001E7AB5 /* GLEssentials OSX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GLEssentials OSX.app"; sourceTree = BUILT_PRODUCTS_DIR; };
4280D3EA18E8307A00E4CDFB /* GLEssentials iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GLEssentials iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
4280D3EC18E8307A00E4CDFB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4280D3EE18E8307A00E4CDFB /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
4280D3F018E8307A00E4CDFB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
4280D40518E8307A00E4CDFB /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
4280D41918E8311400E4CDFB /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = GLEssentials/iOS/AppDelegate.h; sourceTree = SOURCE_ROOT; };
4280D41A18E8311400E4CDFB /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = GLEssentials/iOS/AppDelegate.m; sourceTree = SOURCE_ROOT; };
4280D41B18E8311400E4CDFB /* GLEssentials-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GLEssentials-Info.plist"; path = "GLEssentials/iOS/GLEssentials-Info.plist"; sourceTree = SOURCE_ROOT; };
4280D41C18E8311400E4CDFB /* Main_iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main_iPad.storyboard; path = GLEssentials/iOS/Main_iPad.storyboard; sourceTree = SOURCE_ROOT; };
4280D41D18E8311400E4CDFB /* Main_iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main_iPhone.storyboard; path = GLEssentials/iOS/Main_iPhone.storyboard; sourceTree = SOURCE_ROOT; };
4280D41E18E8311400E4CDFB /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = GLEssentials/iOS/main.m; sourceTree = SOURCE_ROOT; };
4280D41F18E8311400E4CDFB /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ViewController.h; path = GLEssentials/iOS/ViewController.h; sourceTree = SOURCE_ROOT; };
4280D42018E8311400E4CDFB /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ViewController.m; path = GLEssentials/iOS/ViewController.m; sourceTree = SOURCE_ROOT; };
4280D42818E831A900E4CDFB /* Fractal-iOS.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = "Fractal-iOS.fsh"; path = "GLEssentials/Fractal-iOS.fsh"; sourceTree = "<group>"; };
4280D42918E831A900E4CDFB /* Fractal-iOS.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = "Fractal-iOS.vsh"; path = "GLEssentials/Fractal-iOS.vsh"; sourceTree = "<group>"; };
4280D43718E839C100E4CDFB /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = GLEssentials/Images.xcassets; sourceTree = "<group>"; };
4295A2C218CB4E5100A58D8F /* GLEssentialsFullscreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsFullscreenWindow.h; path = GLEssentials/OSX/GLEssentialsFullscreenWindow.h; sourceTree = "<group>"; };
4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsFullscreenWindow.m; path = GLEssentials/OSX/GLEssentialsFullscreenWindow.m; sourceTree = "<group>"; };
4295A2C418CB4E5100A58D8F /* GLEssentialsGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsGLView.h; path = GLEssentials/OSX/GLEssentialsGLView.h; sourceTree = "<group>"; };
4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsGLView.m; path = GLEssentials/OSX/GLEssentialsGLView.m; sourceTree = "<group>"; };
4295A2C618CB4E5100A58D8F /* GLEssentialsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsWindowController.h; path = GLEssentials/OSX/GLEssentialsWindowController.h; sourceTree = "<group>"; };
4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsWindowController.m; path = GLEssentials/OSX/GLEssentialsWindowController.m; sourceTree = "<group>"; };
4295A2DE18CB68A400A58D8F /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Game.h; path = GLEssentials/Game.h; sourceTree = "<group>"; };
4295A2DF18CB68A400A58D8F /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Game.m; path = GLEssentials/Game.m; sourceTree = "<group>"; };
4295A2EA18CBB0F700A58D8F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = GLEssentials/OSX/main.m; sourceTree = "<group>"; };
4295A2F018CBB1D200A58D8F /* GLEssentials-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GLEssentials-Info.plist"; path = "GLEssentials/OSX/GLEssentials-Info.plist"; sourceTree = "<group>"; };
4295A2F218CBB22800A58D8F /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainMenu.xib; path = GLEssentials/OSX/MainMenu.xib; sourceTree = "<group>"; };
4295A2F618CBBFF100A58D8F /* Fractal.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = Fractal.vsh; path = GLEssentials/Fractal.vsh; sourceTree = "<group>"; };
4295A2F818CBC00500A58D8F /* Fractal.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = Fractal.fsh; path = GLEssentials/Fractal.fsh; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
4280D3E718E8307A00E4CDFB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
080E96DDFE201D6D7F000001 /* GLEssentials */ = {
isa = PBXGroup;
children = (
4295A2DE18CB68A400A58D8F /* Game.h */,
4295A2DF18CB68A400A58D8F /* Game.m */,
4295A2F618CBBFF100A58D8F /* Fractal.vsh */,
4295A2F818CBC00500A58D8F /* Fractal.fsh */,
4280D42818E831A900E4CDFB /* Fractal-iOS.fsh */,
4280D42918E831A900E4CDFB /* Fractal-iOS.vsh */,
4280D42718E8314A00E4CDFB /* Supporting Files */,
);
name = GLEssentials;
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
3A1598D311B9DDB0001E7AB5 /* GLEssentials OSX.app */,
4280D3EA18E8307A00E4CDFB /* GLEssentials iOS.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* OSXGLEssentials */ = {
isa = PBXGroup;
children = (
4280D43718E839C100E4CDFB /* Images.xcassets */,
080E96DDFE201D6D7F000001 /* GLEssentials */,
4280D3EB18E8307A00E4CDFB /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
);
name = OSXGLEssentials;
sourceTree = "<group>";
};
4280D3EB18E8307A00E4CDFB /* Frameworks */ = {
isa = PBXGroup;
children = (
4280D3EC18E8307A00E4CDFB /* Foundation.framework */,
4280D3EE18E8307A00E4CDFB /* CoreGraphics.framework */,
4280D3F018E8307A00E4CDFB /* UIKit.framework */,
4280D40518E8307A00E4CDFB /* XCTest.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
4280D3F218E8307A00E4CDFB /* iOS */ = {
isa = PBXGroup;
children = (
4280D41B18E8311400E4CDFB /* GLEssentials-Info.plist */,
4280D41E18E8311400E4CDFB /* main.m */,
4280D41C18E8311400E4CDFB /* Main_iPad.storyboard */,
4280D41D18E8311400E4CDFB /* Main_iPhone.storyboard */,
4280D41918E8311400E4CDFB /* AppDelegate.h */,
4280D41A18E8311400E4CDFB /* AppDelegate.m */,
4280D41F18E8311400E4CDFB /* ViewController.h */,
4280D42018E8311400E4CDFB /* ViewController.m */,
);
name = iOS;
path = "GLEssentials iOS";
sourceTree = "<group>";
};
4280D42718E8314A00E4CDFB /* Supporting Files */ = {
isa = PBXGroup;
children = (
4295A2F418CBB24A00A58D8F /* OSX */,
4280D3F218E8307A00E4CDFB /* iOS */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4295A2F418CBB24A00A58D8F /* OSX */ = {
isa = PBXGroup;
children = (
4295A2F018CBB1D200A58D8F /* GLEssentials-Info.plist */,
4295A2EA18CBB0F700A58D8F /* main.m */,
4295A2F218CBB22800A58D8F /* MainMenu.xib */,
4295A2C218CB4E5100A58D8F /* GLEssentialsFullscreenWindow.h */,
4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */,
4295A2C418CB4E5100A58D8F /* GLEssentialsGLView.h */,
4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */,
4295A2C618CB4E5100A58D8F /* GLEssentialsWindowController.h */,
4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */,
);
name = OSX;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
4280D3E918E8307A00E4CDFB /* iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4280D41718E8307A00E4CDFB /* Build configuration list for PBXNativeTarget "iOS" */;
buildPhases = (
4280D3E818E8307A00E4CDFB /* Resources */,
4280D3E618E8307A00E4CDFB /* Sources */,
4280D3E718E8307A00E4CDFB /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = iOS;
productName = "GLEssentials iOS";
productReference = 4280D3EA18E8307A00E4CDFB /* GLEssentials iOS.app */;
productType = "com.apple.product-type.application";
};
8D1107260486CEB800E47090 /* OSX */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OSX" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = OSX;
productInstallPath = "$(HOME)/Applications";
productName = OSXGLEssentials;
productReference = 3A1598D311B9DDB0001E7AB5 /* GLEssentials OSX.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GLEssentials" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
en,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* OSXGLEssentials */;
projectDirPath = "";
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* OSX */,
4280D3E918E8307A00E4CDFB /* iOS */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4280D3E818E8307A00E4CDFB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4280D42F18E831D200E4CDFB /* Main_iPad.storyboard in Resources */,
4280D43018E831D200E4CDFB /* Main_iPhone.storyboard in Resources */,
4280D42D18E831D200E4CDFB /* Fractal-iOS.vsh in Resources */,
4280D42C18E831C900E4CDFB /* Fractal-iOS.fsh in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4280D43818E839C100E4CDFB /* Images.xcassets in Resources */,
4295A2F318CBB22800A58D8F /* MainMenu.xib in Resources */,
4295A2FA18CBC15000A58D8F /* Fractal.vsh in Resources */,
4295A2FB18CBC15000A58D8F /* Fractal.fsh in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
4280D3E618E8307A00E4CDFB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4280D43218E8321100E4CDFB /* main.m in Sources */,
4280D43318E8321100E4CDFB /* AppDelegate.m in Sources */,
4280D43418E8321100E4CDFB /* ViewController.m in Sources */,
4280D43118E8321100E4CDFB /* Game.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4295A2EB18CBB0F700A58D8F /* main.m in Sources */,
4295A2CA18CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m in Sources */,
4295A2CB18CB4E5100A58D8F /* GLEssentialsGLView.m in Sources */,
4295A2CC18CB4E5100A58D8F /* GLEssentialsWindowController.m in Sources */,
4295A2E018CB68A400A58D8F /* Game.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
4280D41318E8307A00E4CDFB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
ESSENTIAL_GL_PRACTICES_IOS,
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/iOS/GLEssentials-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
4280D41418E8307A00E4CDFB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PREPROCESSOR_DEFINITIONS = ESSENTIAL_GL_PRACTICES_IOS;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/iOS/GLEssentials-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/OSX/GLEssentials-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "GLEssentials OSX";
};
name = Debug;
};
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/OSX/GLEssentials-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "GLEssentials OSX";
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
4280D41718E8307A00E4CDFB /* Build configuration list for PBXNativeTarget "iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4280D41318E8307A00E4CDFB /* Debug */,
4280D41418E8307A00E4CDFB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OSX" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */,
C01FCF4C08A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GLEssentials" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}

2
GLEssentials/Game.h

@ -7,8 +7,10 @@
// //
@import Foundation; @import Foundation;
@import CoreGraphics;
@interface Game : NSObject @interface Game : NSObject
- (void)update:(float)dt; - (void)update:(float)dt;
- (void)draw; - (void)draw;
@property (nonatomic) CGSize windowSize;
@end @end

58
GLEssentials/Images.xcassets/AppIcon.appiconset/Contents.json

@ -0,0 +1,58 @@
{
"images" : [
{
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

49
GLEssentials/Images.xcassets/LaunchImage.launchimage/Contents.json

@ -0,0 +1,49 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"minimum-system-version" : "7.0",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"extent" : "full-screen",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

4
GLEssentials/OSX/GLEssentials-Info.plist

@ -15,11 +15,11 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.7</string> <string>1.0</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>Dan Omachi</string> <string>Joshua Moerman</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSMainNibFile</key> <key>NSMainNibFile</key>

25
GLEssentials/OSX/GLEssentialsGLView.m

@ -122,8 +122,6 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,
GLint swapInt = 1; GLint swapInt = 1;
[[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval];
// Init our renderer. Use 0 for the defaultFBO which is appropriate for
// OSX (but not iOS since iOS apps must create their own FBO)
game = [[Game alloc] init]; game = [[Game alloc] init];
} }
@ -136,29 +134,13 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,
// simultaneously when resizing. // simultaneously when resizing.
CGLLockContext([self.openGLContext CGLContextObj]); CGLLockContext([self.openGLContext CGLContextObj]);
// Get the view size in Points
NSRect viewRectPoints = self.bounds; NSRect viewRectPoints = self.bounds;
// Rendering at retina resolutions will reduce aliasing, but at the potential // [NSView convertRectToBacking] converts point sizes to pixel sizes.
// cost of framerate and battery life due to the GPU needing to render more
// pixels.
// Any calculations the renderer does which use pixel dimentions, must be
// in "retina" space. [NSView convertRectToBacking] converts point sizes
// to pixel sizes. Thus the renderer gets the size in pixels, not points,
// so that it can set it's viewport and perform and other pixel based
// calculations appropriately.
// viewRectPixels will be larger (2x) than viewRectPoints for retina displays. // viewRectPixels will be larger (2x) than viewRectPoints for retina displays.
// viewRectPixels will be the same as viewRectPoints for non-retina displays // viewRectPixels will be the same as viewRectPoints for non-retina displays
NSRect viewRectPixels = [self convertRectToBacking:viewRectPoints]; NSRect viewRectPixels = [self convertRectToBacking:viewRectPoints];
game.windowSize = viewRectPixels.size;
// If we do not want retina (why wouldn't you want it?). DO:
// Points:Pixels is always 1:1 when not supporting retina resolutions
// NSRect viewRectPixels = viewRectPoints;
// Set the new dimensions in our renderer
// [m_renderer resizeWithWidth:viewRectPixels.size.width AndHeight:viewRectPixels.size.height];
CGLUnlockContext([self.openGLContext CGLContextObj]); CGLUnlockContext([self.openGLContext CGLContextObj]);
} }
@ -195,9 +177,8 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,
NSRect viewRectPoints = self.bounds; NSRect viewRectPoints = self.bounds;
NSRect viewRectPixels = [self convertRectToBacking:viewRectPoints]; NSRect viewRectPixels = [self convertRectToBacking:viewRectPoints];
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
glViewport(0, 0, viewRectPixels.size.width, viewRectPixels.size.height); glViewport(0, 0, (int)viewRectPixels.size.width, (int)viewRectPixels.size.height);
[game update:1/60.0f]; [game update:1/60.0f];
[game draw]; [game draw];

2
GLEssentials/iOS/GLEssentials-Info.plist

@ -17,7 +17,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.7</string> <string>1.0</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

2
GLEssentials/iOS/ViewController.m

@ -77,7 +77,7 @@
#pragma mark - GLKView and GLKViewController delegate methods #pragma mark - GLKView and GLKViewController delegate methods
- (void)update{ - (void)update{
[game update:self.timeSinceLastUpdate]; [game update:(float)self.timeSinceLastUpdate];
} }
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect{ - (void)glkView:(GLKView *)view drawInRect:(CGRect)rect{

254
OSXGLEssentials.xcodeproj/project.pbxproj

@ -1,254 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4295A2CA18CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */; };
4295A2CB18CB4E5100A58D8F /* GLEssentialsGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */; };
4295A2CC18CB4E5100A58D8F /* GLEssentialsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */; };
4295A2E018CB68A400A58D8F /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2DF18CB68A400A58D8F /* Game.m */; };
4295A2EB18CBB0F700A58D8F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2EA18CBB0F700A58D8F /* main.m */; };
4295A2F318CBB22800A58D8F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F218CBB22800A58D8F /* MainMenu.xib */; };
4295A2F718CBBFF100A58D8F /* Fractal.vsh in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2F618CBBFF100A58D8F /* Fractal.vsh */; };
4295A2F918CBC00600A58D8F /* Fractal.fsh in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2F818CBC00500A58D8F /* Fractal.fsh */; };
4295A2FA18CBC15000A58D8F /* Fractal.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F618CBBFF100A58D8F /* Fractal.vsh */; };
4295A2FB18CBC15000A58D8F /* Fractal.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2F818CBC00500A58D8F /* Fractal.fsh */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
3A1598D311B9DDB0001E7AB5 /* OSXGLEssentials.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OSXGLEssentials.app; sourceTree = BUILT_PRODUCTS_DIR; };
4295A2C218CB4E5100A58D8F /* GLEssentialsFullscreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsFullscreenWindow.h; path = GLEssentials/OSX/GLEssentialsFullscreenWindow.h; sourceTree = "<group>"; };
4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsFullscreenWindow.m; path = GLEssentials/OSX/GLEssentialsFullscreenWindow.m; sourceTree = "<group>"; };
4295A2C418CB4E5100A58D8F /* GLEssentialsGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsGLView.h; path = GLEssentials/OSX/GLEssentialsGLView.h; sourceTree = "<group>"; };
4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsGLView.m; path = GLEssentials/OSX/GLEssentialsGLView.m; sourceTree = "<group>"; };
4295A2C618CB4E5100A58D8F /* GLEssentialsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLEssentialsWindowController.h; path = GLEssentials/OSX/GLEssentialsWindowController.h; sourceTree = "<group>"; };
4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GLEssentialsWindowController.m; path = GLEssentials/OSX/GLEssentialsWindowController.m; sourceTree = "<group>"; };
4295A2DE18CB68A400A58D8F /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Game.h; path = GLEssentials/Game.h; sourceTree = "<group>"; };
4295A2DF18CB68A400A58D8F /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Game.m; path = GLEssentials/Game.m; sourceTree = "<group>"; };
4295A2EA18CBB0F700A58D8F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = GLEssentials/OSX/main.m; sourceTree = "<group>"; };
4295A2F018CBB1D200A58D8F /* GLEssentials-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GLEssentials-Info.plist"; path = "GLEssentials/OSX/GLEssentials-Info.plist"; sourceTree = "<group>"; };
4295A2F218CBB22800A58D8F /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainMenu.xib; path = GLEssentials/OSX/MainMenu.xib; sourceTree = "<group>"; };
4295A2F618CBBFF100A58D8F /* Fractal.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = Fractal.vsh; path = GLEssentials/Fractal.vsh; sourceTree = "<group>"; };
4295A2F818CBC00500A58D8F /* Fractal.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = Fractal.fsh; path = GLEssentials/Fractal.fsh; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
080E96DDFE201D6D7F000001 /* GLEssentials */ = {
isa = PBXGroup;
children = (
4295A2DE18CB68A400A58D8F /* Game.h */,
4295A2DF18CB68A400A58D8F /* Game.m */,
4295A2F618CBBFF100A58D8F /* Fractal.vsh */,
4295A2F818CBC00500A58D8F /* Fractal.fsh */,
4295A2F418CBB24A00A58D8F /* OSX */,
29B97315FDCFA39411CA2CEA /* Supporting Files */,
);
name = GLEssentials;
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
3A1598D311B9DDB0001E7AB5 /* OSXGLEssentials.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* OSXGLEssentials */ = {
isa = PBXGroup;
children = (
080E96DDFE201D6D7F000001 /* GLEssentials */,
19C28FACFE9D520D11CA2CBB /* Products */,
);
name = OSXGLEssentials;
sourceTree = "<group>";
};
29B97315FDCFA39411CA2CEA /* Supporting Files */ = {
isa = PBXGroup;
children = (
4295A2F018CBB1D200A58D8F /* GLEssentials-Info.plist */,
4295A2EA18CBB0F700A58D8F /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4295A2F418CBB24A00A58D8F /* OSX */ = {
isa = PBXGroup;
children = (
4295A2C218CB4E5100A58D8F /* GLEssentialsFullscreenWindow.h */,
4295A2C318CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m */,
4295A2C418CB4E5100A58D8F /* GLEssentialsGLView.h */,
4295A2C518CB4E5100A58D8F /* GLEssentialsGLView.m */,
4295A2C618CB4E5100A58D8F /* GLEssentialsWindowController.h */,
4295A2C718CB4E5100A58D8F /* GLEssentialsWindowController.m */,
4295A2F218CBB22800A58D8F /* MainMenu.xib */,
);
name = OSX;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* OSXGLEssentials */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OSXGLEssentials" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = OSXGLEssentials;
productInstallPath = "$(HOME)/Applications";
productName = OSXGLEssentials;
productReference = 3A1598D311B9DDB0001E7AB5 /* OSXGLEssentials.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0450;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OSXGLEssentials" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* OSXGLEssentials */;
projectDirPath = "";
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* OSXGLEssentials */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4295A2FA18CBC15000A58D8F /* Fractal.vsh in Resources */,
4295A2FB18CBC15000A58D8F /* Fractal.fsh in Resources */,
4295A2F318CBB22800A58D8F /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4295A2F918CBC00600A58D8F /* Fractal.fsh in Sources */,
4295A2EB18CBB0F700A58D8F /* main.m in Sources */,
4295A2F718CBBFF100A58D8F /* Fractal.vsh in Sources */,
4295A2CA18CB4E5100A58D8F /* GLEssentialsFullscreenWindow.m in Sources */,
4295A2CC18CB4E5100A58D8F /* GLEssentialsWindowController.m in Sources */,
4295A2E018CB68A400A58D8F /* Game.m in Sources */,
4295A2CB18CB4E5100A58D8F /* GLEssentialsGLView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/OSX/GLEssentials-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = OSXGLEssentials;
};
name = Debug;
};
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/OSX/GLEssentials-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = OSXGLEssentials;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OSXGLEssentials" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */,
C01FCF4C08A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OSXGLEssentials" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}

3
README.md

@ -1,6 +1,6 @@
# GLMinimals # GLMinimals
Very minimaal Xcode projects for OpenGL apps (both OSX and iOS). Very minimal Xcode projects for OpenGL apps (both OSX and iOS).
## Motivation ## Motivation
@ -14,6 +14,7 @@ I wanted a unified framework for OpenGL on both OSX and iOS without to much of a
* Removed their basic glUtils (as such functionality is in GLKit anyways) * Removed their basic glUtils (as such functionality is in GLKit anyways)
* Restructered project and a lot of simplifications * Restructered project and a lot of simplifications
* Retina is supported by default * Retina is supported by default
* Single project file with two targets (OSX and iOS)
## Where to plug in ## Where to plug in

32
Readme.txt

@ -1,32 +0,0 @@
GLEssentials
================================================================================
DESCRIPTION:
This sample provides an example of some of the techniques described in the
"OpenGL Essential Design Practices" WWDC 2010 session. There are usages of
Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs), Framebuffer Objects
(FBO), and GLSL Program Objects. It creates a VAO and VBOs from model data
loaded in. It creates a texture for the model from image data and GLSL shaders
from source also loaded in. It also creates an FBO and texture to render a
reflection of the model. It uses an environment mapping GLSL program to apply
the reflection texture to a plane. This sample also demonstrates sharing of
OpenGL ES source code for iPhone OS and OpenGL source code for OS X.
Additionally, it implement fullscreen rendering, retina display support, and
demonstrates how to obtain and use an OpenGL 3.2 rendering context on OS X.
================================================================================
BUILD REQUIREMENTS:
Mac version: Mac OS X v10.6 or later, Xcode 3.1 or later
iOS version: iOS SDK 4.0 or later
================================================================================
RUNTIME REQUIREMENTS:
Mac version: Mac OS X v10.6 or later
Mac version: Mac OS X Lion or later to use OpenGL 3.2
iOS version: iOS 4.0 or later (with OpenGL ES 2.0 support)
================================================================================
Copyright (C) 2010~2013 Apple Inc. All rights reserved.

269
iOSGLEssentials.xcodeproj/project.pbxproj

@ -1,269 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4295A2AC18CA2C1200A58D8F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2A718CA2C1200A58D8F /* AppDelegate.m */; };
4295A2AD18CA2C1200A58D8F /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2A818CA2C1200A58D8F /* Main_iPad.storyboard */; };
4295A2AE18CA2C1200A58D8F /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2A918CA2C1200A58D8F /* Main_iPhone.storyboard */; };
4295A2AF18CA2C1200A58D8F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2AB18CA2C1200A58D8F /* ViewController.m */; };
4295A2DD18CB58B200A58D8F /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2DC18CB58B200A58D8F /* Game.m */; };
4295A2ED18CBB11900A58D8F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2EC18CBB11900A58D8F /* main.m */; };
4295A2EF18CBB1C800A58D8F /* GLEssentials-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2EE18CBB1C800A58D8F /* GLEssentials-Info.plist */; };
4295A2FE18CBC7D800A58D8F /* Fractal-iOS.fsh in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2FC18CBC7D800A58D8F /* Fractal-iOS.fsh */; };
4295A2FF18CBC7D800A58D8F /* Fractal-iOS.vsh in Sources */ = {isa = PBXBuildFile; fileRef = 4295A2FD18CBC7D800A58D8F /* Fractal-iOS.vsh */; };
4295A30018CBC81700A58D8F /* Fractal-iOS.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2FC18CBC7D800A58D8F /* Fractal-iOS.fsh */; };
4295A30118CBC81700A58D8F /* Fractal-iOS.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 4295A2FD18CBC7D800A58D8F /* Fractal-iOS.vsh */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
3A609E3811B9DB3300AA4C48 /* iOSGLEssentials.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOSGLEssentials.app; sourceTree = BUILT_PRODUCTS_DIR; };
4295A2A618CA2C1200A58D8F /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = GLEssentials/iOS/AppDelegate.h; sourceTree = "<group>"; };
4295A2A718CA2C1200A58D8F /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = GLEssentials/iOS/AppDelegate.m; sourceTree = "<group>"; };
4295A2A818CA2C1200A58D8F /* Main_iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main_iPad.storyboard; path = GLEssentials/iOS/Main_iPad.storyboard; sourceTree = "<group>"; };
4295A2A918CA2C1200A58D8F /* Main_iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main_iPhone.storyboard; path = GLEssentials/iOS/Main_iPhone.storyboard; sourceTree = "<group>"; };
4295A2AA18CA2C1200A58D8F /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ViewController.h; path = GLEssentials/iOS/ViewController.h; sourceTree = "<group>"; };
4295A2AB18CA2C1200A58D8F /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ViewController.m; path = GLEssentials/iOS/ViewController.m; sourceTree = "<group>"; };
4295A2DB18CB58B200A58D8F /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Game.h; path = GLEssentials/Game.h; sourceTree = "<group>"; };
4295A2DC18CB58B200A58D8F /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Game.m; path = GLEssentials/Game.m; sourceTree = "<group>"; };
4295A2EC18CBB11900A58D8F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = GLEssentials/iOS/main.m; sourceTree = "<group>"; };
4295A2EE18CBB1C800A58D8F /* GLEssentials-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GLEssentials-Info.plist"; path = "GLEssentials/iOS/GLEssentials-Info.plist"; sourceTree = "<group>"; };
4295A2FC18CBC7D800A58D8F /* Fractal-iOS.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = "Fractal-iOS.fsh"; path = "GLEssentials/Fractal-iOS.fsh"; sourceTree = "<group>"; };
4295A2FD18CBC7D800A58D8F /* Fractal-iOS.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = "Fractal-iOS.vsh"; path = "GLEssentials/Fractal-iOS.vsh"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
3A609E3811B9DB3300AA4C48 /* iOSGLEssentials.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
isa = PBXGroup;
children = (
4295A2A518CA2C0300A58D8F /* GLEssentials */,
19C28FACFE9D520D11CA2CBB /* Products */,
);
name = CustomTemplate;
sourceTree = "<group>";
};
4295A2A518CA2C0300A58D8F /* GLEssentials */ = {
isa = PBXGroup;
children = (
4295A2FC18CBC7D800A58D8F /* Fractal-iOS.fsh */,
4295A2FD18CBC7D800A58D8F /* Fractal-iOS.vsh */,
4295A2DB18CB58B200A58D8F /* Game.h */,
4295A2DC18CB58B200A58D8F /* Game.m */,
4295A2F518CBB26C00A58D8F /* iOS */,
4295A2B018CA2C1600A58D8F /* Supporting Files */,
);
name = GLEssentials;
sourceTree = "<group>";
};
4295A2B018CA2C1600A58D8F /* Supporting Files */ = {
isa = PBXGroup;
children = (
4295A2EE18CBB1C800A58D8F /* GLEssentials-Info.plist */,
4295A2EC18CBB11900A58D8F /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4295A2F518CBB26C00A58D8F /* iOS */ = {
isa = PBXGroup;
children = (
4295A2A618CA2C1200A58D8F /* AppDelegate.h */,
4295A2A718CA2C1200A58D8F /* AppDelegate.m */,
4295A2A818CA2C1200A58D8F /* Main_iPad.storyboard */,
4295A2A918CA2C1200A58D8F /* Main_iPhone.storyboard */,
4295A2AA18CA2C1200A58D8F /* ViewController.h */,
4295A2AB18CA2C1200A58D8F /* ViewController.m */,
);
name = iOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
1D6058900D05DD3D006BFB54 /* GLEssentials */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GLEssentials" */;
buildPhases = (
1D60588D0D05DD3D006BFB54 /* Resources */,
1D60588E0D05DD3D006BFB54 /* Sources */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = GLEssentials;
productName = iOSGLEssentials;
productReference = 3A609E3811B9DB3300AA4C48 /* iOSGLEssentials.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iOSGLEssentials" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
projectDirPath = "";
projectRoot = "";
targets = (
1D6058900D05DD3D006BFB54 /* GLEssentials */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
1D60588D0D05DD3D006BFB54 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4295A30018CBC81700A58D8F /* Fractal-iOS.fsh in Resources */,
4295A30118CBC81700A58D8F /* Fractal-iOS.vsh in Resources */,
4295A2AE18CA2C1200A58D8F /* Main_iPhone.storyboard in Resources */,
4295A2AD18CA2C1200A58D8F /* Main_iPad.storyboard in Resources */,
4295A2EF18CBB1C800A58D8F /* GLEssentials-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
1D60588E0D05DD3D006BFB54 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4295A2DD18CB58B200A58D8F /* Game.m in Sources */,
4295A2FF18CBC7D800A58D8F /* Fractal-iOS.vsh in Sources */,
4295A2AF18CA2C1200A58D8F /* ViewController.m in Sources */,
4295A2FE18CBC7D800A58D8F /* Fractal-iOS.fsh in Sources */,
4295A2ED18CBB11900A58D8F /* main.m in Sources */,
4295A2AC18CA2C1200A58D8F /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = NO;
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/iOS/GLEssentials-Info.plist";
PRODUCT_NAME = iOSGLEssentials;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = NO;
COPY_PHASE_STRIP = YES;
INFOPLIST_FILE = "$(SRCROOT)/GLEssentials/iOS/GLEssentials-Info.plist";
PRODUCT_NAME = iOSGLEssentials;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_PREPROCESSOR_DEFINITIONS = ESSENTIAL_GL_PRACTICES_IOS;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_PREPROCESSOR_DEFINITIONS = ESSENTIAL_GL_PRACTICES_IOS;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GLEssentials" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1D6058940D05DD3E006BFB54 /* Debug */,
1D6058950D05DD3E006BFB54 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iOSGLEssentials" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}