move xcode/ into tools/

This commit is contained in:
Marco Antognini 2012-01-07 15:34:11 +01:00
parent 1e34d04aac
commit 2720532d63
33 changed files with 1 additions and 1 deletions

View file

@ -0,0 +1,318 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4C5C378113CF64E1003655B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C5C378013CF64E1003655B8 /* Cocoa.framework */; };
4C5C378B13CF64E1003655B8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C5C378913CF64E1003655B8 /* InfoPlist.strings */; };
4C5C378D13CF64E1003655B8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C378C13CF64E1003655B8 /* main.m */; };
4C5C379113CF64E1003655B8 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4C5C378F13CF64E1003655B8 /* Credits.rtf */; };
4C5C379413CF64E1003655B8 /* CocoaAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C379313CF64E1003655B8 /* CocoaAppDelegate.mm */; };
4C5C379713CF64E1003655B8 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C5C379513CF64E1003655B8 /* MainMenu.xib */; };
4CD83D6713D0A29400A29530 /* blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD83D6413D0A29400A29530 /* blue.png */; };
4CD83D6813D0A29400A29530 /* green.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD83D6513D0A29400A29530 /* green.png */; };
4CD83D6913D0A29400A29530 /* red.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD83D6613D0A29400A29530 /* red.png */; };
4CDE97AB13CF94760071C912 /* libsfml-graphics-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CDE97A813CF94760071C912 /* libsfml-graphics-d.dylib */; };
4CDE97AC13CF94760071C912 /* libsfml-system-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CDE97A913CF94760071C912 /* libsfml-system-d.dylib */; };
4CDE97AD13CF94760071C912 /* libsfml-window-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CDE97AA13CF94760071C912 /* libsfml-window-d.dylib */; };
4CDE97CD13D0366D0071C912 /* NSString+stdstring.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4CDE97CC13D0366D0071C912 /* NSString+stdstring.mm */; };
4CEFC42F13D09CB500F92B14 /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CEFC42E13D09CB500F92B14 /* logo.png */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
4C5C377C13CF64E1003655B8 /* Cocoa.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cocoa.app; sourceTree = BUILT_PRODUCTS_DIR; };
4C5C378013CF64E1003655B8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
4C5C378313CF64E1003655B8 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
4C5C378413CF64E1003655B8 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
4C5C378513CF64E1003655B8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4C5C378813CF64E1003655B8 /* Cocoa-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Cocoa-Info.plist"; sourceTree = "<group>"; };
4C5C378A13CF64E1003655B8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4C5C378C13CF64E1003655B8 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
4C5C378E13CF64E1003655B8 /* Cocoa-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Cocoa-Prefix.pch"; sourceTree = "<group>"; };
4C5C379013CF64E1003655B8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
4C5C379213CF64E1003655B8 /* CocoaAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CocoaAppDelegate.h; sourceTree = "<group>"; };
4C5C379313CF64E1003655B8 /* CocoaAppDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CocoaAppDelegate.mm; sourceTree = "<group>"; };
4C5C379613CF64E1003655B8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
4CD83D6413D0A29400A29530 /* blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blue.png; sourceTree = "<group>"; };
4CD83D6513D0A29400A29530 /* green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = green.png; sourceTree = "<group>"; };
4CD83D6613D0A29400A29530 /* red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = red.png; sourceTree = "<group>"; };
4CDE97A813CF94760071C912 /* libsfml-graphics-d.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libsfml-graphics-d.dylib"; path = "usr/local/lib/libsfml-graphics-d.dylib"; sourceTree = SDKROOT; };
4CDE97A913CF94760071C912 /* libsfml-system-d.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libsfml-system-d.dylib"; path = "usr/local/lib/libsfml-system-d.dylib"; sourceTree = SDKROOT; };
4CDE97AA13CF94760071C912 /* libsfml-window-d.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libsfml-window-d.dylib"; path = "usr/local/lib/libsfml-window-d.dylib"; sourceTree = SDKROOT; };
4CDE97CB13D0366D0071C912 /* NSString+stdstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+stdstring.h"; sourceTree = "<group>"; };
4CDE97CC13D0366D0071C912 /* NSString+stdstring.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSString+stdstring.mm"; sourceTree = "<group>"; };
4CEFC42E13D09CB500F92B14 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
4C5C377913CF64E1003655B8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4CDE97AB13CF94760071C912 /* libsfml-graphics-d.dylib in Frameworks */,
4CDE97AC13CF94760071C912 /* libsfml-system-d.dylib in Frameworks */,
4CDE97AD13CF94760071C912 /* libsfml-window-d.dylib in Frameworks */,
4C5C378113CF64E1003655B8 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4C5C377113CF64E1003655B8 = {
isa = PBXGroup;
children = (
4C5C378613CF64E1003655B8 /* Cocoa */,
4C5C377F13CF64E1003655B8 /* Frameworks */,
4C5C377D13CF64E1003655B8 /* Products */,
);
sourceTree = "<group>";
};
4C5C377D13CF64E1003655B8 /* Products */ = {
isa = PBXGroup;
children = (
4C5C377C13CF64E1003655B8 /* Cocoa.app */,
);
name = Products;
sourceTree = "<group>";
};
4C5C377F13CF64E1003655B8 /* Frameworks */ = {
isa = PBXGroup;
children = (
4CDE97A813CF94760071C912 /* libsfml-graphics-d.dylib */,
4CDE97A913CF94760071C912 /* libsfml-system-d.dylib */,
4CDE97AA13CF94760071C912 /* libsfml-window-d.dylib */,
4C5C378013CF64E1003655B8 /* Cocoa.framework */,
4C5C378213CF64E1003655B8 /* Other Frameworks */,
);
name = Frameworks;
sourceTree = "<group>";
};
4C5C378213CF64E1003655B8 /* Other Frameworks */ = {
isa = PBXGroup;
children = (
4C5C378313CF64E1003655B8 /* AppKit.framework */,
4C5C378413CF64E1003655B8 /* CoreData.framework */,
4C5C378513CF64E1003655B8 /* Foundation.framework */,
);
name = "Other Frameworks";
sourceTree = "<group>";
};
4C5C378613CF64E1003655B8 /* Cocoa */ = {
isa = PBXGroup;
children = (
4C5C379213CF64E1003655B8 /* CocoaAppDelegate.h */,
4C5C379313CF64E1003655B8 /* CocoaAppDelegate.mm */,
4C5C379513CF64E1003655B8 /* MainMenu.xib */,
4CDE97CB13D0366D0071C912 /* NSString+stdstring.h */,
4CDE97CC13D0366D0071C912 /* NSString+stdstring.mm */,
4C5C378713CF64E1003655B8 /* Supporting Files */,
);
path = Cocoa;
sourceTree = "<group>";
};
4C5C378713CF64E1003655B8 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CEFC42E13D09CB500F92B14 /* logo.png */,
4CD83D6413D0A29400A29530 /* blue.png */,
4CD83D6513D0A29400A29530 /* green.png */,
4CD83D6613D0A29400A29530 /* red.png */,
4C5C378813CF64E1003655B8 /* Cocoa-Info.plist */,
4C5C378913CF64E1003655B8 /* InfoPlist.strings */,
4C5C378C13CF64E1003655B8 /* main.m */,
4C5C378E13CF64E1003655B8 /* Cocoa-Prefix.pch */,
4C5C378F13CF64E1003655B8 /* Credits.rtf */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
4C5C377B13CF64E1003655B8 /* Cocoa */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4C5C379A13CF64E1003655B8 /* Build configuration list for PBXNativeTarget "Cocoa" */;
buildPhases = (
4C5C377813CF64E1003655B8 /* Sources */,
4C5C377913CF64E1003655B8 /* Frameworks */,
4C5C377A13CF64E1003655B8 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Cocoa;
productName = Cocoa;
productReference = 4C5C377C13CF64E1003655B8 /* Cocoa.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
4C5C377313CF64E1003655B8 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 4C5C377613CF64E1003655B8 /* Build configuration list for PBXProject "Cocoa" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 4C5C377113CF64E1003655B8;
productRefGroup = 4C5C377D13CF64E1003655B8 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
4C5C377B13CF64E1003655B8 /* Cocoa */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4C5C377A13CF64E1003655B8 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4C5C378B13CF64E1003655B8 /* InfoPlist.strings in Resources */,
4C5C379113CF64E1003655B8 /* Credits.rtf in Resources */,
4C5C379713CF64E1003655B8 /* MainMenu.xib in Resources */,
4CEFC42F13D09CB500F92B14 /* logo.png in Resources */,
4CD83D6713D0A29400A29530 /* blue.png in Resources */,
4CD83D6813D0A29400A29530 /* green.png in Resources */,
4CD83D6913D0A29400A29530 /* red.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
4C5C377813CF64E1003655B8 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4C5C378D13CF64E1003655B8 /* main.m in Sources */,
4C5C379413CF64E1003655B8 /* CocoaAppDelegate.mm in Sources */,
4CDE97CD13D0366D0071C912 /* NSString+stdstring.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
4C5C378913CF64E1003655B8 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
4C5C378A13CF64E1003655B8 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
4C5C378F13CF64E1003655B8 /* Credits.rtf */ = {
isa = PBXVariantGroup;
children = (
4C5C379013CF64E1003655B8 /* en */,
);
name = Credits.rtf;
sourceTree = "<group>";
};
4C5C379513CF64E1003655B8 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
4C5C379613CF64E1003655B8 /* en */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
4C5C379813CF64E1003655B8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = "";
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
4C5C379913CF64E1003655B8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_VERSION = "";
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
SDKROOT = macosx;
};
name = Release;
};
4C5C379B13CF64E1003655B8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Cocoa/Cocoa-Prefix.pch";
INFOPLIST_FILE = "Cocoa/Cocoa-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.6;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Debug;
};
4C5C379C13CF64E1003655B8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Cocoa/Cocoa-Prefix.pch";
INFOPLIST_FILE = "Cocoa/Cocoa-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.6;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
4C5C377613CF64E1003655B8 /* Build configuration list for PBXProject "Cocoa" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4C5C379813CF64E1003655B8 /* Debug */,
4C5C379913CF64E1003655B8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4C5C379A13CF64E1003655B8 /* Build configuration list for PBXNativeTarget "Cocoa" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4C5C379B13CF64E1003655B8 /* Debug */,
4C5C379C13CF64E1003655B8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 4C5C377313CF64E1003655B8 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Cocoa.xcodeproj">
</FileRef>
</Workspace>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>logo.png</string>
<key>CFBundleIdentifier</key>
<string>org.sfml-dev.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2007-2011 Marco Antognini and Laurent Gomila. Shared under zlib/libpng License.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View file

