- Fixed compilation issues on iOS.

- Rewrote from scratch class related to iOS device (Application delegate is hidden inside Irrlicht -> events will be exposed outside in upcoming commit).
- Added iOS example (at now example structure for iOS looks the same like for the other platforms - without application delegate).
- Integrated iOS projects with existing XCode projects.
- Added external context manager with support for EAGL.
- Removed *.xib dependencies from iOS project.
- Added missing _IRR_OVERRIDE_ for some methods.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@5213 dfc29bdd-3216-0410-991c-e03cc46cb475
master
nadro 2015-12-13 19:13:45 +00:00
parent d845c35e7d
commit 3fbea082cc
33 changed files with 2616 additions and 4169 deletions

View File

@ -0,0 +1,68 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,300 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
5E172FF01C1DB99B0024464F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E172FEF1C1DB99B0024464F /* UIKit.framework */; };
5E172FF21C1DB9C80024464F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E172FF11C1DB9C80024464F /* CoreMotion.framework */; };
5E172FF41C1DBA610024464F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E172FF31C1DBA610024464F /* OpenGLES.framework */; };
5E172FF81C1DBAC30024464F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E172FF71C1DBAC30024464F /* Foundation.framework */; };
5E172FFC1C1DBB280024464F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E172FFB1C1DBB280024464F /* QuartzCore.framework */; };
5E6AC1831C1DA8A100DADD92 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E6AC1821C1DA8A100DADD92 /* main.cpp */; };
5E6AC1881C1DA9C000DADD92 /* media in Resources */ = {isa = PBXBuildFile; fileRef = 5E6AC1871C1DA9C000DADD92 /* media */; };
5E6AC18B1C1DAA3100DADD92 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5E6AC18A1C1DAA3100DADD92 /* Assets.xcassets */; };
5E6AC18D1C1DAD9500DADD92 /* libIrrlicht.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E6AC18C1C1DAD9500DADD92 /* libIrrlicht.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
5E172FEF1C1DB99B0024464F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
5E172FF11C1DB9C80024464F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
5E172FF31C1DBA610024464F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
5E172FF71C1DBAC30024464F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
5E172FFB1C1DBB280024464F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
5E6AC1821C1DA8A100DADD92 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
5E6AC1871C1DA9C000DADD92 /* media */ = {isa = PBXFileReference; lastKnownFileType = folder; name = media; path = ../../media; sourceTree = "<group>"; };
5E6AC1891C1DA9CE00DADD92 /* 28.HelloWorld_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = 28.HelloWorld_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
5E6AC18A1C1DAA3100DADD92 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
5E6AC18C1C1DAD9500DADD92 /* libIrrlicht.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libIrrlicht.a; path = ../../lib/iOS/libIrrlicht.a; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
5E6AC1651C1DA6CF00DADD92 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5E172FF21C1DB9C80024464F /* CoreMotion.framework in Frameworks */,
5E172FF81C1DBAC30024464F /* Foundation.framework in Frameworks */,
5E172FF41C1DBA610024464F /* OpenGLES.framework in Frameworks */,
5E172FF01C1DB99B0024464F /* UIKit.framework in Frameworks */,
5E172FFC1C1DBB280024464F /* QuartzCore.framework in Frameworks */,
5E6AC18D1C1DAD9500DADD92 /* libIrrlicht.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
5E6AC15F1C1DA6CF00DADD92 = {
isa = PBXGroup;
children = (
5E6AC1821C1DA8A100DADD92 /* main.cpp */,
5E6AC1851C1DA91500DADD92 /* Libraries */,
5E6AC1841C1DA90B00DADD92 /* Products */,
5E6AC1861C1DA91E00DADD92 /* Resources */,
);
sourceTree = "<group>";
};
5E6AC1841C1DA90B00DADD92 /* Products */ = {
isa = PBXGroup;
children = (
5E6AC1891C1DA9CE00DADD92 /* 28.HelloWorld_iOS.app */,
);
name = Products;
sourceTree = "<group>";
};
5E6AC1851C1DA91500DADD92 /* Libraries */ = {
isa = PBXGroup;
children = (
5E172FF11C1DB9C80024464F /* CoreMotion.framework */,
5E172FF71C1DBAC30024464F /* Foundation.framework */,
5E172FF31C1DBA610024464F /* OpenGLES.framework */,
5E172FEF1C1DB99B0024464F /* UIKit.framework */,
5E172FFB1C1DBB280024464F /* QuartzCore.framework */,
5E6AC18C1C1DAD9500DADD92 /* libIrrlicht.a */,
);
name = Libraries;
sourceTree = "<group>";
};
5E6AC1861C1DA91E00DADD92 /* Resources */ = {
isa = PBXGroup;
children = (
5E6AC18A1C1DAA3100DADD92 /* Assets.xcassets */,
5E6AC1871C1DA9C000DADD92 /* media */,
);
name = Resources;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
5E6AC1671C1DA6CF00DADD92 /* 28.HelloWorld_iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5E6AC17F1C1DA6D000DADD92 /* Build configuration list for PBXNativeTarget "28.HelloWorld_iOS" */;
buildPhases = (
5E6AC1641C1DA6CF00DADD92 /* Sources */,
5E6AC1651C1DA6CF00DADD92 /* Frameworks */,
5E6AC1661C1DA6CF00DADD92 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = 28.HelloWorld_iOS;
productName = 28.HelloWorld_iOS;
productReference = 5E6AC1891C1DA9CE00DADD92 /* 28.HelloWorld_iOS.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
5E6AC1601C1DA6CF00DADD92 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0710;
TargetAttributes = {
5E6AC1671C1DA6CF00DADD92 = {
CreatedOnToolsVersion = 7.1.1;
};
};
};
buildConfigurationList = 5E6AC1631C1DA6CF00DADD92 /* Build configuration list for PBXProject "HelloWorld_iOS" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 5E6AC15F1C1DA6CF00DADD92;
productRefGroup = 5E6AC15F1C1DA6CF00DADD92;
projectDirPath = "";
projectRoot = "";
targets = (
5E6AC1671C1DA6CF00DADD92 /* 28.HelloWorld_iOS */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
5E6AC1661C1DA6CF00DADD92 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5E6AC18B1C1DAA3100DADD92 /* Assets.xcassets in Resources */,
5E6AC1881C1DA9C000DADD92 /* media in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
5E6AC1641C1DA6CF00DADD92 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5E6AC1831C1DA8A100DADD92 /* main.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
5E6AC17D1C1DA6D000DADD92 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
5E6AC17E1C1DA6D000DADD92 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
5E6AC1801C1DA6D000DADD92 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../include";
INFOPLIST_FILE = "$(SRCROOT)/../../media/info_ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../lib/iOS";
PRODUCT_BUNDLE_IDENTIFIER = "org.irrlicht.-8-HelloWorld-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
5E6AC1811C1DA6D000DADD92 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../include";
INFOPLIST_FILE = "$(SRCROOT)/../../media/info_ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../lib/iOS";
PRODUCT_BUNDLE_IDENTIFIER = "org.irrlicht.-8-HelloWorld-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
5E6AC1631C1DA6CF00DADD92 /* Build configuration list for PBXProject "HelloWorld_iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5E6AC17D1C1DA6D000DADD92 /* Debug */,
5E6AC17E1C1DA6D000DADD92 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
5E6AC17F1C1DA6D000DADD92 /* Build configuration list for PBXNativeTarget "28.HelloWorld_iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5E6AC1801C1DA6D000DADD92 /* Debug */,
5E6AC1811C1DA6D000DADD92 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 5E6AC1601C1DA6CF00DADD92 /* Project object */;
}

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E6AC1671C1DA6CF00DADD92"
BuildableName = "28.HelloWorld_iOS.app"
BlueprintName = "28.HelloWorld_iOS"
ReferencedContainer = "container:HelloWorld_iOS.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E6AC1671C1DA6CF00DADD92"
BuildableName = "28.HelloWorld_iOS.app"
BlueprintName = "28.HelloWorld_iOS"
ReferencedContainer = "container:HelloWorld_iOS.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E6AC1671C1DA6CF00DADD92"
BuildableName = "28.HelloWorld_iOS.app"
BlueprintName = "28.HelloWorld_iOS"
ReferencedContainer = "container:HelloWorld_iOS.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E6AC1671C1DA6CF00DADD92"
BuildableName = "28.HelloWorld_iOS.app"
BlueprintName = "28.HelloWorld_iOS"
ReferencedContainer = "container:HelloWorld_iOS.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,62 @@
#include <irrlicht.h>
#include "exampleHelper.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
// It's important for iOS projects to use 'irrlicht_main' instead of standard 'main' function.
void irrlicht_main()
{
IrrlichtDevice *device = createDevice(EDT_OGLES2, dimension2d<u32>(0, 0), 16, false, false, false, 0);
if (!device)
return;
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!", rect<s32>(10,10,260,22), true);
const io::path mediaPath = getExampleMediaPath();
IAnimatedMesh* mesh = smgr->getMesh(mediaPath + "sydney.md2");
if (!mesh)
{
device->drop();
return;
}
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMD2Animation(scene::EMAT_STAND);
node->setMaterialTexture( 0, driver->getTexture(mediaPath + "sydney.bmp") );
}
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
while (device->run())
if (device->isWindowActive())
{
driver->beginScene(ECBF_COLOR | ECBF_DEPTH, SColor(255,255,255,255));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
}

View File

@ -1,2 +0,0 @@
This example is currently only available in Irrlicht svn branch for ogl-es: https://sourceforge.net/p/irrlicht/code/HEAD/tree/branches/ogl-es
It will be merged with the svn trunk at some point in the future.

View File

@ -73,6 +73,9 @@
<FileRef
location = "group:26.OcclusionQuery/OcclusionQuery.xcodeproj">
</FileRef>
<FileRef
location = "group:28.HelloWorld_iOS/HelloWorld_iOS.xcodeproj">
</FileRef>
<FileRef
location = "group:30.Profiling/Profiling.xcodeproj">
</FileRef>

View File

@ -29,9 +29,9 @@ namespace irr
/** This device uses Apple's Cocoa API and works in Mac OSX 10.2 and above. */
EIDT_OSX,
//! A device native to the IPhone/IPod touch
//! A device native to the iOS
/** This device should be used with the OpenGL-ES driver. */
EIDT_IPHONE,
EIDT_IOS,
//! A device which uses Simple DirectMedia Layer
/** The SDL device works under all platforms supported by SDL but first must be compiled

View File

@ -109,7 +109,7 @@
#endif
#endif
#if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_ANDROID_PLATFORM_)
#if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_IOS_PLATFORM_) && !defined(_IRR_ANDROID_PLATFORM_)
#ifndef _IRR_SOLARIS_PLATFORM_
#define _IRR_LINUX_PLATFORM_
#endif

View File

@ -86,6 +86,9 @@ struct SExposedVideoData
//! The subview UIView object where the drawing happens.
void* View;
//! The UIViewController object.
void* ViewController;
//! The UIWindow object.
void* Window;
};

View File

@ -51,13 +51,11 @@ namespace irr
UsePerformanceTimer(true),
SDK_version_do_not_use(IRRLICHT_SDK_VERSION),
PrivateData(0),
#ifdef _IRR_COMPILE_WITH_IPHONE_DEVICE_
OGLES2ShaderPath("")
#elif defined(_IRR_ANDROID_PLATFORM_)
#if defined(_IRR_COMPILE_WITH_IOS_DEVICE_) || defined(_IRR_ANDROID_PLATFORM_)
OGLES2ShaderPath("media/Shaders/")
#else
#else
OGLES2ShaderPath("../../media/Shaders/")
#endif
#endif
{
}

View File

@ -13,7 +13,7 @@ namespace irr
static io::path getExampleMediaPath()
{
#if defined (_IRR_IPHONE_PLATFORM_) || defined (_IRR_ANDROID_PLATFORM_) || defined (_IRR_OSX_PLATFORM_)
#if defined (_IRR_IOS_PLATFORM_) || defined (_IRR_ANDROID_PLATFORM_) || defined (_IRR_OSX_PLATFORM_)
return io::path("media/");
#else
return io::path("../../media/");

View File

@ -4,16 +4,14 @@
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>irrlicht.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
@ -21,20 +19,18 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
<string>Interface_iPhone</string>
<key>NSMainNibFile~ipad</key>
<string>Interface_iPad</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UIStatusBarHidden</key>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden~ipad</key>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
@ -43,6 +39,9 @@
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,87 @@
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in Irrlicht.h
#ifndef __C_EAGL_MANAGER_H_INCLUDED__
#define __C_EAGL_MANAGER_H_INCLUDED__
#include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_EAGL_MANAGER_
#include "SIrrCreationParameters.h"
#include "SExposedVideoData.h"
#include "IContextManager.h"
namespace irr
{
namespace video
{
// EAGL manager.
class CEAGLManager : public IContextManager
{
public:
//! Constructor.
CEAGLManager();
//! Destructor.
virtual ~CEAGLManager();
// Initialize EAGL.
/* This method checks if a view has CAEAGLLayer and grabs it if it does, anyway surface and context
aren't create. */
bool initialize(const SIrrlichtCreationParameters& params, const SExposedVideoData& data);
// Terminate EAGL.
/* Terminate EAGL context. This method break both existed surface and context. */
void terminate();
// Create EAGL surface.
/* This method configure CAEAGLLayer. */
bool generateSurface();
// Destroy EAGL surface.
/* This method reset CAEAGLLayer states. */
void destroySurface();
// Create EAGL context.
/* This method create and activate EAGL context. */
bool generateContext();
// Destroy EAGL context.
/* This method destroy EAGL context. */
void destroyContext();
const SExposedVideoData& getContext() const;
bool activateContext(const SExposedVideoData& videoData);
// Swap buffers.
bool swapBuffers();
private:
SIrrlichtCreationParameters Params;
SExposedVideoData Data;
bool Configured;
void* DataStorage;
struct SFrameBuffer
{
SFrameBuffer() : BufferID(0), ColorBuffer(0), DepthBuffer(0)
{
}
u32 BufferID;
u32 ColorBuffer;
u32 DepthBuffer;
};
SFrameBuffer FrameBuffer;
};
}
}
#endif
#endif

View File

@ -0,0 +1,273 @@
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in Irrlicht.h
#include "CEAGLManager.h"
#ifdef _IRR_COMPILE_WITH_EAGL_MANAGER_
#include "irrString.h"
#include "os.h"
#import <UIKit/UIKit.h>
#import <OpenGLES/EAGL.h>
#if defined(_IRR_COMPILE_WITH_OGLES1_)
#include <OpenGLES/ES1/gl.h>
#include <OpenGLES/ES1/glext.h>
#elif defined(_IRR_COMPILE_WITH_OGLES2_)
#include <OpenGLES/ES2/gl.h>
#include <OpenGLES/ES2/glext.h>
#endif
namespace irr
{
namespace video
{
struct SEAGLManagerDataStorage
{
SEAGLManagerDataStorage() : Layer(0), Context(0)
{
}
CAEAGLLayer* Layer;
EAGLContext* Context;
};
CEAGLManager::CEAGLManager() : IContextManager(), Configured(false), DataStorage(0)
{
#ifdef _DEBUG
setDebugName("CEAGLManager");
#endif
DataStorage = new SEAGLManagerDataStorage();
}
CEAGLManager::~CEAGLManager()
{
destroyContext();
destroySurface();
terminate();
delete static_cast<SEAGLManagerDataStorage*>(DataStorage);
}
bool CEAGLManager::initialize(const SIrrlichtCreationParameters& params, const SExposedVideoData& data)
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
if (dataStorage->Layer != nil)
return true;
Params = params;
Data = data;
UIView* view = (__bridge UIView*)data.OpenGLiOS.View;
if (view == nil || ![[view layer] isKindOfClass:[CAEAGLLayer class]])
{
os::Printer::log("Could not get EAGL display.");
return false;
}
dataStorage->Layer = (CAEAGLLayer*)[view layer];
return true;
}
void CEAGLManager::terminate()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
[EAGLContext setCurrentContext:0];
destroySurface();
if (dataStorage->Layer != nil)
dataStorage->Layer = 0;
}
bool CEAGLManager::generateSurface()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
CAEAGLLayer* layer = dataStorage->Layer;
if (layer == nil)
return false;
if (Configured)
return true;
NSDictionary* attribs = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO],
kEAGLDrawablePropertyRetainedBacking,
(Params.Bits > 16) ? kEAGLColorFormatRGBA8 : kEAGLColorFormatRGB565,
kEAGLDrawablePropertyColorFormat,
nil];
[layer setOpaque:(Params.WithAlphaChannel) ? YES : NO];
[layer setDrawableProperties:attribs];
Configured = true;
return true;
}
void CEAGLManager::destroySurface()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
CAEAGLLayer* layer = dataStorage->Layer;
if (layer == nil)
return;
[layer setOpaque:NO];
[layer setDrawableProperties:nil];
Configured = false;
}
bool CEAGLManager::generateContext()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
if (dataStorage->Context != nil || !Configured)
return false;
EAGLRenderingAPI OpenGLESVersion = 0;
switch (Params.DriverType)
{
case EDT_OGLES1:
OpenGLESVersion = kEAGLRenderingAPIOpenGLES1;
break;
case EDT_OGLES2:
OpenGLESVersion = kEAGLRenderingAPIOpenGLES2;
break;
default:
break;
}
dataStorage->Context = [[EAGLContext alloc] initWithAPI:OpenGLESVersion];
if (dataStorage->Context == nil)
{
os::Printer::log("Could not create EAGL context.", ELL_ERROR);
return false;
}
Data.OpenGLiOS.Context = (__bridge void*)dataStorage->Context;
os::Printer::log("EAGL context created with OpenGLESVersion: ", core::stringc(static_cast<int>(OpenGLESVersion)), ELL_DEBUG);
return true;
}
void CEAGLManager::destroyContext()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
[dataStorage->Context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:nil];
if (FrameBuffer.BufferID != 0)
{
glDeleteFramebuffersOES(1, &FrameBuffer.BufferID);
FrameBuffer.BufferID = 0;
}
if (FrameBuffer.ColorBuffer != 0)
{
glDeleteRenderbuffersOES(1, &FrameBuffer.ColorBuffer);
FrameBuffer.ColorBuffer = 0;
}
if (FrameBuffer.DepthBuffer != 0)
{
glDeleteRenderbuffersOES(1, &FrameBuffer.DepthBuffer);
FrameBuffer.DepthBuffer = 0;
}
[EAGLContext setCurrentContext:0];
if (dataStorage->Context != nil)
dataStorage->Context = 0;
Data.OpenGLiOS.Context = 0;
}
bool CEAGLManager::activateContext(const SExposedVideoData& videoData)
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
EAGLContext* context = dataStorage->Context;
bool status = false;
if (context != nil)
{
status = ([EAGLContext currentContext] == context || [EAGLContext setCurrentContext:context]);
}
if (status)
{
if (FrameBuffer.ColorBuffer == 0)
{
glGenRenderbuffersOES(1, &FrameBuffer.ColorBuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:dataStorage->Layer];
}
if (FrameBuffer.DepthBuffer == 0)
{
GLenum depth = (Params.ZBufferBits >= 24) ? GL_DEPTH_COMPONENT24_OES : GL_DEPTH_COMPONENT16_OES;
glGenRenderbuffersOES(1, &FrameBuffer.DepthBuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.DepthBuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, depth, Params.WindowSize.Width, Params.WindowSize.Height);
}
if (FrameBuffer.BufferID == 0)
{
glGenFramebuffersOES(1, &FrameBuffer.BufferID);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, FrameBuffer.BufferID);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, FrameBuffer.DepthBuffer);
}
glBindFramebufferOES(GL_FRAMEBUFFER_OES, FrameBuffer.BufferID);
}
else
{
os::Printer::log("Could not make EGL context current.");
}
return status;
}
const SExposedVideoData& CEAGLManager::getContext() const
{
return Data;
}
bool CEAGLManager::swapBuffers()
{
SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);
EAGLContext* context = dataStorage->Context;
bool status = false;
if (context != nil && context == [EAGLContext currentContext])
{
glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
status = true;
}
return status;
}
}
}
#endif

View File

