draft test app to show skia in a window
git-svn-id: http://skia.googlecode.com/svn/trunk@32 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj b/xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..61b3747
--- /dev/null
+++ b/xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj
@@ -0,0 +1,389 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 002884150EFA97F80083E387 /* test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884140EFA97F80083E387 /* test.cpp */; };
+ 0028845E0EFAB2190083E387 /* SkCreateCGImageRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028845D0EFAB2190083E387 /* SkCreateCGImageRef.cpp */; };
+ 0028847B0EFAB46A0083E387 /* libcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 002884510EFAA35C0083E387 /* libcore.a */; };
+ 002884BD0EFAB6A30083E387 /* libmaccore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 002884BC0EFAB69F0083E387 /* libmaccore.a */; };
+ 002884D90EFABFE60083E387 /* SkFontHost_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884D80EFABFE60083E387 /* SkFontHost_none.cpp */; };
+ 0156F80407C56A3000C6122B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0156F80307C56A3000C6122B /* Foundation.framework */; };
+ 01FC44D507BD3BB800D228F4 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01FC44D407BD3BB800D228F4 /* Quartz.framework */; };
+ 8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+ 8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+ 8D0C4E900486CD37000505A6 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 20286C2BFDCF999611CA2CEA /* main.c */; settings = {ATTRIBUTES = (); }; };
+ 8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 002884500EFAA35C0083E387 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 002884490EFAA35C0083E387 /* core.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC046055464E500DB518D /* libcore.a */;
+ remoteInfo = core;
+ };
+ 002884540EFAA3770083E387 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 002884490EFAA35C0083E387 /* core.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC045055464E500DB518D /* core */;
+ remoteInfo = core;
+ };
+ 002884BB0EFAB69F0083E387 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 002884B40EFAB69F0083E387 /* maccore.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC046055464E500DB518D /* libmaccore.a */;
+ remoteInfo = maccore;
+ };
+ 002884BE0EFAB6B00083E387 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 002884B40EFAB69F0083E387 /* maccore.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC045055464E500DB518D /* maccore */;
+ remoteInfo = maccore;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 002884140EFA97F80083E387 /* test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test.cpp; sourceTree = "<group>"; };
+ 002884490EFAA35C0083E387 /* core.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = core.xcodeproj; path = ../core/core.xcodeproj; sourceTree = SOURCE_ROOT; };
+ 0028845D0EFAB2190083E387 /* SkCreateCGImageRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SkCreateCGImageRef.cpp; sourceTree = "<group>"; };
+ 002884B40EFAB69F0083E387 /* maccore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = maccore.xcodeproj; path = ../maccore/maccore.xcodeproj; sourceTree = SOURCE_ROOT; };
+ 002884D80EFABFE60083E387 /* SkFontHost_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_none.cpp; path = ../../src/ports/SkFontHost_none.cpp; sourceTree = SOURCE_ROOT; };
+ 0156F80307C56A3000C6122B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 01FC44D407BD3BB800D228F4 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; };
+ 0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
+ 20286C2BFDCF999611CA2CEA /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
+ 20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 32DBCF6D0370B57F00C91783 /* CICarbonSample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CICarbonSample_Prefix.pch; sourceTree = "<group>"; };
+ 4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ 4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+ 8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+ 8D0C4E970486CD37000505A6 /* CICarbonSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CICarbonSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D0C4E910486CD37000505A6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
+ 01FC44D507BD3BB800D228F4 /* Quartz.framework in Frameworks */,
+ 0156F80407C56A3000C6122B /* Foundation.framework in Frameworks */,
+ 0028847B0EFAB46A0083E387 /* libcore.a in Frameworks */,
+ 002884BD0EFAB6A30083E387 /* libmaccore.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 0028844A0EFAA35C0083E387 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 002884510EFAA35C0083E387 /* libcore.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 002884B50EFAB69F0083E387 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 002884BC0EFAB69F0083E387 /* libmaccore.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 195DF8CFFE9D517E11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D0C4E970486CD37000505A6 /* CICarbonSample.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 20286C29FDCF999611CA2CEA /* CICarbonSample */ = {
+ isa = PBXGroup;
+ children = (
+ 002884D80EFABFE60083E387 /* SkFontHost_none.cpp */,
+ 20286C2AFDCF999611CA2CEA /* Sources */,
+ 20286C2CFDCF999611CA2CEA /* Resources */,
+ 20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+ 195DF8CFFE9D517E11CA2CBB /* Products */,
+ 002884490EFAA35C0083E387 /* core.xcodeproj */,
+ 002884B40EFAB69F0083E387 /* maccore.xcodeproj */,
+ );
+ name = CICarbonSample;
+ sourceTree = "<group>";
+ };
+ 20286C2AFDCF999611CA2CEA /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 0028845D0EFAB2190083E387 /* SkCreateCGImageRef.cpp */,
+ 32DBCF6D0370B57F00C91783 /* CICarbonSample_Prefix.pch */,
+ 20286C2BFDCF999611CA2CEA /* main.c */,
+ 002884140EFA97F80083E387 /* test.cpp */,
+ );
+ name = Sources;
+ sourceTree = "<group>";
+ };
+ 20286C2CFDCF999611CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D0C4E960486CD37000505A6 /* Info.plist */,
+ 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */,
+ 02345980000FD03B11CA0E72 /* main.nib */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 0156F80307C56A3000C6122B /* Foundation.framework */,
+ 01FC44D407BD3BB800D228F4 /* Quartz.framework */,
+ 20286C33FDCF999611CA2CEA /* Carbon.framework */,
+ 4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */,
+ 4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D0C4E890486CD37000505A6 /* CICarbonSample */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 01E2163909EDAC6600E66AF8 /* Build configuration list for PBXNativeTarget "CICarbonSample" */;
+ buildPhases = (
+ 8D0C4E8C0486CD37000505A6 /* Resources */,
+ 8D0C4E8F0486CD37000505A6 /* Sources */,
+ 8D0C4E910486CD37000505A6 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 002884550EFAA3770083E387 /* PBXTargetDependency */,
+ 002884BF0EFAB6B00083E387 /* PBXTargetDependency */,
+ );
+ name = CICarbonSample;
+ productInstallPath = "$(HOME)/Applications";
+ productName = CICarbonSample;
+ productReference = 8D0C4E970486CD37000505A6 /* CICarbonSample.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 20286C28FDCF999611CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 01E2163D09EDAC6600E66AF8 /* Build configuration list for PBXProject "CICarbonSample" */;
+ compatibilityVersion = "Xcode 2.4";
+ hasScannedForEncodings = 1;
+ mainGroup = 20286C29FDCF999611CA2CEA /* CICarbonSample */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 0028844A0EFAA35C0083E387 /* Products */;
+ ProjectRef = 002884490EFAA35C0083E387 /* core.xcodeproj */;
+ },
+ {
+ ProductGroup = 002884B50EFAB69F0083E387 /* Products */;
+ ProjectRef = 002884B40EFAB69F0083E387 /* maccore.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 8D0C4E890486CD37000505A6 /* CICarbonSample */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 002884510EFAA35C0083E387 /* libcore.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libcore.a;
+ remoteRef = 002884500EFAA35C0083E387 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 002884BC0EFAB69F0083E387 /* libmaccore.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libmaccore.a;
+ remoteRef = 002884BB0EFAB69F0083E387 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D0C4E8C0486CD37000505A6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */,
+ 8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D0C4E8F0486CD37000505A6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D0C4E900486CD37000505A6 /* main.c in Sources */,
+ 002884150EFA97F80083E387 /* test.cpp in Sources */,
+ 0028845E0EFAB2190083E387 /* SkCreateCGImageRef.cpp in Sources */,
+ 002884D90EFABFE60083E387 /* SkFontHost_none.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 002884550EFAA3770083E387 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = core;
+ targetProxy = 002884540EFAA3770083E387 /* PBXContainerItemProxy */;
+ };
+ 002884BF0EFAB6B00083E387 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = maccore;
+ targetProxy = 002884BE0EFAB6B00083E387 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 02345980000FD03B11CA0E72 /* main.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1870340FFE93FCAF11CA0CD7 /* English */,
+ );
+ name = main.nib;
+ sourceTree = "<group>";
+ };
+ 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 0867D6ABFE840B52C02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 01E2163A09EDAC6600E66AF8 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = CICarbonSample_Prefix.pch;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PREBINDING = NO;
+ PRODUCT_NAME = CICarbonSample;
+ SKIP_INSTALL = YES;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = YES;
+ };
+ name = Development;
+ };
+ 01E2163B09EDAC6600E66AF8 /* Deployment */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = CICarbonSample_Prefix.pch;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PREBINDING = NO;
+ PRODUCT_NAME = CICarbonSample;
+ SKIP_INSTALL = YES;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = Deployment;
+ };
+ 01E2163C09EDAC6600E66AF8 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = CICarbonSample_Prefix.pch;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = CICarbonSample;
+ SKIP_INSTALL = YES;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Default;
+ };
+ 01E2163E09EDAC6600E66AF8 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ USER_HEADER_SEARCH_PATHS = "../../include/**";
+ };
+ name = Development;
+ };
+ 01E2163F09EDAC6600E66AF8 /* Deployment */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Deployment;
+ };
+ 01E2164009EDAC6600E66AF8 /* Default */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Default;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 01E2163909EDAC6600E66AF8 /* Build configuration list for PBXNativeTarget "CICarbonSample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 01E2163A09EDAC6600E66AF8 /* Development */,
+ 01E2163B09EDAC6600E66AF8 /* Deployment */,
+ 01E2163C09EDAC6600E66AF8 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Default;
+ };
+ 01E2163D09EDAC6600E66AF8 /* Build configuration list for PBXProject "CICarbonSample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 01E2163E09EDAC6600E66AF8 /* Development */,
+ 01E2163F09EDAC6600E66AF8 /* Deployment */,
+ 01E2164009EDAC6600E66AF8 /* Default */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Default;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/xcode/hostapp/CICarbonSample_Prefix.pch b/xcode/hostapp/CICarbonSample_Prefix.pch
new file mode 100644
index 0000000..a74776b
--- /dev/null
+++ b/xcode/hostapp/CICarbonSample_Prefix.pch
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'CICarbonSample' target in the 'CICarbonSample' project.
+//
+
+#include <Carbon/Carbon.h>
diff --git a/xcode/hostapp/Info.plist b/xcode/hostapp/Info.plist
new file mode 100644
index 0000000..8bc7477
--- /dev/null
+++ b/xcode/hostapp/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>CICarbonSample</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.CICarbonSample</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.1</string>
+ <key>CFBundleSignature</key>
+ <string>CICS</string>
+ <key>CFBundleVersion</key>
+ <string>1.1</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+</dict>
+</plist>
diff --git a/xcode/hostapp/SkCreateCGImageRef.cpp b/xcode/hostapp/SkCreateCGImageRef.cpp
new file mode 100644
index 0000000..7cea543
--- /dev/null
+++ b/xcode/hostapp/SkCreateCGImageRef.cpp
@@ -0,0 +1,80 @@
+#include <Carbon/Carbon.h>
+#include "SkBitmap.h"
+
+extern CGImageRef SkCreateCGImageRef(const SkBitmap&);
+
+static const void* SkBitmap_GetBytesPointer(void* info) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(info);
+ bitmap->lockPixels();
+ return bitmap->getPixels();
+}
+
+static void SkBitmap_ReleaseBytePointer(void* info, const void* pointer) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(info);
+ bitmap->unlockPixels();
+}
+
+static size_t SkBitmap_GetBytesAtPosition(void* info, void* buffer,
+ off_t offset, size_t count) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(info);
+ bitmap->lockPixels();
+ memcpy(buffer, (const char*)bitmap->getPixels() + offset, count);
+ bitmap->unlockPixels();
+ return count;
+}
+
+static void SkBitmap_ReleaseInfo(void* info) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(info);
+ delete bitmap;
+}
+
+static SkBitmap* prepareForImageRef(const SkBitmap& bm,
+ size_t* bitsPerComponent,
+ CGBitmapInfo* info) {
+ switch (bm.config()) {
+ case SkBitmap::kARGB_8888_Config:
+ *bitsPerComponent = 8;
+ // try to match our argb ordering in SkColorPriv
+ *info = kCGBitmapByteOrder32Big |
+ kCGImageAlphaPremultipliedLast;
+ break;
+ default:
+ return NULL;
+ }
+
+ return new SkBitmap(bm);
+}
+
+CGImageRef SkCreateCGImageRef(const SkBitmap& bm) {
+ size_t bitsPerComponent;
+ CGBitmapInfo info;
+
+ SkBitmap* bitmap = prepareForImageRef(bm, &bitsPerComponent, &info);
+ if (NULL == bitmap) {
+ return NULL;
+ }
+
+ const int w = bitmap->width();
+ const int h = bitmap->height();
+ const size_t s = bitmap->getSize();
+
+ CGDataProviderDirectCallbacks procs;
+ procs.version = 0;
+ procs.getBytePointer = SkBitmap_GetBytesPointer;
+ procs.releaseBytePointer = SkBitmap_ReleaseBytePointer;
+ procs.getBytesAtPosition = SkBitmap_GetBytesAtPosition;
+ procs.releaseInfo = SkBitmap_ReleaseInfo;
+
+ // our provider "owns" the bitmap*, and will take care of deleting it
+ CGDataProviderRef dataRef = CGDataProviderCreateDirect(bitmap, s, &procs);
+ CGColorSpaceRef space = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
+ CGImageRef ref = CGImageCreate(w, h, bitsPerComponent,
+ bitmap->bytesPerPixel() * 8,
+ bitmap->rowBytes(), space, info, dataRef,
+ NULL, false, kCGRenderingIntentDefault);
+ CGColorSpaceRelease(space);
+ CGDataProviderRelease(dataRef);
+ return ref;
+}
+
+
diff --git a/xcode/hostapp/main.c b/xcode/hostapp/main.c
new file mode 100644
index 0000000..bed568e
--- /dev/null
+++ b/xcode/hostapp/main.c
@@ -0,0 +1,420 @@
+/*
+
+File: main.c
+
+Abstract: Main event loop and app handling code is found in here.
+
+Version: 1.0
+
+� Copyright 2005 Apple Computer, Inc. All rights reserved.
+
+IMPORTANT: This Apple software is supplied to
+you by Apple Computer, Inc. ("Apple") in
+consideration of your agreement to the following
+terms, and your use, installation, modification
+or redistribution of this Apple software
+constitutes acceptance of these terms. If you do
+not agree with these terms, please do not use,
+install, modify or redistribute this Apple
+software.
+
+In consideration of your agreement to abide by
+the following terms, and subject to these terms,
+Apple grants you a personal, non-exclusive
+license, under Apple's copyrights in this
+original Apple software (the "Apple Software"),
+to use, reproduce, modify and redistribute the
+Apple Software, with or without modifications, in
+source and/or binary forms; provided that if you
+redistribute the Apple Software in its entirety
+and without modifications, you must retain this
+notice and the following text and disclaimers in
+all such redistributions of the Apple Software.
+Neither the name, trademarks, service marks or
+logos of Apple Computer, Inc. may be used to
+endorse or promote products derived from the
+Apple Software without specific prior written
+permission from Apple. Except as expressly
+stated in this notice, no other rights or
+licenses, express or implied, are granted by
+Apple herein, including but not limited to any
+patent rights that may be infringed by your
+derivative works or by other works in which the
+Apple Software may be incorporated.
+
+The Apple Software is provided by Apple on an "AS
+IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING
+THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
+OR IN COMBINATION WITH YOUR PRODUCTS.
+
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY
+SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF
+THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
+UNDER THEORY OF CONTRACT, TORT (INCLUDING
+NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
+IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+*/
+
+
+#include <Carbon/Carbon.h>
+
+/* Constants */
+#define kMyHIViewSignature 'ciHV'
+#define kMyHIViewFieldID 128
+#define kGammaSliderSignature 'gSLD'
+#define kGammaSliderFieldID 128
+#define kAboutBoxStringKey CFSTR("AboutString") // these key the localizable strings
+
+/* Private Prototypes */
+static OSStatus MyDrawEventHandler(EventHandlerCallRef myHandler, EventRef event, void *userData);
+static void MyGammaSliderProc( ControlHandle control, SInt16 part );
+static pascal OSStatus DoAppCommandProcess(EventHandlerCallRef nextHandler, EventRef theEvent, void* userData);
+static PMPageFormat CreateDefaultPageFormat(void);
+static OSStatus DoPageSetup(PMPageFormat pageFormat);
+static OSStatus DoPrint(PMPageFormat pageFormat);
+static OSStatus MyDoPrintLoop(PMPrintSession printSession, PMPageFormat pageFormat, PMPrintSettings printSettings);
+static void DoAboutBox();
+
+/* Global Data */
+static HIViewRef gMyHIView = NULL;
+static HIViewRef gGammaSliderView = NULL;
+static PMPageFormat gPageFormat = NULL;
+
+int main(int argc, char* argv[])
+{
+ static const HIViewID kMyViewID = {kMyHIViewSignature, kMyHIViewFieldID };
+ static const HIViewID kGammaSliderID = {kGammaSliderSignature, kGammaSliderFieldID };
+
+ IBNibRef nibRef;
+ WindowRef window;
+ EventTargetRef myEventTarget;
+ static const EventTypeSpec kMyViewEvents[] = {kEventClassControl, kEventControlDraw };
+ static const EventTypeSpec kMyCommandEvents[] = {kEventClassCommand, kEventCommandProcess };
+ OSStatus err = noErr;
+
+ // Create a Nib reference passing the name of the nib file (without the .nib extension)
+ // CreateNibReference only searches into the application bundle.
+ err = CreateNibReference(CFSTR("main"), &nibRef);
+ require_noerr( err, CantGetNibRef );
+
+ // Once the nib reference is created, set the menu bar. "MainMenu" is the name of the menu bar
+ // object. This name is set in InterfaceBuilder when the nib is created.
+ err = SetMenuBarFromNib(nibRef, CFSTR("MenuBar"));
+ require_noerr( err, CantSetMenuBar );
+
+ // Then create a window. "MainWindow" is the name of the window object. This name is set in
+ // InterfaceBuilder when the nib is created.
+ err = CreateWindowFromNib(nibRef, CFSTR("MainWindow"), &window);
+ require_noerr( err, CantCreateWindow );
+ // Get the HIView associated with the window.
+ HIViewFindByID( HIViewGetRoot( window ), kMyViewID, &gMyHIView );
+
+ // make the view opaque
+ HIViewChangeFeatures(gMyHIView, kHIViewIsOpaque, 0);
+
+ // Get the event target for the view.
+ myEventTarget = GetControlEventTarget (gMyHIView);
+
+ // Install the event handler for the HIView.
+ err = InstallEventHandler (myEventTarget,
+ NewEventHandlerUPP (MyDrawEventHandler),
+ GetEventTypeCount(kMyViewEvents),
+ kMyViewEvents,
+ (void *) gMyHIView,
+ NULL);
+
+
+ HIViewFindByID( HIViewGetRoot( window ), kGammaSliderID, &gGammaSliderView );
+ SetControlAction( gGammaSliderView, NewControlActionUPP(MyGammaSliderProc) );
+
+ // Install the handler for the menu commands.
+ InstallApplicationEventHandler(NewEventHandlerUPP(DoAppCommandProcess), GetEventTypeCount(kMyCommandEvents),
+ kMyCommandEvents, NULL, NULL);
+
+
+ // We don't need the nib reference anymore.
+ DisposeNibReference(nibRef);
+
+ // The window was created hidden so show it.
+ ShowWindow( window );
+
+ // Call the event loop
+ RunApplicationEventLoop();
+
+CantCreateWindow:
+CantSetMenuBar:
+CantGetNibRef:
+ return err;
+}
+
+extern void SkiaDraw(CGContextRef rec, CGRect bounds);
+
+static OSStatus MyDrawEventHandler(EventHandlerCallRef myHandler, EventRef event, void *userData)
+{
+ // NOTE: GState is save/restored by the HIView system doing the callback, so the draw handler doesn't need to do it
+
+ OSStatus status = noErr;
+ CGContextRef context;
+ HIRect bounds;
+
+ // Get the CGContextRef
+ status = GetEventParameter (event, kEventParamCGContextRef,
+ typeCGContextRef, NULL,
+ sizeof (CGContextRef),
+ NULL,
+ &context);
+
+ if(status != noErr){
+ fprintf(stderr, "Got error %d getting the context!\n", status);
+ return status;
+ }
+
+ // Get the bounding rectangle
+ HIViewGetBounds ((HIViewRef) userData, &bounds);
+
+ // Flip the coordinates by translating and scaling. This produces a
+ // coordinate system that matches the Quartz default coordinate system
+ // with the origin in the lower-left corner with the y axis pointing up.
+
+// CGContextTranslateCTM (context, 0, bounds.size.height);
+// CGContextScaleCTM (context, 1.0, -1.0);
+
+ SkiaDraw(context, bounds);
+ return status;
+
+}
+
+static void MyGammaSliderProc( ControlHandle control, SInt16 part )
+{
+// gGammaValue = GetControl32BitValue(control);
+ HIViewSetNeedsDisplay(gMyHIView, true);
+ HIViewRender(gMyHIView);
+}
+
+
+// Handle command-process events at the application level
+static pascal OSStatus DoAppCommandProcess(EventHandlerCallRef nextHandler, EventRef theEvent, void* userData)
+{
+#pragma unused (nextHandler, userData)
+ HICommand aCommand;
+ OSStatus result = eventNotHandledErr;
+
+ GetEventParameter(theEvent, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &aCommand);
+
+ switch (aCommand.commandID)
+ {
+
+ case kHICommandPageSetup:
+ if(gPageFormat == NULL)
+ gPageFormat = CreateDefaultPageFormat();
+
+ if(gPageFormat)
+ (void)DoPageSetup(gPageFormat);
+
+ result = noErr;
+ break;
+
+ case kHICommandPrint:
+ if(gPageFormat == NULL)
+ gPageFormat = CreateDefaultPageFormat();
+
+ if(gPageFormat)
+ (void)DoPrint(gPageFormat);
+
+ result = noErr;
+ break;
+
+ case kHICommandAbout:
+ DoAboutBox();
+ result = noErr;
+ break;
+
+ default:
+ break;
+
+ case kHICommandQuit:
+ QuitApplicationEventLoop();
+ result = noErr;
+ break;
+ }
+ HiliteMenu(0);
+ return result;
+}
+
+static void DoAboutBox()
+{
+ CFStringRef outString = NULL;
+ SInt16 alertItemHit = 0;
+ Str255 stringBuf;
+
+ outString = CFCopyLocalizedString(kAboutBoxStringKey, NULL);
+ if (outString != NULL)
+ {
+ if (CFStringGetPascalString (outString, stringBuf, sizeof(stringBuf), GetApplicationTextEncoding()))
+ {
+ StandardAlert(kAlertStopAlert, stringBuf, NULL, NULL, &alertItemHit);
+ }
+ CFRelease (outString);
+ }
+}
+
+// -----------------------------------------------------------------------
+static PMPageFormat CreateDefaultPageFormat(void)
+{
+ OSStatus err = noErr, tempErr;
+ PMPageFormat pageFormat = NULL;
+ PMPrintSession printSession;
+ err = PMCreateSession(&printSession);
+ if(!err){
+ err = PMCreatePageFormat(&pageFormat); // we own a reference to this page format
+ if(err == noErr)
+ err = PMSessionDefaultPageFormat(printSession, pageFormat);
+
+ tempErr = PMRelease(printSession);
+ if(!err)err = tempErr;
+ }
+ if(err){
+ fprintf(stderr, "got an error = %d creating the default page format\n", err);
+ }
+ return pageFormat;
+}
+
+// -----------------------------------------------------------------
+static OSStatus DoPageSetup(PMPageFormat pageFormat)
+{
+ OSStatus err = noErr;
+ PMPrintSession printSession;
+ err = PMCreateSession(&printSession);
+ if(!err){
+ Boolean accepted;
+ if(!err) // validate the page format we're going to pass to the dialog code
+ err = PMSessionValidatePageFormat(printSession, pageFormat, kPMDontWantBoolean);
+ if(!err){
+ err = PMSessionPageSetupDialog(printSession, pageFormat, &accepted);
+ }
+ (void)PMRelease(printSession);
+ }
+
+ if(err && err != kPMCancel)
+ fprintf(stderr, "Got an error %d in Page Setup\n", err);
+
+ return err;
+} // DoPageSetup
+
+// -------------------------------------------------------------------------------
+static OSStatus DoPrint(PMPageFormat pageFormat)
+{
+ OSStatus err = noErr;
+ UInt32 minPage = 1, maxPage = 1;
+ PMPrintSession printSession;
+ err = PMCreateSession(&printSession);
+ if(err == noErr){
+ // validate the page format we're going to use
+ err = PMSessionValidatePageFormat(printSession,
+ pageFormat,
+ kPMDontWantBoolean);
+ if (err == noErr)
+ {
+ PMPrintSettings printSettings = NULL;
+ err = PMCreatePrintSettings(&printSettings);
+ if(err == noErr)
+ err = PMSessionDefaultPrintSettings(printSession, printSettings);
+
+ if (err == noErr)
+ err = PMSetPageRange(printSettings, minPage, maxPage);
+
+ if (err == noErr)
+ {
+ Boolean accepted;
+ err = PMSessionPrintDialog(printSession, printSettings,
+ pageFormat,
+ &accepted);
+ if(accepted){
+ err = MyDoPrintLoop(printSession, pageFormat, printSettings);
+ }
+ }
+ if(printSettings)
+ (void)PMRelease(printSettings);
+ }
+
+ (void)PMRelease(printSession); // ignoring error since we already have one
+ }
+
+ if(err && err != kPMCancel)
+ fprintf(stderr, "Got an error %d in Print\n", err);
+ return err;
+}
+
+// --------------------------------------------------------------------------------------
+static OSStatus MyDoPrintLoop(PMPrintSession printSession, PMPageFormat pageFormat, PMPrintSettings printSettings)
+{
+ OSStatus err = noErr;
+ OSStatus tempErr = noErr;
+ UInt32 firstPage, lastPage, totalDocPages = 1;
+
+ if(!err)
+ err = PMGetFirstPage(printSettings, &firstPage);
+
+ if (!err)
+ err = PMGetLastPage(printSettings, &lastPage);
+
+ if(!err && lastPage > totalDocPages){
+ // don't draw more than the number of pages in our document
+ lastPage = totalDocPages;
+ }
+
+ if (!err) // tell the printing system the number of pages we are going to print
+ err = PMSetLastPage(printSettings, lastPage, false);
+
+ if (!err)
+ {
+ err = PMSessionBeginCGDocument(printSession, printSettings, pageFormat);
+ if (!err){
+ UInt32 pageNumber = firstPage;
+ // need to check errors from our print loop and errors from the session for each
+ // time around our print loop before calling our BeginPageProc
+ while(pageNumber <= lastPage && err == noErr && PMSessionError(printSession) == noErr)
+ {
+ err = PMSessionBeginPage(printSession, pageFormat, NULL);
+ if (!err){
+ CGContextRef printingContext = NULL;
+ err = PMSessionGetCGGraphicsContext(printSession, &printingContext);
+ if(!err){
+ PMRect pageRect;
+
+ PMGetAdjustedPaperRect(pageFormat, &pageRect);
+#if 0
+ DoDraw(printingContext, CGRectMake(pageRect.left, pageRect.top, pageRect.right - pageRect.left, pageRect.bottom - pageRect.top));
+#endif
+ }
+ // we must call EndPage if BeginPage returned noErr
+ tempErr = PMSessionEndPage(printSession);
+
+ if(!err)err = tempErr;
+ }
+ pageNumber++;
+ } // end while loop
+
+ // we must call EndDocument if BeginDocument returned noErr
+ tempErr = PMSessionEndDocument(printSession);
+
+ if(!err)err = tempErr;
+ if(!err)
+ err = PMSessionError(printSession);
+ }
+ }
+ return err;
+}
+
+
+
diff --git a/xcode/hostapp/test.cpp b/xcode/hostapp/test.cpp
new file mode 100644
index 0000000..aae344d
--- /dev/null
+++ b/xcode/hostapp/test.cpp
@@ -0,0 +1,48 @@
+#include <Carbon/Carbon.h>
+#include "SkCanvas.h"
+#include "SkPaint.h"
+
+extern CGImageRef SkCreateCGImageRef(const SkBitmap&);
+extern "C" void SkiaDraw(CGContextRef cg, CGRect bounds);
+
+static void sampleDraw(SkCanvas* canvas) {
+ canvas->drawColor(0xFF0000FF);
+
+ SkPaint paint;
+ paint.setAntiAlias(true);
+
+ canvas->drawCircle(SkIntToScalar(100), SkIntToScalar(100),
+ SkIntToScalar(90), paint);
+}
+
+static CGImageRef gImage;
+
+void SkiaDraw(CGContextRef cg, CGRect bounds) {
+ if (NULL == gImage) {
+ SkBitmap bitmap;
+ bitmap.setConfig(SkBitmap::kARGB_8888_Config, 640, 480);
+ bitmap.allocPixels();
+
+ SkCanvas canvas(bitmap);
+ sampleDraw(&canvas);
+
+ gImage = SkCreateCGImageRef(bitmap);
+ }
+
+ CGColorRef color = CGColorCreateGenericRGB(1, 1, 1, 1);
+ CGContextSetFillColorWithColor(cg, color);
+ CGColorRelease(color);
+ CGContextFillRect(cg, bounds);
+
+ CGRect r = CGRectMake(0, 0, 640, 480);
+
+ CGContextSaveGState(cg);
+ CGContextTranslateCTM(cg, 0, r.size.height);
+ CGContextScaleCTM(cg, 1, -1);
+
+ CGContextDrawImage(cg, r, gImage);
+
+ CGContextRestoreGState(cg);
+}
+
+
diff --git a/xcode/maccore/maccore.xcodeproj/project.pbxproj b/xcode/maccore/maccore.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..218f217
--- /dev/null
+++ b/xcode/maccore/maccore.xcodeproj/project.pbxproj
@@ -0,0 +1,215 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 44;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 002884A50EFAB5DE0083E387 /* SkOSFile_stdio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884A20EFAB5DE0083E387 /* SkOSFile_stdio.cpp */; };
+ 002884A60EFAB5DE0083E387 /* SkThread_pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884A30EFAB5DE0083E387 /* SkThread_pthread.cpp */; };
+ 002884A70EFAB5DE0083E387 /* SkTime_Unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884A40EFAB5DE0083E387 /* SkTime_Unix.cpp */; };
+ 002884E10EFABFFC0083E387 /* SkGlobals_global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002884E00EFABFFC0083E387 /* SkGlobals_global.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 002884A20EFAB5DE0083E387 /* SkOSFile_stdio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSFile_stdio.cpp; path = ../../src/ports/SkOSFile_stdio.cpp; sourceTree = SOURCE_ROOT; };
+ 002884A30EFAB5DE0083E387 /* SkThread_pthread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkThread_pthread.cpp; path = ../../src/ports/SkThread_pthread.cpp; sourceTree = SOURCE_ROOT; };
+ 002884A40EFAB5DE0083E387 /* SkTime_Unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkTime_Unix.cpp; path = ../../src/ports/SkTime_Unix.cpp; sourceTree = SOURCE_ROOT; };
+ 002884E00EFABFFC0083E387 /* SkGlobals_global.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGlobals_global.cpp; path = ../../src/ports/SkGlobals_global.cpp; sourceTree = SOURCE_ROOT; };
+ D2AAC046055464E500DB518D /* libmaccore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmaccore.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D289987405E68DCB004EDB86 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 08FB7794FE84155DC02AAC07 /* maccore */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB7795FE84155DC02AAC07 /* Source */,
+ C6A0FF2B0290797F04C91782 /* Documentation */,
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
+ );
+ name = maccore;
+ sourceTree = "<group>";
+ };
+ 08FB7795FE84155DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 002884E00EFABFFC0083E387 /* SkGlobals_global.cpp */,
+ 002884A20EFAB5DE0083E387 /* SkOSFile_stdio.cpp */,
+ 002884A30EFAB5DE0083E387 /* SkThread_pthread.cpp */,
+ 002884A40EFAB5DE0083E387 /* SkTime_Unix.cpp */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC046055464E500DB518D /* libmaccore.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ C6A0FF2B0290797F04C91782 /* Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Documentation;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC043055464E500DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC045055464E500DB518D /* maccore */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "maccore" */;
+ buildPhases = (
+ D2AAC043055464E500DB518D /* Headers */,
+ D2AAC044055464E500DB518D /* Sources */,
+ D289987405E68DCB004EDB86 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = maccore;
+ productName = maccore;
+ productReference = D2AAC046055464E500DB518D /* libmaccore.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "maccore" */;
+ compatibilityVersion = "Xcode 3.0";
+ hasScannedForEncodings = 1;
+ mainGroup = 08FB7794FE84155DC02AAC07 /* maccore */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D2AAC045055464E500DB518D /* maccore */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC044055464E500DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 002884A50EFAB5DE0083E387 /* SkOSFile_stdio.cpp in Sources */,
+ 002884A60EFAB5DE0083E387 /* SkThread_pthread.cpp in Sources */,
+ 002884A70EFAB5DE0083E387 /* SkTime_Unix.cpp in Sources */,
+ 002884E10EFABFFC0083E387 /* SkGlobals_global.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB91EC08733DB70010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = maccore;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 1DEB91ED08733DB70010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_MODEL_TUNING = G5;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = maccore;
+ };
+ name = Release;
+ };
+ 1DEB91F008733DB70010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ SK_BUILD_FOR_MAC,
+ SK_DEBUG,
+ );
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+ USER_HEADER_SEARCH_PATHS = "../../include/ports ../../include/core";
+ };
+ name = Debug;
+ };
+ 1DEB91F108733DB70010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ SK_BUILD_FOR_MAC,
+ SK_RELEASE,
+ );
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+ USER_HEADER_SEARCH_PATHS = "../../include/ports ../../include/core";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "maccore" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB91EC08733DB70010E9CD /* Debug */,
+ 1DEB91ED08733DB70010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "maccore" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB91F008733DB70010E9CD /* Debug */,
+ 1DEB91F108733DB70010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}