@ -0,0 +1,7 @@
//
// Prefix header for all source files of the 'Cocoa' target in the 'Cocoa' project
//
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#endif

View file

@ -0,0 +1,59 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#import <Cocoa/Cocoa.h>
#import <SFML/Graphics.hpp>
/*
* NB : We need pointers for C++ objects fields in Obj-C interface !
* The recomanded way is to use PIMP idiom.
*
* It's elegant. Moreover, we do no constrain
* other file including this one to be Obj-C++.
*/
struct SFMLmainWindow;
@interface CocoaAppDelegate : NSObject <NSApplicationDelegate> {
@private
NSWindow *_window;
NSView *_sfmlView;
NSTextField *_textField;
SFMLmainWindow *_mainWindow;
NSTimer *_renderTimer;
BOOL _visible;
}
@property (retain) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSView *sfmlView;
@property (assign) IBOutlet NSTextField *textField;
-(IBAction)colorChanged:(NSPopUpButton *)sender;
-(IBAction)rotationChanged:(NSSlider *)sender;
-(IBAction)visibleChanged:(NSButton *)sender;
-(IBAction)textChanged:(NSTextField *)sender;
-(IBAction)updateText:(NSButton *)sender;
@end

View file

@ -0,0 +1,199 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#import "CocoaAppDelegate.h"
#import "NSString+stdstring.h"
// These define are used for converting the color of the NSPopUpButton
#define BLUE @"Blue"
#define GREEN @"Green"
#define RED @"Red"
// Our PIMPL
struct SFMLmainWindow
{
SFMLmainWindow(sf::WindowHandle win)
: renderWindow(win)
, background(sf::Color::Blue)
{
std::string resPath = [[[NSBundle mainBundle] resourcePath] tostdstring];
if (!logo.LoadFromFile(resPath + "/logo.png")) {
NSLog(@"Couldn't load the logo image");
}
logo.SetSmooth(true);
sprite.SetTexture(logo, true);
sprite.SetOrigin(sprite.GetSize() / 2.f);
sprite.Scale(0.3, 0.3);
unsigned int ww = renderWindow.GetWidth();
unsigned int wh = renderWindow.GetHeight();
sprite.SetPosition(sf::Vector2f(ww, wh) / 2.f);
text.SetColor(sf::Color::White);
}
sf::RenderWindow renderWindow;
sf::Text text;
sf::Texture logo;
sf::Sprite sprite;
sf::Color background;
};
// Private stuff
@interface CocoaAppDelegate ()
@property (assign) SFMLmainWindow *mainWindow;
@property (retain) NSTimer *renderTimer;
@property (assign) BOOL visible;
-(void)renderMainWindow:(NSTimer *)aTimer;
@end
// Finally, the implementation
@implementation CocoaAppDelegate
@synthesize window = _window;
@synthesize sfmlView = _sfmlView;
@synthesize textField = _textField;
@synthesize mainWindow = _mainWindow;
@synthesize renderTimer = _renderTimer;
@synthesize visible = _visible;
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Init the 1st SFML render area.
self.mainWindow = new SFMLmainWindow(self.sfmlView);
self.mainWindow->text.SetString([self.textField.stringValue tostdwstring]);
self.visible = YES;
// Launch the timer to periodically display our stuff into the Cocoa view.
self.renderTimer = [NSTimer timerWithTimeInterval:1.f/60.f
target:self
selector:@selector(renderMainWindow:)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:self.renderTimer
forMode:NSDefaultRunLoopMode];
[[NSRunLoop mainRunLoop] addTimer:self.renderTimer
forMode:NSEventTrackingRunLoopMode];
/*
* This is really some ugly code but in order to have the timer fired
* periodically we need to add it to the two above runloop mode.
*
* The default mode allows timer firing while the user doesn't do anything
* while the second mode allows timer firing while he is using a slider
* or a menu.
*/
}
-(void)dealloc
{
[self.renderTimer invalidate];
self.mainWindow->renderWindow.Close();
self.window = nil;
self.sfmlView = nil;
self.textField = nil;
delete self.mainWindow;
self.mainWindow = 0;
self.renderTimer = nil;
[super dealloc];
}
-(void)renderMainWindow:(NSTimer *)aTimer
{
// Scaling
/* /!\ we do this at 60fps so choose low scaling factor! /!\ */
if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Up))
{
self.mainWindow->sprite.Scale(1.01, 1.01);
}
if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Down))
{
self.mainWindow->sprite.Scale(0.99, 0.99);
}
// Clear the window, display some stuff and display it into our view.
self.mainWindow->renderWindow.Clear(self.mainWindow->background);
if (self.visible)
{
self.mainWindow->renderWindow.Draw(self.mainWindow->sprite);
}
self.mainWindow->renderWindow.Draw(self.mainWindow->text);
self.mainWindow->renderWindow.Display();
}
-(IBAction)colorChanged:(NSPopUpButton *)sender
{
// Convert title to color
NSString *color = [[sender selectedItem] title];
if ([color isEqualToString:BLUE])
{
self.mainWindow->background = sf::Color::Blue;
}
else if ([color isEqualToString:GREEN])
{
self.mainWindow->background = sf::Color::Green;
}
else
{
self.mainWindow->background = sf::Color::Red;
}
}
-(IBAction)rotationChanged:(NSSlider *)sender
{
float angle = [sender floatValue];
self.mainWindow->sprite.SetRotation(angle);
}
-(IBAction)visibleChanged:(NSButton *)sender
{
self.visible = [sender state] == NSOnState;
}
-(IBAction)textChanged:(NSTextField *)sender
{
self.mainWindow->text.SetString([[sender stringValue] tostdwstring]);
}
- (IBAction)updateText:(NSButton *)sender
{
// Simply simulate textChanged :
[self textChanged:self.textField];
}
@end