@ -31,13 +31,13 @@ CEGLManager::~CEGLManager()
bool CEGLManager::initialize(const SIrrlichtCreationParameters& params, const SExposedVideoData& data)
{
if (EglWindow != 0 && EglDisplay != EGL_NO_DISPLAY)
return true;
// store new data
Params=params;
Data=data;
if (EglWindow != 0 && EglDisplay != EGL_NO_DISPLAY)
return true;
// Window is depend on platform.
#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_)
EglWindow = (NativeWindowType)Data.OpenGLWin32.HWnd;

View File

@ -124,40 +124,40 @@ namespace irr
virtual bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo) _IRR_OVERRIDE_;
//! Activate accelerometer.
virtual bool activateAccelerometer(float updateInterval = 0.016666f);
virtual bool activateAccelerometer(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
//! Deactivate accelerometer.
virtual bool deactivateAccelerometer();
virtual bool deactivateAccelerometer() _IRR_OVERRIDE_;
//! Is accelerometer active.
virtual bool isAccelerometerActive();
virtual bool isAccelerometerActive() _IRR_OVERRIDE_;
//! Is accelerometer available.
virtual bool isAccelerometerAvailable();
virtual bool isAccelerometerAvailable() _IRR_OVERRIDE_;
//! Activate gyroscope.
virtual bool activateGyroscope(float updateInterval = 0.016666f);
virtual bool activateGyroscope(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
//! Deactivate gyroscope.
virtual bool deactivateGyroscope();
virtual bool deactivateGyroscope() _IRR_OVERRIDE_;
//! Is gyroscope active.
virtual bool isGyroscopeActive();
virtual bool isGyroscopeActive() _IRR_OVERRIDE_;
//! Is gyroscope available.
virtual bool isGyroscopeAvailable();
virtual bool isGyroscopeAvailable() _IRR_OVERRIDE_;
//! Activate device motion.
virtual bool activateDeviceMotion(float updateInterval = 0.016666f);
virtual bool activateDeviceMotion(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
//! Deactivate device motion.
virtual bool deactivateDeviceMotion();
virtual bool deactivateDeviceMotion() _IRR_OVERRIDE_;
//! Is device motion active.
virtual bool isDeviceMotionActive();
virtual bool isDeviceMotionActive() _IRR_OVERRIDE_;
//! Is device motion available.
virtual bool isDeviceMotionAvailable();
virtual bool isDeviceMotionAvailable() _IRR_OVERRIDE_;
//! Set the current Gamma Value for the Display
virtual bool setGammaRamp( f32 red, f32 green, f32 blue, f32 brightness, f32 contrast ) _IRR_OVERRIDE_;

View File

@ -0,0 +1,76 @@
// Copyright (C) 2002-2008 Nikolaus Gebhardt
// Copyright (C) 2008 Redshift Software, Inc.
// Copyright (C) 2012-2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_IRR_DEVICE_IOS_H_INCLUDED__
#define __C_IRR_DEVICE_IOS_H_INCLUDED__
#include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_IOS_DEVICE_
#include "CIrrDeviceStub.h"
#include "IrrlichtDevice.h"
#include "IImagePresenter.h"
namespace irr
{
class CIrrDeviceiOS : public CIrrDeviceStub, public video::IImagePresenter
{
public:
CIrrDeviceiOS(const SIrrlichtCreationParameters& params);
virtual ~CIrrDeviceiOS();
virtual bool run() _IRR_OVERRIDE_;
virtual void yield() _IRR_OVERRIDE_;
virtual void sleep(u32 timeMs, bool pauseTimer) _IRR_OVERRIDE_;
virtual void setWindowCaption(const wchar_t* text) _IRR_OVERRIDE_;
virtual bool isWindowActive() const _IRR_OVERRIDE_;
virtual bool isWindowFocused() const _IRR_OVERRIDE_;
virtual bool isWindowMinimized() const _IRR_OVERRIDE_;
virtual bool present(video::IImage* surface, void * windowId = 0, core::rect<s32>* src = 0) _IRR_OVERRIDE_;
virtual void closeDevice() _IRR_OVERRIDE_;
virtual void setResizable(bool resize = false) _IRR_OVERRIDE_;
virtual void minimizeWindow() _IRR_OVERRIDE_;
virtual void maximizeWindow() _IRR_OVERRIDE_;
virtual void restoreWindow() _IRR_OVERRIDE_;
virtual core::position2di getWindowPosition() _IRR_OVERRIDE_;
virtual bool activateAccelerometer(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
virtual bool deactivateAccelerometer() _IRR_OVERRIDE_;
virtual bool isAccelerometerActive() _IRR_OVERRIDE_;
virtual bool isAccelerometerAvailable() _IRR_OVERRIDE_;
virtual bool activateGyroscope(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
virtual bool deactivateGyroscope() _IRR_OVERRIDE_;
virtual bool isGyroscopeActive() _IRR_OVERRIDE_;
virtual bool isGyroscopeAvailable() _IRR_OVERRIDE_;
virtual bool activateDeviceMotion(float updateInterval = 0.016666f) _IRR_OVERRIDE_;
virtual bool deactivateDeviceMotion() _IRR_OVERRIDE_;
virtual bool isDeviceMotionActive() _IRR_OVERRIDE_;
virtual bool isDeviceMotionAvailable() _IRR_OVERRIDE_;
virtual E_DEVICE_TYPE getType() const _IRR_OVERRIDE_;
private:
bool createWindow();
void createViewAndDriver();
void* DataStorage;
};
}
extern void irrlicht_main();
#endif
#endif

View File

@ -0,0 +1,699 @@
// Copyright (C) 2002-2008 Nikolaus Gebhardt
// Copyright (C) 2008 Redshift Software, Inc.
// Copyright (C) 2012 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#import "CIrrDeviceiOS.h"
#ifdef _IRR_COMPILE_WITH_IOS_DEVICE_
#include "IFileSystem.h"
#include "CTimer.h"
#include "CEAGLManager.h"
#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>
namespace irr
{
class CIrrDeviceiOS;
}
/* CIrrDelegateiOS */
@interface CIrrDelegateiOS : NSObject<UIApplicationDelegate>
- (void)setDevice:(irr::CIrrDeviceiOS*)device;
- (bool)isActive;
- (bool)isTerminate;
@property (strong, nonatomic) UIWindow* window;
@end
@implementation CIrrDelegateiOS
{
irr::CIrrDeviceiOS* Device;
bool Active;
bool Terminate;
}
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)options
{
Device = nil;
Active = false;
Terminate = false;
[self performSelectorOnMainThread:@selector(runIrrlicht) withObject:nil waitUntilDone:NO];
return YES;
}
- (void)applicationWillTerminate:(UIApplication*)application
{
Terminate = true;
}
- (void)applicationDidReceiveMemoryWarning:(UIApplication*)application
{
}
- (void)applicationWillResignActive:(UIApplication*)application
{
Active = false;
}
- (void)applicationDidEnterBackground:(UIApplication*)application
{
}
- (void)applicationWillEnterForeground:(UIApplication*)application
{
}
- (void)applicationDidBecomeActive:(UIApplication*)application
{
Active = true;
}
- (void)runIrrlicht
{
irrlicht_main();
}
- (void)setDevice:(irr::CIrrDeviceiOS*)device
{
Device = device;
}
- (bool)isActive
{
return Active;
}
- (bool)isTerminate
{
return Terminate;
}
@end
/* CIrrViewiOS */
@interface CIrrViewiOS : UIView
- (id)initWithFrame:(CGRect)frame forDevice:(irr::CIrrDeviceiOS*)device;
@end
@implementation CIrrViewiOS
{
irr::CIrrDeviceiOS* Device;
float Scale;
}
- (id)initWithFrame:(CGRect)frame forDevice:(irr::CIrrDeviceiOS*)device;
{
self = [super initWithFrame:frame];
if (self)
{
Device = device;
Scale = ([self respondsToSelector:@selector(setContentScaleFactor:)]) ? [[UIScreen mainScreen] scale] : 1.f;
}
return self;
}
- (BOOL)isMultipleTouchEnabled
{
return YES;
}
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_PRESSED_DOWN;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_MOVED;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_LEFT_UP;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_LEFT_UP;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
@end
/* CIrrViewEAGLiOS */
@interface CIrrViewEAGLiOS : CIrrViewiOS
@end
@implementation CIrrViewEAGLiOS
+ (Class)layerClass
{
return [CAEAGLLayer class];
}
@end
namespace irr
{
namespace video
{
IVideoDriver* createOGLES1Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager);
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager);
}
struct SIrrDeviceiOSDataStorage
{
SIrrDeviceiOSDataStorage() : Window(0), ViewController(0), View(0), MotionManager(0), ReferenceAttitude(0)
{
MotionManager = [[CMMotionManager alloc] init];
}
UIWindow* Window;
UIViewController* ViewController;
CIrrViewiOS* View;
CMMotionManager* MotionManager;
CMAttitude* ReferenceAttitude;
};
CIrrDeviceiOS::CIrrDeviceiOS(const SIrrlichtCreationParameters& params) : CIrrDeviceStub(params), DataStorage(0)
{
#ifdef _DEBUG
setDebugName("CIrrDeviceiOS");
#endif
CIrrDelegateiOS* delegate = [UIApplication sharedApplication].delegate;
[delegate setDevice:this];
DataStorage = new SIrrDeviceiOSDataStorage();
if (CreationParams.DriverType != video::EDT_NULL)
{
if (!createWindow())
return;
}
FileSystem->changeWorkingDirectoryTo([[[NSBundle mainBundle] resourcePath] UTF8String]);
createViewAndDriver();
if (!VideoDriver)
return;
createGUIAndScene();
}
CIrrDeviceiOS::~CIrrDeviceiOS()
{
deactivateDeviceMotion();
deactivateGyroscope();
deactivateAccelerometer();
delete static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
}
bool CIrrDeviceiOS::run()
{
const CFTimeInterval timeInSeconds = 0.000002;
s32 result = 0;
do
{
result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, timeInSeconds, TRUE);
} while (result == kCFRunLoopRunHandledSource);
os::Timer::tick();
//! Update events
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
//! Accelerometer
if (motionManager.isAccelerometerActive)
{
irr::SEvent ev;
ev.EventType = irr::EET_ACCELEROMETER_EVENT;
ev.AccelerometerEvent.X = motionManager.accelerometerData.acceleration.x;
ev.AccelerometerEvent.Y = motionManager.accelerometerData.acceleration.y;
ev.AccelerometerEvent.Z = motionManager.accelerometerData.acceleration.z;
postEventFromUser(ev);
}
//! Gyroscope
if (motionManager.isGyroActive)
{
irr::SEvent ev;
ev.EventType = irr::EET_GYROSCOPE_EVENT;
ev.GyroscopeEvent.X = motionManager.gyroData.rotationRate.x;
ev.GyroscopeEvent.Y = motionManager.gyroData.rotationRate.y;
ev.GyroscopeEvent.Z = motionManager.gyroData.rotationRate.z;
postEventFromUser(ev);
}
//! Device Motion
if (motionManager.isDeviceMotionActive)
{
CMAttitude* currentAttitude = motionManager.deviceMotion.attitude;
CMAttitude* referenceAttitude = dataStorage->ReferenceAttitude;
if (referenceAttitude != nil)
[currentAttitude multiplyByInverseOfAttitude: referenceAttitude];
else
referenceAttitude = motionManager.deviceMotion.attitude;
irr::SEvent ev;
ev.EventType = irr::EET_DEVICE_MOTION_EVENT;
ev.AccelerometerEvent.X = currentAttitude.roll;
ev.AccelerometerEvent.Y = currentAttitude.pitch;
ev.AccelerometerEvent.Z = currentAttitude.yaw;
postEventFromUser(ev);
}
CIrrDelegateiOS* delegate = [UIApplication sharedApplication].delegate;
return ![delegate isTerminate];
}
void CIrrDeviceiOS::yield()
{
struct timespec ts = {0,0};
nanosleep(&ts, NULL);
}
void CIrrDeviceiOS::sleep(u32 timeMs, bool pauseTimer=false)
{
bool wasStopped = Timer ? Timer->isStopped() : true;
struct timespec ts;
ts.tv_sec = (time_t) (timeMs / 1000);
ts.tv_nsec = (long) (timeMs % 1000) * 1000000;
if (pauseTimer && !wasStopped)
Timer->stop();
nanosleep(&ts, NULL);
if (pauseTimer && !wasStopped)
Timer->start();
}
void CIrrDeviceiOS::setWindowCaption(const wchar_t* text)
{
}
bool CIrrDeviceiOS::isWindowActive() const
{
CIrrDelegateiOS* delegate = [UIApplication sharedApplication].delegate;
return [delegate isActive];
}
bool CIrrDeviceiOS::isWindowFocused() const
{
CIrrDelegateiOS* delegate = [UIApplication sharedApplication].delegate;
return [delegate isActive];
}
bool CIrrDeviceiOS::isWindowMinimized() const
{
CIrrDelegateiOS* delegate = [UIApplication sharedApplication].delegate;
return ![delegate isActive];
}
bool CIrrDeviceiOS::present(video::IImage* image, void * windowId, core::rect<s32>* src)
{
return false;
}
void CIrrDeviceiOS::closeDevice()
{
CFRunLoopStop(CFRunLoopGetMain());
}
void CIrrDeviceiOS::setResizable(bool resize)
{
}
void CIrrDeviceiOS::minimizeWindow()
{
}
void CIrrDeviceiOS::maximizeWindow()
{
}
void CIrrDeviceiOS::restoreWindow()
{
}
core::position2di CIrrDeviceiOS::getWindowPosition()
{
return core::position2di(0, 0);
}
bool CIrrDeviceiOS::activateAccelerometer(float updateInterval)
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isAccelerometerAvailable)
{
if (!motionManager.isAccelerometerActive)
{
motionManager.accelerometerUpdateInterval = updateInterval;
[motionManager startAccelerometerUpdates];
}
status = true;
}
return status;
}
bool CIrrDeviceiOS::deactivateAccelerometer()
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isAccelerometerAvailable)
{
if (motionManager.isAccelerometerActive)
[motionManager stopAccelerometerUpdates];
status = true;
}
return status;
}
bool CIrrDeviceiOS::isAccelerometerActive()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isAccelerometerActive);
}
bool CIrrDeviceiOS::isAccelerometerAvailable()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isAccelerometerAvailable);
}
bool CIrrDeviceiOS::activateGyroscope(float updateInterval)
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isGyroAvailable)
{
if (!motionManager.isGyroActive)
{
motionManager.gyroUpdateInterval = updateInterval;
[motionManager startGyroUpdates];
}
status = true;
}
return status;
}
bool CIrrDeviceiOS::deactivateGyroscope()
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isGyroAvailable)
{
if (motionManager.isGyroActive)
[motionManager stopGyroUpdates];
status = true;
}
return status;
}
bool CIrrDeviceiOS::isGyroscopeActive()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isGyroActive);
}
bool CIrrDeviceiOS::isGyroscopeAvailable()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isGyroAvailable);
}
bool CIrrDeviceiOS::activateDeviceMotion(float updateInterval)
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isDeviceMotionAvailable)
{
if (!motionManager.isDeviceMotionActive)
{
dataStorage->ReferenceAttitude = nil;
motionManager.deviceMotionUpdateInterval = updateInterval;
[motionManager startDeviceMotionUpdates];
}
status = true;
}
return status;
}
bool CIrrDeviceiOS::deactivateDeviceMotion()
{
bool status = false;
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
CMMotionManager* motionManager = dataStorage->MotionManager;
if (motionManager.isDeviceMotionAvailable)
{
if (motionManager.isDeviceMotionActive)
{
[motionManager stopDeviceMotionUpdates];
dataStorage->ReferenceAttitude = nil;
}
status = true;
}
return status;
}
bool CIrrDeviceiOS::isDeviceMotionActive()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isDeviceMotionActive);
}
bool CIrrDeviceiOS::isDeviceMotionAvailable()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
return (dataStorage->MotionManager.isDeviceMotionAvailable);
}
E_DEVICE_TYPE CIrrDeviceiOS::getType() const
{
return EIDT_IOS;
}
bool CIrrDeviceiOS::createWindow()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
dataStorage->Window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
dataStorage->ViewController = [[UIViewController alloc] init];
dataStorage->Window.rootViewController = dataStorage->ViewController;
[dataStorage->Window makeKeyAndVisible];
return true;
}
void CIrrDeviceiOS::createViewAndDriver()
{
SIrrDeviceiOSDataStorage* dataStorage = static_cast<SIrrDeviceiOSDataStorage*>(DataStorage);
video::SExposedVideoData data;
data.OpenGLiOS.Window = (__bridge void*)dataStorage->Window;
data.OpenGLiOS.ViewController = (__bridge void*)dataStorage->ViewController;
switch (CreationParams.DriverType)
{
case video::EDT_OGLES1:
#ifdef _IRR_COMPILE_WITH_OGLES1_
{
CIrrViewEAGLiOS* view = [[CIrrViewEAGLiOS alloc] initWithFrame:[[UIScreen mainScreen] bounds] forDevice:this];
CreationParams.WindowSize = core::dimension2d<u32>(view.frame.size.width, view.frame.size.height);
dataStorage->View = view;
dataStorage->ViewController.view = view;
data.OpenGLiOS.View = (__bridge void*)view;
ContextManager = new video::CEAGLManager();
ContextManager->initialize(CreationParams, data);
VideoDriver = video::createOGLES1Driver(CreationParams, FileSystem, ContextManager);
if (!VideoDriver)
os::Printer::log("Could not create OpenGL ES 1.x driver.", ELL_ERROR);
}
#else
os::Printer::log("No OpenGL ES 1.x support compiled in.", ELL_ERROR);
#endif
break;
case video::EDT_OGLES2:
#ifdef _IRR_COMPILE_WITH_OGLES2_
{
CIrrViewEAGLiOS* view = [[CIrrViewEAGLiOS alloc] initWithFrame:[[UIScreen mainScreen] bounds] forDevice:this];
CreationParams.WindowSize = core::dimension2d<u32>(view.frame.size.width, view.frame.size.height);
dataStorage->View = view;
dataStorage->ViewController.view = view;
data.OpenGLiOS.View = (__bridge void*)view;
ContextManager = new video::CEAGLManager();
ContextManager->initialize(CreationParams, data);
VideoDriver = video::createOGLES2Driver(CreationParams, FileSystem, ContextManager);
if (!VideoDriver)
os::Printer::log("Could not create OpenGL ES 2.x driver.", ELL_ERROR);
}
#else
os::Printer::log("No OpenGL ES 2.x support compiled in.", ELL_ERROR);
#endif
break;
case video::EDT_SOFTWARE:
case video::EDT_BURNINGSVIDEO:
case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS:
case video::EDT_DIRECT3D9:
case video::EDT_OPENGL:
os::Printer::log("This driver is not available in iOS. Try OpenGL ES.", ELL_ERROR);
break;
case video::EDT_NULL:
VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize);
break;
default:
os::Printer::log("Unable to create video driver of unknown type.", ELL_ERROR);
break;
}
}
}
int main(int argc, char** argv)
{
int result = UIApplicationMain(argc, argv, 0, NSStringFromClass([CIrrDelegateiOS class]));
return result;
}
#endif

View File

@ -9,7 +9,7 @@
#ifdef _IRR_COMPILE_WITH_OGLES2_
#if defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
#if defined(_IRR_COMPILE_WITH_IOS_DEVICE_)
#include <OpenGLES/ES2/gl.h>
#include <OpenGLES/ES2/glext.h>
#elif defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)

View File

