Synchronized with trunk

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1222 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
LaurentGom 2009-09-24 08:33:34 +00:00
commit a5e20f23ca
18 changed files with 1623 additions and 1143 deletions

View File

@ -245,10 +245,10 @@
A011E5E70F65786600FAE48D /* zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A011E5660F65786600FAE48D /* zlib.h */; };
A011E5E80F65786600FAE48D /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = A011E5670F65786600FAE48D /* zutil.c */; };
A011E5E90F65786600FAE48D /* zutil.h in Headers */ = {isa = PBXBuildFile; fileRef = A011E5680F65786600FAE48D /* zutil.h */; };
A011E5FB0F65791B00FAE48D /* libcsfml-system.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system.dylib */; };
A011E6060F65797100FAE48D /* libcsfml-system.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system.dylib */; };
A011E6140F6579CA00FAE48D /* libcsfml-window.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E38F0F6574B500FAE48D /* libcsfml-window.dylib */; };
A011E6170F6579D100FAE48D /* libcsfml-system.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system.dylib */; };
A011E5FB0F65791B00FAE48D /* libcsfml-system-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */; };
A011E6060F65797100FAE48D /* libcsfml-system-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */; };
A011E6140F6579CA00FAE48D /* libcsfml-window-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E38F0F6574B500FAE48D /* libcsfml-window-d.dylib */; };
A011E6170F6579D100FAE48D /* libcsfml-system-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -290,11 +290,11 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
A011E3720F65749300FAE48D /* libcsfml-system.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-system.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E37D0F65749F00FAE48D /* libcsfml-network.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-network.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3860F6574AC00FAE48D /* libcsfml-audio.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-audio.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E38F0F6574B500FAE48D /* libcsfml-window.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-window.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3980F6574BE00FAE48D /* libcsfml-graphics.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-graphics.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-system-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E37D0F65749F00FAE48D /* libcsfml-network-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-network-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3860F6574AC00FAE48D /* libcsfml-audio-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-audio-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E38F0F6574B500FAE48D /* libcsfml-window-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-window-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3980F6574BE00FAE48D /* libcsfml-graphics-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libcsfml-graphics-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A011E3A40F6574E400FAE48D /* SFML-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SFML-Info.plist"; sourceTree = "<group>"; };
A011E3DE0F65776B00FAE48D /* Sleep.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Sleep.cpp; path = ../src/SFML/System/Sleep.cpp; sourceTree = SOURCE_ROOT; };
A011E3DF0F65776B00FAE48D /* Thread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Thread.cpp; path = ../src/SFML/System/Thread.cpp; sourceTree = SOURCE_ROOT; };
@ -537,7 +537,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A011E5FB0F65791B00FAE48D /* libcsfml-system.dylib in Frameworks */,
A011E5FB0F65791B00FAE48D /* libcsfml-system-d.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -545,7 +545,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A011E6060F65797100FAE48D /* libcsfml-system.dylib in Frameworks */,
A011E6060F65797100FAE48D /* libcsfml-system-d.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -553,8 +553,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A011E6140F6579CA00FAE48D /* libcsfml-window.dylib in Frameworks */,
A011E6170F6579D100FAE48D /* libcsfml-system.dylib in Frameworks */,
A011E6140F6579CA00FAE48D /* libcsfml-window-d.dylib in Frameworks */,
A011E6170F6579D100FAE48D /* libcsfml-system-d.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -577,11 +577,11 @@
A011E3730F65749300FAE48D /* Products */ = {
isa = PBXGroup;
children = (
A011E3720F65749300FAE48D /* libcsfml-system.dylib */,
A011E37D0F65749F00FAE48D /* libcsfml-network.dylib */,
A011E3860F6574AC00FAE48D /* libcsfml-audio.dylib */,
A011E38F0F6574B500FAE48D /* libcsfml-window.dylib */,
A011E3980F6574BE00FAE48D /* libcsfml-graphics.dylib */,
A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */,
A011E37D0F65749F00FAE48D /* libcsfml-network-d.dylib */,
A011E3860F6574AC00FAE48D /* libcsfml-audio-d.dylib */,
A011E38F0F6574B500FAE48D /* libcsfml-window-d.dylib */,
A011E3980F6574BE00FAE48D /* libcsfml-graphics-d.dylib */,
);
name = Products;
sourceTree = "<group>";
@ -663,7 +663,6 @@
isa = PBXGroup;
children = (
A011E4250F65780E00FAE48D /* Clock.cpp */,
A011E4260F65780E00FAE48D /* Initializer.cpp */,
A011E4270F65780E00FAE48D /* Lock.cpp */,
A011E4290F65780E00FAE48D /* Platform.hpp */,
A011E42A0F65780E00FAE48D /* Randomizer.cpp */,
@ -678,6 +677,7 @@
A011E42D0F65780E00FAE48D /* Unix */ = {
isa = PBXGroup;
children = (
A011E4260F65780E00FAE48D /* Initializer.cpp */,
A011E42E0F65780E00FAE48D /* Mutex.cpp */,
A011E42F0F65780E00FAE48D /* Platform.cpp */,
A011E4300F65780E00FAE48D /* Platform.hpp */,
@ -1076,7 +1076,7 @@
);
name = "csfml-system";
productName = "csfml-system";
productReference = A011E3720F65749300FAE48D /* libcsfml-system.dylib */;
productReference = A011E3720F65749300FAE48D /* libcsfml-system-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A011E37C0F65749F00FAE48D /* csfml-network */ = {
@ -1093,7 +1093,7 @@
);
name = "csfml-network";
productName = "csfml-network";
productReference = A011E37D0F65749F00FAE48D /* libcsfml-network.dylib */;
productReference = A011E37D0F65749F00FAE48D /* libcsfml-network-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A011E3850F6574AC00FAE48D /* csfml-audio */ = {
@ -1110,7 +1110,7 @@
);
name = "csfml-audio";
productName = "csfml-audio";
productReference = A011E3860F6574AC00FAE48D /* libcsfml-audio.dylib */;
productReference = A011E3860F6574AC00FAE48D /* libcsfml-audio-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A011E38E0F6574B500FAE48D /* csfml-window */ = {
@ -1127,7 +1127,7 @@
);
name = "csfml-window";
productName = "csfml-window";
productReference = A011E38F0F6574B500FAE48D /* libcsfml-window.dylib */;
productReference = A011E38F0F6574B500FAE48D /* libcsfml-window-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A011E3970F6574BE00FAE48D /* csfml-graphics */ = {
@ -1144,7 +1144,7 @@
);
name = "csfml-graphics";
productName = "csfml-graphics";
productReference = A011E3980F6574BE00FAE48D /* libcsfml-graphics.dylib */;
productReference = A011E3980F6574BE00FAE48D /* libcsfml-graphics-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
/* End PBXNativeTarget section */
@ -1417,6 +1417,7 @@
);
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = CSFML_EXPORTS;
GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
@ -1465,6 +1466,7 @@
);
GCC_OPTIMIZATION_LEVEL = 2;
GCC_PREPROCESSOR_DEFINITIONS = CSFML_EXPORTS;
GCC_VERSION = 4.0;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../src",
"$(SRCROOT)/../include",

View File

@ -698,7 +698,6 @@
isa = PBXGroup;
children = (
A011E4250F65780E00FAE48D /* Clock.cpp */,
A011E4260F65780E00FAE48D /* Initializer.cpp */,
A011E4270F65780E00FAE48D /* Lock.cpp */,
A011E4290F65780E00FAE48D /* Platform.hpp */,
A011E42A0F65780E00FAE48D /* Randomizer.cpp */,
@ -713,6 +712,7 @@
A011E42D0F65780E00FAE48D /* Unix */ = {
isa = PBXGroup;
children = (
A011E4260F65780E00FAE48D /* Initializer.cpp */,
A011E42E0F65780E00FAE48D /* Mutex.cpp */,
A011E42F0F65780E00FAE48D /* Platform.cpp */,
A011E4300F65780E00FAE48D /* Platform.hpp */,
@ -1606,6 +1606,7 @@
);
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = CSFML_EXPORTS;
GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
@ -1654,6 +1655,7 @@
);
GCC_OPTIMIZATION_LEVEL = 2;
GCC_PREPROCESSOR_DEFINITIONS = CSFML_EXPORTS;
GCC_VERSION = 4.0;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../src",
"$(SRCROOT)/../include",

View File

@ -157,7 +157,7 @@
A066106A0E89058900D39DEB /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = A0660FE90E89058900D39DEB /* trees.c */; };
A066106C0E89058900D39DEB /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = A0660FEB0E89058900D39DEB /* uncompr.c */; };
A066106F0E89058900D39DEB /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = A0660FEE0E89058900D39DEB /* zutil.c */; };
A0ABBD570FD46A2200D528E9 /* libsfml-system.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A01269660E6318C000B96A5D /* libsfml-system.dylib */; };
A0ABBD570FD46A2200D528E9 /* libsfml-system-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A01269660E6318C000B96A5D /* libsfml-system-d.dylib */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -201,14 +201,14 @@
/* Begin PBXFileReference section */
A011E8050F65B35400FAE48D /* GLKit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GLKit.h; sourceTree = "<group>"; };
A011E8060F65B35400FAE48D /* GLKit.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = GLKit.mm; sourceTree = "<group>"; };
A01269660E6318C000B96A5D /* libsfml-system.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-system.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A012696F0E6318FE00B96A5D /* libsfml-network.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-network.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A01269760E63190F00B96A5D /* libsfml-audio.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-audio.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A012697D0E63192000B96A5D /* libsfml-window.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-window.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A01269840E63192B00B96A5D /* libsfml-graphics.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-graphics.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A01269660E6318C000B96A5D /* libsfml-system-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-system-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A012696F0E6318FE00B96A5D /* libsfml-network-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-network-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A01269760E63190F00B96A5D /* libsfml-audio-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-audio-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A012697D0E63192000B96A5D /* libsfml-window-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-window-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A01269840E63192B00B96A5D /* libsfml-graphics-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libsfml-graphics-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
A018A2AD0EA21A2C005FFAC3 /* Http.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Http.cpp; path = ../../src/SFML/Network/Http.cpp; sourceTree = SOURCE_ROOT; };
A018A2AE0EA21A2C005FFAC3 /* Ftp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Ftp.cpp; path = ../../src/SFML/Network/Ftp.cpp; sourceTree = SOURCE_ROOT; };
A01BEF070F6BF0140095262C /* Initializer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Initializer.cpp; path = ../../src/SFML/System/Initializer.cpp; sourceTree = SOURCE_ROOT; };
A01BEF070F6BF0140095262C /* Initializer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Initializer.cpp; sourceTree = "<group>"; };
A04C5A930EDDD88B00935061 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ../../src/SFML/Window/Cocoa/AppController.h; sourceTree = SOURCE_ROOT; };
A04C5A940EDDD88B00935061 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ../../src/SFML/Window/Cocoa/AppController.mm; sourceTree = SOURCE_ROOT; };
A04C5A950EDDD88B00935061 /* Joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Joystick.cpp; path = ../../src/SFML/Window/Cocoa/Joystick.cpp; sourceTree = SOURCE_ROOT; };
@ -409,7 +409,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A0ABBD570FD46A2200D528E9 /* libsfml-system.dylib in Frameworks */,
A0ABBD570FD46A2200D528E9 /* libsfml-system-d.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -445,11 +445,11 @@
A01269670E6318C000B96A5D /* Products */ = {
isa = PBXGroup;
children = (
A01269660E6318C000B96A5D /* libsfml-system.dylib */,
A012696F0E6318FE00B96A5D /* libsfml-network.dylib */,
A01269760E63190F00B96A5D /* libsfml-audio.dylib */,
A012697D0E63192000B96A5D /* libsfml-window.dylib */,
A01269840E63192B00B96A5D /* libsfml-graphics.dylib */,
A01269660E6318C000B96A5D /* libsfml-system-d.dylib */,
A012696F0E6318FE00B96A5D /* libsfml-network-d.dylib */,
A01269760E63190F00B96A5D /* libsfml-audio-d.dylib */,
A012697D0E63192000B96A5D /* libsfml-window-d.dylib */,
A01269840E63192B00B96A5D /* libsfml-graphics-d.dylib */,
);
name = Products;
sourceTree = "<group>";
@ -457,7 +457,6 @@
A01269870E63193B00B96A5D /* sfml-system */ = {
isa = PBXGroup;
children = (
A01BEF070F6BF0140095262C /* Initializer.cpp */,
A0660EA90E89051400D39DEB /* Clock.cpp */,
A0660EAA0E89051400D39DEB /* Platform.hpp */,
A0660EAB0E89051400D39DEB /* Lock.cpp */,
@ -577,6 +576,7 @@
A0660EAE0E89051400D39DEB /* Unix */ = {
isa = PBXGroup;
children = (
A01BEF070F6BF0140095262C /* Initializer.cpp */,
A0660EAF0E89051400D39DEB /* Mutex.cpp */,
A0660EB00E89051400D39DEB /* Platform.cpp */,
A0660EB10E89051400D39DEB /* Platform.hpp */,
@ -770,7 +770,7 @@
);
name = "sfml-system";
productName = "sfml-system";
productReference = A01269660E6318C000B96A5D /* libsfml-system.dylib */;
productReference = A01269660E6318C000B96A5D /* libsfml-system-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A012696E0E6318FE00B96A5D /* sfml-network */ = {
@ -786,7 +786,7 @@
);
name = "sfml-network";
productName = "sfml-network";
productReference = A012696F0E6318FE00B96A5D /* libsfml-network.dylib */;
productReference = A012696F0E6318FE00B96A5D /* libsfml-network-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A01269750E63190F00B96A5D /* sfml-audio */ = {
@ -802,7 +802,7 @@
);
name = "sfml-audio";
productName = "sfml-audio";
productReference = A01269760E63190F00B96A5D /* libsfml-audio.dylib */;
productReference = A01269760E63190F00B96A5D /* libsfml-audio-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A012697C0E63192000B96A5D /* sfml-window */ = {
@ -818,7 +818,7 @@
);
name = "sfml-window";
productName = "sfml-window";
productReference = A012697D0E63192000B96A5D /* libsfml-window.dylib */;
productReference = A012697D0E63192000B96A5D /* libsfml-window-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A01269830E63192B00B96A5D /* sfml-graphics */ = {
@ -834,7 +834,7 @@
);
name = "sfml-graphics";
productName = "sfml-graphics";
productReference = A01269840E63192B00B96A5D /* libsfml-graphics.dylib */;
productReference = A01269840E63192B00B96A5D /* libsfml-graphics-d.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
/* End PBXNativeTarget section */
@ -1067,6 +1067,7 @@
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../extlibs/bin";
GCC_VERSION = 4.0;
HEADER_SEARCH_PATHS = (
"${SRCROOT}/../../src",
"${SRCROOT}/../../include",
@ -1088,6 +1089,7 @@
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
COPY_PHASE_STRIP = YES;
FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../extlibs/bin";
GCC_VERSION = 4.0;
HEADER_SEARCH_PATHS = (
"${SRCROOT}/../../src",
"${SRCROOT}/../../include",

View File

@ -56,9 +56,7 @@
A04C59B40EDDBA9C00935061 /* VideoModeSupport.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A04C59AA0EDDBA9C00935061 /* VideoModeSupport.hpp */; };
A04C59B70EDDBA9C00935061 /* WindowImplCocoa.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A04C59AD0EDDBA9C00935061 /* WindowImplCocoa.hpp */; };
A04C59B80EDDBA9C00935061 /* WindowImplCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A04C59AE0EDDBA9C00935061 /* WindowImplCocoa.mm */; };
A05EEF700E5CF18F00572B7E /* sfml-window.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0C93EB40D9A9CA000B9E0C8 /* sfml-window.framework */; };
A093E3D00D8BF918002236B4 /* dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A093E3CF0D8BF918002236B4 /* dummy.cpp */; };
A093E5480D8BFEAE002236B4 /* sfml-system.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A093E37F0D8BF87A002236B4 /* sfml-system.framework */; };
A09EEBF70D8C19BF00F6C625 /* Platform.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A09EEBED0D8C19BF00F6C625 /* Platform.hpp */; };
A09EEBF80D8C19BF00F6C625 /* Randomizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A09EEBEE0D8C19BF00F6C625 /* Randomizer.cpp */; };
A09EEBF90D8C19BF00F6C625 /* Mutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A09EEBF00D8C19BF00F6C625 /* Mutex.cpp */; };
@ -68,8 +66,6 @@
A09EEBFD0D8C19BF00F6C625 /* Clock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A09EEBF40D8C19BF00F6C625 /* Clock.cpp */; };
A09EEBFE0D8C19BF00F6C625 /* Lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A09EEBF50D8C19BF00F6C625 /* Lock.cpp */; };
A09EEBFF0D8C19BF00F6C625 /* Sleep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A09EEBF60D8C19BF00F6C625 /* Sleep.cpp */; };
A0BE1A200D917332007D4CAD /* sfml-system.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A093E37F0D8BF87A002236B4 /* sfml-system.framework */; };
A0C93F930D9AA9FA00B9E0C8 /* sfml-system.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A093E37F0D8BF87A002236B4 /* sfml-system.framework */; };
A0CE9FE70F46F72500FD00CE /* GLKit.h in Headers */ = {isa = PBXBuildFile; fileRef = A0CE9FE50F46F72500FD00CE /* GLKit.h */; };
A0CE9FE80F46F72500FD00CE /* GLKit.mm in Sources */ = {isa = PBXBuildFile; fileRef = A0CE9FE60F46F72500FD00CE /* GLKit.mm */; };
A0EEDE990F59D49C0023A7F7 /* Initializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A0EEDE980F59D49C0023A7F7 /* Initializer.cpp */; };
@ -439,7 +435,7 @@
A0C93EB40D9A9CA000B9E0C8 /* sfml-window.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = "sfml-window.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
A0CE9FE50F46F72500FD00CE /* GLKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLKit.h; sourceTree = "<group>"; };
A0CE9FE60F46F72500FD00CE /* GLKit.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GLKit.mm; sourceTree = "<group>"; };
A0EEDE980F59D49C0023A7F7 /* Initializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Initializer.cpp; path = ../../src/SFML/System/Initializer.cpp; sourceTree = SOURCE_ROOT; };
A0EEDE980F59D49C0023A7F7 /* Initializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Initializer.cpp; sourceTree = "<group>"; };
A0F1E6800E75440800778F12 /* IPAddress.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = IPAddress.cpp; path = ../../src/SFML/Network/IPAddress.cpp; sourceTree = SOURCE_ROOT; };
A0F1E6820E75440800778F12 /* Packet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Packet.cpp; path = ../../src/SFML/Network/Packet.cpp; sourceTree = SOURCE_ROOT; };
A0F1E6830E75440800778F12 /* SelectorBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SelectorBase.cpp; path = ../../src/SFML/Network/SelectorBase.cpp; sourceTree = SOURCE_ROOT; };
@ -608,7 +604,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A093E5480D8BFEAE002236B4 /* sfml-system.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -616,8 +611,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A0BE1A200D917332007D4CAD /* sfml-system.framework in Frameworks */,
A05EEF700E5CF18F00572B7E /* sfml-window.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -625,7 +618,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A0C93F930D9AA9FA00B9E0C8 /* sfml-system.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -942,7 +934,6 @@
A09EEBF40D8C19BF00F6C625 /* Clock.cpp */,
A09EEBF50D8C19BF00F6C625 /* Lock.cpp */,
A09EEBF60D8C19BF00F6C625 /* Sleep.cpp */,
A0EEDE980F59D49C0023A7F7 /* Initializer.cpp */,
);
name = Sources;
sourceTree = SOURCE_ROOT;
@ -950,6 +941,7 @@
A09EEBEF0D8C19BF00F6C625 /* Unix */ = {
isa = PBXGroup;
children = (
A0EEDE980F59D49C0023A7F7 /* Initializer.cpp */,
A09EEBF00D8C19BF00F6C625 /* Mutex.cpp */,
A09EEBF10D8C19BF00F6C625 /* Platform.cpp */,
A09EEBF20D8C19BF00F6C625 /* Platform.hpp */,
@ -1724,7 +1716,7 @@
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../extlibs/bin";
GCC_OPTIMIZATION_LEVEL = 0;
GCC_VERSION = "";
GCC_VERSION = 4.0;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO;
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
@ -1758,7 +1750,7 @@
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../extlibs/bin";
GCC_OPTIMIZATION_LEVEL = 2;
GCC_VERSION = "";
GCC_VERSION = 4.0;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = NO;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO;
@ -1885,6 +1877,8 @@
OpenAL,
"-framework",
sndfile,
"-framework",
"sfml-system-d",
);
PRODUCT_NAME = "sfml-audio-d";
SECTORDER_FLAGS = "";
@ -1912,6 +1906,8 @@
OpenAL,
"-framework",
sndfile,
"-framework",
"sfml-system",
);
PRODUCT_NAME = "sfml-audio";
SECTORDER_FLAGS = "";
@ -1939,6 +1935,10 @@
"-framework",
OpenGL,
"$(SRCROOT)/../../extlibs/libs-xcode/libfreetype.a",
"-framework",
"sfml-system-d",
"-framework",
"sfml-window-d",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-graphics-d";
@ -1967,6 +1967,10 @@
"-framework",
OpenGL,
"$(SRCROOT)/../../extlibs/libs-xcode/libfreetype.a",
"-framework",
"sfml-system",
"-framework",
"sfml-window",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-graphics";
@ -1991,7 +1995,6 @@
INFOPLIST_FILE = "sfml-network-Info.plist";
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-network-d";
SECTORDER_FLAGS = "";
@ -2015,7 +2018,6 @@
INFOPLIST_FILE = "sfml-network-Info.plist";
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-network";
SECTORDER_FLAGS = "";
@ -2101,6 +2103,8 @@
ApplicationServices,
"-framework",
Cocoa,
"-framework",
"sfml-system-d",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-window-d";
@ -2133,6 +2137,8 @@
ApplicationServices,
"-framework",
Cocoa,
"-framework",
"sfml-system",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-window";
@ -2154,7 +2160,7 @@
FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../extlibs/bin";
GCC_DEBUGGING_SYMBOLS = full;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_VERSION = "";
GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
@ -2241,6 +2247,8 @@
OpenAL,
"-framework",
sndfile,
"-framework",
"sfml-system-d",
);
PRODUCT_NAME = "sfml-audio-d";
SECTORDER_FLAGS = "";
@ -2268,6 +2276,10 @@
"-framework",
OpenGL,
"$(SRCROOT)/../../extlibs/libs-xcode/libfreetype.a",
"-framework",
"sfml-system-d",
"-framework",
"sfml-window-d",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-graphics-d";
@ -2292,7 +2304,6 @@
INFOPLIST_FILE = "sfml-network-Info.plist";
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-network-d";
SECTORDER_FLAGS = "";
@ -2352,6 +2363,8 @@
ApplicationServices,
"-framework",
Cocoa,
"-framework",
"sfml-system-d",
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = "sfml-window-d";