View file

@ -0,0 +1,39 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#import <string>
#import <Foundation/Foundation.h>
@interface NSString (NSString_stdstring)
+(id)stringWithstdstring:(std::string const &)string;
+(id)stringWithstdwstring:(std::wstring const &)string;
-(std::string)tostdstring;
-(std::wstring)tostdwstring;
@end

View file

@ -0,0 +1,77 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#include <SFML/System/Utf.hpp>
@implementation NSString (NSString_stdstring)
+(id)stringWithstdstring:(std::string const &)string
{
std::string utf8;
utf8.reserve(string.size() + 1);
sf::Utf8::FromAnsi(string.begin(), string.end(), std::back_inserter(utf8));
NSString *str = [NSString stringWithCString:utf8.c_str()
encoding:NSUTF8StringEncoding];
return str;
}
-(std::string)tostdstring
{
// Not sure about the encoding to use. Using [self UTF8String] doesn't
// work for characters like é or à.
const char *cstr = [self cStringUsingEncoding:NSISOLatin1StringEncoding];
if (cstr != NULL)
{
std::string str(cstr);
return str;
}
else
{
return "";
}
}
+(id)stringWithstdwstring:(std::wstring const &)string
{
char* data = (char *)string.data();
unsigned size = string.size() * sizeof(wchar_t);
NSString *str = [[[NSString alloc] initWithBytes:data length:size
encoding:NSUTF32LittleEndianStringEncoding] autorelease];
return str;
}
-(std::wstring)tostdwstring
{
// According to wikipedia, Mac OS X is Little Endian on x86 and x86-64
// http://en.wikipedia.org/wiki/Endianness
NSData* asData = [self dataUsingEncoding:NSUTF32LittleEndianStringEncoding];
return std::wstring((wchar_t *)[asData bytes], [asData length] / sizeof(wchar_t));
}
@end

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