@ -33,24 +33,12 @@ namespace irr
{
namespace video
{
COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
) : CNullDriver(io, params.WindowSize), COGLES2ExtensionHandler(),
CacheHandler(0), MaterialRenderer2D(0), CurrentRenderMode(ERM_NONE), ResetRenderStates(true),
Transformation3DChanged(true), AntiAlias(params.AntiAlias), OGLES2ShaderPath(params.OGLES2ShaderPath),
CurrentRendertargetSize(0, 0), ColorFormat(ECF_R8G8B8), Params(params)
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, ContextManager(contextManager)
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, Device(device), ViewFramebuffer(0),
ViewRenderbuffer(0), ViewDepthRenderbuffer(0)
#endif
{
COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager) :
CNullDriver(io, params.WindowSize), COGLES2ExtensionHandler(), CacheHandler(0), MaterialRenderer2D(0), CurrentRenderMode(ERM_NONE),
ResetRenderStates(true), Transformation3DChanged(true), AntiAlias(params.AntiAlias), OGLES2ShaderPath(params.OGLES2ShaderPath),
CurrentRendertargetSize(0, 0),ColorFormat(ECF_R8G8B8), Params(params), ContextManager(contextManager)
{
#ifdef _DEBUG
setDebugName("COGLES2Driver");
#endif
@ -78,9 +66,8 @@ COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFil
}
)
core::dimension2d<u32> windowSize(0, 0);
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
core::dimension2d<u32> windowSize(0, 0);
if (!ContextManager)
return;
@ -89,39 +76,8 @@ COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFil
ContextManager->generateContext();
ExposedData = ContextManager->getContext();
ContextManager->activateContext(ExposedData);
windowSize = params.WindowSize;
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
glGenFramebuffers(1, &ViewFramebuffer);
glGenRenderbuffers(1, &ViewRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, ViewRenderbuffer);
ExposedData.OGLESIPhone.AppDelegate = Device;
Device->displayInitialize(&ExposedData.OGLESIPhone.Context, &ExposedData.OGLESIPhone.View);
GLint backingWidth;
GLint backingHeight;
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &backingWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &backingHeight);
glGenRenderbuffers(1, &ViewDepthRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, ViewDepthRenderbuffer);
GLenum depthComponent = GL_DEPTH_COMPONENT16;
if (params.ZBufferBits >= 24)
depthComponent = GL_DEPTH_COMPONENT24_OES;
glRenderbufferStorage(GL_RENDERBUFFER, depthComponent, backingWidth, backingHeight);
glBindFramebuffer(GL_FRAMEBUFFER, ViewFramebuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, ViewRenderbuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, ViewDepthRenderbuffer);
windowSize = core::dimension2d<u32>(backingWidth, backingHeight);
CNullDriver::ScreenSize = windowSize;
CNullDriver::ViewPort = core::rect<s32>(core::position2d<s32>(0,0), core::dimension2di(windowSize));
#endif
genericDriverInit(windowSize, params.Stencilbuffer);
}
@ -140,8 +96,7 @@ COGLES2Driver::~COGLES2Driver()
removeAllHardwareBuffers();
delete CacheHandler;
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
if (ContextManager)
{
ContextManager->destroyContext();
@ -149,29 +104,8 @@ COGLES2Driver::~COGLES2Driver()
ContextManager->terminate();
ContextManager->drop();
}
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
if (0 != ViewFramebuffer)
{
glDeleteFramebuffers(1,&ViewFramebuffer);
ViewFramebuffer = 0;
}
if (0 != ViewRenderbuffer)
{
glDeleteRenderbuffers(1,&ViewRenderbuffer);
ViewRenderbuffer = 0;
}
if (0 != ViewDepthRenderbuffer)
{
glDeleteRenderbuffers(1,&ViewDepthRenderbuffer);
ViewDepthRenderbuffer = 0;
}
#endif
}
// -----------------------------------------------------------------------
// METHODS
// -----------------------------------------------------------------------
bool COGLES2Driver::genericDriverInit(const core::dimension2d<u32>& screenSize, bool stencilBuffer)
{
Name = glGetString(GL_VERSION);
@ -496,16 +430,8 @@ COGLES2Driver::~COGLES2Driver()
glFlush();
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
if (ContextManager)
return ContextManager->swapBuffers();
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
glFlush();
glBindRenderbuffer(GL_RENDERBUFFER, ViewRenderbuffer);
Device->displayEnd();
return true;
#endif
return false;
}
@ -2927,26 +2853,14 @@ namespace video
{
#ifndef _IRR_COMPILE_WITH_OGLES2_
class IVideoDriver;
class IContextManager;
#endif
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params,
io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
)
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager)
{
#ifdef _IRR_COMPILE_WITH_OGLES2_
return new COGLES2Driver(params, io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, device
#endif
);
return new COGLES2Driver(params, io, contextManager);
#else
return 0;
#endif // _IRR_COMPILE_WITH_OGLES2_

View File

@ -25,8 +25,6 @@
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
#include "iOS/CIrrDeviceiOS.h"
#endif
#ifdef _MSC_VER
@ -50,13 +48,7 @@ namespace video
public:
//! constructor
COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
);
COGLES2Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager);
//! destructor
virtual ~COGLES2Driver();
@ -308,7 +300,7 @@ namespace video
return VendorName;
};
void removeTexture(ITexture* texture);
void removeTexture(ITexture* texture) _IRR_OVERRIDE_;
// returns the current size of the screen or rendertarget
virtual const core::dimension2d<u32>& getCurrentRenderTargetSize() const _IRR_OVERRIDE_;
@ -405,14 +397,7 @@ namespace video
core::array<RequestedLight> RequestedLights;
#if defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
CIrrDeviceIPhone* Device;
GLuint ViewFramebuffer;
GLuint ViewRenderbuffer;
GLuint ViewDepthRenderbuffer;
#elif defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
IContextManager* ContextManager;
#endif
};
} // end namespace video

View File

@ -9,7 +9,7 @@
#ifdef _IRR_COMPILE_WITH_OGLES1_
#if defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
#if defined(_IRR_COMPILE_WITH_IOS_DEVICE_)
#include <OpenGLES/ES1/gl.h>
#include <OpenGLES/ES1/glext.h>
#elif defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
@ -40,7 +40,7 @@ typedef char GLchar;
// FBO definitions.
#ifdef GL_OES_framebuffer_object
#define GL_NONE GL_NONE_OES
#define GL_NONE 0 // iOS has missing definition of GL_NONE_OES
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
#define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES
#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_OES

View File

@ -29,23 +29,10 @@ namespace irr
namespace video
{
COGLES1Driver::COGLES1Driver(const SIrrlichtCreationParameters& params,
io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
) : CNullDriver(io, params.WindowSize), COGLES1ExtensionHandler(),
CacheHandler(0), CurrentRenderMode(ERM_NONE), ResetRenderStates(true),
Transformation3DChanged(true), AntiAlias(params.AntiAlias),
CurrentRendertargetSize(0, 0), ColorFormat(ECF_R8G8B8), Params(params)
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, ContextManager(contextManager)
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, Device(device), ViewFramebuffer(0),
ViewRenderbuffer(0), ViewDepthRenderbuffer(0)
#endif
COGLES1Driver::COGLES1Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager) :
CNullDriver(io, params.WindowSize), COGLES1ExtensionHandler(), CacheHandler(0), CurrentRenderMode(ERM_NONE),
ResetRenderStates(true), Transformation3DChanged(true), AntiAlias(params.AntiAlias), CurrentRendertargetSize(0, 0),
ColorFormat(ECF_R8G8B8), Params(params), ContextManager(contextManager)
{
#ifdef _DEBUG
setDebugName("COGLESDriver");
@ -53,7 +40,6 @@ COGLES1Driver::COGLES1Driver(const SIrrlichtCreationParameters& params,
core::dimension2d<u32> windowSize(0, 0);
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
if (!ContextManager)
return;
@ -62,39 +48,8 @@ COGLES1Driver::COGLES1Driver(const SIrrlichtCreationParameters& params,
ContextManager->generateContext();
ExposedData = ContextManager->getContext();
ContextManager->activateContext(ExposedData);
windowSize = params.WindowSize;
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
glGenFramebuffersOES(1, &ViewFramebuffer);
glGenRenderbuffersOES(1, &ViewRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, ViewRenderbuffer);
ExposedData.OGLESIPhone.AppDelegate = Device;
Device->displayInitialize(&ExposedData.OGLESIPhone.Context, &ExposedData.OGLESIPhone.View);
GLint backingWidth;
GLint backingHeight;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
glGenRenderbuffersOES(1, &ViewDepthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, ViewDepthRenderbuffer);
GLenum depthComponent = GL_DEPTH_COMPONENT16_OES;
if(params.ZBufferBits >= 24)
depthComponent = GL_DEPTH_COMPONENT24_OES;
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, depthComponent, backingWidth, backingHeight);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, ViewFramebuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, ViewRenderbuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, ViewDepthRenderbuffer);
windowSize = core::dimension2d<u32>(backingWidth, backingHeight);
CNullDriver::ScreenSize = windowSize;
CNullDriver::ViewPort = core::rect<s32>(core::position2d<s32>(0,0), core::dimension2di(windowSize));
#endif
genericDriverInit(windowSize, params.Stencilbuffer);
}
@ -114,7 +69,6 @@ COGLES1Driver::~COGLES1Driver()
delete CacheHandler;
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
if (ContextManager)
{
ContextManager->destroyContext();
@ -122,23 +76,6 @@ COGLES1Driver::~COGLES1Driver()
ContextManager->terminate();
ContextManager->drop();
}
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
if (0 != ViewFramebuffer)
{
glDeleteFramebuffers(1, &ViewFramebuffer);
ViewFramebuffer = 0;
}
if (0 != ViewRenderbuffer)
{
glDeleteRenderbuffers(1, &ViewRenderbuffer);
ViewRenderbuffer = 0;
}
if (0 != ViewDepthRenderbuffer)
{
glDeleteRenderbuffers(1, &ViewDepthRenderbuffer);
ViewDepthRenderbuffer = 0;
}
#endif
}
// -----------------------------------------------------------------------
@ -266,7 +203,7 @@ bool COGLES1Driver::beginScene(u16 clearFlag, SColor clearColor, f32 clearDepth,
{
IRR_PROFILE(CProfileScope p1(EPID_ES2_BEGIN_SCENE);)
CNullDriver::beginScene(clearFlag, clearColor, clearDepth, clearStencil, videoData, sourceRect);
CNullDriver::beginScene(clearFlag, clearColor, clearDepth, clearStencil, videoData, sourceRect);
if (ContextManager)
ContextManager->activateContext(videoData);
@ -280,20 +217,12 @@ bool COGLES1Driver::endScene()
{
IRR_PROFILE(CProfileScope p1(EPID_ES2_END_SCENE);)
CNullDriver::endScene();
CNullDriver::endScene();
glFlush();
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
if (ContextManager)
return ContextManager->swapBuffers();
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
glFlush();
glBindRenderbuffer(GL_RENDERBUFFER, ViewRenderbuffer);
Device->displayEnd();
return true;
#endif
return false;
}
@ -3298,23 +3227,10 @@ class IVideoDriver;
class IContextManager;
#endif
IVideoDriver* createOGLES1Driver(const SIrrlichtCreationParameters& params,
io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
)
IVideoDriver* createOGLES1Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager)
{
#ifdef _IRR_COMPILE_WITH_OGLES1_
return new COGLES1Driver(params, io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, device
#endif
);
return new COGLES1Driver(params, io, contextManager);
#else
return 0;
#endif // _IRR_COMPILE_WITH_OGLES1_

View File

@ -24,8 +24,6 @@
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
#include "iOS/CIrrDeviceiOS.h"
#endif
#ifdef _MSC_VER
@ -44,13 +42,7 @@ namespace video
public:
//! constructor
COGLES1Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
);
COGLES1Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager);
//! destructor
virtual ~COGLES1Driver();
@ -258,7 +250,7 @@ namespace video
virtual IVideoDriver* getVideoDriver() _IRR_OVERRIDE_;
//! Returns the maximum amount of primitives
virtual u32 getMaximalPrimitiveCount() const;
virtual u32 getMaximalPrimitiveCount() const _IRR_OVERRIDE_;
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
const io::path& name, const ECOLOR_FORMAT format = ECF_UNKNOWN) _IRR_OVERRIDE_;
@ -287,9 +279,9 @@ namespace video
}
//! Get the maximal texture size for this driver
core::dimension2du getMaxTextureSize() const;
core::dimension2du getMaxTextureSize() const _IRR_OVERRIDE_;
void removeTexture(ITexture* texture);
void removeTexture(ITexture* texture) _IRR_OVERRIDE_;
//! Convert E_BLEND_FACTOR to OpenGL equivalent
GLenum getGLBlend(E_BLEND_FACTOR factor) const;
@ -386,19 +378,12 @@ namespace video
};
core::array<RequestedLight> RequestedLights;
#if defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
CIrrDeviceIPhone* Device;
GLuint ViewFramebuffer;
GLuint ViewRenderbuffer;
GLuint ViewDepthRenderbuffer;
#elif defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_FB_DEVICE_)
IContextManager* ContextManager;
#endif
};
} // end namespace video
} // end namespace irr
#endif // _IRR_COMPILE_WITH_OPENGL_
#endif // _IRR_COMPILE_WITH_OGLES1_
#endif

View File

@ -269,7 +269,7 @@ namespace video
if (pGlGenerateMipmapOES)
pGlGenerateMipmapOES(target);
#elif defined(GL_OES_framebuffer_object)
glGenerateMipmap(target);
glGenerateMipmapOES(target);
#endif
}

View File