View File

@ -1,4 +1,30 @@
#!/bin/sh
############################################################
#
# SFML - Simple and Fast Multimedia Library
# Copyright (C) 2007-2009 Lucas Soltic (ceylow@gmail.com) and 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.
#
############################################################
cd ../../../
SFML_VERSION="1.6"
@ -43,6 +69,8 @@ SHOULD_CONSIDER_CXX="yes"
SHOULD_CONSIDER_C="yes"
SHOULD_CONSIDER_SAMPLES="yes"
VERBOSE_OUTPUT="/dev/null"
# Checks that last command ended normally. Prints an error message and exists if not.
check_last_process()
{
@ -61,15 +89,20 @@ check_last_process()
# User help
print_usage()
{
echo "Usage: $0 [clean | build | build-samples | build-pkg | all]"
echo " Default shows this help"
echo "Usage: $0 [clean | build | build-samples | build-pkg | all [--verbose]]"
echo
echo "Commands:"
echo " clean\t\tdeletes the C and C++ frameworks, object files and packages"
echo " build\t\tcompiles all the C and C++ SFML frameworks"
echo " build-samples\tcompiles the SFML samples"
echo " build-pkg\t\tbuilds the packages to be distributed"
echo " all\t\t\tdoes build, build-samples and build-pkg"
echo " help (default)\tshows this usage information"
echo
echo "Options:"
echo " --verbose\t\tdo not hide standard ouput, errors are still shown"
echo
echo "Contents summary:"
echo " Found C++ project : $SHOULD_CONSIDER_CXX"
echo " Found C project : $SHOULD_CONSIDER_C"
echo " Found samples project : $SHOULD_CONSIDER_SAMPLES"
@ -135,7 +168,7 @@ remove_dir()
{
if test -d "$1"
then
rm -rfv "$1" > /dev/null
rm -rfv "$1" > "$VERBOSE_OUTPUT"
fi
}
@ -144,7 +177,7 @@ remove_file()
{
if test -f "$1"
then
rm -f "$1" > /dev/null
rm -f "$1" > "$VERBOSE_OUTPUT"
fi
}
@ -176,7 +209,7 @@ clean_all()
if test -d "$XCODE_CXX_ROOT_DIR/$XCODE_FRAMEWORKS_PROJECT"
then
cd "$XCODE_CXX_ROOT_DIR"
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > /dev/null
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > "$VERBOSE_OUTPUT"
check_last_process " done"
else
if test -d "$XCODE_CXX_ROOT_DIR"
@ -189,6 +222,7 @@ clean_all()
fi
fi
# Process cleaning for C project
if [ "$SHOULD_CONSIDER_C" == "yes" ]
then
@ -196,7 +230,7 @@ clean_all()
if test -d "$XCODE_C_ROOT_DIR/$XCODE_FRAMEWORKS_PROJECT"
then
cd "$XCODE_C_ROOT_DIR"
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > /dev/null
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > "$VERBOSE_OUTPUT"
check_last_process " done"
else
# Do not produce error if the package does no contain the C stuff
@ -217,7 +251,7 @@ clean_all()
if test -d "$XCODE_SAMPLES_ROOT_DIR/$XCODE_SAMPLES_PROJECT"
then
cd "$XCODE_SAMPLES_ROOT_DIR"
xcodebuild -project "$XCODE_SAMPLES_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > /dev/null
xcodebuild -project "$XCODE_SAMPLES_PROJECT" -target "All" -configuration "$XCODE_BUILD_STYLE" clean > "$VERBOSE_OUTPUT"
check_last_process " done"
else
# Do not produce error if the package does not contain the samples
@ -253,7 +287,7 @@ build_frameworks()
for target in "${XCODE_CXX_TARGETS[@]}"
do
printf "Building $target framework..."
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "$target" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > /dev/null
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "$target" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > "$VERBOSE_OUTPUT"
check_last_process " done"
done
@ -277,7 +311,7 @@ build_frameworks()
for target in "${XCODE_C_TARGETS[@]}"
do
printf "Building $target framework..."
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "$target" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > /dev/null
xcodebuild -project "$XCODE_FRAMEWORKS_PROJECT" -target "$target" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > "$VERBOSE_OUTPUT"
check_last_process " done"
done
@ -302,7 +336,7 @@ build_samples()
if test -d "$XCODE_SAMPLES_ROOT_DIR/$XCODE_SAMPLES_PROJECT"
then
# Build the samples
xcodebuild -project "$XCODE_SAMPLES_PROJECT" -target "All" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > /dev/null
xcodebuild -project "$XCODE_SAMPLES_PROJECT" -target "All" -parallelizeTargets -configuration "$XCODE_BUILD_STYLE" build > "$VERBOSE_OUTPUT"
check_last_process " done"
echo "In order to run the samples, the SFML frameworks (located in \"lib\") must be copied in the /Library/Frameworks directory." > "$CXX_SAMPLES_DIR/README"
check_last_process
@ -323,7 +357,7 @@ copy_info_files()
done
}
# Build the disk image files of the C and C++ Dev and SDK packages
# Build the archives of the C and C++ Dev and SDK packages
build_packages()
{
cd "$ROOT_DIR"
@ -333,7 +367,7 @@ build_packages()
# Build the C++ SDK package
if [ "$SHOULD_CONSIDER_CXX" == "yes" ]
then
echo "Building C++ SDK package..."
printf "Building C++ SDK package..."
make_dir "$CXX_SDK_PACKAGE_DIR"
for dir in "${CXX_SDK_DIRS[@]}"
do
@ -341,7 +375,7 @@ build_packages()
"doc")
if ! test -f "$ROOT_DIR/$dir/html/index.htm"
then
echo "$ROOT_DIR/$dir/html/index.htm not found. Make sure the documentation has been built."
echo "*** $ROOT_DIR/$dir/html/index.htm not found. Make sure the documentation has been built."
exit 1
fi
;;
@ -353,14 +387,13 @@ build_packages()
copy_info_files "$CXX_SDK_PACKAGE_DIR"
check_last_process
# Build the disk image file
printf "Made final folder, building Disk Image File..."
remove_file "$PACKAGES_ROOT_DIR/$CXX_SDK_PACKAGE.dmg"
hdiutil create -format UDBZ -volname "$CXX_SDK_PACKAGE" -srcfolder "$CXX_SDK_PACKAGE_DIR" "$PACKAGES_ROOT_DIR/$CXX_SDK_PACKAGE.dmg" > /dev/null
# Build the archive
cd "$PACKAGES_ROOT_DIR"
tar -cjlf "$PACKAGES_ROOT_DIR/$CXX_SDK_PACKAGE.tar.bz2" "$CXX_SDK_PACKAGE" > "$VERBOSE_OUTPUT"
check_last_process " done"
# Build the C++ Dev package
echo "Building C++ Development package..."
printf "Building C++ Development package..."
make_dir "$CXX_DEV_PACKAGE_DIR"
for dir in "${CXX_DEV_DIRS[@]}"
do
@ -386,10 +419,9 @@ build_packages()
done
copy_info_files "$CXX_DEV_PACKAGE_DIR"
# Build the disk image file
printf "Made final folder, building Disk Image File..."
remove_file "$PACKAGES_ROOT_DIR/$CXX_DEV_PACKAGE.dmg"
hdiutil create -format UDBZ -volname "$CXX_DEV_PACKAGE" -srcfolder "$CXX_DEV_PACKAGE_DIR" "$PACKAGES_ROOT_DIR/$CXX_DEV_PACKAGE.dmg" > /dev/null
# Build the archive
cd "$PACKAGES_ROOT_DIR"
tar -cjlf "$PACKAGES_ROOT_DIR/$CXX_DEV_PACKAGE.tar.bz2" "$CXX_DEV_PACKAGE" > "$VERBOSE_OUTPUT"
check_last_process " done"
fi # SHOULD_CONSIDER_CXX
@ -397,7 +429,7 @@ build_packages()
# Build the C SDK package
if [ "$SHOULD_CONSIDER_C" == "yes" ]
then
echo "Building C SDK package..."
printf "Building C SDK package..."
make_dir "$C_SDK_PACKAGE_DIR"
for dir in "${C_SDK_DIRS[@]}"
do
@ -413,14 +445,13 @@ build_packages()
done
copy_info_files "$C_SDK_PACKAGE_DIR"
# Build the disk image file
printf "Made final folder, building Disk Image File..."
remove_file "$PACKAGES_ROOT_DIR/$C_SDK_PACKAGE.dmg"
hdiutil create -format UDBZ -volname "$C_SDK_PACKAGE" -srcfolder "$C_SDK_PACKAGE_DIR" "$PACKAGES_ROOT_DIR/$C_SDK_PACKAGE.dmg" > /dev/null
# Build the archive
cd "$PACKAGES_ROOT_DIR"
tar -cjlf "$PACKAGES_ROOT_DIR/$C_SDK_PACKAGE.tar.bz2" "$C_SDK_PACKAGE" > "$VERBOSE_OUTPUT"
check_last_process " done"
# Build the C Development package
echo "Building C Development package..."
printf "Building C Development package..."
make_dir "$C_DEV_PACKAGE_DIR"
for dir in "${C_DEV_DIRS[@]}"
do
@ -454,10 +485,9 @@ build_packages()
done
copy_info_files "$C_DEV_PACKAGE_DIR"
# Build the disk image file
printf "Made final folder, building Disk Image File..."
remove_file "$PACKAGES_ROOT_DIR/$C_DEV_PACKAGE.dmg"
hdiutil create -format UDBZ -volname "$C_DEV_PACKAGE" -srcfolder "$C_DEV_PACKAGE_DIR" "$PACKAGES_ROOT_DIR/$C_DEV_PACKAGE.dmg" > /dev/null
# Build the archive
cd "$PACKAGES_ROOT_DIR"
tar -cjlf "$PACKAGES_ROOT_DIR/$C_DEV_PACKAGE.tar.bz2" "$C_DEV_PACKAGE" > "$VERBOSE_OUTPUT"
check_last_process " done"
fi
@ -476,6 +506,14 @@ main()
action="$1"
fi
for flag in $*
do
if [ "$flag" == "--verbose" ]
then
VERBOSE_OUTPUT="/dev/stdout"
fi
done
case $action in
"clean")
clean_all $*
@ -503,6 +541,9 @@ main()
"help")
print_usage $*
;;
"--verbose")
echo "--verbose option cannot be used alone. See usage."
;;
*)
echo "Unknow action $action."
print_usage $*