View file

@ -0,0 +1,7 @@
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\vieww9600\viewh8400\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qj\pardirnatural
\f0\fs24 \cf0 See http://sfml-dev.org for more information}

View file

@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View file

@ -0,0 +1,31 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[])
{
return NSApplicationMain(argc, (const char **)argv);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

View file

@ -0,0 +1,33 @@
SFML IN COCOA APPLICATION
=========================
This is a small example of the integration of SFML in a Cocoa application.
System Requirements
-------------------
In order to run this example project you need :
* SFML 2 compiled as shared libs (dylib)
and installed into /usr/local;
* Xcode 4 (thus you will need Mac OS X 10.6 or greater).
Features
--------
* This example shows how basic UI elements can interact with SFML
render areas such as sf::RenderWindow (you can use sf::Window and
OpenGL code too, of course).
* It also provides tools for converting NSString to and from
std::[w]string in an Objective-C Category of NSString.
Special Considerations
----------------------
While mixing SFML into a Cocoa application you have to deal with mixing
C++ and Objective-C. In order to proceed you should use .mm extension for
Objective-C++ files.
Be aware of the limitations of Objective-C++. Please refer to the official
documentation provided by Apple for more information.
You can also work around these limitations by using CSFML.

View file

@ -0,0 +1,43 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#ifndef RESOURCE_PATH_HPP
#define RESOURCE_PATH_HPP
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <string>
////////////////////////////////////////////////////////////
/// \brief Return the path to the resource folder.
///
/// \return The path to the resource folder associate
/// with the main bundle or an empty string is there is no bundle.
///
////////////////////////////////////////////////////////////
std::string ResourcePath(void);
#endif

View file

@ -0,0 +1,52 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include "ResourcePath.hpp"
#import <Foundation/Foundation.h>
////////////////////////////////////////////////////////////
std::string ResourcePath(void)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
std::string rpath;
NSBundle* bundle = [NSBundle mainBundle];
if (bundle == nil) {
#ifdef DEBUG
NSLog(@"bundle is nil... thus no resources path can be found.");
#endif
} else {
NSString* path = [bundle resourcePath];
rpath = [path UTF8String] + std::string("/");
}
[pool drain];
return rpath;
}

View file

