draft test app to show skia in a window
git-svn-id: http://skia.googlecode.com/svn/trunk@32 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
9fb1731ef2
commit
758b129f11
389
xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj
Normal file
389
xcode/hostapp/CICarbonSample.xcodeproj/project.pbxproj
Normal file
@ -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 */;
|
||||
}
|
5
xcode/hostapp/CICarbonSample_Prefix.pch
Normal file
5
xcode/hostapp/CICarbonSample_Prefix.pch
Normal file
@ -0,0 +1,5 @@
|
||||
//
|
||||
// Prefix header for all source files of the 'CICarbonSample' target in the 'CICarbonSample' project.
|
||||
//
|
||||
|
||||
#include <Carbon/Carbon.h>
|
26
xcode/hostapp/Info.plist
Normal file
26
xcode/hostapp/Info.plist
Normal file
@ -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>
|
80
xcode/hostapp/SkCreateCGImageRef.cpp
Normal file
80
xcode/hostapp/SkCreateCGImageRef.cpp
Normal file
@ -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;
|
||||
}
|
||||
|
||||
|
420
xcode/hostapp/main.c
Normal file
420
xcode/hostapp/main.c
Normal file
@ -0,0 +1,420 @@
|
||||
/*
|
||||
|
||||
File: main.c
|
||||
|
||||
Abstract: Main event loop and app handling code is found in here.
|
||||
|
||||
Version: 1.0
|
||||
|
||||
<EFBFBD> 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;
|
||||
}
|
||||
|
||||
|
||||
|
48
xcode/hostapp/test.cpp
Normal file
48
xcode/hostapp/test.cpp
Normal file
@ -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);
|
||||
}
|
||||
|
||||
|
215
xcode/maccore/maccore.xcodeproj/project.pbxproj
Normal file
215
xcode/maccore/maccore.xcodeproj/project.pbxproj
Normal file
@ -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 */;
|
||||
}
|
Loading…
Reference in New Issue
Block a user