@ -52,7 +52,6 @@
5E34CA4F1B7F6EBF00F212E8 /* CXMLWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8001B7F51D900F212E8 /* CXMLWriter.cpp */; };
5E34CA511B7F6EBF00F212E8 /* CZipReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8021B7F51D900F212E8 /* CZipReader.cpp */; };
5E34CA541B7F6EBF00F212E8 /* irrXML.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8051B7F51D900F212E8 /* irrXML.cpp */; };
5E34CA581B7F6EBF00F212E8 /* CIrrDeviceOSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8141B7F535C00F212E8 /* CIrrDeviceOSX.mm */; };
5E34CA591B7F6EBF00F212E8 /* CIrrDeviceStub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C80D1B7F52AC00F212E8 /* CIrrDeviceStub.cpp */; };
5E34CA5C1B7F6EBF00F212E8 /* aescrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8161B7F540B00F212E8 /* aescrypt.cpp */; };
5E34CA5D1B7F6EBF00F212E8 /* aeskey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8171B7F540B00F212E8 /* aeskey.cpp */; };
@ -302,12 +301,318 @@
5E34CC131B7F6EC900F212E8 /* CZBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E61B7F6C6100F212E8 /* CZBuffer.cpp */; };
5E34CC191B7F6EC900F212E8 /* CNSOGLManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9EE1B7F6CCC00F212E8 /* CNSOGLManager.mm */; };
5E34CC1A1B7F6EC900F212E8 /* CVideoModeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9EB1B7F6C8200F212E8 /* CVideoModeList.cpp */; };
5E7908951C10EEC000DFE7FE /* COpenGLCacheHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7908921C10EEC000DFE7FE /* COpenGLCacheHandler.h */; };
5E7908961C10EEC000DFE7FE /* COpenGLCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7908931C10EEC000DFE7FE /* COpenGLCommon.h */; };
5E5732B31C18E212003F664E /* CDefaultGUIElementFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7E21B7F50DE00F212E8 /* CDefaultGUIElementFactory.cpp */; };
5E5732B41C18E212003F664E /* CGUIButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7A91B7F50A900F212E8 /* CGUIButton.cpp */; };
5E5732B51C18E212003F664E /* CGUICheckBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7AB1B7F50A900F212E8 /* CGUICheckBox.cpp */; };
5E5732B61C18E212003F664E /* CGUIColorSelectDialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7AD1B7F50A900F212E8 /* CGUIColorSelectDialog.cpp */; };
5E5732B71C18E212003F664E /* CGUIComboBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7AF1B7F50A900F212E8 /* CGUIComboBox.cpp */; };
5E5732B81C18E212003F664E /* CGUIContextMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7B11B7F50A900F212E8 /* CGUIContextMenu.cpp */; };
5E5732B91C18E212003F664E /* CGUIEditBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7B31B7F50A900F212E8 /* CGUIEditBox.cpp */; };
5E5732BA1C18E212003F664E /* CGUIEnvironment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7B51B7F50A900F212E8 /* CGUIEnvironment.cpp */; };
5E5732BB1C18E212003F664E /* CGUIFileOpenDialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7B71B7F50A900F212E8 /* CGUIFileOpenDialog.cpp */; };
5E5732BC1C18E212003F664E /* CGUIFont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7B91B7F50A900F212E8 /* CGUIFont.cpp */; };
5E5732BD1C18E212003F664E /* CGUIImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7BB1B7F50A900F212E8 /* CGUIImage.cpp */; };
5E5732BE1C18E212003F664E /* CGUIImageList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7BD1B7F50A900F212E8 /* CGUIImageList.cpp */; };
5E5732BF1C18E212003F664E /* CGUIInOutFader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7BF1B7F50A900F212E8 /* CGUIInOutFader.cpp */; };
5E5732C01C18E212003F664E /* CGUIListBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7C11B7F50A900F212E8 /* CGUIListBox.cpp */; };
5E5732C11C18E212003F664E /* CGUIMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7C31B7F50A900F212E8 /* CGUIMenu.cpp */; };
5E5732C21C18E212003F664E /* CGUIMeshViewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7C51B7F50A900F212E8 /* CGUIMeshViewer.cpp */; };
5E5732C31C18E212003F664E /* CGUIMessageBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7C71B7F50A900F212E8 /* CGUIMessageBox.cpp */; };
5E5732C41C18E212003F664E /* CGUIModalScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7C91B7F50A900F212E8 /* CGUIModalScreen.cpp */; };
5E5732C51C18E212003F664E /* CGUIProfiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7CB1B7F50A900F212E8 /* CGUIProfiler.cpp */; };
5E5732C61C18E212003F664E /* CGUIScrollBar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7CD1B7F50A900F212E8 /* CGUIScrollBar.cpp */; };
5E5732C71C18E212003F664E /* CGUISkin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7CF1B7F50A900F212E8 /* CGUISkin.cpp */; };
5E5732C81C18E212003F664E /* CGUISpinBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7D11B7F50A900F212E8 /* CGUISpinBox.cpp */; };
5E5732C91C18E212003F664E /* CGUISpriteBank.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7D31B7F50A900F212E8 /* CGUISpriteBank.cpp */; };
5E5732CA1C18E212003F664E /* CGUIStaticText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7D51B7F50A900F212E8 /* CGUIStaticText.cpp */; };
5E5732CB1C18E212003F664E /* CGUITabControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7D71B7F50A900F212E8 /* CGUITabControl.cpp */; };
5E5732CC1C18E212003F664E /* CGUITable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7D91B7F50A900F212E8 /* CGUITable.cpp */; };
5E5732CD1C18E212003F664E /* CGUIToolBar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7DB1B7F50A900F212E8 /* CGUIToolBar.cpp */; };
5E5732CE1C18E212003F664E /* CGUITreeView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7DD1B7F50A900F212E8 /* CGUITreeView.cpp */; };
5E5732CF1C18E212003F664E /* CGUIWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7DF1B7F50A900F212E8 /* CGUIWindow.cpp */; };
5E5732D01C18E212003F664E /* CAttributes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7E51B7F517000F212E8 /* CAttributes.cpp */; };
5E5732D11C18E212003F664E /* CFileList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7E71B7F517000F212E8 /* CFileList.cpp */; };
5E5732D21C18E212003F664E /* CFileSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7E91B7F517000F212E8 /* CFileSystem.cpp */; };
5E5732D31C18E212003F664E /* CLimitReadFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7EB1B7F517000F212E8 /* CLimitReadFile.cpp */; };
5E5732D41C18E212003F664E /* CMemoryFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7ED1B7F517000F212E8 /* CMemoryFile.cpp */; };
5E5732D51C18E212003F664E /* CMountPointReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7EF1B7F517000F212E8 /* CMountPointReader.cpp */; };
5E5732D61C18E212003F664E /* CNPKReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7F11B7F517000F212E8 /* CNPKReader.cpp */; };
5E5732D71C18E212003F664E /* CPakReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7F31B7F517000F212E8 /* CPakReader.cpp */; };
5E5732D81C18E212003F664E /* CReadFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7F51B7F51D900F212E8 /* CReadFile.cpp */; };
5E5732D91C18E212003F664E /* CTarReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7F71B7F51D900F212E8 /* CTarReader.cpp */; };
5E5732DA1C18E212003F664E /* CWADReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7F91B7F51D900F212E8 /* CWADReader.cpp */; };
5E5732DB1C18E212003F664E /* CWriteFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7FB1B7F51D900F212E8 /* CWriteFile.cpp */; };
5E5732DC1C18E212003F664E /* CXMLReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C7FD1B7F51D900F212E8 /* CXMLReader.cpp */; };
5E5732DD1C18E212003F664E /* CXMLWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8001B7F51D900F212E8 /* CXMLWriter.cpp */; };
5E5732DE1C18E212003F664E /* CZipReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8021B7F51D900F212E8 /* CZipReader.cpp */; };
5E5732DF1C18E212003F664E /* irrXML.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8051B7F51D900F212E8 /* irrXML.cpp */; };
5E5732E01C18E212003F664E /* CIrrDeviceOSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8141B7F535C00F212E8 /* CIrrDeviceOSX.mm */; };
5E5732E11C18E212003F664E /* CIrrDeviceStub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C80D1B7F52AC00F212E8 /* CIrrDeviceStub.cpp */; };
5E5732E21C18E212003F664E /* aescrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8161B7F540B00F212E8 /* aescrypt.cpp */; };
5E5732E31C18E212003F664E /* aeskey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8171B7F540B00F212E8 /* aeskey.cpp */; };
5E5732E41C18E212003F664E /* aestab.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8191B7F540B00F212E8 /* aestab.cpp */; };
5E5732E51C18E212003F664E /* fileenc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C81A1B7F540B00F212E8 /* fileenc.cpp */; };
5E5732E61C18E212003F664E /* hmac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C81C1B7F540B00F212E8 /* hmac.cpp */; };
5E5732E71C18E212003F664E /* prng.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C81E1B7F540B00F212E8 /* prng.cpp */; };
5E5732E81C18E212003F664E /* pwd2key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8201B7F540B00F212E8 /* pwd2key.cpp */; };
5E5732E91C18E212003F664E /* sha1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8221B7F540B00F212E8 /* sha1.cpp */; };
5E5732EA1C18E212003F664E /* sha2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8241B7F540B00F212E8 /* sha2.cpp */; };
5E5732EB1C18E212003F664E /* blocksort.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8261B7F54FE00F212E8 /* blocksort.c */; };
5E5732EC1C18E212003F664E /* bzcompress.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8271B7F54FE00F212E8 /* bzcompress.c */; };
5E5732ED1C18E212003F664E /* bzlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8291B7F54FE00F212E8 /* bzlib.c */; };
5E5732EE1C18E212003F664E /* crctable.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C82B1B7F54FE00F212E8 /* crctable.c */; };
5E5732EF1C18E212003F664E /* decompress.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C82C1B7F54FE00F212E8 /* decompress.c */; };
5E5732F01C18E212003F664E /* huffman.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C82D1B7F54FE00F212E8 /* huffman.c */; };
5E5732F11C18E212003F664E /* randtable.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C82E1B7F54FE00F212E8 /* randtable.c */; };
5E5732F21C18E212003F664E /* jaricom.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8321B7F561400F212E8 /* jaricom.c */; };
5E5732F31C18E212003F664E /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8331B7F561400F212E8 /* jcapimin.c */; };
5E5732F41C18E212003F664E /* jcapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8341B7F561400F212E8 /* jcapistd.c */; };
5E5732F51C18E212003F664E /* jcarith.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8351B7F561400F212E8 /* jcarith.c */; };
5E5732F61C18E212003F664E /* jccoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8361B7F561400F212E8 /* jccoefct.c */; };
5E5732F71C18E212003F664E /* jccolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8371B7F561400F212E8 /* jccolor.c */; };
5E5732F81C18E212003F664E /* jcdctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8381B7F561400F212E8 /* jcdctmgr.c */; };
5E5732F91C18E212003F664E /* jchuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8391B7F561400F212E8 /* jchuff.c */; };
5E5732FA1C18E212003F664E /* jcinit.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C83A1B7F561400F212E8 /* jcinit.c */; };
5E5732FB1C18E212003F664E /* jcmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C83B1B7F561400F212E8 /* jcmainct.c */; };
5E5732FC1C18E212003F664E /* jcmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C83C1B7F561400F212E8 /* jcmarker.c */; };
5E5732FD1C18E212003F664E /* jcmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C83D1B7F561400F212E8 /* jcmaster.c */; };
5E5732FE1C18E212003F664E /* jcomapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C83E1B7F561400F212E8 /* jcomapi.c */; };
5E5732FF1C18E212003F664E /* jcparam.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8401B7F561400F212E8 /* jcparam.c */; };
5E5733001C18E212003F664E /* jcprepct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8411B7F561400F212E8 /* jcprepct.c */; };
5E5733011C18E212003F664E /* jcsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8421B7F561400F212E8 /* jcsample.c */; };
5E5733021C18E212003F664E /* jctrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8431B7F561400F212E8 /* jctrans.c */; };
5E5733031C18E212003F664E /* jdapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8441B7F561400F212E8 /* jdapimin.c */; };
5E5733041C18E212003F664E /* jdapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8451B7F561400F212E8 /* jdapistd.c */; };
5E5733051C18E212003F664E /* jdarith.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8461B7F561400F212E8 /* jdarith.c */; };
5E5733061C18E212003F664E /* jdatadst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8471B7F561400F212E8 /* jdatadst.c */; };
5E5733071C18E212003F664E /* jdatasrc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8481B7F561400F212E8 /* jdatasrc.c */; };
5E5733081C18E212003F664E /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8491B7F561400F212E8 /* jdcoefct.c */; };
5E5733091C18E212003F664E /* jdcolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C84A1B7F561400F212E8 /* jdcolor.c */; };
5E57330A1C18E212003F664E /* jddctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C84C1B7F561400F212E8 /* jddctmgr.c */; };
5E57330B1C18E212003F664E /* jdhuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C84D1B7F561400F212E8 /* jdhuff.c */; };
5E57330C1C18E212003F664E /* jdinput.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C84E1B7F561400F212E8 /* jdinput.c */; };
5E57330D1C18E212003F664E /* jdmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C84F1B7F561400F212E8 /* jdmainct.c */; };
5E57330E1C18E212003F664E /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8501B7F561400F212E8 /* jdmarker.c */; };
5E57330F1C18E212003F664E /* jdmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8511B7F561400F212E8 /* jdmaster.c */; };
5E5733101C18E212003F664E /* jdmerge.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8521B7F561400F212E8 /* jdmerge.c */; };
5E5733111C18E212003F664E /* jdpostct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8531B7F561400F212E8 /* jdpostct.c */; };
5E5733121C18E212003F664E /* jdsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8541B7F561400F212E8 /* jdsample.c */; };
5E5733131C18E212003F664E /* CIrrDeviceConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E8570BA1B7F9AC400B267D2 /* CIrrDeviceConsole.cpp */; };
5E5733141C18E212003F664E /* jdtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8551B7F561400F212E8 /* jdtrans.c */; };
5E5733151C18E212003F664E /* jerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8561B7F561400F212E8 /* jerror.c */; };
5E5733161C18E212003F664E /* jfdctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8581B7F568200F212E8 /* jfdctflt.c */; };
5E5733171C18E212003F664E /* jfdctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8591B7F568200F212E8 /* jfdctfst.c */; };
5E5733181C18E212003F664E /* jfdctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C85A1B7F568200F212E8 /* jfdctint.c */; };
5E5733191C18E212003F664E /* jidctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C85B1B7F568200F212E8 /* jidctflt.c */; };
5E57331A1C18E212003F664E /* jidctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C85C1B7F568200F212E8 /* jidctfst.c */; };
5E57331B1C18E212003F664E /* jidctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C85D1B7F568200F212E8 /* jidctint.c */; };
5E57331C1C18E212003F664E /* jmemmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C85F1B7F568200F212E8 /* jmemmgr.c */; };
5E57331D1C18E212003F664E /* jmemnobs.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8601B7F568200F212E8 /* jmemnobs.c */; };
5E57331E1C18E212003F664E /* jquant1.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8651B7F568200F212E8 /* jquant1.c */; };
5E57331F1C18E212003F664E /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8661B7F568200F212E8 /* jquant2.c */; };
5E5733201C18E212003F664E /* jutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8671B7F568200F212E8 /* jutils.c */; };
5E5733211C18E212003F664E /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8691B7F56E900F212E8 /* png.c */; };
5E5733221C18E212003F664E /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C86C1B7F56E900F212E8 /* pngerror.c */; };
5E5733231C18E212003F664E /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C86D1B7F56E900F212E8 /* pngget.c */; };
5E5733241C18E212003F664E /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C86E1B7F56E900F212E8 /* pngmem.c */; };
5E5733251C18E212003F664E /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C86F1B7F56E900F212E8 /* pngpread.c */; };
5E5733261C18E212003F664E /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8701B7F56E900F212E8 /* pngread.c */; };
5E5733271C18E212003F664E /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8711B7F56E900F212E8 /* pngrio.c */; };
5E5733281C18E212003F664E /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8721B7F56E900F212E8 /* pngrtran.c */; };
5E5733291C18E212003F664E /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8731B7F56E900F212E8 /* pngrutil.c */; };
5E57332A1C18E212003F664E /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8741B7F56E900F212E8 /* pngset.c */; };
5E57332B1C18E212003F664E /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8751B7F56E900F212E8 /* pngtrans.c */; };
5E57332C1C18E212003F664E /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8761B7F56E900F212E8 /* pngwio.c */; };
5E57332D1C18E212003F664E /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8771B7F56E900F212E8 /* pngwrite.c */; };
5E57332E1C18E212003F664E /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8781B7F56E900F212E8 /* pngwtran.c */; };
5E57332F1C18E212003F664E /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8791B7F56E900F212E8 /* pngwutil.c */; };
5E5733301C18E212003F664E /* LzmaDec.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C88F1B7F57B100F212E8 /* LzmaDec.c */; };
5E5733311C18E212003F664E /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C87A1B7F577000F212E8 /* adler32.c */; };
5E5733321C18E212003F664E /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C87B1B7F577000F212E8 /* compress.c */; };
5E5733331C18E212003F664E /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C87C1B7F577000F212E8 /* crc32.c */; };
5E5733341C18E212003F664E /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C87E1B7F577000F212E8 /* deflate.c */; };
5E5733351C18E212003F664E /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8801B7F577000F212E8 /* inffast.c */; };
5E5733361C18E212003F664E /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8831B7F577000F212E8 /* inflate.c */; };
5E5733371C18E212003F664E /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8851B7F577000F212E8 /* inftrees.c */; };
5E5733381C18E212003F664E /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8871B7F577000F212E8 /* trees.c */; };
5E5733391C18E212003F664E /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8891B7F577000F212E8 /* uncompr.c */; };
5E57333A1C18E212003F664E /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C88C1B7F577000F212E8 /* zutil.c */; };
5E57333B1C18E212003F664E /* CLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8921B7F652600F212E8 /* CLogger.cpp */; };
5E57333C1C18E212003F664E /* COSOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8941B7F652600F212E8 /* COSOperator.cpp */; };
5E57333D1C18E212003F664E /* CProfiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8961B7F652600F212E8 /* CProfiler.cpp */; };
5E57333E1C18E212003F664E /* Irrlicht.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C89A1B7F652600F212E8 /* Irrlicht.cpp */; };
5E57333F1C18E212003F664E /* leakHunter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C89B1B7F652600F212E8 /* leakHunter.cpp */; };
5E5733401C18E212003F664E /* os.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C89C1B7F652600F212E8 /* os.cpp */; };
5E5733411C18E212003F664E /* utf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C89E1B7F652600F212E8 /* utf8.cpp */; };
5E5733421C18E212003F664E /* CSceneNodeAnimatorCameraFPS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8BA1B7F669200F212E8 /* CSceneNodeAnimatorCameraFPS.cpp */; };
5E5733431C18E212003F664E /* CSceneNodeAnimatorCameraMaya.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8BC1B7F669200F212E8 /* CSceneNodeAnimatorCameraMaya.cpp */; };
5E5733441C18E212003F664E /* CSceneNodeAnimatorCollisionResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8BE1B7F669200F212E8 /* CSceneNodeAnimatorCollisionResponse.cpp */; };
5E5733451C18E212003F664E /* CSceneNodeAnimatorDelete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8C01B7F669200F212E8 /* CSceneNodeAnimatorDelete.cpp */; };
5E5733461C18E212003F664E /* CSceneNodeAnimatorFlyCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8C21B7F669200F212E8 /* CSceneNodeAnimatorFlyCircle.cpp */; };
5E5733471C18E212003F664E /* CSceneNodeAnimatorFlyStraight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8C41B7F669200F212E8 /* CSceneNodeAnimatorFlyStraight.cpp */; };
5E5733481C18E212003F664E /* CSceneNodeAnimatorFollowSpline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8C61B7F669200F212E8 /* CSceneNodeAnimatorFollowSpline.cpp */; };
5E5733491C18E212003F664E /* CSceneNodeAnimatorRotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8C81B7F669200F212E8 /* CSceneNodeAnimatorRotation.cpp */; };
5E57334A1C18E212003F664E /* CSceneNodeAnimatorTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8CA1B7F669200F212E8 /* CSceneNodeAnimatorTexture.cpp */; };
5E57334B1C18E212003F664E /* CMetaTriangleSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8CC1B7F66E600F212E8 /* CMetaTriangleSelector.cpp */; };
5E57334C1C18E212003F664E /* COctreeTriangleSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8CE1B7F66E600F212E8 /* COctreeTriangleSelector.cpp */; };
5E57334D1C18E212003F664E /* CSceneCollisionManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8D01B7F66E600F212E8 /* CSceneCollisionManager.cpp */; };
5E57334E1C18E212003F664E /* CTerrainTriangleSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8D21B7F66E600F212E8 /* CTerrainTriangleSelector.cpp */; };
5E57334F1C18E212003F664E /* CTriangleBBSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8D41B7F66E600F212E8 /* CTriangleBBSelector.cpp */; };
5E5733501C18E212003F664E /* CTriangleSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8D61B7F66E600F212E8 /* CTriangleSelector.cpp */; };
5E5733511C18E212003F664E /* C3DSMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8D81B7F680200F212E8 /* C3DSMeshFileLoader.cpp */; };
5E5733521C18E212003F664E /* CAnimatedMeshHalfLife.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8DA1B7F680200F212E8 /* CAnimatedMeshHalfLife.cpp */; };
5E5733531C18E212003F664E /* CAnimatedMeshMD2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8DC1B7F680200F212E8 /* CAnimatedMeshMD2.cpp */; };
5E5733541C18E212003F664E /* CAnimatedMeshMD3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8DE1B7F680200F212E8 /* CAnimatedMeshMD3.cpp */; };
5E5733551C18E212003F664E /* CB3DMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8E01B7F680200F212E8 /* CB3DMeshFileLoader.cpp */; };
5E5733561C18E212003F664E /* CBSPMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8E21B7F680200F212E8 /* CBSPMeshFileLoader.cpp */; };
5E5733571C18E212003F664E /* CColladaFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8E41B7F680200F212E8 /* CColladaFileLoader.cpp */; };
5E5733581C18E212003F664E /* CCSMLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8E61B7F680200F212E8 /* CCSMLoader.cpp */; };
5E5733591C18E212003F664E /* CDMFLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8E81B7F680200F212E8 /* CDMFLoader.cpp */; };
5E57335A1C18E212003F664E /* CIrrMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8EA1B7F680200F212E8 /* CIrrMeshFileLoader.cpp */; };
5E57335B1C18E212003F664E /* CLMTSMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8EC1B7F680200F212E8 /* CLMTSMeshFileLoader.cpp */; };
5E57335C1C18E212003F664E /* CLWOMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8EE1B7F680200F212E8 /* CLWOMeshFileLoader.cpp */; };
5E57335D1C18E212003F664E /* CMD2MeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8F01B7F680200F212E8 /* CMD2MeshFileLoader.cpp */; };
5E57335E1C18E212003F664E /* CMD3MeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8F21B7F680200F212E8 /* CMD3MeshFileLoader.cpp */; };
5E57335F1C18E212003F664E /* CMeshTextureLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8F41B7F680200F212E8 /* CMeshTextureLoader.cpp */; };
5E5733601C18E212003F664E /* CMS3DMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8F61B7F680200F212E8 /* CMS3DMeshFileLoader.cpp */; };
5E5733611C18E212003F664E /* CMY3DMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8F91B7F680200F212E8 /* CMY3DMeshFileLoader.cpp */; };
5E5733621C18E212003F664E /* COBJMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8FB1B7F680200F212E8 /* COBJMeshFileLoader.cpp */; };
5E5733631C18E212003F664E /* COCTLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8FD1B7F680200F212E8 /* COCTLoader.cpp */; };
5E5733641C18E212003F664E /* COgreMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8FF1B7F680200F212E8 /* COgreMeshFileLoader.cpp */; };
5E5733651C18E212003F664E /* CPLYMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9011B7F680200F212E8 /* CPLYMeshFileLoader.cpp */; };
5E5733661C18E212003F664E /* CQ3LevelMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9031B7F680200F212E8 /* CQ3LevelMesh.cpp */; };
5E5733671C18E212003F664E /* CSceneLoaderIrr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9051B7F680200F212E8 /* CSceneLoaderIrr.cpp */; };
5E5733681C18E212003F664E /* CSkinnedMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9071B7F680200F212E8 /* CSkinnedMesh.cpp */; };
5E5733691C18E212003F664E /* CSMFMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9091B7F680200F212E8 /* CSMFMeshFileLoader.cpp */; };
5E57336A1C18E212003F664E /* CSTLMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C90B1B7F680200F212E8 /* CSTLMeshFileLoader.cpp */; };
5E57336B1C18E212003F664E /* CXMeshFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C90D1B7F680200F212E8 /* CXMeshFileLoader.cpp */; };
5E57336C1C18E212003F664E /* CParticleAnimatedMeshSceneNodeEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9101B7F684000F212E8 /* CParticleAnimatedMeshSceneNodeEmitter.cpp */; };
5E57336D1C18E212003F664E /* CParticleAttractionAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9121B7F684000F212E8 /* CParticleAttractionAffector.cpp */; };
5E57336E1C18E212003F664E /* CParticleBoxEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9141B7F684000F212E8 /* CParticleBoxEmitter.cpp */; };
5E57336F1C18E212003F664E /* CParticleCylinderEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9161B7F684000F212E8 /* CParticleCylinderEmitter.cpp */; };
5E5733701C18E212003F664E /* CParticleFadeOutAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9181B7F684000F212E8 /* CParticleFadeOutAffector.cpp */; };
5E5733711C18E212003F664E /* CParticleGravityAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C91A1B7F684000F212E8 /* CParticleGravityAffector.cpp */; };
5E5733721C18E212003F664E /* CParticleMeshEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C91C1B7F684000F212E8 /* CParticleMeshEmitter.cpp */; };
5E5733731C18E212003F664E /* CParticlePointEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C91E1B7F684000F212E8 /* CParticlePointEmitter.cpp */; };
5E5733741C18E212003F664E /* CParticleRingEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9201B7F684000F212E8 /* CParticleRingEmitter.cpp */; };
5E5733751C18E212003F664E /* CParticleRotationAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9221B7F684000F212E8 /* CParticleRotationAffector.cpp */; };
5E5733761C18E212003F664E /* CParticleScaleAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9241B7F684000F212E8 /* CParticleScaleAffector.cpp */; };
5E5733771C18E212003F664E /* CParticleSphereEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9261B7F684000F212E8 /* CParticleSphereEmitter.cpp */; };
5E5733781C18E212003F664E /* CParticleSystemSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9281B7F684000F212E8 /* CParticleSystemSceneNode.cpp */; };
5E5733791C18E212003F664E /* CAnimatedMeshSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C92A1B7F68D600F212E8 /* CAnimatedMeshSceneNode.cpp */; };
5E57337A1C18E212003F664E /* CBillboardSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C92C1B7F68D600F212E8 /* CBillboardSceneNode.cpp */; };
5E57337B1C18E212003F664E /* CBoneSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C92E1B7F68D600F212E8 /* CBoneSceneNode.cpp */; };
5E57337C1C18E212003F664E /* CCameraSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9301B7F68D600F212E8 /* CCameraSceneNode.cpp */; };
5E57337D1C18E212003F664E /* CCubeSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9321B7F68D600F212E8 /* CCubeSceneNode.cpp */; };
5E57337E1C18E212003F664E /* CDummyTransformationSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9341B7F68D600F212E8 /* CDummyTransformationSceneNode.cpp */; };
5E57337F1C18E212003F664E /* CEmptySceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9361B7F68D600F212E8 /* CEmptySceneNode.cpp */; };
5E5733801C18E212003F664E /* CLightSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9381B7F68D600F212E8 /* CLightSceneNode.cpp */; };
5E5733811C18E212003F664E /* CMeshSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C93A1B7F68D600F212E8 /* CMeshSceneNode.cpp */; };
5E5733821C18E212003F664E /* COctreeSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C93C1B7F68D600F212E8 /* COctreeSceneNode.cpp */; };
5E5733831C18E212003F664E /* CQuake3ShaderSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C93E1B7F68D600F212E8 /* CQuake3ShaderSceneNode.cpp */; };
5E5733841C18E212003F664E /* CShadowVolumeSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9401B7F68D600F212E8 /* CShadowVolumeSceneNode.cpp */; };
5E5733851C18E212003F664E /* CSkyBoxSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9421B7F68D600F212E8 /* CSkyBoxSceneNode.cpp */; };
5E5733861C18E212003F664E /* CSkyDomeSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9441B7F68D600F212E8 /* CSkyDomeSceneNode.cpp */; };
5E5733871C18E212003F664E /* CSphereSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9461B7F68D600F212E8 /* CSphereSceneNode.cpp */; };
5E5733881C18E212003F664E /* CTerrainSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9481B7F68D600F212E8 /* CTerrainSceneNode.cpp */; };
5E5733891C18E212003F664E /* CTextSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C94A1B7F68D600F212E8 /* CTextSceneNode.cpp */; };
5E57338A1C18E212003F664E /* CVolumeLightSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C94C1B7F68D600F212E8 /* CVolumeLightSceneNode.cpp */; };
5E57338B1C18E212003F664E /* CWaterSurfaceSceneNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C94E1B7F68D600F212E8 /* CWaterSurfaceSceneNode.cpp */; };
5E57338C1C18E212003F664E /* CB3DMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E7908981C10FE4A00DFE7FE /* CB3DMeshWriter.cpp */; };
5E57338D1C18E212003F664E /* CColladaMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9501B7F691500F212E8 /* CColladaMeshWriter.cpp */; };
5E57338E1C18E212003F664E /* CIrrMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9521B7F691500F212E8 /* CIrrMeshWriter.cpp */; };
5E57338F1C18E212003F664E /* COBJMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9541B7F691500F212E8 /* COBJMeshWriter.cpp */; };
5E5733901C18E212003F664E /* CPLYMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9561B7F691500F212E8 /* CPLYMeshWriter.cpp */; };
5E5733911C18E212003F664E /* CSTLMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9581B7F691500F212E8 /* CSTLMeshWriter.cpp */; };
5E5733921C18E212003F664E /* CDefaultSceneNodeAnimatorFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8AD1B7F664100F212E8 /* CDefaultSceneNodeAnimatorFactory.cpp */; };
5E5733931C18E212003F664E /* CDefaultSceneNodeFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8AF1B7F664100F212E8 /* CDefaultSceneNodeFactory.cpp */; };
5E5733941C18E212003F664E /* CGeometryCreator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8B11B7F664100F212E8 /* CGeometryCreator.cpp */; };
5E5733951C18E212003F664E /* CMeshCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8B31B7F664100F212E8 /* CMeshCache.cpp */; };
5E5733961C18E212003F664E /* CMeshManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8B51B7F664100F212E8 /* CMeshManipulator.cpp */; };
5E5733971C18E212003F664E /* CSceneManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C8B71B7F664100F212E8 /* CSceneManager.cpp */; };
5E5733981C18E212003F664E /* CBurningShader_Raster_Reference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9601B7F6A7600F212E8 /* CBurningShader_Raster_Reference.cpp */; };
5E5733991C18E212003F664E /* CDepthBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9611B7F6A7600F212E8 /* CDepthBuffer.cpp */; };
5E57339A1C18E212003F664E /* CSoftwareDriver2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9641B7F6A7600F212E8 /* CSoftwareDriver2.cpp */; };
5E57339B1C18E212003F664E /* CSoftwareTexture2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9661B7F6A7600F212E8 /* CSoftwareTexture2.cpp */; };
5E57339C1C18E212003F664E /* CTRGouraud2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9681B7F6A7600F212E8 /* CTRGouraud2.cpp */; };
5E57339D1C18E212003F664E /* CTRGouraudAlpha2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9691B7F6A7600F212E8 /* CTRGouraudAlpha2.cpp */; };
5E57339E1C18E212003F664E /* CTRGouraudAlphaNoZ2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96A1B7F6A7600F212E8 /* CTRGouraudAlphaNoZ2.cpp */; };
5E57339F1C18E212003F664E /* CTRNormalMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96B1B7F6A7600F212E8 /* CTRNormalMap.cpp */; };
5E5733A01C18E212003F664E /* CTRStencilShadow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96C1B7F6A7600F212E8 /* CTRStencilShadow.cpp */; };
5E5733A11C18E212003F664E /* CTRTextureBlend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96D1B7F6A7600F212E8 /* CTRTextureBlend.cpp */; };
5E5733A21C18E212003F664E /* CTRTextureDetailMap2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96E1B7F6A7600F212E8 /* CTRTextureDetailMap2.cpp */; };
5E5733A31C18E212003F664E /* CTRTextureGouraud2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C96F1B7F6A7600F212E8 /* CTRTextureGouraud2.cpp */; };
5E5733A41C18E212003F664E /* CTRTextureGouraudAdd2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9701B7F6A7600F212E8 /* CTRTextureGouraudAdd2.cpp */; };
5E5733A51C18E212003F664E /* CTRTextureGouraudAddNoZ2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9711B7F6A7600F212E8 /* CTRTextureGouraudAddNoZ2.cpp */; };
5E5733A61C18E212003F664E /* CTRTextureGouraudAlpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9721B7F6A7600F212E8 /* CTRTextureGouraudAlpha.cpp */; };
5E5733A71C18E212003F664E /* CTRTextureGouraudAlphaNoZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9731B7F6A7600F212E8 /* CTRTextureGouraudAlphaNoZ.cpp */; };
5E5733A81C18E212003F664E /* CTRTextureGouraudNoZ2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9741B7F6A7600F212E8 /* CTRTextureGouraudNoZ2.cpp */; };
5E5733A91C18E212003F664E /* CTRTextureGouraudVertexAlpha2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9751B7F6A7600F212E8 /* CTRTextureGouraudVertexAlpha2.cpp */; };
5E5733AA1C18E212003F664E /* CTRTextureLightMap2_Add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9761B7F6A7600F212E8 /* CTRTextureLightMap2_Add.cpp */; };
5E5733AB1C18E212003F664E /* CTRTextureLightMap2_M1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9771B7F6A7600F212E8 /* CTRTextureLightMap2_M1.cpp */; };
5E5733AC1C18E212003F664E /* CTRTextureLightMap2_M2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9781B7F6A7600F212E8 /* CTRTextureLightMap2_M2.cpp */; };
5E5733AD1C18E212003F664E /* CTRTextureLightMap2_M4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9791B7F6A7600F212E8 /* CTRTextureLightMap2_M4.cpp */; };
5E5733AE1C18E212003F664E /* CTRTextureLightMapGouraud2_M4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C97A1B7F6A7600F212E8 /* CTRTextureLightMapGouraud2_M4.cpp */; };
5E5733AF1C18E212003F664E /* CTRTextureWire2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C97B1B7F6A7600F212E8 /* CTRTextureWire2.cpp */; };
5E5733B01C18E212003F664E /* IBurningShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C97C1B7F6A7600F212E8 /* IBurningShader.cpp */; };
5E5733B11C18E212003F664E /* CImageLoaderBMP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9841B7F6AED00F212E8 /* CImageLoaderBMP.cpp */; };
5E5733B21C18E212003F664E /* CImageLoaderDDS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9861B7F6AED00F212E8 /* CImageLoaderDDS.cpp */; };
5E5733B31C18E212003F664E /* CImageLoaderJPG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9881B7F6AED00F212E8 /* CImageLoaderJPG.cpp */; };
5E5733B41C18E212003F664E /* CImageLoaderPCX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C98A1B7F6AED00F212E8 /* CImageLoaderPCX.cpp */; };
5E5733B51C18E212003F664E /* CImageLoaderPNG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C98C1B7F6AED00F212E8 /* CImageLoaderPNG.cpp */; };
5E5733B61C18E212003F664E /* CImageLoaderPPM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C98E1B7F6AED00F212E8 /* CImageLoaderPPM.cpp */; };
5E5733B71C18E212003F664E /* CImageLoaderPSD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9901B7F6AED00F212E8 /* CImageLoaderPSD.cpp */; };
5E5733B81C18E212003F664E /* CImageLoaderPVR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9921B7F6AED00F212E8 /* CImageLoaderPVR.cpp */; };
5E5733B91C18E212003F664E /* CImageLoaderRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9941B7F6AED00F212E8 /* CImageLoaderRGB.cpp */; };
5E5733BA1C18E212003F664E /* CImageLoaderTGA.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9961B7F6AED00F212E8 /* CImageLoaderTGA.cpp */; };
5E5733BB1C18E212003F664E /* CImageLoaderWAL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9981B7F6AED00F212E8 /* CImageLoaderWAL.cpp */; };
5E5733BC1C18E212003F664E /* CImageWriterBMP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C99A1B7F6B0900F212E8 /* CImageWriterBMP.cpp */; };
5E5733BD1C18E212003F664E /* CImageWriterJPG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C99C1B7F6B0900F212E8 /* CImageWriterJPG.cpp */; };
5E5733BE1C18E212003F664E /* CImageWriterPCX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C99E1B7F6B0900F212E8 /* CImageWriterPCX.cpp */; };
5E5733BF1C18E212003F664E /* CImageWriterPNG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9A01B7F6B0900F212E8 /* CImageWriterPNG.cpp */; };
5E5733C01C18E212003F664E /* CImageWriterPPM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9A21B7F6B0900F212E8 /* CImageWriterPPM.cpp */; };
5E5733C11C18E212003F664E /* CImageWriterPSD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9A41B7F6B0900F212E8 /* CImageWriterPSD.cpp */; };
5E5733C21C18E212003F664E /* CImageWriterTGA.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9A61B7F6B0900F212E8 /* CImageWriterTGA.cpp */; };
5E5733C31C18E212003F664E /* CColorConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9A81B7F6B6800F212E8 /* CColorConverter.cpp */; };
5E5733C41C18E212003F664E /* CFPSCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9AA1B7F6B6800F212E8 /* CFPSCounter.cpp */; };
5E5733C51C18E212003F664E /* CImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9AC1B7F6B6800F212E8 /* CImage.cpp */; };
5E5733C61C18E212003F664E /* CNullDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9AE1B7F6B6800F212E8 /* CNullDriver.cpp */; };
5E5733C71C18E212003F664E /* COpenGLCacheHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E7908911C10EEC000DFE7FE /* COpenGLCacheHandler.cpp */; };
5E5733C81C18E212003F664E /* COpenGLDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9B11B7F6BA700F212E8 /* COpenGLDriver.cpp */; };
5E5733C91C18E212003F664E /* COpenGLExtensionHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9B31B7F6BA700F212E8 /* COpenGLExtensionHandler.cpp */; };
5E5733CA1C18E212003F664E /* COpenGLNormalMapRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9B61B7F6BA700F212E8 /* COpenGLNormalMapRenderer.cpp */; };
5E5733CB1C18E212003F664E /* COpenGLParallaxMapRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9B81B7F6BA700F212E8 /* COpenGLParallaxMapRenderer.cpp */; };
5E5733CC1C18E212003F664E /* COpenGLShaderMaterialRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9BA1B7F6BA700F212E8 /* COpenGLShaderMaterialRenderer.cpp */; };
5E5733CD1C18E212003F664E /* COpenGLSLMaterialRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9BC1B7F6BA700F212E8 /* COpenGLSLMaterialRenderer.cpp */; };
5E5733CE1C18E212003F664E /* CSoftwareDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9D71B7F6C6100F212E8 /* CSoftwareDriver.cpp */; };
5E5733CF1C18E212003F664E /* CSoftwareTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9D91B7F6C6100F212E8 /* CSoftwareTexture.cpp */; };
5E5733D01C18E212003F664E /* CTRFlat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9DB1B7F6C6100F212E8 /* CTRFlat.cpp */; };
5E5733D11C18E212003F664E /* CTRFlatWire.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9DC1B7F6C6100F212E8 /* CTRFlatWire.cpp */; };
5E5733D21C18E212003F664E /* CTRGouraud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9DD1B7F6C6100F212E8 /* CTRGouraud.cpp */; };
5E5733D31C18E212003F664E /* CTRGouraudWire.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9DE1B7F6C6100F212E8 /* CTRGouraudWire.cpp */; };
5E5733D41C18E212003F664E /* CTRTextureFlat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9DF1B7F6C6100F212E8 /* CTRTextureFlat.cpp */; };
5E5733D51C18E212003F664E /* CTRTextureFlatWire.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E01B7F6C6100F212E8 /* CTRTextureFlatWire.cpp */; };
5E5733D61C18E212003F664E /* CTRTextureGouraud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E11B7F6C6100F212E8 /* CTRTextureGouraud.cpp */; };
5E5733D71C18E212003F664E /* CTRTextureGouraudAdd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E31B7F6C6100F212E8 /* CTRTextureGouraudAdd.cpp */; };
5E5733D81C18E212003F664E /* CTRTextureGouraudNoZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E41B7F6C6100F212E8 /* CTRTextureGouraudNoZ.cpp */; };
5E5733D91C18E212003F664E /* CTRTextureGouraudWire.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E51B7F6C6100F212E8 /* CTRTextureGouraudWire.cpp */; };
5E5733DA1C18E212003F664E /* CZBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9E61B7F6C6100F212E8 /* CZBuffer.cpp */; };
5E5733DB1C18E212003F664E /* CNSOGLManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9EE1B7F6CCC00F212E8 /* CNSOGLManager.mm */; };
5E5733DC1C18E212003F664E /* CVideoModeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E34C9EB1B7F6C8200F212E8 /* CVideoModeList.cpp */; };
5E5733E91C18E254003F664E /* CIrrDeviceiOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733E71C18E254003F664E /* CIrrDeviceiOS.mm */; };
5E5733F31C18E2C0003F664E /* COGLESDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733ED1C18E2C0003F664E /* COGLESDriver.cpp */; };
5E5733F51C18E2C0003F664E /* COGLESExtensionHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733EF1C18E2C0003F664E /* COGLESExtensionHandler.cpp */; };
5E5734081C18E2E2003F664E /* COGLES2Driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733F91C18E2E2003F664E /* COGLES2Driver.cpp */; };
5E57340A1C18E2E2003F664E /* COGLES2ExtensionHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733FB1C18E2E2003F664E /* COGLES2ExtensionHandler.cpp */; };
5E57340C1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733FD1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.cpp */; };
5E57340E1C18E2E2003F664E /* COGLES2MaterialRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5733FF1C18E2E2003F664E /* COGLES2MaterialRenderer.cpp */; };
5E5734101C18E2E2003F664E /* COGLES2NormalMapRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5734011C18E2E2003F664E /* COGLES2NormalMapRenderer.cpp */; };
5E5734121C18E2E2003F664E /* COGLES2ParallaxMapRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5734031C18E2E2003F664E /* COGLES2ParallaxMapRenderer.cpp */; };
5E5734141C18E2E2003F664E /* COGLES2Renderer2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5734051C18E2E2003F664E /* COGLES2Renderer2D.cpp */; };
5E7908971C10EF3F00DFE7FE /* COpenGLCacheHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E7908911C10EEC000DFE7FE /* COpenGLCacheHandler.cpp */; };
5E79089B1C10FEF900DFE7FE /* CB3DMeshWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E7908981C10FE4A00DFE7FE /* CB3DMeshWriter.cpp */; };
5E8570BC1B7F9AC400B267D2 /* CIrrDeviceConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E8570BA1B7F9AC400B267D2 /* CIrrDeviceConsole.cpp */; };
5E8570BD1B7F9AC400B267D2 /* CIrrDeviceConsole.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E8570BB1B7F9AC400B267D2 /* CIrrDeviceConsole.h */; };
5E9573D71C18E9E600C27989 /* CEAGLManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E9573D61C18E9E600C27989 /* CEAGLManager.mm */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -1021,6 +1326,30 @@
5E34C9ED1B7F6CCC00F212E8 /* CNSOGLManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNSOGLManager.h; sourceTree = "<group>"; };
5E34C9EE1B7F6CCC00F212E8 /* CNSOGLManager.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CNSOGLManager.mm; sourceTree = "<group>"; };
5E34C9F31B7F6E3400F212E8 /* libIrrlicht.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIrrlicht.a; sourceTree = BUILT_PRODUCTS_DIR; };
5E5733E51C18E212003F664E /* libIrrlicht.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIrrlicht.a; sourceTree = BUILT_PRODUCTS_DIR; };
5E5733E61C18E254003F664E /* CIrrDeviceiOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIrrDeviceiOS.h; sourceTree = "<group>"; };
5E5733E71C18E254003F664E /* CIrrDeviceiOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CIrrDeviceiOS.mm; sourceTree = "<group>"; };
5E5733EC1C18E2C0003F664E /* COGLESCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLESCommon.h; sourceTree = "<group>"; };
5E5733ED1C18E2C0003F664E /* COGLESDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLESDriver.cpp; sourceTree = "<group>"; };
5E5733EE1C18E2C0003F664E /* COGLESDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLESDriver.h; sourceTree = "<group>"; };
5E5733EF1C18E2C0003F664E /* COGLESExtensionHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLESExtensionHandler.cpp; sourceTree = "<group>"; };
5E5733F01C18E2C0003F664E /* COGLESExtensionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLESExtensionHandler.h; sourceTree = "<group>"; };
5E5733F11C18E2C0003F664E /* COGLESMaterialRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLESMaterialRenderer.h; sourceTree = "<group>"; };
5E5733F81C18E2E2003F664E /* COGLES2Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2Common.h; sourceTree = "<group>"; };
5E5733F91C18E2E2003F664E /* COGLES2Driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2Driver.cpp; sourceTree = "<group>"; };
5E5733FA1C18E2E2003F664E /* COGLES2Driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2Driver.h; sourceTree = "<group>"; };
5E5733FB1C18E2E2003F664E /* COGLES2ExtensionHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2ExtensionHandler.cpp; sourceTree = "<group>"; };
5E5733FC1C18E2E2003F664E /* COGLES2ExtensionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2ExtensionHandler.h; sourceTree = "<group>"; };
5E5733FD1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2FixedPipelineRenderer.cpp; sourceTree = "<group>"; };
5E5733FE1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2FixedPipelineRenderer.h; sourceTree = "<group>"; };
5E5733FF1C18E2E2003F664E /* COGLES2MaterialRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2MaterialRenderer.cpp; sourceTree = "<group>"; };
5E5734001C18E2E2003F664E /* COGLES2MaterialRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2MaterialRenderer.h; sourceTree = "<group>"; };
5E5734011C18E2E2003F664E /* COGLES2NormalMapRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2NormalMapRenderer.cpp; sourceTree = "<group>"; };
5E5734021C18E2E2003F664E /* COGLES2NormalMapRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2NormalMapRenderer.h; sourceTree = "<group>"; };
5E5734031C18E2E2003F664E /* COGLES2ParallaxMapRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2ParallaxMapRenderer.cpp; sourceTree = "<group>"; };
5E5734041C18E2E2003F664E /* COGLES2ParallaxMapRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2ParallaxMapRenderer.h; sourceTree = "<group>"; };
5E5734051C18E2E2003F664E /* COGLES2Renderer2D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = COGLES2Renderer2D.cpp; sourceTree = "<group>"; };
5E5734061C18E2E2003F664E /* COGLES2Renderer2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COGLES2Renderer2D.h; sourceTree = "<group>"; };
5E79088A1C10EC6C00DFE7FE /* IRenderTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IRenderTarget.h; path = ../../include/IRenderTarget.h; sourceTree = "<group>"; };
5E79088D1C10EE6700DFE7FE /* COGLCoreCacheHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = COGLCoreCacheHandler.h; sourceTree = "<group>"; };
5E79088E1C10EE6700DFE7FE /* COGLCoreFeature.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = COGLCoreFeature.h; sourceTree = "<group>"; };
@ -1033,6 +1362,9 @@
5E7908991C10FE4A00DFE7FE /* CB3DMeshWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CB3DMeshWriter.h; sourceTree = "<group>"; };
5E8570BA1B7F9AC400B267D2 /* CIrrDeviceConsole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CIrrDeviceConsole.cpp; sourceTree = "<group>"; };
5E8570BB1B7F9AC400B267D2 /* CIrrDeviceConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIrrDeviceConsole.h; sourceTree = "<group>"; };
5E9573D11C18E70000C27989 /* EVertexAttributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EVertexAttributes.h; path = ../../include/EVertexAttributes.h; sourceTree = "<group>"; };
5E9573D31C18E9B300C27989 /* CEAGLManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEAGLManager.h; sourceTree = "<group>"; };
5E9573D61C18E9E600C27989 /* CEAGLManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CEAGLManager.mm; sourceTree = "<group>"; };
5EC24F5E1B8B861200DCA615 /* exampleHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = exampleHelper.h; path = ../../include/exampleHelper.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -1044,6 +1376,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
5E5733DD1C18E212003F664E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@ -1244,6 +1583,7 @@
5E34C6F41B7F4AFB00F212E8 /* EMaterialFlags.h */,
5E34C6F51B7F4AFB00F212E8 /* EMaterialTypes.h */,
5E34C6FB1B7F4AFC00F212E8 /* EShaderTypes.h */,
5E9573D11C18E70000C27989 /* EVertexAttributes.h */,
5E34C70B1B7F4AFC00F212E8 /* IContextManager.h */,
5E34C7141B7F4AFC00F212E8 /* IGPUProgrammingServices.h */,
5E34C7311B7F4AFC00F212E8 /* IImage.h */,
@ -1447,6 +1787,8 @@
5E34C95B1B7F693800F212E8 /* Null */,
5E34C95C1B7F694500F212E8 /* OpenGL */,
5E79088C1C10EDF000DFE7FE /* OpenGL Context */,
5E5733EA1C18E27E003F664E /* OpenGL ES1.x */,
5E5733EB1C18E29B003F664E /* OpenGL ES2.x */,
5E79088B1C10ED5000DFE7FE /* OpenGL Core */,
5E34C95F1B7F697B00F212E8 /* Software */,
);
@ -1480,6 +1822,8 @@
children = (
5E8570BA1B7F9AC400B267D2 /* CIrrDeviceConsole.cpp */,
5E8570BB1B7F9AC400B267D2 /* CIrrDeviceConsole.h */,
5E5733E61C18E254003F664E /* CIrrDeviceiOS.h */,
5E5733E71C18E254003F664E /* CIrrDeviceiOS.mm */,
5E34C8131B7F535C00F212E8 /* CIrrDeviceOSX.h */,
5E34C8141B7F535C00F212E8 /* CIrrDeviceOSX.mm */,
5E34C80D1B7F52AC00F212E8 /* CIrrDeviceStub.cpp */,
@ -2032,10 +2376,46 @@
isa = PBXGroup;
children = (
5E34C9F31B7F6E3400F212E8 /* libIrrlicht.a */,
5E5733E51C18E212003F664E /* libIrrlicht.a */,
);
name = Products;
sourceTree = "<group>";
};
5E5733EA1C18E27E003F664E /* OpenGL ES1.x */ = {
isa = PBXGroup;
children = (
5E5733EC1C18E2C0003F664E /* COGLESCommon.h */,
5E5733ED1C18E2C0003F664E /* COGLESDriver.cpp */,
5E5733EE1C18E2C0003F664E /* COGLESDriver.h */,
5E5733EF1C18E2C0003F664E /* COGLESExtensionHandler.cpp */,
5E5733F01C18E2C0003F664E /* COGLESExtensionHandler.h */,
5E5733F11C18E2C0003F664E /* COGLESMaterialRenderer.h */,
);
name = "OpenGL ES1.x";
sourceTree = "<group>";
};
5E5733EB1C18E29B003F664E /* OpenGL ES2.x */ = {
isa = PBXGroup;
children = (
5E5733F81C18E2E2003F664E /* COGLES2Common.h */,
5E5733F91C18E2E2003F664E /* COGLES2Driver.cpp */,
5E5733FA1C18E2E2003F664E /* COGLES2Driver.h */,
5E5733FB1C18E2E2003F664E /* COGLES2ExtensionHandler.cpp */,
5E5733FC1C18E2E2003F664E /* COGLES2ExtensionHandler.h */,
5E5733FD1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.cpp */,
5E5733FE1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.h */,
5E5733FF1C18E2E2003F664E /* COGLES2MaterialRenderer.cpp */,
5E5734001C18E2E2003F664E /* COGLES2MaterialRenderer.h */,
5E5734011C18E2E2003F664E /* COGLES2NormalMapRenderer.cpp */,
5E5734021C18E2E2003F664E /* COGLES2NormalMapRenderer.h */,
5E5734031C18E2E2003F664E /* COGLES2ParallaxMapRenderer.cpp */,
5E5734041C18E2E2003F664E /* COGLES2ParallaxMapRenderer.h */,
5E5734051C18E2E2003F664E /* COGLES2Renderer2D.cpp */,
5E5734061C18E2E2003F664E /* COGLES2Renderer2D.h */,
);
name = "OpenGL ES2.x";
sourceTree = "<group>";
};
5E79088B1C10ED5000DFE7FE /* OpenGL Core */ = {
isa = PBXGroup;
children = (
@ -2050,6 +2430,8 @@
5E79088C1C10EDF000DFE7FE /* OpenGL Context */ = {
isa = PBXGroup;
children = (
5E9573D61C18E9E600C27989 /* CEAGLManager.mm */,
5E9573D31C18E9B300C27989 /* CEAGLManager.h */,
5E34C9ED1B7F6CCC00F212E8 /* CNSOGLManager.h */,
5E34C9EE1B7F6CCC00F212E8 /* CNSOGLManager.mm */,
);
@ -2063,9 +2445,13 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
5E8570BD1B7F9AC400B267D2 /* CIrrDeviceConsole.h in Headers */,
5E7908961C10EEC000DFE7FE /* COpenGLCommon.h in Headers */,
5E7908951C10EEC000DFE7FE /* COpenGLCacheHandler.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
5E5733DE1C18E212003F664E /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2089,6 +2475,23 @@
productReference = 5E34C9F31B7F6E3400F212E8 /* libIrrlicht.a */;
productType = "com.apple.product-type.library.static";
};
5E5732B11C18E212003F664E /* Irrlicht_iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5E5733E21C18E212003F664E /* Build configuration list for PBXNativeTarget "Irrlicht_iOS" */;
buildPhases = (
5E5732B21C18E212003F664E /* Sources */,
5E5733DD1C18E212003F664E /* Frameworks */,
5E5733DE1C18E212003F664E /* Headers */,
);
buildRules = (
);
dependencies = (
);
name = Irrlicht_iOS;
productName = Irrlicht;
productReference = 5E5733E51C18E212003F664E /* libIrrlicht.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@ -2115,6 +2518,7 @@
projectRoot = "";
targets = (
5E34C9F21B7F6E3400F212E8 /* Irrlicht_OSX */,
5E5732B11C18E212003F664E /* Irrlicht_iOS */,
);
};
/* End PBXProject section */
@ -2169,7 +2573,6 @@
5E34CA4F1B7F6EBF00F212E8 /* CXMLWriter.cpp in Sources */,
5E34CA511B7F6EBF00F212E8 /* CZipReader.cpp in Sources */,
5E34CA541B7F6EBF00F212E8 /* irrXML.cpp in Sources */,
5E34CA581B7F6EBF00F212E8 /* CIrrDeviceOSX.mm in Sources */,
5E34CA591B7F6EBF00F212E8 /* CIrrDeviceStub.cpp in Sources */,
5E34CA5C1B7F6EBF00F212E8 /* aescrypt.cpp in Sources */,
5E34CA5D1B7F6EBF00F212E8 /* aeskey.cpp in Sources */,
@ -2425,12 +2828,329 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
5E5732B21C18E212003F664E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5E57340E1C18E2E2003F664E /* COGLES2MaterialRenderer.cpp in Sources */,
5E5732B31C18E212003F664E /* CDefaultGUIElementFactory.cpp in Sources */,
5E5732B41C18E212003F664E /* CGUIButton.cpp in Sources */,
5E5732B51C18E212003F664E /* CGUICheckBox.cpp in Sources */,
5E5732B61C18E212003F664E /* CGUIColorSelectDialog.cpp in Sources */,
5E5732B71C18E212003F664E /* CGUIComboBox.cpp in Sources */,
5E5732B81C18E212003F664E /* CGUIContextMenu.cpp in Sources */,
5E5732B91C18E212003F664E /* CGUIEditBox.cpp in Sources */,
5E5732BA1C18E212003F664E /* CGUIEnvironment.cpp in Sources */,
5E5732BB1C18E212003F664E /* CGUIFileOpenDialog.cpp in Sources */,
5E5732BC1C18E212003F664E /* CGUIFont.cpp in Sources */,
5E5732BD1C18E212003F664E /* CGUIImage.cpp in Sources */,
5E5732BE1C18E212003F664E /* CGUIImageList.cpp in Sources */,
5E5732BF1C18E212003F664E /* CGUIInOutFader.cpp in Sources */,
5E5732C01C18E212003F664E /* CGUIListBox.cpp in Sources */,
5E5732C11C18E212003F664E /* CGUIMenu.cpp in Sources */,
5E5732C21C18E212003F664E /* CGUIMeshViewer.cpp in Sources */,
5E5732C31C18E212003F664E /* CGUIMessageBox.cpp in Sources */,
5E5732C41C18E212003F664E /* CGUIModalScreen.cpp in Sources */,
5E5732C51C18E212003F664E /* CGUIProfiler.cpp in Sources */,
5E5732C61C18E212003F664E /* CGUIScrollBar.cpp in Sources */,
5E5732C71C18E212003F664E /* CGUISkin.cpp in Sources */,
5E5732C81C18E212003F664E /* CGUISpinBox.cpp in Sources */,
5E5732C91C18E212003F664E /* CGUISpriteBank.cpp in Sources */,
5E5732CA1C18E212003F664E /* CGUIStaticText.cpp in Sources */,
5E5732CB1C18E212003F664E /* CGUITabControl.cpp in Sources */,
5E5732CC1C18E212003F664E /* CGUITable.cpp in Sources */,
5E5732CD1C18E212003F664E /* CGUIToolBar.cpp in Sources */,
5E5732CE1C18E212003F664E /* CGUITreeView.cpp in Sources */,
5E5732CF1C18E212003F664E /* CGUIWindow.cpp in Sources */,
5E5732D01C18E212003F664E /* CAttributes.cpp in Sources */,
5E5732D11C18E212003F664E /* CFileList.cpp in Sources */,
5E5732D21C18E212003F664E /* CFileSystem.cpp in Sources */,
5E5732D31C18E212003F664E /* CLimitReadFile.cpp in Sources */,
5E5732D41C18E212003F664E /* CMemoryFile.cpp in Sources */,
5E5732D51C18E212003F664E /* CMountPointReader.cpp in Sources */,
5E5732D61C18E212003F664E /* CNPKReader.cpp in Sources */,
5E5732D71C18E212003F664E /* CPakReader.cpp in Sources */,
5E5732D81C18E212003F664E /* CReadFile.cpp in Sources */,
5E5732D91C18E212003F664E /* CTarReader.cpp in Sources */,
5E5732DA1C18E212003F664E /* CWADReader.cpp in Sources */,
5E5732DB1C18E212003F664E /* CWriteFile.cpp in Sources */,
5E5732DC1C18E212003F664E /* CXMLReader.cpp in Sources */,
5E5732DD1C18E212003F664E /* CXMLWriter.cpp in Sources */,
5E5732DE1C18E212003F664E /* CZipReader.cpp in Sources */,
5E5732DF1C18E212003F664E /* irrXML.cpp in Sources */,
5E5732E01C18E212003F664E /* CIrrDeviceOSX.mm in Sources */,
5E5732E11C18E212003F664E /* CIrrDeviceStub.cpp in Sources */,
5E5732E21C18E212003F664E /* aescrypt.cpp in Sources */,
5E5732E31C18E212003F664E /* aeskey.cpp in Sources */,
5E5732E41C18E212003F664E /* aestab.cpp in Sources */,
5E5732E51C18E212003F664E /* fileenc.cpp in Sources */,
5E5732E61C18E212003F664E /* hmac.cpp in Sources */,
5E5732E71C18E212003F664E /* prng.cpp in Sources */,
5E5732E81C18E212003F664E /* pwd2key.cpp in Sources */,
5E5732E91C18E212003F664E /* sha1.cpp in Sources */,
5E5732EA1C18E212003F664E /* sha2.cpp in Sources */,
5E5732EB1C18E212003F664E /* blocksort.c in Sources */,
5E5732EC1C18E212003F664E /* bzcompress.c in Sources */,
5E5732ED1C18E212003F664E /* bzlib.c in Sources */,
5E5732EE1C18E212003F664E /* crctable.c in Sources */,
5E5732EF1C18E212003F664E /* decompress.c in Sources */,
5E5732F01C18E212003F664E /* huffman.c in Sources */,
5E5732F11C18E212003F664E /* randtable.c in Sources */,
5E5732F21C18E212003F664E /* jaricom.c in Sources */,
5E5732F31C18E212003F664E /* jcapimin.c in Sources */,
5E5732F41C18E212003F664E /* jcapistd.c in Sources */,
5E5732F51C18E212003F664E /* jcarith.c in Sources */,
5E5732F61C18E212003F664E /* jccoefct.c in Sources */,
5E5732F71C18E212003F664E /* jccolor.c in Sources */,
5E5734081C18E2E2003F664E /* COGLES2Driver.cpp in Sources */,
5E5732F81C18E212003F664E /* jcdctmgr.c in Sources */,
5E5732F91C18E212003F664E /* jchuff.c in Sources */,
5E5732FA1C18E212003F664E /* jcinit.c in Sources */,
5E5732FB1C18E212003F664E /* jcmainct.c in Sources */,
5E5732FC1C18E212003F664E /* jcmarker.c in Sources */,
5E5732FD1C18E212003F664E /* jcmaster.c in Sources */,
5E5732FE1C18E212003F664E /* jcomapi.c in Sources */,
5E5732FF1C18E212003F664E /* jcparam.c in Sources */,
5E5733001C18E212003F664E /* jcprepct.c in Sources */,
5E5733011C18E212003F664E /* jcsample.c in Sources */,
5E5733021C18E212003F664E /* jctrans.c in Sources */,
5E5733031C18E212003F664E /* jdapimin.c in Sources */,
5E5733041C18E212003F664E /* jdapistd.c in Sources */,
5E5733051C18E212003F664E /* jdarith.c in Sources */,
5E5733061C18E212003F664E /* jdatadst.c in Sources */,
5E5733071C18E212003F664E /* jdatasrc.c in Sources */,
5E5733081C18E212003F664E /* jdcoefct.c in Sources */,
5E5733091C18E212003F664E /* jdcolor.c in Sources */,
5E57330A1C18E212003F664E /* jddctmgr.c in Sources */,
5E57330B1C18E212003F664E /* jdhuff.c in Sources */,
5E57340C1C18E2E2003F664E /* COGLES2FixedPipelineRenderer.cpp in Sources */,
5E57330C1C18E212003F664E /* jdinput.c in Sources */,
5E57330D1C18E212003F664E /* jdmainct.c in Sources */,
5E57330E1C18E212003F664E /* jdmarker.c in Sources */,
5E57330F1C18E212003F664E /* jdmaster.c in Sources */,
5E5733101C18E212003F664E /* jdmerge.c in Sources */,
5E5733111C18E212003F664E /* jdpostct.c in Sources */,
5E5733121C18E212003F664E /* jdsample.c in Sources */,
5E5733131C18E212003F664E /* CIrrDeviceConsole.cpp in Sources */,
5E5733141C18E212003F664E /* jdtrans.c in Sources */,
5E5733151C18E212003F664E /* jerror.c in Sources */,
5E5733161C18E212003F664E /* jfdctflt.c in Sources */,
5E5733171C18E212003F664E /* jfdctfst.c in Sources */,
5E5733181C18E212003F664E /* jfdctint.c in Sources */,
5E5733191C18E212003F664E /* jidctflt.c in Sources */,
5E57331A1C18E212003F664E /* jidctfst.c in Sources */,
5E57331B1C18E212003F664E /* jidctint.c in Sources */,
5E57331C1C18E212003F664E /* jmemmgr.c in Sources */,
5E57331D1C18E212003F664E /* jmemnobs.c in Sources */,
5E57331E1C18E212003F664E /* jquant1.c in Sources */,
5E57331F1C18E212003F664E /* jquant2.c in Sources */,
5E5733201C18E212003F664E /* jutils.c in Sources */,
5E5733211C18E212003F664E /* png.c in Sources */,
5E5733221C18E212003F664E /* pngerror.c in Sources */,
5E5733231C18E212003F664E /* pngget.c in Sources */,
5E5733241C18E212003F664E /* pngmem.c in Sources */,
5E5733251C18E212003F664E /* pngpread.c in Sources */,
5E5733261C18E212003F664E /* pngread.c in Sources */,
5E5733271C18E212003F664E /* pngrio.c in Sources */,
5E5733281C18E212003F664E /* pngrtran.c in Sources */,
5E5733291C18E212003F664E /* pngrutil.c in Sources */,
5E9573D71C18E9E600C27989 /* CEAGLManager.mm in Sources */,
5E57332A1C18E212003F664E /* pngset.c in Sources */,
5E57332B1C18E212003F664E /* pngtrans.c in Sources */,
5E57332C1C18E212003F664E /* pngwio.c in Sources */,
5E57332D1C18E212003F664E /* pngwrite.c in Sources */,
5E57332E1C18E212003F664E /* pngwtran.c in Sources */,
5E57332F1C18E212003F664E /* pngwutil.c in Sources */,
5E5733301C18E212003F664E /* LzmaDec.c in Sources */,
5E5733311C18E212003F664E /* adler32.c in Sources */,
5E5733321C18E212003F664E /* compress.c in Sources */,
5E5733331C18E212003F664E /* crc32.c in Sources */,
5E5733341C18E212003F664E /* deflate.c in Sources */,
5E5733351C18E212003F664E /* inffast.c in Sources */,
5E5733361C18E212003F664E /* inflate.c in Sources */,
5E5733371C18E212003F664E /* inftrees.c in Sources */,
5E5733381C18E212003F664E /* trees.c in Sources */,
5E5733391C18E212003F664E /* uncompr.c in Sources */,
5E57333A1C18E212003F664E /* zutil.c in Sources */,
5E57333B1C18E212003F664E /* CLogger.cpp in Sources */,
5E57333C1C18E212003F664E /* COSOperator.cpp in Sources */,
5E57333D1C18E212003F664E /* CProfiler.cpp in Sources */,
5E57333E1C18E212003F664E /* Irrlicht.cpp in Sources */,
5E57333F1C18E212003F664E /* leakHunter.cpp in Sources */,
5E5733401C18E212003F664E /* os.cpp in Sources */,
5E5733411C18E212003F664E /* utf8.cpp in Sources */,
5E5733421C18E212003F664E /* CSceneNodeAnimatorCameraFPS.cpp in Sources */,
5E5733431C18E212003F664E /* CSceneNodeAnimatorCameraMaya.cpp in Sources */,
5E5733441C18E212003F664E /* CSceneNodeAnimatorCollisionResponse.cpp in Sources */,
5E5733451C18E212003F664E /* CSceneNodeAnimatorDelete.cpp in Sources */,
5E5733461C18E212003F664E /* CSceneNodeAnimatorFlyCircle.cpp in Sources */,
5E5733471C18E212003F664E /* CSceneNodeAnimatorFlyStraight.cpp in Sources */,
5E5733481C18E212003F664E /* CSceneNodeAnimatorFollowSpline.cpp in Sources */,
5E5733491C18E212003F664E /* CSceneNodeAnimatorRotation.cpp in Sources */,
5E57334A1C18E212003F664E /* CSceneNodeAnimatorTexture.cpp in Sources */,
5E57334B1C18E212003F664E /* CMetaTriangleSelector.cpp in Sources */,
5E57334C1C18E212003F664E /* COctreeTriangleSelector.cpp in Sources */,
5E57334D1C18E212003F664E /* CSceneCollisionManager.cpp in Sources */,
5E57334E1C18E212003F664E /* CTerrainTriangleSelector.cpp in Sources */,
5E57334F1C18E212003F664E /* CTriangleBBSelector.cpp in Sources */,
5E5733501C18E212003F664E /* CTriangleSelector.cpp in Sources */,
5E5733511C18E212003F664E /* C3DSMeshFileLoader.cpp in Sources */,
5E5733521C18E212003F664E /* CAnimatedMeshHalfLife.cpp in Sources */,
5E5733531C18E212003F664E /* CAnimatedMeshMD2.cpp in Sources */,
5E5733541C18E212003F664E /* CAnimatedMeshMD3.cpp in Sources */,
5E5733551C18E212003F664E /* CB3DMeshFileLoader.cpp in Sources */,
5E5733561C18E212003F664E /* CBSPMeshFileLoader.cpp in Sources */,
5E5733571C18E212003F664E /* CColladaFileLoader.cpp in Sources */,
5E5733581C18E212003F664E /* CCSMLoader.cpp in Sources */,
5E5733591C18E212003F664E /* CDMFLoader.cpp in Sources */,
5E57335A1C18E212003F664E /* CIrrMeshFileLoader.cpp in Sources */,
5E57335B1C18E212003F664E /* CLMTSMeshFileLoader.cpp in Sources */,
5E57335C1C18E212003F664E /* CLWOMeshFileLoader.cpp in Sources */,
5E57335D1C18E212003F664E /* CMD2MeshFileLoader.cpp in Sources */,
5E57335E1C18E212003F664E /* CMD3MeshFileLoader.cpp in Sources */,
5E57335F1C18E212003F664E /* CMeshTextureLoader.cpp in Sources */,
5E5733601C18E212003F664E /* CMS3DMeshFileLoader.cpp in Sources */,
5E5733611C18E212003F664E /* CMY3DMeshFileLoader.cpp in Sources */,
5E5733621C18E212003F664E /* COBJMeshFileLoader.cpp in Sources */,
5E5733631C18E212003F664E /* COCTLoader.cpp in Sources */,
5E5733641C18E212003F664E /* COgreMeshFileLoader.cpp in Sources */,
5E5733651C18E212003F664E /* CPLYMeshFileLoader.cpp in Sources */,
5E5733661C18E212003F664E /* CQ3LevelMesh.cpp in Sources */,
5E5733671C18E212003F664E /* CSceneLoaderIrr.cpp in Sources */,
5E5733681C18E212003F664E /* CSkinnedMesh.cpp in Sources */,
5E5733691C18E212003F664E /* CSMFMeshFileLoader.cpp in Sources */,
5E57336A1C18E212003F664E /* CSTLMeshFileLoader.cpp in Sources */,
5E57336B1C18E212003F664E /* CXMeshFileLoader.cpp in Sources */,
5E57336C1C18E212003F664E /* CParticleAnimatedMeshSceneNodeEmitter.cpp in Sources */,
5E57336D1C18E212003F664E /* CParticleAttractionAffector.cpp in Sources */,
5E57336E1C18E212003F664E /* CParticleBoxEmitter.cpp in Sources */,
5E57336F1C18E212003F664E /* CParticleCylinderEmitter.cpp in Sources */,
5E5733701C18E212003F664E /* CParticleFadeOutAffector.cpp in Sources */,
5E5733711C18E212003F664E /* CParticleGravityAffector.cpp in Sources */,
5E5733721C18E212003F664E /* CParticleMeshEmitter.cpp in Sources */,
5E5733731C18E212003F664E /* CParticlePointEmitter.cpp in Sources */,
5E5733741C18E212003F664E /* CParticleRingEmitter.cpp in Sources */,
5E5733751C18E212003F664E /* CParticleRotationAffector.cpp in Sources */,
5E5733761C18E212003F664E /* CParticleScaleAffector.cpp in Sources */,
5E5733771C18E212003F664E /* CParticleSphereEmitter.cpp in Sources */,
5E5733781C18E212003F664E /* CParticleSystemSceneNode.cpp in Sources */,
5E5733791C18E212003F664E /* CAnimatedMeshSceneNode.cpp in Sources */,
5E5734141C18E2E2003F664E /* COGLES2Renderer2D.cpp in Sources */,
5E57337A1C18E212003F664E /* CBillboardSceneNode.cpp in Sources */,
5E57337B1C18E212003F664E /* CBoneSceneNode.cpp in Sources */,
5E57337C1C18E212003F664E /* CCameraSceneNode.cpp in Sources */,
5E57337D1C18E212003F664E /* CCubeSceneNode.cpp in Sources */,
5E5734101C18E2E2003F664E /* COGLES2NormalMapRenderer.cpp in Sources */,
5E57337E1C18E212003F664E /* CDummyTransformationSceneNode.cpp in Sources */,
5E57337F1C18E212003F664E /* CEmptySceneNode.cpp in Sources */,
5E5733801C18E212003F664E /* CLightSceneNode.cpp in Sources */,
5E5733811C18E212003F664E /* CMeshSceneNode.cpp in Sources */,
5E5733821C18E212003F664E /* COctreeSceneNode.cpp in Sources */,
5E5733831C18E212003F664E /* CQuake3ShaderSceneNode.cpp in Sources */,
5E5733841C18E212003F664E /* CShadowVolumeSceneNode.cpp in Sources */,
5E5733851C18E212003F664E /* CSkyBoxSceneNode.cpp in Sources */,
5E5733861C18E212003F664E /* CSkyDomeSceneNode.cpp in Sources */,
5E5733871C18E212003F664E /* CSphereSceneNode.cpp in Sources */,
5E5733881C18E212003F664E /* CTerrainSceneNode.cpp in Sources */,
5E5733F31C18E2C0003F664E /* COGLESDriver.cpp in Sources */,
5E5733891C18E212003F664E /* CTextSceneNode.cpp in Sources */,
5E57338A1C18E212003F664E /* CVolumeLightSceneNode.cpp in Sources */,
5E57338B1C18E212003F664E /* CWaterSurfaceSceneNode.cpp in Sources */,
5E57338C1C18E212003F664E /* CB3DMeshWriter.cpp in Sources */,
5E57338D1C18E212003F664E /* CColladaMeshWriter.cpp in Sources */,
5E57338E1C18E212003F664E /* CIrrMeshWriter.cpp in Sources */,
5E57338F1C18E212003F664E /* COBJMeshWriter.cpp in Sources */,
5E5733901C18E212003F664E /* CPLYMeshWriter.cpp in Sources */,
5E57340A1C18E2E2003F664E /* COGLES2ExtensionHandler.cpp in Sources */,
5E5733911C18E212003F664E /* CSTLMeshWriter.cpp in Sources */,
5E5733921C18E212003F664E /* CDefaultSceneNodeAnimatorFactory.cpp in Sources */,
5E5733931C18E212003F664E /* CDefaultSceneNodeFactory.cpp in Sources */,
5E5733941C18E212003F664E /* CGeometryCreator.cpp in Sources */,
5E5733951C18E212003F664E /* CMeshCache.cpp in Sources */,
5E5733961C18E212003F664E /* CMeshManipulator.cpp in Sources */,
5E5733971C18E212003F664E /* CSceneManager.cpp in Sources */,
5E5733981C18E212003F664E /* CBurningShader_Raster_Reference.cpp in Sources */,
5E5734121C18E2E2003F664E /* COGLES2ParallaxMapRenderer.cpp in Sources */,
5E5733991C18E212003F664E /* CDepthBuffer.cpp in Sources */,
5E57339A1C18E212003F664E /* CSoftwareDriver2.cpp in Sources */,
5E57339B1C18E212003F664E /* CSoftwareTexture2.cpp in Sources */,
5E57339C1C18E212003F664E /* CTRGouraud2.cpp in Sources */,
5E57339D1C18E212003F664E /* CTRGouraudAlpha2.cpp in Sources */,
5E57339E1C18E212003F664E /* CTRGouraudAlphaNoZ2.cpp in Sources */,
5E57339F1C18E212003F664E /* CTRNormalMap.cpp in Sources */,
5E5733A01C18E212003F664E /* CTRStencilShadow.cpp in Sources */,
5E5733A11C18E212003F664E /* CTRTextureBlend.cpp in Sources */,
5E5733A21C18E212003F664E /* CTRTextureDetailMap2.cpp in Sources */,
5E5733A31C18E212003F664E /* CTRTextureGouraud2.cpp in Sources */,
5E5733A41C18E212003F664E /* CTRTextureGouraudAdd2.cpp in Sources */,
5E5733A51C18E212003F664E /* CTRTextureGouraudAddNoZ2.cpp in Sources */,
5E5733A61C18E212003F664E /* CTRTextureGouraudAlpha.cpp in Sources */,
5E5733A71C18E212003F664E /* CTRTextureGouraudAlphaNoZ.cpp in Sources */,
5E5733A81C18E212003F664E /* CTRTextureGouraudNoZ2.cpp in Sources */,
5E5733A91C18E212003F664E /* CTRTextureGouraudVertexAlpha2.cpp in Sources */,
5E5733AA1C18E212003F664E /* CTRTextureLightMap2_Add.cpp in Sources */,
5E5733F51C18E2C0003F664E /* COGLESExtensionHandler.cpp in Sources */,
5E5733AB1C18E212003F664E /* CTRTextureLightMap2_M1.cpp in Sources */,
5E5733AC1C18E212003F664E /* CTRTextureLightMap2_M2.cpp in Sources */,
5E5733AD1C18E212003F664E /* CTRTextureLightMap2_M4.cpp in Sources */,
5E5733AE1C18E212003F664E /* CTRTextureLightMapGouraud2_M4.cpp in Sources */,
5E5733AF1C18E212003F664E /* CTRTextureWire2.cpp in Sources */,
5E5733B01C18E212003F664E /* IBurningShader.cpp in Sources */,
5E5733B11C18E212003F664E /* CImageLoaderBMP.cpp in Sources */,
5E5733B21C18E212003F664E /* CImageLoaderDDS.cpp in Sources */,
5E5733B31C18E212003F664E /* CImageLoaderJPG.cpp in Sources */,
5E5733B41C18E212003F664E /* CImageLoaderPCX.cpp in Sources */,
5E5733B51C18E212003F664E /* CImageLoaderPNG.cpp in Sources */,
5E5733B61C18E212003F664E /* CImageLoaderPPM.cpp in Sources */,
5E5733B71C18E212003F664E /* CImageLoaderPSD.cpp in Sources */,
5E5733B81C18E212003F664E /* CImageLoaderPVR.cpp in Sources */,
5E5733B91C18E212003F664E /* CImageLoaderRGB.cpp in Sources */,
5E5733BA1C18E212003F664E /* CImageLoaderTGA.cpp in Sources */,
5E5733BB1C18E212003F664E /* CImageLoaderWAL.cpp in Sources */,
5E5733BC1C18E212003F664E /* CImageWriterBMP.cpp in Sources */,
5E5733BD1C18E212003F664E /* CImageWriterJPG.cpp in Sources */,
5E5733BE1C18E212003F664E /* CImageWriterPCX.cpp in Sources */,
5E5733BF1C18E212003F664E /* CImageWriterPNG.cpp in Sources */,
5E5733C01C18E212003F664E /* CImageWriterPPM.cpp in Sources */,
5E5733C11C18E212003F664E /* CImageWriterPSD.cpp in Sources */,
5E5733C21C18E212003F664E /* CImageWriterTGA.cpp in Sources */,
5E5733C31C18E212003F664E /* CColorConverter.cpp in Sources */,
5E5733C41C18E212003F664E /* CFPSCounter.cpp in Sources */,
5E5733C51C18E212003F664E /* CImage.cpp in Sources */,
5E5733C61C18E212003F664E /* CNullDriver.cpp in Sources */,
5E5733C71C18E212003F664E /* COpenGLCacheHandler.cpp in Sources */,
5E5733C81C18E212003F664E /* COpenGLDriver.cpp in Sources */,
5E5733C91C18E212003F664E /* COpenGLExtensionHandler.cpp in Sources */,
5E5733CA1C18E212003F664E /* COpenGLNormalMapRenderer.cpp in Sources */,
5E5733CB1C18E212003F664E /* COpenGLParallaxMapRenderer.cpp in Sources */,
5E5733CC1C18E212003F664E /* COpenGLShaderMaterialRenderer.cpp in Sources */,
5E5733CD1C18E212003F664E /* COpenGLSLMaterialRenderer.cpp in Sources */,
5E5733CE1C18E212003F664E /* CSoftwareDriver.cpp in Sources */,
5E5733CF1C18E212003F664E /* CSoftwareTexture.cpp in Sources */,
5E5733D01C18E212003F664E /* CTRFlat.cpp in Sources */,
5E5733D11C18E212003F664E /* CTRFlatWire.cpp in Sources */,
5E5733D21C18E212003F664E /* CTRGouraud.cpp in Sources */,
5E5733D31C18E212003F664E /* CTRGouraudWire.cpp in Sources */,
5E5733D41C18E212003F664E /* CTRTextureFlat.cpp in Sources */,
5E5733D51C18E212003F664E /* CTRTextureFlatWire.cpp in Sources */,
5E5733D61C18E212003F664E /* CTRTextureGouraud.cpp in Sources */,
5E5733D71C18E212003F664E /* CTRTextureGouraudAdd.cpp in Sources */,
5E5733D81C18E212003F664E /* CTRTextureGouraudNoZ.cpp in Sources */,
5E5733D91C18E212003F664E /* CTRTextureGouraudWire.cpp in Sources */,
5E5733DA1C18E212003F664E /* CZBuffer.cpp in Sources */,
5E5733DB1C18E212003F664E /* CNSOGLManager.mm in Sources */,
5E5733DC1C18E212003F664E /* CVideoModeList.cpp in Sources */,
5E5733E91C18E254003F664E /* CIrrDeviceiOS.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
5E34C6DD1B7F4A0C00F212E8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
DEPLOYMENT_LOCATION = YES;
ENABLE_TESTABILITY = YES;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "DEBUG=1";
@ -2442,6 +3162,7 @@
5E34C6DE1B7F4A0C00F212E8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
DEPLOYMENT_LOCATION = YES;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "NDEBUG=1";
INSTALL_PATH = /;
@ -2516,6 +3237,74 @@
};
name = Release;
};
5E5733E31C18E212003F664E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DSTROOT = "$(SRCROOT)/../../lib/iOS";
ENABLE_STRICT_OBJC_MSGSEND = YES;
EXECUTABLE_PREFIX = lib;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_MODULE_NAME = Irrlicht;
PRODUCT_NAME = Irrlicht;
SDKROOT = iphoneos;
};
name = Debug;
};
5E5733E41C18E212003F664E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DSTROOT = "$(SRCROOT)/../../lib/iOS";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
EXECUTABLE_PREFIX = lib;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_MODULE_NAME = Irrlicht;
PRODUCT_NAME = Irrlicht;
SDKROOT = iphoneos;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@ -2537,6 +3326,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
5E5733E21C18E212003F664E /* Build configuration list for PBXNativeTarget "Irrlicht_iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5E5733E31C18E212003F664E /* Debug */,
5E5733E41C18E212003F664E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 5E34C6D91B7F4A0C00F212E8 /* Project object */;

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E5732B11C18E212003F664E"
BuildableName = "libIrrlicht.a"
BlueprintName = "Irrlicht_iOS"
ReferencedContainer = "container:Irrlicht.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E5732B11C18E212003F664E"
BuildableName = "libIrrlicht.a"
BlueprintName = "Irrlicht_iOS"
ReferencedContainer = "container:Irrlicht.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5E5732B11C18E212003F664E"
BuildableName = "libIrrlicht.a"
BlueprintName = "Irrlicht_iOS"
ReferencedContainer = "container:Irrlicht.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,151 +0,0 @@
// Copyright (C) 2002-2008 Nikolaus Gebhardt
// Copyright (C) 2008 Redshift Software, Inc.
// Copyright (C) 2012 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_IRR_DEVICE_IPHONE_H_INCLUDED__
#define __C_IRR_DEVICE_IPHONE_H_INCLUDED__
#include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_IPHONE_DEVICE_
#include "CIrrDeviceStub.h"
#include "IrrlichtDevice.h"
#include "IImagePresenter.h"
namespace irr
{
class CIrrDeviceIPhone : public CIrrDeviceStub, public video::IImagePresenter
{
public:
//! constructor
CIrrDeviceIPhone(const SIrrlichtCreationParameters& params);
//! destructor
virtual ~CIrrDeviceIPhone();
//! Display initialization. It's return video exposed data.
void displayInitialize(void** context, void** view);
//! Display begin.
void displayBegin();
//! Display end.
void displayEnd();
//! runs the device. Returns false if device wants to be deleted
virtual bool run();
//! Cause the device to temporarily pause execution and let other processes to run
// This should bring down processor usage without major performance loss for Irrlicht
virtual void yield();
//! Pause execution and let other processes to run for a specified amount of time.
virtual void sleep(u32 timeMs, bool pauseTimer);
//! sets the caption of the window
virtual void setWindowCaption(const wchar_t* text);
//! returns if window is active. if not, nothing need to be drawn
virtual bool isWindowActive() const;
//! Checks if the Irrlicht window has focus
virtual bool isWindowFocused() const;
//! Checks if the Irrlicht window is minimized
virtual bool isWindowMinimized() const;
//! presents a surface in the client area
virtual bool present(video::IImage* surface, void * windowId = 0, core::rect<s32>* src=0 );
//! notifies the device that it should close itself
virtual void closeDevice();
//! Sets if the window should be resizeable in windowed mode.
virtual void setResizable(bool resize=false);
//! Minimizes the window
virtual void minimizeWindow();
//! Maximizes the window if possible.
virtual void maximizeWindow();
//! Restore the window to normal size if possible.
virtual void restoreWindow();
//! Get the position of this window on screen
virtual core::position2di getWindowPosition();
//! De/activates the window. When not active no rendering takes place.
virtual void setWindowActive(bool);
//! Activate accelerometer.
virtual bool activateAccelerometer(float updateInterval = 0.016666f);
//! Deactivate accelerometer.
virtual bool deactivateAccelerometer();
//! Is accelerometer active.
virtual bool isAccelerometerActive();
//! Is accelerometer available.
virtual bool isAccelerometerAvailable();
//! Activate gyroscope.
virtual bool activateGyroscope(float updateInterval = 0.016666f);
//! Deactivate gyroscope.
virtual bool deactivateGyroscope();
//! Is gyroscope active.
virtual bool isGyroscopeActive();
//! Is gyroscope available.
virtual bool isGyroscopeAvailable();
//! Activate device motion.
virtual bool activateDeviceMotion(float updateInterval = 0.016666f);
//! Deactivate device motion.
virtual bool deactivateDeviceMotion();
//! Is device motion active.
virtual bool isDeviceMotionActive();
//! Is device motion available.
virtual bool isDeviceMotionAvailable();
//! Get the type of the device.
/** This allows the user to check which windowing system is currently being
used. */
virtual E_DEVICE_TYPE getType() const
{
return EIDT_IPHONE;
}
private:
//! ObjC device object.
void * DeviceM;
volatile bool Close;
volatile bool Closed;
volatile bool WindowActive;
volatile bool WindowMinimized;
//! Create the driver.
void createDriver();
//! Create the native display view.
bool createDisplay();
};
} // end namespace irr
#endif // _IRR_COMPILE_WITH_IPHONE_DEVICE_
#endif // __C_IRR_DEVICE_IPHONE_H_INCLUDED__