@ -0,0 +1,736 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
*************************** org.sfml-dev.AppBase template *****************
###########################################################################
-->
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>org.sfml-dev.AppBase</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.macBase</string>
</array>
<!-- ############################################################### Options -->
<key>Options</key>
<array>
<!-- ****************************************** Framework option -->
<dict>
<key>Identifier</key>
<string>libraryType</string>
<key>Name</key>
<string>Use frameworks</string>
<key>Description</key>
<string>Indicates whether frameworks should be used instead of dylibs or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>false</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS)</string>
</dict>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_DYLIBS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_DYLIBS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS) /usr/local/include/</string>
</dict>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************* Window Module -->
<dict>
<key>Identifier</key>
<string>windowModule</string>
<key>Name</key>
<string>Use window module</string>
<key>Description</key>
<string>Indicates whether window module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string>$(SFML_LINK_PREFIX)sfml-window$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string>#include &lt;SFML/Window.hpp&gt;</string>
<key>main.cpp:main:window:content</key>
<string>sf::Window window(sf::VideoMode(800, 600), "SFML window");</string>
<!-- erase system/audio module content -->
<key>main.cpp:system:include</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<!-- erase main loop & display -->
<key>main.cpp:main:event_loop</key>
<string></string>
<key>main.cpp:main:display</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************* Graphics Module -->
<dict>
<key>Identifier</key>
<string>graphicsModule</string>
<key>RequiredOptions</key>
<dict>
<key>windowModule</key>
<string>true</string>
</dict>
<key>Name</key>
<string>Use graphics module</string>
<key>Description</key>
<string>Indicates whether graphics module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string>$(SFML_LINK_PREFIX)sfml-graphics$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string>#include &lt;SFML/Graphics.hpp&gt;</string>
<key>main.cpp:main:graphics_init_window</key>
<string>// Create the main window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
</string>
<key>main.cpp:main:image_init</key>
<string>
// Load a sprite to display
sf::Texture texture;
</string>
<key>main.cpp:main:image_finalize</key>
<string> return EXIT_FAILURE;
sf::Sprite sprite(texture);
</string>
<key>main.cpp:main:image_load</key>
<string>if (!texture.LoadFromFile(ResourcePath() + "cute_image.jpg"))</string>
<key>main.cpp:main:text_init</key>
<string>
// Create a graphical text to display
sf::Font font;
</string>
<key>main.cpp:main:text_finalize</key>
<string> return EXIT_FAILURE;
sf::Text text("Hello SFML", font, 50);
text.SetColor(sf::Color::Black);
</string>
<key>main.cpp:main:text_load</key>
<string>if (!font.LoadFromFile(ResourcePath() + "sansation.ttf"))</string>
<key>main.cpp:main:graphics_display</key>
<string>
// Clear screen
window.Clear();
// Draw the sprite
window.Draw(sprite);
// Draw the string
window.Draw(text);
</string>
<!-- erase window module content -->
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<key>sansation.ttf</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>sansation.ttf</string>
</dict>
<key>cute_image.jpg</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>cute_image.jpg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>sansation.ttf</string>
<string>cute_image.jpg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string></string>
</dict>
</dict>
<!-- content definition : none -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string></string>
<key>main.cpp:main:graphics_init</key>
<string></string>
<key>main.cpp:main:graphics_display</key>
<string></string>
<key>main.cpp:main:image_load</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************** Audio Module -->
<dict>
<key>Identifier</key>
<string>audioModule</string>
<key>Name</key>
<string>Use audio module</string>
<key>Description</key>
<string>Indicates whether audio module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string>$(SFML_LINK_PREFIX)sfml-audio$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string>#include &lt;SFML/Audio.hpp&gt;</string>
<key>main.cpp:main:audio:content</key>
<string>
// Load a music to play
sf::Music music;
if (!music.OpenFromFile(ResourcePath() + "nice_music.ogg"))
return EXIT_FAILURE;
// Play the music
music.Play();
</string>
<key>nice_music.ogg</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>nice_music.ogg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>nice_music.ogg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string></string>
<key>main.cpp:main:audio:content</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************** Network Module -->
<dict>
<key>Identifier</key>
<string>networkModule</string>
<key>Name</key>
<string>Use network module</string>
<key>Description</key>
<string>Indicates whether network module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string>$(SFML_LINK_PREFIX)sfml-network$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string>#include &lt;SFML/Network.hpp&gt;</string>
<!-- no content example for network -->
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string></string>
<!-- no content example for network -->
</dict>
</dict>
</dict>
</dict>
</array>
<!-- ################################################################# Nodes -->
<key>Nodes</key>
<array>
<string>main.cpp:system:include</string>
<string>main.cpp:window:include</string>
<string>main.cpp:graphics:include</string>
<string>main.cpp:audio:include</string>
<string>main.cpp:network:include</string>
<string>main.cpp:resources:include</string>
<string>main.cpp:main:window:content</string>
<string>main.cpp:main:graphics_init_window</string>
<string>main.cpp:main:image_init</string>
<string>main.cpp:main:image_load</string>
<string>main.cpp:main:image_finalize</string>
<string>main.cpp:main:text_init</string>
<string>main.cpp:main:text_load</string>
<string>main.cpp:main:text_finalize</string>
<string>main.cpp:main:audio:content</string>
<string>main.cpp:main:audio_loop</string>
<string>main.cpp:main:event_loop</string>
<string>main.cpp:main:graphics_display</string>
<string>main.cpp:main:display</string>
<string>ResourcePath.mm</string>
<string>ResourcePath.hpp</string>
</array>
<!-- ########################################################### Definitions -->
<key>Definitions</key>
<dict>
<!-- main function -->
<key>*:main</key>
<dict>
<key>Beginning</key>
<string>
int main (int argc, const char * argv[])
{</string>
<key>End</key>
<string>
return EXIT_SUCCESS;
}</string>
<key>Indent</key>
<integer>1</integer>
</dict>
<key>ResourcePath.mm</key>
<dict>
<key>Path</key>
<string>ResourcePath.mm</string>
</dict>
<key>ResourcePath.hpp</key>
<dict>
<key>Path</key>
<string>ResourcePath.hpp</string>
<key>TargetIndices</key>
<array/>
</dict>
<key>main.cpp:system:include</key>
<string>#include &lt;SFML/System.hpp&gt;</string>
<key>main.cpp:main:event_loop</key>
<string>
// Start the game loop
while (window.IsOpened())
{
// Process events
sf::Event event;
while (window.PollEvent(event))
{
// Close window : exit
if (event.Type == sf::Event::Closed)
window.Close();
// Escape pressed : exit
if (event.Type == sf::Event::KeyPressed &amp;&amp; event.Key.Code == sf::Keyboard::Escape)
window.Close();
}
</string>
<key>main.cpp:main:display</key>
<string>
// Update the window
window.Display();
}
</string>
<key>main.cpp:resources:include</key>
<string>#include "ResourcePath.hpp"</string>
<key>main.cpp:main:audio_loop</key>
<string>while (music.GetStatus() == sf::Music::Playing) {
sf::Sleep(100);
}</string>
</dict>
<!-- ###################################################### Project Settings -->
<key>Project</key>
<dict>
<!-- *************************************************** Basic stuff -->
<key>Name</key>
<string>___PACKAGENAME___</string>
<!-- *********************************************** Shared Settings -->
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>$(TARGET_NAME)</string>
<key>SFML_LINK_DYLIBS_PREFIX</key>
<string>-l</string>
<key>SFML_LINK_FRAMEWORKS_PREFIX</key>
<string>-framework </string>
<key>SFML_SYSTEM</key>
<string>$(SFML_LINK_PREFIX)sfml-system$(SFML_LINK_SUFFIX)</string>
<key>SFML_LINK_FRAMEWORKS_SUFFIX</key>
<string></string>
<key>CLANG_ENABLE_OBJC_ARC</key>
<string></string>
<key>GCC_ENABLE_OBJC_GC</key>
<string>unsupported</string>
</dict>
<key>Configurations</key>
<dict>
<!-- ***************************************************** Debug -->
<key>Debug</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string>-d</string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
<!-- *************************************************** Release -->
<key>Release</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
</dict>
</dict>
<key>Targets</key>
<array>
<dict>
<key>Frameworks</key>
<array>
<string>Foundation</string>
</array>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>ShellScript</string>
<key>ShellPath</key>
<string>/bin/sh</string>
<key>ShellScript</key>
<string># This shell script simply copies required sfml dylibs/frameworks into the application bundle frameworks folder.
# If you're using static libraries (which is not recommended) you should remove this script from your project.
# Are we building a project that uses framework or dylibs ?
if [ $SFML_LINK_PREFIX = $SFML_LINK_FRAMEWORKS_PREFIX ]
then
frameworks=1
else
frameworks=0
fi
require () # $1 is a SFML module like 'system' or 'audio'
{
dest=$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Contents/Frameworks
if [ -z $1 ]
then
echo "no parameter! ERROR!"
exit
else
# clean potentially old stuff
rm -f $dest/libsfml-$1.2.dylib
rm -f $dest/libsfml-$1-d.2.dylib
rm -fr $dest/sfml-$1.framework
# copy SFML libraries
if [ $frameworks ]
then
ditto /Library/Frameworks/sfml-$1.framework $dest/sfml-$1.framework
elif [ $CONFIGURATION = "Debug" ]
then
ditto /usr/local/lib/libsfml-$1-d.2.dylib $dest/libsfml-$1-d.2.dylib
else
ditto /usr/local/lib/libsfml-$1.2.dylib $dest/libsfml-$1.2.dylib
fi
if [ $1 = "audio" ]
then
# copy sndfile framework too
ditto /Library/Frameworks/sndfile.framework $dest/sndfile.framework
fi
fi
}
if [ -n "$SFML_SYSTEM" ]
then
require "system"
fi
if [ -n "$SFML_AUDIO" ]
then
require "audio"
fi
if [ -n "$SFML_NETWORK" ]
then
require "network"
fi
if [ -n "$SFML_WINDOW" ]
then
require "window"
fi
if [ -n "$SFML_GRAPHICS" ]
then
require "graphics"
fi
</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>NO</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
******************************** org.sfml-dev.app template ****************
###########################################################################
-->
<!-- *** Ancestors Hierarchy *** -->
<key>Ancestors</key>
<array>
<string>org.sfml-dev.AppBase</string>
<string>com.apple.dt.unit.bundleBase</string>
</array>
<!-- *** This is a Concrete Template *** -->
<key>Concrete</key>
<true/>
<!-- *** Basic Stuff *** -->
<key>Description</key>
<string>This template builds bundle application using SFML.</string>
<key>Identifier</key>
<string>org.sfml-dev.app</string>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Nodes</key>
<array>
<string>___PACKAGENAME___-Info.plist:Basics</string>
</array>
<key>Definitions</key>
<dict>
<key>___PACKAGENAME___-Info.plist:Basics</key>
<string>&lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;
&lt;string&gt;en&lt;/string&gt;
&lt;key&gt;CFBundleExecutable&lt;/key&gt;
&lt;string&gt;${EXECUTABLE_NAME}&lt;/string&gt;
&lt;key&gt;CFBundleIconFile&lt;/key&gt;
&lt;string&gt;&lt;/string&gt;
&lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;
&lt;string&gt;6.0&lt;/string&gt;
&lt;key&gt;CFBundleName&lt;/key&gt;
&lt;string&gt;${PRODUCT_NAME}&lt;/string&gt;
&lt;key&gt;CFBundlePackageType&lt;/key&gt;
&lt;string&gt;APPL&lt;/string&gt;
&lt;key&gt;CFBundleSignature&lt;/key&gt;
&lt;string&gt;????&lt;/string&gt;
</string>
</dict>
<!-- *** Project's Targets *** -->
<key>Targets</key>
<array>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.application</string>
<key>SharedSettings</key>
<dict>
<key>WRAPPER_EXTENSION</key>
<string>app</string>
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
<string>NO</string>
<key>GCC_PREFIX_HEADER</key>
<string></string>
</dict>
<key>Configurations</key>
<dict>
<key>Debug</key>
<dict>
<key>COPY_PHASE_STRIP</key>
<string>NO</string>
<key>GCC_DYNAMIC_NO_PIC</key>
<string>NO</string>
</dict>
<key>Release</key>
<dict>
<key>COPY_PHASE_STRIP</key>
<string>YES</string>
</dict>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>Resources</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View file