View File

@ -803,6 +803,7 @@
CONFIGURATION_BUILD_DIR = ../../bin;
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../lib\"";
GCC_VERSION = 4.0;
OBJROOT = build;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
SYMROOT = ../../bin;
@ -817,6 +818,7 @@
CONFIGURATION_BUILD_DIR = ../../bin;
COPY_PHASE_STRIP = YES;
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../lib\"";
GCC_VERSION = 4.0;
OBJROOT = build;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
SYMROOT = ../../bin;

View File

@ -27,7 +27,7 @@ libsfml-graphics-s.a: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLI
$(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2

View File

@ -13,18 +13,6 @@
* everybody at gamedev.net
*/
#define SOIL_CHECK_FOR_GL_ERRORS 0
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <wingdi.h>
#elif defined(__APPLE__) || defined(__APPLE_CC__)
/* I can't test this Apple stuff! */
#define APIENTRY
#else
#endif
#include "SOIL.h"
#include "stb_image_aug.h"
#include "image_DXT.h"
@ -35,7 +23,6 @@
/* error reporting */
char *result_string_pointer = "SOIL initialized";
unsigned char*
SOIL_load_image
(
@ -44,7 +31,7 @@ unsigned char*
int force_channels
)
{
unsigned char *result = stbi_load( (char*)filename,
unsigned char *result = stbi_load( filename,
width, height, channels, force_channels );
if( result == NULL )
{
@ -66,7 +53,7 @@ unsigned char*
)
{
unsigned char *result = stbi_load_from_memory(
(stbi_uc *)buffer, buffer_length,
buffer, buffer_length,
width, height, channels,
force_channels );
if( result == NULL )
@ -100,17 +87,17 @@ int
}
if( image_type == SOIL_SAVE_TYPE_BMP )
{
save_result = stbi_write_bmp( (char*)filename,
save_result = stbi_write_bmp( filename,
width, height, channels, (void*)data );
} else
if( image_type == SOIL_SAVE_TYPE_TGA )
{
save_result = stbi_write_tga( (char*)filename,
save_result = stbi_write_tga( filename,
width, height, channels, (void*)data );
} else
if( image_type == SOIL_SAVE_TYPE_DDS )
{
save_result = save_image_as_DDS( (const char*)filename,
save_result = save_image_as_DDS( filename,
width, height, channels, (const unsigned char *const)data );
} else
{

View File

@ -73,7 +73,6 @@ enum
SOIL_SAVE_TYPE_BMP = 1,
SOIL_SAVE_TYPE_DDS = 2
};
/**
Loads an image from disk into an array of unsigned chars.
Note that *channels return the original channel count of the

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* stbi-1.08 - public domain JPEG/PNG reader - http://nothings.org/stb_image.c
/* stbi-1.18 - public domain JPEG/PNG reader - http://nothings.org/stb_image.c
when you control the images you're loading
QUICK NOTES:
@ -6,18 +6,30 @@
avoid problematic images and only need the trivial interface
JPEG baseline (no JPEG progressive, no oddball channel decimations)
PNG non-interlaced
PNG 8-bit only
BMP non-1bpp, non-RLE
TGA (not sure what subset, if a subset)
PSD (composite view only, no extra channels)
PSD (composited view only, no extra channels)
HDR (radiance rgbE format)
writes BMP,TGA (define STBI_NO_WRITE to remove code)
decoded from memory or through stdio FILE (define STBI_NO_STDIO to remove code)
supports installable dequantizing-IDCT, YCbCr-to-RGB conversion (define STBI_SIMD)
TODO:
stbi_info_*
history:
1.18 fix a threading bug (local mutable static)
1.17 support interlaced PNG
1.16 major bugfix - convert_format converted one too many pixels
1.15 initialize some fields for thread safety
1.14 fix threadsafe conversion bug; header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
1.13 threadsafe
1.12 const qualifiers in the API
1.11 Support installable IDCT, colorspace conversion routines
1.10 Fixes for 64-bit (don't use "unsigned long")
optimized upsampling by Fabian "ryg" Giesen
1.09 Fix format-conversion for PSD code (bad global variables!)
1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
1.07 attempt to fix C++ warning/errors again
1.06 attempt to fix C++ warning/errors again
@ -53,8 +65,9 @@
on 'test' only check type, not whether we support this variant
*/
#ifndef HEADER_STB_IMAGE_AUGMENTED
#define HEADER_STB_IMAGE_AUGMENTED
#ifndef STBI_INCLUDE_STB_IMAGE_H
#define STBI_INCLUDE_STB_IMAGE_H
//// begin header file ////////////////////////////////////////////////////
//
@ -144,15 +157,11 @@
//
// stbi_is_hdr(char *filename);
#ifndef STBI_NO_STDIO
#include <stdio.h>
#endif
#ifndef STBI_NO_HDR
#include <math.h> // ldexp
#include <string.h> // strcmp
#endif
#define STBI_VERSION 1
enum
{
@ -176,27 +185,27 @@ extern "C" {
// write a BMP/TGA file given tightly packed 'comp' channels (no padding, nor bmp-stride-padding)
// (you must include the appropriate extension in the filename).
// returns TRUE on success, FALSE if couldn't open file, error writing file
extern int stbi_write_bmp (char *filename, int x, int y, int comp, void *data);
extern int stbi_write_tga (char *filename, int x, int y, int comp, void *data);
extern int stbi_write_bmp (char const *filename, int x, int y, int comp, void *data);
extern int stbi_write_tga (char const *filename, int x, int y, int comp, void *data);
#endif
// PRIMARY API - works on images of any type
// load image by filename, open file, or memory buffer
#ifndef STBI_NO_STDIO
extern stbi_uc *stbi_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
extern int stbi_info_from_file (FILE *f, int *x, int *y, int *comp);
#endif
extern stbi_uc *stbi_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
// for stbi_load_from_file, file pointer is left pointing immediately after image
#ifndef STBI_NO_HDR
#ifndef STBI_NO_STDIO
extern float *stbi_loadf (char *filename, int *x, int *y, int *comp, int req_comp);
extern float *stbi_loadf (char const *filename, int *x, int *y, int *comp, int req_comp);
extern float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
#endif
extern float *stbi_loadf_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern void stbi_hdr_to_ldr_gamma(float gamma);
extern void stbi_hdr_to_ldr_scale(float scale);
@ -207,96 +216,96 @@ extern void stbi_ldr_to_hdr_scale(float scale);
#endif // STBI_NO_HDR
// get a VERY brief reason for failure
// NOT THREADSAFE
extern char *stbi_failure_reason (void);
// free the loaded image -- this is just free()
extern void stbi_image_free (void *retval_from_stbi_load);
// get image dimensions & components without fully decoding
extern int stbi_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp);
extern int stbi_is_hdr_from_memory(stbi_uc *buffer, int len);
extern int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
extern int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len);
#ifndef STBI_NO_STDIO
extern int stbi_info (char *filename, int *x, int *y, int *comp);
extern int stbi_is_hdr (char *filename);
extern int stbi_info (char const *filename, int *x, int *y, int *comp);
extern int stbi_is_hdr (char const *filename);
extern int stbi_is_hdr_from_file(FILE *f);
#endif
// ZLIB client - used by PNG, available for other purposes
extern char *stbi_zlib_decode_malloc_guesssize(int initial_size, int *outlen);
extern char *stbi_zlib_decode_malloc(char *buffer, int len, int *outlen);
extern int stbi_zlib_decode_buffer(char *obuffer, int olen, char *ibuffer, int ilen);
extern char *stbi_zlib_decode_noheader_malloc(char *buffer, int len, int *outlen);
extern int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, char *ibuffer, int ilen);
extern char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen);
extern char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);
extern int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
extern char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen);
extern int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
// TYPE-SPECIFIC ACCESS
// is it a jpeg?
extern int stbi_jpeg_test_memory (stbi_uc *buffer, int len);
extern stbi_uc *stbi_jpeg_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern int stbi_jpeg_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp);
extern int stbi_jpeg_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_jpeg_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern int stbi_jpeg_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
#ifndef STBI_NO_STDIO
extern stbi_uc *stbi_jpeg_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_jpeg_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern int stbi_jpeg_test_file (FILE *f);
extern stbi_uc *stbi_jpeg_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
extern int stbi_jpeg_info (char *filename, int *x, int *y, int *comp);
extern int stbi_jpeg_info (char const *filename, int *x, int *y, int *comp);
extern int stbi_jpeg_info_from_file (FILE *f, int *x, int *y, int *comp);
#endif
extern int stbi_jpeg_dc_only; // only decode DC component
// is it a png?
extern int stbi_png_test_memory (stbi_uc *buffer, int len);
extern stbi_uc *stbi_png_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern int stbi_png_info_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp);
extern int stbi_png_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_png_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern int stbi_png_info_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp);
#ifndef STBI_NO_STDIO
extern stbi_uc *stbi_png_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern int stbi_png_info (char *filename, int *x, int *y, int *comp);
extern stbi_uc *stbi_png_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern int stbi_png_info (char const *filename, int *x, int *y, int *comp);
extern int stbi_png_test_file (FILE *f);
extern stbi_uc *stbi_png_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
extern int stbi_png_info_from_file (FILE *f, int *x, int *y, int *comp);
#endif
// is it a bmp?
extern int stbi_bmp_test_memory (stbi_uc *buffer, int len);
extern int stbi_bmp_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_bmp_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_bmp_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_bmp_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_bmp_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
extern int stbi_bmp_test_file (FILE *f);
extern stbi_uc *stbi_bmp_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
#endif
// is it a tga?
extern int stbi_tga_test_memory (stbi_uc *buffer, int len);
extern int stbi_tga_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_tga_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_tga_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_tga_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_tga_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
extern int stbi_tga_test_file (FILE *f);
extern stbi_uc *stbi_tga_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
#endif
// is it a psd?
extern int stbi_psd_test_memory (stbi_uc *buffer, int len);
extern int stbi_psd_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_psd_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_psd_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_psd_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_psd_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
extern int stbi_psd_test_file (FILE *f);
extern stbi_uc *stbi_psd_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
#endif
// is it an hdr?
extern int stbi_hdr_test_memory (stbi_uc *buffer, int len);
extern int stbi_hdr_test_memory (stbi_uc const *buffer, int len);
extern float * stbi_hdr_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern float * stbi_hdr_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern float * stbi_hdr_load (char const *filename, int *x, int *y, int *comp, int req_comp);
extern float * stbi_hdr_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_hdr_load_rgbe (char const *filename, int *x, int *y, int *comp, int req_comp);
extern float * stbi_hdr_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
extern int stbi_hdr_test_file (FILE *f);
extern float * stbi_hdr_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);
@ -305,8 +314,8 @@ extern float * stbi_hdr_load_from_file (FILE *f, int *x, int
// define new loaders
typedef struct
{
int (*test_memory)(stbi_uc *buffer, int len);
stbi_uc * (*load_from_memory)(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
int (*test_memory)(stbi_uc const *buffer, int len);
stbi_uc * (*load_from_memory)(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
int (*test_file)(FILE *f);
stbi_uc * (*load_from_file)(FILE *f, int *x, int *y, int *comp, int req_comp);
@ -315,8 +324,28 @@ typedef struct
// register a loader by filling out the above structure (you must defined ALL functions)
// returns 1 if added or already added, 0 if not added (too many loaders)
// NOT THREADSAFE
extern int stbi_register_loader(stbi_loader *loader);
// define faster low-level operations (typically SIMD support)
#if STBI_SIMD
typedef void (*stbi_idct_8x8)(uint8 *out, int out_stride, short data[64], unsigned short *dequantize);
// compute an integer IDCT on "input"
// input[x] = data[x] * dequantize[x]
// write results to 'out': 64 samples, each run of 8 spaced by 'out_stride'
// CLAMP results to 0..255
typedef void (*stbi_YCbCr_to_RGB_run)(uint8 *output, uint8 const *y, uint8 const *cb, uint8 const *cr, int count, int step);
// compute a conversion from YCbCr to RGB
// 'count' pixels
// write pixels to 'output'; each pixel is 'step' bytes (either 3 or 4; if 4, write '255' as 4th), order R,G,B
// y: Y input channel
// cb: Cb input channel; scale/biased to be 0..255
// cr: Cr input channel; scale/biased to be 0..255
extern void stbi_install_idct(stbi_idct_8x8 func);
extern void stbi_install_YCbCr_to_RGB(stbi_YCbCr_to_RGB_run func);
#endif // STBI_SIMD
#ifdef __cplusplus
}
#endif
@ -324,6 +353,5 @@ extern int stbi_register_loader(stbi_loader *loader);
//
//
//// end header file /////////////////////////////////////////////////////
#endif
#endif // STBI_INCLUDE_STB_IMAGE_H

View File

@ -6,10 +6,10 @@
#define HEADER_STB_IMAGE_DDS_AUGMENTATION
// is it a DDS file?
extern int stbi_dds_test_memory (stbi_uc *buffer, int len);
extern int stbi_dds_test_memory (stbi_uc const *buffer, int len);
extern stbi_uc *stbi_dds_load (char *filename, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_dds_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp);
extern stbi_uc *stbi_dds_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp);
#ifndef STBI_NO_STDIO
extern int stbi_dds_test_file (FILE *f);
extern stbi_uc *stbi_dds_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp);

View File

@ -71,32 +71,34 @@ typedef struct {
#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000
#define DDSCAPS2_VOLUME 0x00200000
static int dds_test(void)
static int dds_test(stbi *s)
{
// check the magic number
if (get8() != 'D') return 0;
if (get8() != 'D') return 0;
if (get8() != 'S') return 0;
if (get8() != ' ') return 0;
if (get8(s) != 'D') return 0;
if (get8(s) != 'D') return 0;
if (get8(s) != 'S') return 0;
if (get8(s) != ' ') return 0;
// check header size
if (get32le() != 124) return 0;
if (get32le(s) != 124) return 0;
return 1;
}
#ifndef STBI_NO_STDIO
int stbi_dds_test_file (FILE *f)
{
stbi s;
int r,n = ftell(f);
start_file(f);
r = dds_test();
start_file(&s,f);
r = dds_test(&s);
fseek(f,n,SEEK_SET);
return r;
}
#endif
int stbi_dds_test_memory (stbi_uc *buffer, int len)
int stbi_dds_test_memory (stbi_uc const *buffer, int len)
{
start_mem(buffer, len);
return dds_test();
stbi s;
start_mem(&s,buffer, len);
return dds_test(&s);
}
// helper functions
@ -263,7 +265,7 @@ void stbi_decode_DXT_color_block(
}
// done
}
static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
static stbi_uc *dds_load(stbi *s, int *x, int *y, int *comp, int req_comp)
{
// all variables go up front
stbi_uc *dds_data = NULL;
@ -280,7 +282,7 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
{
return NULL;
}
getn( (stbi_uc*)(&header), 128 );
getn( s, (stbi_uc*)(&header), 128 );
// and do some checking
if( header.dwMagic != (('D' << 0) | ('D' << 8) | ('S' << 16) | (' ' << 24)) ) return NULL;
if( header.dwSize != 124 ) return NULL;
@ -295,23 +297,23 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
if( (header.sPixelFormat.dwFlags & flags) == 0 ) return NULL;
if( (header.sCaps.dwCaps1 & DDSCAPS_TEXTURE) == 0 ) return NULL;
// get the image data
img_x = header.dwWidth;
img_y = header.dwHeight;
img_n = 4;
s->img_x = header.dwWidth;
s->img_y = header.dwHeight;
s->img_n = 4;
is_compressed = (header.sPixelFormat.dwFlags & DDPF_FOURCC) / DDPF_FOURCC;
has_alpha = (header.sPixelFormat.dwFlags & DDPF_ALPHAPIXELS) / DDPF_ALPHAPIXELS;
has_mipmap = (header.sCaps.dwCaps1 & DDSCAPS_MIPMAP) && (header.dwMipMapCount > 1);
cubemap_faces = (header.sCaps.dwCaps2 & DDSCAPS2_CUBEMAP) / DDSCAPS2_CUBEMAP;
/* I need cubemaps to have square faces */
cubemap_faces &= (img_x == img_y);
cubemap_faces &= (s->img_x == s->img_y);
cubemap_faces *= 5;
cubemap_faces += 1;
block_pitch = (img_x+3) >> 2;
num_blocks = block_pitch * ((img_y+3) >> 2);
block_pitch = (s->img_x+3) >> 2;
num_blocks = block_pitch * ((s->img_y+3) >> 2);
/* let the user know what's going on */
*x = img_x;
*y = img_y;
*comp = img_n;
*x = s->img_x;
*y = s->img_y;
*comp = s->img_n;
/* is this uncompressed? */
if( is_compressed )
{
@ -323,7 +325,7 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
those non-compliant writers leave
dwPitchOrLinearSize == 0 */
// passed all the tests, get the RAM for decoding
sz = (img_x)*(img_y)*4*cubemap_faces;
sz = (s->img_x)*(s->img_y)*4*cubemap_faces;
dds_data = (unsigned char*)malloc( sz );
/* do this once for each face */
for( cf = 0; cf < cubemap_faces; ++ cf )
@ -339,36 +341,36 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
if( DXT_family == 1 )
{
// DXT1
getn( compressed, 8 );
getn( s, compressed, 8 );
stbi_decode_DXT1_block( block, compressed );
} else if( DXT_family < 4 )
{
// DXT2/3
getn( compressed, 8 );
getn( s, compressed, 8 );
stbi_decode_DXT23_alpha_block ( block, compressed );
getn( compressed, 8 );
getn( s, compressed, 8 );
stbi_decode_DXT_color_block ( block, compressed );
} else
{
// DXT4/5
getn( compressed, 8 );
getn( s, compressed, 8 );
stbi_decode_DXT45_alpha_block ( block, compressed );
getn( compressed, 8 );
getn( s, compressed, 8 );
stbi_decode_DXT_color_block ( block, compressed );
}
// is this a partial block?
if( ref_x + 4 > img_x )
if( ref_x + 4 > s->img_x )
{
bw = img_x - ref_x;
bw = s->img_x - ref_x;
}
if( ref_y + 4 > img_y )
if( ref_y + 4 > s->img_y )
{
bh = img_y - ref_y;
bh = s->img_y - ref_y;
}
// now drop our decompressed data into the buffer
for( by = 0; by < bh; ++by )
{
int idx = 4*((ref_y+by+cf*img_x)*img_x + ref_x);
int idx = 4*((ref_y+by+cf*s->img_x)*s->img_x + ref_x);
for( bx = 0; bx < bw*4; ++bx )
{
@ -387,8 +389,8 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
}
for( i = 1; i < header.dwMipMapCount; ++i )
{
int mx = img_x >> (i + 2);
int my = img_y >> (i + 2);
int mx = s->img_x >> (i + 2);
int my = s->img_y >> (i + 2);
if( mx < 1 )
{
mx = 1;
@ -397,7 +399,7 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
{
my = 1;
}
skip( mx*my*block_size );
skip( s, mx*my*block_size );
}
}
}/* per cubemap face */
@ -405,27 +407,27 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
{
/* uncompressed */
DXT_family = 0;
img_n = 3;
s->img_n = 3;
if( has_alpha )
{
img_n = 4;
s->img_n = 4;
}
*comp = img_n;
sz = img_x*img_y*img_n*cubemap_faces;
*comp = s->img_n;
sz = s->img_x*s->img_y*s->img_n*cubemap_faces;
dds_data = (unsigned char*)malloc( sz );
/* do this once for each face */
for( cf = 0; cf < cubemap_faces; ++ cf )
{
/* read the main image for this face */
getn( &dds_data[cf*img_x*img_y*img_n], img_x*img_y*img_n );
getn( s, &dds_data[cf*s->img_x*s->img_y*s->img_n], s->img_x*s->img_y*s->img_n );
/* done reading and decoding the main image...
skip MIPmaps if present */
if( has_mipmap )
{
for( i = 1; i < header.dwMipMapCount; ++i )
{
int mx = img_x >> i;
int my = img_y >> i;
int mx = s->img_x >> i;
int my = s->img_y >> i;
if( mx < 1 )
{
mx = 1;
@ -434,12 +436,12 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
{
my = 1;
}
skip( mx*my*img_n );
skip( s, mx*my*s->img_n );
}
}
}
/* data was BGR, I need it RGB */
for( i = 0; i < sz; i += img_n )
for( i = 0; i < sz; i += s->img_n )
{
unsigned char temp = dds_data[i];
dds_data[i] = dds_data[i+2];
@ -449,12 +451,12 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
/* finished decompressing into RGBA,
adjust the y size if we have a cubemap
note: sz is already up to date */
img_y *= cubemap_faces;
*y = img_y;
s->img_y *= cubemap_faces;
*y = s->img_y;
// did the user want something else, or
// see if all the alpha values are 255 (i.e. no transparency)
has_alpha = 0;
if( img_n == 4)
if( s->img_n == 4)
{
for( i = 3; (i < sz) && (has_alpha == 0); i += 4 )
{
@ -464,17 +466,17 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
if( (req_comp <= 4) && (req_comp >= 1) )
{
// user has some requirements, meet them
if( req_comp != img_n )
if( req_comp != s->img_n )
{
dds_data = convert_format( dds_data, img_n, req_comp );
*comp = img_n;
dds_data = convert_format( dds_data, s->img_n, req_comp, s->img_x, s->img_y );
*comp = s->img_n;
}
} else
{
// user had no requirements, only drop to RGB is no alpha
if( (has_alpha == 0) && (img_n == 4) )
if( (has_alpha == 0) && (s->img_n == 4) )
{
dds_data = convert_format( dds_data, 4, 3 );
dds_data = convert_format( dds_data, 4, 3, s->img_x, s->img_y );
*comp = 3;
}
}
@ -483,25 +485,27 @@ static stbi_uc *dds_load(int *x, int *y, int *comp, int req_comp)
}
#ifndef STBI_NO_STDIO
stbi_uc *stbi_dds_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp)
{
stbi s;
start_file(&s,f);
return dds_load(&s,x,y,comp,req_comp);
}
stbi_uc *stbi_dds_load (char *filename, int *x, int *y, int *comp, int req_comp)
{
stbi_uc *data;
FILE *f = fopen(filename, "rb");
if (!f) return NULL;
data = dds_load(x,y,comp,req_comp);
data = stbi_dds_load_from_file(f,x,y,comp,req_comp);
fclose(f);
return data;
}
stbi_uc *stbi_dds_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp)
{
start_file(f);
return dds_load(x,y,comp,req_comp);
}
#endif
stbi_uc *stbi_dds_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp)
stbi_uc *stbi_dds_load_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)
{
start_mem(buffer, len);
return dds_load(x,y,comp,req_comp);
stbi s;
start_mem(&s,buffer, len);
return dds_load(&s,x,y,comp,req_comp);
}

View File

@ -50,6 +50,16 @@ enum {
////////////////////////////////////////////////////////////
+ (AppController *)sharedController;
////////////////////////////////////////////////////////////
/// Returns the primay computer's screen
////////////////////////////////////////////////////////////
+ (CGDirectDisplayID)primaryScreen;
////////////////////////////////////////////////////////////
/// Reset notifictions about application focus
////////////////////////////////////////////////////////////
- (void)setNotifications;
////////////////////////////////////////////////////////////
/// Make the menu bar
////////////////////////////////////////////////////////////

View File

@ -103,25 +103,7 @@
throw std::bad_alloc();
}
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
// I want to go back to the desktop mode
// if we've a fullscreen window when hiding
[nc addObserver:self
selector:@selector(applicationWillHide:)
name:NSApplicationWillHideNotification
object:NSApp];
// And restore de fullscreen mode when unhiding
[nc addObserver:self
selector:@selector(applicationWillUnhide:)
name:NSApplicationWillUnhideNotification
object:NSApp];
// Go back to desktop mode before exit
[nc addObserver:self
selector:@selector(applicationWillTerminate:)
name:NSApplicationWillTerminateNotification
object:NSApp];
[self setNotifications];
if ([NSApp mainMenu] == nil) {
[self makeMenuBar];
@ -155,31 +137,72 @@
}
////////////////////////////////////////////////////////////
/// Returns the primay computer's screen
////////////////////////////////////////////////////////////
+ (CGDirectDisplayID)primaryScreen
{
static BOOL firstTime = YES;
static CGDirectDisplayID screen = kCGNullDirectDisplay;
if (firstTime) {
CGDisplayCount numScr;
CGDisplayErr err = CGGetDisplaysWithPoint(CGPointMake(0, 0), 1, &screen, &numScr);
if (err != kCGErrorSuccess || numScr < 1) {
std::cerr << "Unable to get primary screen (error code " << err
<< " ). Using the main screen.";
screen = CGMainDisplayID();
}
firstTime = NO;
}
return screen;
}
////////////////////////////////////////////////////////////
/// Reset notifictions about application focus
////////////////////////////////////////////////////////////
- (void)setNotifications
{
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(applicationWillDeactivate:)
name:NSApplicationWillResignActiveNotification
object:NSApp];
[nc addObserver:self
selector:@selector(applicationWillActivate:)
name:NSApplicationWillBecomeActiveNotification
object:NSApp];
[nc addObserver:self
selector:@selector(applicationWillTerminate:)
name:NSApplicationWillTerminateNotification
object:NSApp];
}
////////////////////////////////////////////////////////////
/// Hide all the fullscreen windows and switch back to the desktop display mode
////////////////////////////////////////////////////////////
- (void)applicationWillHide:(NSNotification *)aNotification
- (void)applicationWillDeactivate:(NSNotification *)aNotification
{
// Note: not using fading because it produces reactivation issues
if (myFullscreenWrapper) {
myPrevMode = sf::VideoMode::GetDesktopMode();
CFDictionaryRef displayMode = CGDisplayBestModeForParameters (kCGDirectMainDisplay,
CFDictionaryRef displayMode = CGDisplayBestModeForParameters ([AppController primaryScreen],
myDesktopMode.BitsPerPixel,
myDesktopMode.Width,
myDesktopMode.Height,
NULL);
// Fade to black screen
[self doFadeOperation:FillScreen time:0.2f sync:true];
// Make the full screen window unvisible
[[myFullscreenWrapper window] setAlphaValue:0.0f];
// Switch to the wished display mode
CGDisplaySwitchToMode(kCGDirectMainDisplay, displayMode);
// Fade to normal screen
[self doFadeOperation:CleanScreen time:0.5f sync:false];
CGDisplaySwitchToMode([AppController primaryScreen], displayMode);
}
}
@ -187,31 +210,26 @@
////////////////////////////////////////////////////////////
/// Unhide all the fullscreen windows and switch to full screen display mode
////////////////////////////////////////////////////////////
- (void)applicationWillUnhide:(NSNotification *)aNotification
- (void)applicationWillActivate:(NSNotification *)aNotification
{
if (myFullscreenWrapper) {
CFDictionaryRef displayMode = CGDisplayBestModeForParameters (kCGDirectMainDisplay,
CFDictionaryRef displayMode = CGDisplayBestModeForParameters ([AppController primaryScreen],
myPrevMode.BitsPerPixel,
myPrevMode.Width,
myPrevMode.Height,
NULL);
// Fade to a black screen
[self doFadeOperation:FillScreen time:0.5f sync:true];
[NSMenu setMenuBarVisible:NO];
// Switch to the wished display mode
CGDisplaySwitchToMode(kCGDirectMainDisplay, displayMode);
CGDisplaySwitchToMode([AppController primaryScreen], displayMode);
// Show the fullscreen window if existing
if (myFullscreenWrapper)
{
[[myFullscreenWrapper window] setAlphaValue:1.0f];
[[myFullscreenWrapper window] center];
[[myFullscreenWrapper window] makeKeyAndOrderFront:self];
}
// Fade to normal screen
[self doFadeOperation:CleanScreen time:0.5f sync:false];
}
}
@ -228,7 +246,6 @@
- (void)makeMenuBar
{
// Source taken from SDL 1.3
NSString *appName = nil;
NSString *title = nil;
NSMenu *appleMenu = nil;
@ -393,7 +410,7 @@
if (aWrapper == nil && myFullscreenWrapper)
{
// Get the CoreGraphics display mode according to the desktop mode
CFDictionaryRef displayMode = CGDisplayBestModeForParameters (kCGDirectMainDisplay,
CFDictionaryRef displayMode = CGDisplayBestModeForParameters ([AppController primaryScreen],
myDesktopMode.BitsPerPixel,
myDesktopMode.Width,
myDesktopMode.Height,
@ -405,7 +422,7 @@
#endif
// Switch to the desktop display mode
CGDisplaySwitchToMode(kCGDirectMainDisplay, displayMode);
CGDisplaySwitchToMode([AppController primaryScreen], displayMode);
// Close the window
[[myFullscreenWrapper window] close];
@ -423,10 +440,11 @@
}
else if (aWrapper)
{
// else if we want to SET fullscreen
assert(fullscreenMode != NULL);
// Get the CoreGraphics display mode according to the given sf mode
CFDictionaryRef displayMode = CGDisplayBestModeForParameters (kCGDirectMainDisplay,
CFDictionaryRef displayMode = CGDisplayBestModeForParameters ([AppController primaryScreen],
fullscreenMode->BitsPerPixel,
fullscreenMode->Width,
fullscreenMode->Height,
@ -446,7 +464,8 @@
if (myPrevMode != *fullscreenMode)
{
// Switch to the wished display mode
CGDisplaySwitchToMode(kCGDirectMainDisplay, displayMode);
myPrevMode = *fullscreenMode;
CGDisplaySwitchToMode([AppController primaryScreen], displayMode);
}
if (myFullscreenWrapper)
@ -495,7 +514,7 @@
if (!result) {
// Capture display but do not fill the screen with black
// so that we can see the fade operation
capture = CGDisplayCaptureWithOptions(kCGDirectMainDisplay, kCGCaptureNoFill);
capture = CGDisplayCaptureWithOptions([AppController primaryScreen], kCGCaptureNoFill);
if (!capture) {
// Do the increasing fade operation
@ -505,11 +524,11 @@
0.0f, 0.0f, 0.0f, sync);
// Now, release the non black-filling capture
CGDisplayRelease(kCGDirectMainDisplay);
CGDisplayRelease([AppController primaryScreen]);
// And capture with filling
// so that we don't see the switching in the meantime
CGDisplayCaptureWithOptions(kCGDirectMainDisplay, kCGCaptureNoOptions);
CGDisplayCaptureWithOptions([AppController primaryScreen], kCGCaptureNoOptions);
}
prevToken = token;
@ -522,10 +541,10 @@
if (!result) {
if (!capture) {
// Release the black-filling capture
CGDisplayRelease(kCGDirectMainDisplay);
CGDisplayRelease([AppController primaryScreen]);
// Capture the display but do not fill with black (still for the fade operation)
CGDisplayCaptureWithOptions(kCGDirectMainDisplay, kCGCaptureNoFill);
CGDisplayCaptureWithOptions([AppController primaryScreen], kCGCaptureNoFill);
// Do the decreasing fading
CGDisplayFade(token, time,
@ -541,7 +560,7 @@
}
// Release the captured display
CGDisplayRelease(kCGDirectMainDisplay);
CGDisplayRelease([AppController primaryScreen]);
}
}
}

View File

@ -85,6 +85,10 @@
ctxtAttribs[idx++] = NSOpenGLPFADoubleBuffer;
ctxtAttribs[idx++] = NSOpenGLPFAAccelerated;
// Force use of first screen
//ctxtAttribs[idx++] = NSOpenGLPFAScreenMask;
//ctxtAttribs[idx++] = CGDisplayIDToOpenGLDisplayMask([AppController primaryScreen]);
// windowed context (even fullscreen mode uses a window)
ctxtAttribs[idx++] = NSOpenGLPFAWindow;
@ -512,7 +516,7 @@
// Check display mode and put new values in 'mode' if needed
boolean_t exact = true;
CFDictionaryRef properties = CGDisplayBestModeForParameters(kCGDirectMainDisplay, mode.BitsPerPixel,
CFDictionaryRef properties = CGDisplayBestModeForParameters([AppController primaryScreen], mode.BitsPerPixel,
mode.Width, mode.Height, &exact);
if (!properties) {

View File

@ -606,7 +606,7 @@ void WindowImplCocoa::SetCursorPosition(unsigned int Left, unsigned int Top)
absolute.y = [[NSScreen mainScreen] frame].size.height - absolute.y;
// Move cursor
CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, CGPointMake(absolute.x, absolute.y));
CGDisplayMoveCursorToPoint([AppController primaryScreen], CGPointMake(absolute.x, absolute.y));
}
}