View File

@ -1,751 +0,0 @@
// Copyright (C) 2002-2008 Nikolaus Gebhardt
// Copyright (C) 2008 Redshift Software, Inc.
// Copyright (C) 2012 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#import "CIrrDeviceiOS.h"
#ifdef _IRR_COMPILE_WITH_IPHONE_DEVICE_
#include "CIrrDeviceiOS.h"
#include <stdio.h>
#include <stdlib.h>
#include <sys/utsname.h>
#include <time.h>
#include "IEventReceiver.h"
#include "os.h"
#include "CTimer.h"
#include "irrString.h"
#include "Keycodes.h"
#include "COSOperator.h"
#include "CColorConverter.h"
#include "SIrrCreationParameters.h"
#include <CoreFoundation/CFRunLoop.h>
#include "SExposedVideoData.h"
#include "IFileSystem.h"
#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>
#import <QuartzCore/CAEAGLLayer.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>
#import <OpenGLES/EAGL.h>
// Objective-C part.
@interface IrrIPhoneView : UIView
{
irr::CIrrDeviceIPhone* Device;
float Scale;
}
- (id)initWithFrame:(CGRect)frame;
- (void) dealloc;
- (void) setDevice:(irr::CIrrDeviceIPhone*)device;
@end
@implementation IrrIPhoneView
+ (Class) layerClass
{
return [CAEAGLLayer class];
}
- (id)initWithFrame:(CGRect)frame;
{
self = [super initWithFrame: frame];
if (self)
{
Scale = 1.0f;
if ([self respondsToSelector:@selector(setContentScaleFactor:)])
Scale = [[UIScreen mainScreen] scale];
}
return self;
}
- (void) dealloc
{
[super dealloc];
}
- (BOOL) isMultipleTouchEnabled
{
return YES;
}
- (void) setDevice:(irr::CIrrDeviceIPhone*)device
{
Device = device;
}
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_PRESSED_DOWN;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_MOVED;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_LEFT_UP;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
irr::SEvent ev;
ev.EventType = irr::EET_TOUCH_INPUT_EVENT;
ev.TouchInput.Event = irr::ETIE_LEFT_UP;
for (UITouch* touch in touches)
{
ev.TouchInput.ID = (size_t)touch;
CGPoint touchPoint = [touch locationInView:self];
ev.TouchInput.X = touchPoint.x*Scale;
ev.TouchInput.Y = touchPoint.y*Scale;
Device->postEventFromUser(ev);
}
}
@end
@interface IrrIPhoneDevice : NSObject <UIApplicationDelegate>
{
@public
EAGLContext* context;
IrrIPhoneView* view;
UIViewController* viewController;
irr::CIrrDeviceIPhone* dev;
CMMotionManager* motionManager;
CMAttitude* referenceAttitude;
}
- (id) initWithDevice: (irr::CIrrDeviceIPhone*) device;
- (void) dealloc;
- (void) applicationWillResignActive: (UIApplication*) application;
- (void) applicationDidBecomeActive: (UIApplication*) application;
- (void) applicationWillTerminate: (UIApplication*) application;
- (void) displayCreateInWindow: (UIWindow**) window Width: (int) w Height: (int) h DriverType: (bool) type;
- (void) displayInitialize: (EAGLContext**) context_ View: (IrrIPhoneView**) view_;
- (void) displayBegin;
- (void) displayEnd;
- (BOOL) activateAccelerometer: (float) updateInterval;
- (BOOL) deactivateAccelerometer;
- (BOOL) isAccelerometerActive;
- (BOOL) isAccelerometerAvailable;
- (void) getAccelerometerData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z;
- (BOOL) activateGyroscope: (float) updateInterval;
- (BOOL) deactivateGyroscope;
- (BOOL) isGyroscopeActive;
- (BOOL) isGyroscopeAvailable;
- (void) getGyroscopeData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z;
- (BOOL) activateDeviceMotion: (float) updateInterval;
- (BOOL) deactivateDeviceMotion;
- (BOOL) isDeviceMotionActive;
- (BOOL) isDeviceMotionAvailable;
- (void) getDeviceMotionData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z;
@end
@implementation IrrIPhoneDevice
- (id) initWithDevice: (irr::CIrrDeviceIPhone*) device
{
if ((self = [super init]))
{
context = nil;
view = nil;
viewController = nil;
dev = device;
motionManager = [[CMMotionManager alloc] init];
referenceAttitude = nil;
}
return self;
}
- (void) dealloc
{
[self deactivateAccelerometer];
[self deactivateGyroscope];
[self deactivateDeviceMotion];
[motionManager release];
[context release];
[view release];
[viewController release];
[super dealloc];
}
- (void) applicationWillResignActive: (UIApplication *) application
{
dev->setWindowActive(0);
}
- (void) applicationDidBecomeActive: (UIApplication *) application
{
dev->setWindowActive(1);
}
- (void) applicationWillTerminate: (UIApplication *) application
{
dev->closeDevice();
}
- (void) displayCreateInWindow: (UIWindow**) window Width: (int) w Height: (int) h DriverType: (bool) type
{
// Create our view.
CGRect rect = [[UIScreen mainScreen] bounds];
if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
rect.size = CGSizeMake(rect.size.height, rect.size.width);
view = [[IrrIPhoneView alloc] initWithFrame: rect];
if ([view respondsToSelector:@selector(setContentScaleFactor:)])
view.ContentScaleFactor = [[UIScreen mainScreen] scale];
view.layer.opaque = YES;
if (nil != *window)
{
if ((*window).rootViewController != nil)
{
(*window).rootViewController.view = view;
}
else
{
viewController = [[UIViewController alloc] init];
viewController.view = view;
(*window).rootViewController = viewController;
}
}
[view setDevice:dev];
if(type)
context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2];
else
context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1];
[EAGLContext setCurrentContext: context];
}
- (void) displayInitialize: (EAGLContext**) context_ View: (IrrIPhoneView**) view_
{
*context_ = context;
*view_ = view;
[context renderbufferStorage: GL_RENDERBUFFER_OES fromDrawable: (CAEAGLLayer*)view.layer];
}
- (void) displayBegin
{
if (context != [EAGLContext currentContext])
{
[EAGLContext setCurrentContext: context];
}
}
- (void) displayEnd
{
if (context == [EAGLContext currentContext])
{
[context presentRenderbuffer: GL_RENDERBUFFER_OES];
}
}
- (BOOL) activateAccelerometer: (float) updateInterval;
{
if (motionManager.isAccelerometerAvailable && !motionManager.isAccelerometerActive)
{
motionManager.accelerometerUpdateInterval = updateInterval;
[motionManager startAccelerometerUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) deactivateAccelerometer
{
if (motionManager.isAccelerometerAvailable && motionManager.isAccelerometerActive)
{
[motionManager stopAccelerometerUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) isAccelerometerActive
{
if (motionManager.isAccelerometerActive)
return TRUE;
return FALSE;
}
- (BOOL) isAccelerometerAvailable
{
if (motionManager.isAccelerometerAvailable)
return TRUE;
return FALSE;
}
- (void) getAccelerometerData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z
{
X = motionManager.accelerometerData.acceleration.x;
Y = motionManager.accelerometerData.acceleration.y;
Z = motionManager.accelerometerData.acceleration.z;
}
- (BOOL) activateGyroscope: (float) updateInterval;
{
if (motionManager.isGyroAvailable && !motionManager.isGyroActive)
{
motionManager.gyroUpdateInterval = updateInterval;
[motionManager startGyroUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) deactivateGyroscope
{
if (motionManager.isGyroAvailable && motionManager.isGyroActive)
{
[motionManager stopGyroUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) isGyroscopeActive
{
if (motionManager.isGyroActive)
return TRUE;
return FALSE;
}
- (BOOL) isGyroscopeAvailable
{
if (motionManager.isGyroAvailable)
return TRUE;
return FALSE;
}
- (void) getGyroscopeData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z
{
X = motionManager.gyroData.rotationRate.x;
Y = motionManager.gyroData.rotationRate.y;
Z = motionManager.gyroData.rotationRate.z;
}
- (BOOL) activateDeviceMotion: (float) updateInterval;
{
referenceAttitude = nil;
if (motionManager.isDeviceMotionAvailable && !motionManager.isDeviceMotionActive)
{
motionManager.deviceMotionUpdateInterval = updateInterval;
[motionManager startDeviceMotionUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) deactivateDeviceMotion
{
if (motionManager.isDeviceMotionAvailable && motionManager.isDeviceMotionActive)
{
[motionManager stopDeviceMotionUpdates];
return TRUE;
}
return FALSE;
}
- (BOOL) isDeviceMotionActive
{
if (motionManager.isDeviceMotionActive)
return TRUE;
return FALSE;
}
- (BOOL) isDeviceMotionAvailable
{
if (motionManager.isDeviceMotionAvailable)
return TRUE;
return FALSE;
}
- (void) getDeviceMotionData:(double&) X ValueY: (double&) Y ValueZ: (double&) Z
{
CMAttitude* currentAttitude = motionManager.deviceMotion.attitude;
if(referenceAttitude != nil)
[currentAttitude multiplyByInverseOfAttitude: referenceAttitude];
else
referenceAttitude = [motionManager.deviceMotion.attitude retain];
X = currentAttitude.roll;
Y = currentAttitude.pitch;
Z = currentAttitude.yaw;
}
@end
// C++ part.
namespace irr
{
namespace video
{
IVideoDriver* createOGLES1Driver(const SIrrlichtCreationParameters& params,
io::IFileSystem* io, CIrrDeviceIPhone* device);
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params,
io::IFileSystem* io, CIrrDeviceIPhone* device);
}
}
namespace irr
{
CIrrDeviceIPhone::CIrrDeviceIPhone(const SIrrlichtCreationParameters& params)
: CIrrDeviceStub(params)
, Close(false)
, Closed(false)
, WindowActive(false)
, WindowMinimized(false)
{
#ifdef _DEBUG
setDebugName("CIrrDeviceIPhone");
#endif
DeviceM = [[IrrIPhoneDevice alloc] initWithDevice: this];
// print version, distribution etc.
struct utsname info;
uname(&info);
Operator = new COSOperator((core::stringc("")
+info.sysname+" "
+info.release+" "
+info.version+" "
+info.machine).c_str());
os::Printer::log(Operator->getOperationSystemVersion(), ELL_INFORMATION);
// create display
if (CreationParams.DriverType != video::EDT_NULL)
{
// create the display, only if we do not use the null device
if (!createDisplay())
return;
}
NSBundle* Bundle = [NSBundle mainBundle];
NSString* BundlePath = [Bundle bundlePath];
core::stringc NewPath = [BundlePath cStringUsingEncoding:NSASCIIStringEncoding];
FileSystem->changeWorkingDirectoryTo(NewPath);
// create driver
createDriver();
if (!VideoDriver)
return;
createGUIAndScene();
WindowActive = true;
}
CIrrDeviceIPhone::~CIrrDeviceIPhone()
{
[((IrrIPhoneDevice*)DeviceM) release];
}
bool CIrrDeviceIPhone::createDisplay()
{
bool driverType = (CreationParams.DriverType == video::EDT_OGLES2) ? true : false;
[((IrrIPhoneDevice*)DeviceM) displayCreateInWindow: (UIWindow**)&CreationParams.WindowId Width: CreationParams.WindowSize.Width Height: CreationParams.WindowSize.Height DriverType: driverType];
return true;
}
void CIrrDeviceIPhone::displayInitialize(void** context, void** view)
{
[((IrrIPhoneDevice*)DeviceM) displayInitialize: (EAGLContext**)context View: (IrrIPhoneView**)view];
}
void CIrrDeviceIPhone::displayBegin()
{
[((IrrIPhoneDevice*)DeviceM) displayBegin];
}
void CIrrDeviceIPhone::displayEnd()
{
[((IrrIPhoneDevice*)DeviceM) displayEnd];
}
void CIrrDeviceIPhone::createDriver()
{
switch(CreationParams.DriverType)
{
case video::EDT_OGLES1:
#ifdef _IRR_COMPILE_WITH_OGLES1_
{
VideoDriver = video::createOGLES1Driver(CreationParams, FileSystem, this);
}
#else
os::Printer::log("No OpenGL-ES1 support compiled in.", ELL_ERROR);
#endif
break;
case video::EDT_OGLES2:
#ifdef _IRR_COMPILE_WITH_OGLES2_
{
VideoDriver = video::createOGLES2Driver(CreationParams, FileSystem, this);
}
#else
os::Printer::log("No OpenGL-ES2 support compiled in.", ELL_ERROR);
#endif
break;
case video::EDT_SOFTWARE:
case video::EDT_BURNINGSVIDEO:
case video::EDT_DIRECT3D8:
case video::EDT_DIRECT3D9:
case video::EDT_OPENGL:
os::Printer::log("This driver is not available. Try OpenGL-ES1 renderer.",
ELL_ERROR);
break;
case video::EDT_NULL:
VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize);
break;
default:
os::Printer::log("Unable to create video driver of unknown type.", ELL_ERROR);
break;
}
}
bool CIrrDeviceIPhone::run()
{
os::Timer::tick();
//! Update events
//! Accelerometer
if([((IrrIPhoneDevice*)DeviceM) isAccelerometerActive])
{
irr::SEvent ev;
ev.EventType = irr::EET_ACCELEROMETER_EVENT;
[((IrrIPhoneDevice*)DeviceM) getAccelerometerData: ev.AccelerometerEvent.X ValueY: ev.AccelerometerEvent.Y ValueZ: ev.AccelerometerEvent.Z];
postEventFromUser(ev);
}
//! Gyroscope
if([((IrrIPhoneDevice*)DeviceM) isGyroscopeActive])
{
irr::SEvent ev;
ev.EventType = irr::EET_GYROSCOPE_EVENT;
[((IrrIPhoneDevice*)DeviceM) getGyroscopeData: ev.GyroscopeEvent.X ValueY: ev.GyroscopeEvent.Y ValueZ: ev.GyroscopeEvent.Z];
postEventFromUser(ev);
}
//! Device Motion
if([((IrrIPhoneDevice*)DeviceM) isDeviceMotionActive])
{
irr::SEvent ev;
ev.EventType = irr::EET_DEVICE_MOTION_EVENT;
[((IrrIPhoneDevice*)DeviceM) getDeviceMotionData: ev.DeviceMotionEvent.X ValueY: ev.DeviceMotionEvent.Y ValueZ: ev.DeviceMotionEvent.Z];
postEventFromUser(ev);
}
yield();
Closed = Close;
return !Close;
}
void CIrrDeviceIPhone::yield()
{
struct timespec ts = {0,0};
nanosleep(&ts, NULL);
}
void CIrrDeviceIPhone::sleep(u32 timeMs, bool pauseTimer=false)
{
bool wasStopped = Timer ? Timer->isStopped() : true;
struct timespec ts;
ts.tv_sec = (time_t) (timeMs / 1000);
ts.tv_nsec = (long) (timeMs % 1000) * 1000000;
if (pauseTimer && !wasStopped)
Timer->stop();
nanosleep(&ts, NULL);
if (pauseTimer && !wasStopped)
Timer->start();
}
void CIrrDeviceIPhone::setWindowCaption(const wchar_t* text)
{
}
bool CIrrDeviceIPhone::present(video::IImage* image, void * windowId, core::rect<s32>* src)
{
return false;
}
void CIrrDeviceIPhone::closeDevice()
{
WindowActive = false;
Close = true;
CFRunLoopStop(CFRunLoopGetMain());
while (!Closed) yield();
}
bool CIrrDeviceIPhone::isWindowActive() const
{
return WindowActive;
}
bool CIrrDeviceIPhone::isWindowFocused() const
{
return isWindowActive();
}
bool CIrrDeviceIPhone::isWindowMinimized() const
{
return !isWindowActive();
}
void CIrrDeviceIPhone::setResizable(bool resize)
{
}
void CIrrDeviceIPhone::minimizeWindow()
{
}
void CIrrDeviceIPhone::maximizeWindow()
{
}
void CIrrDeviceIPhone::restoreWindow()
{
}
core::position2di CIrrDeviceIPhone::getWindowPosition()
{
return core::position2di(0, 0);
}
void CIrrDeviceIPhone::setWindowActive(bool active)
{
WindowActive = active;
}
bool CIrrDeviceIPhone::activateAccelerometer(float updateInterval)
{
return [((IrrIPhoneDevice*)DeviceM) activateAccelerometer: updateInterval];
}
bool CIrrDeviceIPhone::deactivateAccelerometer()
{
return [((IrrIPhoneDevice*)DeviceM) deactivateAccelerometer];
}
bool CIrrDeviceIPhone::isAccelerometerActive()
{
return [((IrrIPhoneDevice*)DeviceM) isAccelerometerActive];
}
bool CIrrDeviceIPhone::isAccelerometerAvailable()
{
return [((IrrIPhoneDevice*)DeviceM) isAccelerometerAvailable];
}
bool CIrrDeviceIPhone::activateGyroscope(float updateInterval)
{
return [((IrrIPhoneDevice*)DeviceM) activateGyroscope: updateInterval];
}
bool CIrrDeviceIPhone::deactivateGyroscope()
{
return [((IrrIPhoneDevice*)DeviceM) deactivateGyroscope];
}
bool CIrrDeviceIPhone::isGyroscopeActive()
{
return [((IrrIPhoneDevice*)DeviceM) isGyroscopeActive];
}
bool CIrrDeviceIPhone::isGyroscopeAvailable()
{
return [((IrrIPhoneDevice*)DeviceM) isGyroscopeAvailable];
}
bool CIrrDeviceIPhone::activateDeviceMotion(float updateInterval)
{
return [((IrrIPhoneDevice*)DeviceM) activateDeviceMotion: updateInterval];
}
bool CIrrDeviceIPhone::deactivateDeviceMotion()
{
return [((IrrIPhoneDevice*)DeviceM) deactivateDeviceMotion];
}
bool CIrrDeviceIPhone::isDeviceMotionActive()
{
return [((IrrIPhoneDevice*)DeviceM) isDeviceMotionActive];
}
bool CIrrDeviceIPhone::isDeviceMotionAvailable()
{
return [((IrrIPhoneDevice*)DeviceM) isDeviceMotionAvailable];
}
} // end namespace
#endif // _IRR_COMPILE_WITH_IPHONE_DEVICE_

View File

@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1280</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">1929</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUICustomObject</string>
<string>IBUIWindow</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBProxyObject" id="590933970">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUICustomObject" id="234988266">
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIWindow" id="380026005">
<nil key="NSNextResponder"/>
<int key="NSvFlags">1316</int>
<object class="NSPSMatrix" key="NSFrameMatrix"/>
<string key="NSFrameSize">{320, 480}</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBUIVisibleAtLaunch">YES</bool>
<bool key="IBUIResizesToFullScreen">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="234988266"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="234988266"/>
<reference key="destination" ref="380026005"/>
</object>
<int key="connectionID">12</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="380026005"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="841351856"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="590933970"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="234988266"/>
<reference key="parent" ref="0"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">UIApplication</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<dictionary class="NSMutableDictionary" key="2.IBAttributePlaceholdersKey"/>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.CustomClassName">AppDelegate</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">12</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1280" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">1929</string>
</data>
</archive>

View File

@ -1,131 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1280</int>
<string key="IBDocument.SystemVersion">11G63b</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">2083</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUICustomObject</string>
<string>IBUIWindow</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="590933970">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUICustomObject" id="234988266">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIWindow" id="380026005">
<reference key="NSNextResponder"/>
<int key="NSvFlags">1316</int>
<object class="NSPSMatrix" key="NSFrameMatrix"/>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIVisibleAtLaunch">YES</bool>
<bool key="IBUIResizesToFullScreen">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="234988266"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="234988266"/>
<reference key="destination" ref="380026005"/>
</object>
<int key="connectionID">12</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="380026005"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="841351856"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="590933970"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="234988266"/>
<reference key="parent" ref="0"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">UIApplication</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<dictionary class="NSMutableDictionary" key="2.IBAttributePlaceholdersKey"/>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.CustomClassName">AppDelegate</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">12</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1280" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">2083</string>
</data>
</archive>

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@
#if (_MSC_VER >= 1400)
#define localtime _localtime_s
#endif
#elif defined(_IRR_OSX_PLATFORM_)
#elif defined(_IRR_OSX_PLATFORM_) || defined(_IRR_IOS_PLATFORM_)
#include <libkern/OSByteOrder.h>
#define bswap_16(X) OSReadSwapInt16(&X,0)
#define bswap_32(X) OSReadSwapInt32(&X,0)