@ -0,0 +1,635 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
******************* org.sfml-dev.commandLineToolBase template *************
###########################################################################
-->
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>org.sfml-dev.commandLineToolBase</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.macBase</string>
</array>
<!-- ############################################################### Options -->
<key>Options</key>
<array>
<!-- ****************************************** Framework option -->
<dict>
<key>Identifier</key>
<string>libraryType</string>
<key>Name</key>
<string>Use frameworks</string>
<key>Description</key>
<string>Indicates whether frameworks should be used instead of dylibs or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>false</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS)</string>
</dict>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_DYLIBS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_DYLIBS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS) /usr/local/include/</string>
</dict>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************* Window Module -->
<dict>
<key>Identifier</key>
<string>windowModule</string>
<key>Name</key>
<string>Use window module</string>
<key>Description</key>
<string>Indicates whether window module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string>$(SFML_LINK_PREFIX)sfml-window$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string>#include &lt;SFML/Window.hpp&gt;</string>
<key>main.cpp:main:window:content</key>
<string>sf::Window window(sf::VideoMode(800, 600), "SFML window");</string>
<!-- erase system/audio module content -->
<key>main.cpp:system:include</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<!-- erase main loop & display -->
<key>main.cpp:main:event_loop</key>
<string></string>
<key>main.cpp:main:display</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************* Graphics Module -->
<dict>
<key>Identifier</key>
<string>graphicsModule</string>
<key>RequiredOptions</key>
<dict>
<key>windowModule</key>
<string>true</string>
</dict>
<key>Name</key>
<string>Use graphics module</string>
<key>Description</key>
<string>Indicates whether graphics module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string>$(SFML_LINK_PREFIX)sfml-graphics$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string>#include &lt;SFML/Graphics.hpp&gt;</string>
<key>main.cpp:main:graphics_init_window</key>
<string>// Create the main window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
</string>
<key>main.cpp:main:image_init</key>
<string>
// Load a sprite to display
sf::Texture texture;
</string>
<key>main.cpp:main:image_finalize</key>
<string> return EXIT_FAILURE;
sf::Sprite sprite(texture);
</string>
<key>main.cpp:main:image_load</key>
<string>if (!texture.LoadFromFile("cute_image.jpg"))</string>
<key>main.cpp:main:text_init</key>
<string>
// Create a graphical text to display
sf::Font font;
</string>
<key>main.cpp:main:text_finalize</key>
<string> return EXIT_FAILURE;
sf::Text text("Hello SFML", font, 50);
text.SetColor(sf::Color::Black);
</string>
<key>main.cpp:main:text_load</key>
<string>if (!font.LoadFromFile("sansation.ttf"))</string>
<key>main.cpp:main:graphics_display</key>
<string>
// Clear screen
window.Clear();
// Draw the sprite
window.Draw(sprite);
// Draw the string
window.Draw(text);
</string>
<!-- erase window module content -->
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<key>sansation.ttf</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>sansation.ttf</string>
</dict>
<key>cute_image.jpg</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>cute_image.jpg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>sansation.ttf</string>
<string>cute_image.jpg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string></string>
</dict>
</dict>
<!-- content definition : none -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string></string>
<key>main.cpp:main:graphics_init</key>
<string></string>
<key>main.cpp:main:graphics_display</key>
<string></string>
<key>main.cpp:main:image_load</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************** Audio Module -->
<dict>
<key>Identifier</key>
<string>audioModule</string>
<key>Name</key>
<string>Use audio module</string>
<key>Description</key>
<string>Indicates whether audio module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string>$(SFML_LINK_PREFIX)sfml-audio$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string>#include &lt;SFML/Audio.hpp&gt;</string>
<key>main.cpp:main:audio:content</key>
<string>
// Load a music to play
sf::Music music;
if (!music.OpenFromFile("nice_music.ogg"))
return EXIT_FAILURE;
// Play the music
music.Play();
</string>
<key>nice_music.ogg</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>nice_music.ogg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>nice_music.ogg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string></string>
<key>main.cpp:main:audio:content</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************** Network Module -->
<dict>
<key>Identifier</key>
<string>networkModule</string>
<key>Name</key>
<string>Use network module</string>
<key>Description</key>
<string>Indicates whether network module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string>$(SFML_LINK_PREFIX)sfml-network$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string>#include &lt;SFML/Network.hpp&gt;</string>
<!-- no content example for network -->
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string></string>
<!-- no content example for network -->
</dict>
</dict>
</dict>
</dict>
</array>
<!-- ################################################################# Nodes -->
<key>Nodes</key>
<array>
<string>main.cpp:system:include</string>
<string>main.cpp:window:include</string>
<string>main.cpp:graphics:include</string>
<string>main.cpp:audio:include</string>
<string>main.cpp:network:include</string>
<string>main.cpp:resources_comment</string>
<string>main.cpp:main:window:content</string>
<string>main.cpp:main:graphics_init_window</string>
<string>main.cpp:main:image_init</string>
<string>main.cpp:main:image_load</string>
<string>main.cpp:main:image_finalize</string>
<string>main.cpp:main:text_init</string>
<string>main.cpp:main:text_load</string>
<string>main.cpp:main:text_finalize</string>
<string>main.cpp:main:audio:content</string>
<string>main.cpp:main:audio_loop</string>
<string>main.cpp:main:event_loop</string>
<string>main.cpp:main:graphics_display</string>
<string>main.cpp:main:display</string>
</array>
<!-- ########################################################### Definitions -->
<key>Definitions</key>
<dict>
<!-- main function -->
<key>*:main</key>
<dict>
<key>Beginning</key>
<string>
int main (int argc, const char * argv[])
{</string>
<key>End</key>
<string>
return EXIT_SUCCESS;
}</string>
<key>Indent</key>
<integer>1</integer>
</dict>
<key>main.cpp:system:include</key>
<string>#include &lt;SFML/System.hpp&gt;</string>
<key>main.cpp:main:event_loop</key>
<string>
// Start the game loop
while (window.IsOpened())
{
// Process events
sf::Event event;
while (window.PollEvent(event))
{
// Close window : exit
if (event.Type == sf::Event::Closed)
window.Close();
// Escape pressed : exit
if (event.Type == sf::Event::KeyPressed &amp;&amp; event.Key.Code == sf::Keyboard::Escape)
window.Close();
}
</string>
<key>main.cpp:main:display</key>
<string>
// Update the window
window.Display();
}
</string>
<key>main.cpp:resources_comment</key>
<string>
/* Resources :
* ===========
*
* In order to load the resources like cute_image.png, you have to set up
* your target scheme :
*
* - Select "Edit Scheme…" in the "Product" menu;
* - Check the box "use custom working directory";
* - Fill the text field with the folder path containing your resources;
* (e.g. your project folder)
* - Click OK.
*/
</string>
<key>main.cpp:main:audio_loop</key>
<string>while (music.GetStatus() == sf::Music::Playing) {
sf::Sleep(100);
}</string>
</dict>
<!-- ###################################################### Project Settings -->
<key>Project</key>
<dict>
<!-- *************************************************** Basic stuff -->
<key>Name</key>
<string>___PACKAGENAME___</string>
<!-- *********************************************** Shared Settings -->
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>$(TARGET_NAME)</string>
<key>SFML_LINK_DYLIBS_PREFIX</key>
<string>-l</string>
<key>SFML_LINK_FRAMEWORKS_PREFIX</key>
<string>-framework </string>
<key>SFML_SYSTEM</key>
<string>$(SFML_LINK_PREFIX)sfml-system$(SFML_LINK_SUFFIX)</string>
<key>SFML_LINK_FRAMEWORKS_SUFFIX</key>
<string></string>
<key>CLANG_ENABLE_OBJC_ARC</key>
<string></string>
<key>GCC_ENABLE_OBJC_GC</key>
<string>unsupported</string>
</dict>
<key>Configurations</key>
<dict>
<!-- ***************************************************** Debug -->
<key>Debug</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string>-d</string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
<!-- *************************************************** Release -->
<key>Release</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
*********************** org.sfml-dev.commandLineTool template *************
###########################################################################
-->
<!-- *** Ancestors Hierarchy *** -->
<key>Ancestors</key>
<array>
<string>org.sfml-dev.commandLineToolBase</string>
<string>com.apple.dt.unit.base</string>
</array>
<!-- *** This is a Concrete Template *** -->
<key>Concrete</key>
<true/>
<!-- *** Basic Stuff *** -->
<key>Description</key>
<string>This template builds a command-line tool using SFML.</string>
<key>Identifier</key>
<string>org.sfml-dev.commandLineTool</string>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<!-- *** Project's Targets *** -->
<key>Targets</key>
<array>
<dict>
<!-- *** Basic Stuff *** -->
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
</array>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
</dict>
</array>
</dict>
</plist>

