// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 42;
	objects = {

/* Begin PBXBuildFile section */
		6A6DAA960DA2C0B3008D95BD /* polymain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A6DAA8E0DA2C0B3008D95BD /* polymain.cpp */; };
		6A6DAA980DA2C0B3008D95BD /* polyover.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A6DAA900DA2C0B3008D95BD /* polyover.cpp */; };
		6A6DAA9B0DA2C0B3008D95BD /* pover_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A6DAA930DA2C0B3008D95BD /* pover_video.cpp */; };
		8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
		A12649490B8392750091D5AD /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */; };
		A126495E0B83936D0091D5AD /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D0C4E960486CD37000505A6 /* Info.plist */; };
		A18D2A340B861B99007D8D2C /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A18D2A330B861B99007D8D2C /* libtbb.dylib */; };
		A1976ADA0DF6A6910032C3EA /* libtbbmalloc.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1976AD90DF6A6910032C3EA /* libtbbmalloc.dylib */; };
		A1976ADF0DF6A6E10032C3EA /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1976AD90DF6A6910032C3EA /* libtbbmalloc.dylib */; };
		A1A8F41E0B8B4DBE001C55B1 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */; };
		A1A8F4310B8B4EA8001C55B1 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */; };
		A1D44D9A0B861E8A0006E401 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A18D2A330B861B99007D8D2C /* libtbb.dylib */; };
		A1E3E7BD0B3AD4EC007C3AB5 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */; };
		A1F591AC0B8DFC9600073279 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F591AA0B8DFC9600073279 /* macvideo.cpp */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		A18D2A370B861BB7007D8D2C /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1976ADA0DF6A6910032C3EA /* libtbbmalloc.dylib in CopyFiles */,
				A1D44D9A0B861E8A0006E401 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
		32DBCF6D0370B57F00C91783 /* PolygonOverlay.pch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PolygonOverlay.pch; sourceTree = "<group>"; };
		6A6DAA8E0DA2C0B3008D95BD /* polymain.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = polymain.cpp; path = ../polymain.cpp; sourceTree = SOURCE_ROOT; };
		6A6DAA8F0DA2C0B3008D95BD /* polymain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = polymain.h; path = ../polymain.h; sourceTree = SOURCE_ROOT; };
		6A6DAA900DA2C0B3008D95BD /* polyover.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = polyover.cpp; path = ../polyover.cpp; sourceTree = SOURCE_ROOT; };
		6A6DAA910DA2C0B3008D95BD /* polyover.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = polyover.h; path = ../polyover.h; sourceTree = SOURCE_ROOT; };
		6A6DAA920DA2C0B3008D95BD /* pover_global.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pover_global.h; path = ../pover_global.h; sourceTree = SOURCE_ROOT; };
		6A6DAA930DA2C0B3008D95BD /* pover_video.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pover_video.cpp; path = ../pover_video.cpp; sourceTree = SOURCE_ROOT; };
		6A6DAA940DA2C0B3008D95BD /* pover_video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pover_video.h; path = ../pover_video.h; sourceTree = SOURCE_ROOT; };
		6A6DAA950DA2C0B3008D95BD /* rpolygon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = rpolygon.h; path = ../rpolygon.h; sourceTree = SOURCE_ROOT; };
		8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
		8D0C4E970486CD37000505A6 /* PolygonOverlay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PolygonOverlay.app; sourceTree = BUILT_PRODUCTS_DIR; };
		A18D2A330B861B99007D8D2C /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
		A1976AD90DF6A6910032C3EA /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbbmalloc.dylib; sourceTree = "<absolute>"; };
		A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
		A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
		A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
		A1F591AA0B8DFC9600073279 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = SOURCE_ROOT; };
		A1F591AB0B8DFC9600073279 /* video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = video.h; path = ../../../common/gui/video.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8D0C4E910486CD37000505A6 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1E3E7BD0B3AD4EC007C3AB5 /* OpenGL.framework in Frameworks */,
				A12649490B8392750091D5AD /* OpenGL.framework in Frameworks */,
				A18D2A340B861B99007D8D2C /* libtbb.dylib in Frameworks */,
				A1976ADF0DF6A6E10032C3EA /* libtbbmalloc.dylib in Frameworks */,
				A1A8F41E0B8B4DBE001C55B1 /* AGL.framework in Frameworks */,
				A1A8F4310B8B4EA8001C55B1 /* Carbon.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		195DF8CFFE9D517E11CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				8D0C4E970486CD37000505A6 /* PolygonOverlay.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		20286C29FDCF999611CA2CEA /* PolygonOverlay */ = {
			isa = PBXGroup;
			children = (
				20286C2AFDCF999611CA2CEA /* Sources */,
				20286C2CFDCF999611CA2CEA /* Resources */,
				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
				195DF8CFFE9D517E11CA2CBB /* Products */,
			);
			name = PolygonOverlay;
			sourceTree = "<group>";
		};
		20286C2AFDCF999611CA2CEA /* Sources */ = {
			isa = PBXGroup;
			children = (
				6A6DAA8E0DA2C0B3008D95BD /* polymain.cpp */,
				6A6DAA8F0DA2C0B3008D95BD /* polymain.h */,
				6A6DAA900DA2C0B3008D95BD /* polyover.cpp */,
				6A6DAA910DA2C0B3008D95BD /* polyover.h */,
				6A6DAA920DA2C0B3008D95BD /* pover_global.h */,
				6A6DAA930DA2C0B3008D95BD /* pover_video.cpp */,
				6A6DAA940DA2C0B3008D95BD /* pover_video.h */,
				6A6DAA950DA2C0B3008D95BD /* rpolygon.h */,
				A1F591AA0B8DFC9600073279 /* macvideo.cpp */,
				A1F591AB0B8DFC9600073279 /* video.h */,
				32DBCF6D0370B57F00C91783 /* PolygonOverlay.pch */,
			);
			name = Sources;
			sourceTree = "<group>";
		};
		20286C2CFDCF999611CA2CEA /* Resources */ = {
			isa = PBXGroup;
			children = (
				8D0C4E960486CD37000505A6 /* Info.plist */,
				02345980000FD03B11CA0E72 /* main.nib */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				A1976AD90DF6A6910032C3EA /* libtbbmalloc.dylib */,
				A18D2A330B861B99007D8D2C /* libtbb.dylib */,
				A1A8F4300B8B4EA8001C55B1 /* Carbon.framework */,
				A1A8F41D0B8B4DBE001C55B1 /* AGL.framework */,
				A1E3E7BC0B3AD4EC007C3AB5 /* OpenGL.framework */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		8D0C4E890486CD37000505A6 /* PolygonOverlay */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "PolygonOverlay" */;
			buildPhases = (
				8D0C4E8C0486CD37000505A6 /* Resources */,
				8D0C4E8F0486CD37000505A6 /* Sources */,
				8D0C4E910486CD37000505A6 /* Frameworks */,
				A18D2A370B861BB7007D8D2C /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = PolygonOverlay;
			productInstallPath = "$(HOME)/Applications";
			productName = PolygonOverlay;
			productReference = 8D0C4E970486CD37000505A6 /* PolygonOverlay.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		20286C28FDCF999611CA2CEA /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "PolygonOverlay" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 20286C29FDCF999611CA2CEA /* PolygonOverlay */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				8D0C4E890486CD37000505A6 /* PolygonOverlay */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		8D0C4E8C0486CD37000505A6 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
				A126495E0B83936D0091D5AD /* Info.plist in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		8D0C4E8F0486CD37000505A6 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F591AC0B8DFC9600073279 /* macvideo.cpp in Sources */,
				6A6DAA960DA2C0B3008D95BD /* polymain.cpp in Sources */,
				6A6DAA980DA2C0B3008D95BD /* polyover.cpp in Sources */,
				6A6DAA9B0DA2C0B3008D95BD /* pover_video.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		02345980000FD03B11CA0E72 /* main.nib */ = {
			isa = PBXVariantGroup;
			children = (
				1870340FFE93FCAF11CA0CD7 /* English */,
			);
			name = main.nib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		C0E91AC608A95435008D54AB /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = "";
				GCC_OPTIMIZATION_LEVEL = 0;
				INSTALL_PATH = "$(HOME)/Applications";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = PolygonOverlay;
				GCC_VERSION = 4.0;
			};
			name = Debug;
		};
		C0E91AC708A95435008D54AB /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_MODEL_TUNING = "";
				INSTALL_PATH = "$(HOME)/Applications";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = PolygonOverlay;
				GCC_VERSION = 4.0;
			};
			name = Release;
		};
		C0E91ACA08A95435008D54AB /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = i386;
				GCC_AUTO_VECTORIZATION = YES;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_ENABLE_SSE3_EXTENSIONS = YES;
				GCC_MODEL_TUNING = "";
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
				MACH_O_TYPE = mh_execute;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				GCC_VERSION = 4.0;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug;
		};
		C0E91ACB08A95435008D54AB /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = i386;
				GCC_AUTO_VECTORIZATION = YES;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_ENABLE_SSE3_EXTENSIONS = YES;
				GCC_MODEL_TUNING = "";
				GCC_OPTIMIZATION_LEVEL = 3;
				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
				MACH_O_TYPE = mh_execute;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				GCC_VERSION = 4.0;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "PolygonOverlay" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C0E91AC608A95435008D54AB /* Debug */,
				C0E91AC708A95435008D54AB /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "PolygonOverlay" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C0E91ACA08A95435008D54AB /* Debug */,
				C0E91ACB08A95435008D54AB /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
}
