draft test app to show skia in a window
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Thu, 18 Dec 2008 17:54:12 +0000 (17:54 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Thu, 18 Dec 2008 17:54:12 +0000 (17:54 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@32 2bbb7eff-a529-9590-31e7-b0007b416f81

xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj [new file with mode: 0644]
xcode/hostapp/CICarbonSample_Prefix.pch [new file with mode: 0644]
xcode/hostapp/Info.plist [new file with mode: 0644]
xcode/hostapp/SkCreateCGImageRef.cpp [new file with mode: 0644]
xcode/hostapp/main.c [new file with mode: 0644]
xcode/hostapp/test.cpp [new file with mode: 0644]
xcode/maccore/maccore.xcodeproj/project.pbxproj [new file with mode: 0644]

diff --git a/xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj b/xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj
new file mode 100644 (file)
index 0000000..61b3747
--- /dev/null
@@ -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 (file)
index 0000000..a74776b
--- /dev/null
@@ -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 (file)
index 0000000..8bc7477
--- /dev/null
@@ -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 (file)
index 0000000..7cea543
--- /dev/null
@@ -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 (file)
index 0000000..bed568e
--- /dev/null
@@ -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 (file)
index 0000000..aae344d
--- /dev/null
@@ -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 (file)
index 0000000..218f217
--- /dev/null
@@ -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 */;
+}