View file

@ -0,0 +1,66 @@
XCODE 4 TEMPLATES
=================
These are templates to create easily a new SFML project in Xcode 4.
Features
--------
* You can choose between command line tool or bundle application.
* You can choose between using SFML libraries as dylibs or frameworks.
* You can add independently each SFML module you'll use into your project.
* A basic example is included automatically into your project's code.
Install
-------
If you are building SFML from sources you can set CMake's INSTALL_XCODE4_TEMPLATES variable to TRUE to install the templates automatically. Otherwise proceed as follow :
1. Make sure "~/Library/Developer/Xcode/Templates/" folder exists;
2. Copy "SFML" folder into the above folder.
Usage
-----
To use these templates follow these steps :
1. open Xcode 4,
2. select "create a new Xcode project" from the "Welcome to Xcode" window or select menus File > New > New Project,
3. select "SFML" subsection under "Mac OS X",
4. then select either "SFML Application" or "SFML Command Line Tool",
5. fill in the requested information and you're done.
Question & Answer
-----------------
* I would like to add/remove a module of SFML from my current project without creating a new one. How can I do that ?
1. select your project from the project navigator panel,
2. select your project's target on the main area,
3. go to the "Build Settings" tab,
4. go down to the bottom,
5. set SFML_XXX variable, where XXX is the name of the module to add/remove to "$(SFML_LINK_PREFIX)sfml-XXX$(SFML_LINK_SUFFIX)" to add it or to "" (nothing) to remove it.
* I changed my mind and would like to switch from dylibs to frameworks or vice versa. How can I do that ?
1. select your project from the project navigator panel,
2. select your project's target on the main area,
3. go to the "Build Settings" tab,
4. go down to the bottom,
5. update SFML_LINK_PREFIX and SFML_LINK_SUFFIX as follow :
* if you want to use frameworks, then
1. set SFML_LINK_PREFIX to "$(SFML_LINK_FRAMEWORKS_PREFIX)",
2. set SFML_LINK_SUFFIX to "$(SFML_LINK_FRAMEWORKS_SUFFIX)"
* if you want to use dylibs, then
1. set SFML_LINK_PREFIX to "$(SFML_LINK_DYLIBS_PREFIX)",
2. set SFML_LINK_SUFFIX to "$(SFML_LINK_DYLIBS_SUFFIX)"
* I want to use the static version of SFML. Is it possible ?
Short answer : Don't do that!
We strongly recommend you to use either dylibs or frameworks on Mac OS X. Please refer to Apple documentation for information about static vs shared libraries debate.
If you really need/want to use static libraries proceed as follow. First, set your project to use dylibs (see above Q & A). Then set SFML_LINK_DYLIBS_SUFFIX to "-s-d" in debug mode and to "-s" in release mode. Finally, remove the script automatically generated by the application template (see Build Phases tab).