diff --git a/build/configs.gypi b/build/configs.gypi index 604357e..0ec70f4 100644 --- a/build/configs.gypi +++ b/build/configs.gypi @@ -6,13 +6,11 @@ { 'configurations': { 'Debug': { + 'defines': [ + '_DEBUG', + ], 'conditions': [ ['OS=="win"', { - 'defines': [ - '_DEBUG', - 'ENABLE_FAST_COPY=1', - 'ENABLE_SYSTEM_MALLOC=1', - ], 'msvs_configuration_attributes': { 'ConfigurationType': '2', 'CharacterSet': '1', @@ -41,12 +39,19 @@ }, }, }], + ['OS=="macosx"', { + 'xcode_settings': { + 'ALWAYS_SEARCH_USER_PATHS': 'NO', + 'CLANG_ENABLE_OBJC_WEAK': 'YES', + 'CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW': 'YES', + 'DEAD_CODE_STRIPPING': 'NO', + 'ONLY_ACTIVE_ARCH': 'YES', + 'ENABLE_TESTABILITY': 'YES', + 'GCC_UNROLL_LOOPS': 'NO', + 'GCC_OPTIMIZATION_LEVEL': '0', + }, + }], ['OS=="linux"', { - 'defines': [ - '_DEBUG', - 'ENABLE_FREE_TYPE2=1', - 'ENABLE_FONT_CONFIG=1', - ], 'cflags_cc': [ '-O0', '-Wall', @@ -67,13 +72,11 @@ ], }, 'Release': { + 'defines': [ + 'NDEBUG', + ], 'conditions': [ ['OS=="win"', { - 'defines': [ - 'NDEBUG', - 'ENABLE_FAST_COPY=1', - 'ENABLE_SYSTEM_MALLOC=1', - ], 'msvs_configuration_attributes': { 'ConfigurationType': '2', 'CharacterSet': '1', @@ -109,12 +112,23 @@ }, }, }], + ['OS=="macosx"', { + 'xcode_settings': { + 'ALWAYS_SEARCH_USER_PATHS': 'NO', + 'CLANG_ENABLE_CODE_COVERAGE': 'NO', + 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO', + 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', + 'CLANG_ENABLE_OBJC_WEAK': 'YES', + 'CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW': 'NO', + 'DEAD_CODE_STRIPPING': 'YES', + 'ONLY_ACTIVE_ARCH': 'NO', + 'LLVM_LTO': 'YES', + 'ENABLE_TESTABILITY': 'NO', + 'GCC_UNROLL_LOOPS': 'YES', + 'GCC_OPTIMIZATION_LEVEL': '3', + }, + }], ['OS=="linux"', { - 'defines': [ - 'NDEBUG', - 'ENABLE_FREE_TYPE2=1', - 'ENABLE_FONT_CONFIG=1', - ], 'cflags_cc': [ '-O3', '-Wall', diff --git a/build/defines.gypi b/build/defines.gypi index 35dcc7c..c6587f7 100644 --- a/build/defines.gypi +++ b/build/defines.gypi @@ -4,17 +4,29 @@ # Contact: onecoolx@gmail.com { - 'conditions': [ ['OS=="win"', { 'defines': [ 'WIN32', 'DLL_EXPORT', + 'ENABLE_FAST_COPY=1', + 'ENABLE_SYSTEM_MALLOC=1', '__SSE2__=1', '_HAS_EXCEPTIONS=0', '_USE_MATH_DEFINES', '_CRT_SECURE_NO_WARNINGS', ], }], + ['OS=="linux"', { + 'defines': [ + 'ENABLE_FREE_TYPE2=1', + 'ENABLE_FONT_CONFIG=1', + ], + }], + ['OS=="macosx" or OS=="ios"', { + 'defines': [ + 'ENABLE_SYSTEM_MALLOC=1', + ], + }], ], } diff --git a/build_proj.sh b/build_linux.sh similarity index 100% rename from build_proj.sh rename to build_linux.sh diff --git a/build_macosx.sh b/build_macosx.sh new file mode 100755 index 0000000..adc485e --- /dev/null +++ b/build_macosx.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +./tools/gyp/gyp --depth=./ picasso.gyp -f xcode -DOS=macosx --generator-output=proj +echo "Please change dir to \"proj\" and open picasso.xcodeproj with Xcode" +echo "...\n" diff --git a/build_proj.bat b/build_win.bat similarity index 100% rename from build_proj.bat rename to build_win.bat diff --git a/proj/picasso.xcodeproj/project.pbxproj b/proj/picasso.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0208779 --- /dev/null +++ b/proj/picasso.xcodeproj/project.pbxproj @@ -0,0 +1,520 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 0EC23D2875F7CFC8A59E900D /* picasso_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2FDF22C98620BFC77F8B595C /* picasso_path.cpp */; }; + 16016407870B7175E22C58E3 /* picasso_matrix_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4E86F0A450CD0277401DC2F7 /* picasso_matrix_api.cpp */; }; + 1A59CB70892359AA53A6232A /* gfx_blur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FD510148E865231CE3829B1 /* gfx_blur.cpp */; }; + 25D86E89FA143DF1F68A6B8E /* gfx_device.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31CFDDBAA6515D828AB026A0 /* gfx_device.cpp */; }; + 27BF9492C32CF064F3AE9755 /* gfx_rendering_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DFB93C925595CF5CB3BB5A /* gfx_rendering_buffer.cpp */; }; + 28F1CECE83E00ADA6FAD1764 /* picasso_canvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3681BD76380057BB28DCB236 /* picasso_canvas.cpp */; }; + 29F277CF15934F38CC15FC0D /* picasso_gradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 701105EFB161A4D37F8699D7 /* picasso_gradient.cpp */; }; + 2B2A807C0196F273D99397BD /* gfx_gradient_adapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1AF56B8A6138C3FB9E3C45 /* gfx_gradient_adapter.cpp */; }; + 33C908CCF32C07D4A5637272 /* picasso_painter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8F67150DE73844D447F65A2 /* picasso_painter.cpp */; }; + 341F13A7B50AFA60B1A1E489 /* picasso_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6ECA3B7F68DB800AD7147B56 /* picasso_api.cpp */; }; + 3C49105A95331BF3A806715B /* graphic_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E91DE94978EC61E31E51E0BF /* graphic_path.cpp */; }; + 431D22F42BC7B4B572E095B5 /* gfx_font_adapter_freetype2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B39A491F231F13ECC003A8B /* gfx_font_adapter_freetype2.cpp */; }; + 4419462AB830D6F7D4AB2531 /* picasso_pattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 676F2429E32C356FC6BAA00E /* picasso_pattern.cpp */; }; + 4FDB8E88C62AA825E8874EC8 /* picasso_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CBAF92E5633CB8C7DE8CF1E /* picasso_image.cpp */; }; + 5FA768DD0E7925A2501AB58F /* curve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FF3DBDB063F8FC12E08BB4FE /* curve.cpp */; }; + 6B53321482CB993CB79E033E /* device.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 996CE52288C635376FC63DEF /* device.cpp */; }; + 6F942FF749500561D6E9E998 /* picasso_font_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1AB4642BE8629199D563B51 /* picasso_font_api.cpp */; }; + 797C8774DBE0B43FB8791AAA /* picasso_rendering_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C0B0558601CC5EA7FF82A923 /* picasso_rendering_buffer.cpp */; }; + 7BCC4683A365F5484A44A13B /* picasso_mask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8D196A22F72253A1C52F5AD /* picasso_mask.cpp */; }; + 835B8B30536B063CAB4E805D /* gfx_font_adapter_win32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4482407F78C650C24B12033E /* gfx_font_adapter_win32.cpp */; }; + 99EB3154A2D1DABD8A010F49 /* gfx_font_load_freetype2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6905217C5A0180250163CE81 /* gfx_font_load_freetype2.cpp */; }; + 9D9B3AEC4CD643AEDAB68939 /* gfx_image_filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1F35E4E71736B64C3CE4ED29 /* gfx_image_filters.cpp */; }; + AA1554FD438003A3B9889541 /* gfx_raster_adapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CF7C697683945CB205305B00 /* gfx_raster_adapter.cpp */; }; + AC090489487FC36E2C2177B3 /* gfx_font_adapter_dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8B08706EDC7C673AB5052A5 /* gfx_font_adapter_dummy.cpp */; }; + B92D74D4A633F7C699F5F799 /* picasso_matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06D31D60ACCFFE40A50F6A4E /* picasso_matrix.cpp */; }; + BF83244E1CC969D943A3A2D2 /* picasso_mask_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15E6AE30B6779A688F8DDBBB /* picasso_mask_api.cpp */; }; + C391DF2A97F4BCFD74D420DC /* picasso_raster_adapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 249AFBE781AD8B82C0C8D378 /* picasso_raster_adapter.cpp */; }; + C4EAC307689092AB8276213A /* picasso_font.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD0E3C0821A5EE1389C78BE0 /* picasso_font.cpp */; }; + D111AA1D4834A4F93A39505E /* gfx_sqrt_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9B1BA38B8B8153284ED81EFE /* gfx_sqrt_tables.cpp */; }; + E1DBEDE43C4D5EEBAC26CFA3 /* clipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D7AB9B21A68C18D9113A8CA /* clipper.cpp */; }; + FE8776680BFBF57FD2525070 /* picasso_gradient_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C90AB4019CFCF89230ED2B64 /* picasso_gradient_api.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 004879BC37442F32801A839E /* picasso_mask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_mask.h; sourceTree = ""; }; + 06D31D60ACCFFE40A50F6A4E /* picasso_matrix.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_matrix.cpp; sourceTree = ""; }; + 09C030947D0AA9EF20859EE5 /* gfx_painter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_painter.h; sourceTree = ""; }; + 13D22918E787FE192719FD03 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 13F279B856E11936CA534E17 /* picasso_matrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_matrix.h; sourceTree = ""; }; + 14B5E05D018CFA3659AAC6CF /* gfx_rasterizer_scanline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_rasterizer_scanline.h; sourceTree = ""; }; + 15E6AE30B6779A688F8DDBBB /* picasso_mask_api.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_mask_api.cpp; sourceTree = ""; }; + 1624FCDBC61472F4D37A2204 /* gfx_scanline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_scanline.h; sourceTree = ""; }; + 1F35E4E71736B64C3CE4ED29 /* gfx_image_filters.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_image_filters.cpp; sourceTree = ""; }; + 20437C06DC87ED87483A147A /* picasso_font_cache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_font_cache.h; sourceTree = ""; }; + 23C2D14C906271FDBFF21079 /* graphic_base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = graphic_base.h; sourceTree = ""; }; + 249AFBE781AD8B82C0C8D378 /* picasso_raster_adapter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_raster_adapter.cpp; sourceTree = ""; }; + 2B39A491F231F13ECC003A8B /* gfx_font_adapter_freetype2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_font_adapter_freetype2.cpp; sourceTree = ""; }; + 2D7AB9B21A68C18D9113A8CA /* clipper.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = clipper.cpp; sourceTree = ""; }; + 2FDF22C98620BFC77F8B595C /* picasso_path.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_path.cpp; sourceTree = ""; }; + 31CFDDBAA6515D828AB026A0 /* gfx_device.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_device.cpp; sourceTree = ""; }; + 352740D1651F577EAEE9016F /* gfx_gamma_function.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_gamma_function.h; sourceTree = ""; }; + 363C35CDA7EBE0ED1FB5F379 /* device.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = device.h; sourceTree = ""; }; + 3681BD76380057BB28DCB236 /* picasso_canvas.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_canvas.cpp; sourceTree = ""; }; + 369AB2F9E387FE83A7B8CEA9 /* gfx_rasterizer_cell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_rasterizer_cell.h; sourceTree = ""; }; + 3C1AF56B8A6138C3FB9E3C45 /* gfx_gradient_adapter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_gradient_adapter.cpp; sourceTree = ""; }; + 4482407F78C650C24B12033E /* gfx_font_adapter_win32.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_font_adapter_win32.cpp; sourceTree = ""; }; + 46CF22F1BC599ECDBAA5F552 /* gfx_rendering_buffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_rendering_buffer.h; sourceTree = ""; }; + 4811C7228147797DB2BDD985 /* picasso_gradient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_gradient.h; sourceTree = ""; }; + 48130BCC8617F3108E4B9347 /* math_type.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = math_type.h; sourceTree = ""; }; + 4CBAF92E5633CB8C7DE8CF1E /* picasso_image.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_image.cpp; sourceTree = ""; }; + 4E86F0A450CD0277401DC2F7 /* picasso_matrix_api.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_matrix_api.cpp; sourceTree = ""; }; + 51706059B6697AE450DD201D /* gfx_device.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_device.h; sourceTree = ""; }; + 60F3AA3723616698788C623F /* graphic_path.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = graphic_path.h; sourceTree = ""; }; + 676F2429E32C356FC6BAA00E /* picasso_pattern.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_pattern.cpp; sourceTree = ""; }; + 6905217C5A0180250163CE81 /* gfx_font_load_freetype2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_font_load_freetype2.cpp; sourceTree = ""; }; + 6D620BE196B605B2655EE6E1 /* refptr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = refptr.h; sourceTree = ""; }; + 6ECA3B7F68DB800AD7147B56 /* picasso_api.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_api.cpp; sourceTree = ""; }; + 6F50809418CB9D9571410E1A /* vertex_dist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vertex_dist.h; sourceTree = ""; }; + 701105EFB161A4D37F8699D7 /* picasso_gradient.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_gradient.cpp; sourceTree = ""; }; + 7556745A189CBA6B792483EC /* picasso_raster_adapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_raster_adapter.h; sourceTree = ""; }; + 7C861F2D6CD46564E2798741 /* defines.gypi */ = {isa = PBXFileReference; lastKnownFileType = text; name = defines.gypi; path = build/defines.gypi; sourceTree = ""; }; + 80D41ED92196159AD2393C62 /* curve.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = curve.h; sourceTree = ""; }; + 843E08995D1ACF16E8855062 /* gfx_scanline_renderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_scanline_renderer.h; sourceTree = ""; }; + 849F80A04861BC2C74E25D59 /* picasso_font.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_font.h; sourceTree = ""; }; + 87C3954F350B58A07CD52914 /* color_type.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = color_type.h; sourceTree = ""; }; + 882EA1843C9311AC26510213 /* gfx_pixfmt_rgba.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_pixfmt_rgba.h; sourceTree = ""; }; + 8A45C841075AC1BFA992A7E1 /* gfx_trans_affine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_trans_affine.h; sourceTree = ""; }; + 8FD510148E865231CE3829B1 /* gfx_blur.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_blur.cpp; sourceTree = ""; }; + 91B6F546FF8064ED0A7AC242 /* geometry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = geometry.h; sourceTree = ""; }; + 927FF2E54364B5778709C33B /* configs.gypi */ = {isa = PBXFileReference; lastKnownFileType = text; name = configs.gypi; path = build/configs.gypi; sourceTree = ""; }; + 97254BE783DBAEC4D908E3A0 /* gfx_raster_adapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_raster_adapter.h; sourceTree = ""; }; + 996CE52288C635376FC63DEF /* device.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = device.cpp; sourceTree = ""; }; + 9995225561CB3F9FAD1CCAD7 /* picasso.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso.h; sourceTree = ""; }; + 9B1BA38B8B8153284ED81EFE /* gfx_sqrt_tables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_sqrt_tables.cpp; sourceTree = ""; }; + 9D289D1B5D077E5553950909 /* gfx_math.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_math.h; sourceTree = ""; }; + 9D8CD5F6362F3A4A8BBB4538 /* picasso_global.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_global.h; sourceTree = ""; }; + 9EBD147E61D9898E88E4063B /* picasso.gyp */ = {isa = PBXFileReference; lastKnownFileType = text; path = picasso.gyp; sourceTree = ""; }; + A0EB0A1836225B6EFC6A7954 /* gfx_painter_helper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_painter_helper.h; sourceTree = ""; }; + A1AB4642BE8629199D563B51 /* picasso_font_api.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_font_api.cpp; sourceTree = ""; }; + A45DF4B3B6C5FA2B6B2C71B5 /* graphic_helper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = graphic_helper.h; sourceTree = ""; }; + A74176B5B231DFA5CC48C360 /* pconfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pconfig.h; sourceTree = ""; }; + A8B08706EDC7C673AB5052A5 /* gfx_font_adapter_dummy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_font_adapter_dummy.cpp; sourceTree = ""; }; + A8F67150DE73844D447F65A2 /* picasso_painter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_painter.cpp; sourceTree = ""; }; + AE4C09452DAA2030E890C5A0 /* vertex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vertex.h; sourceTree = ""; }; + B08D85A47B492D7382690046 /* shared.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = shared.h; sourceTree = ""; }; + B111E97046C7B82A3719A8E9 /* gfx_gradient_adapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_gradient_adapter.h; sourceTree = ""; }; + B24E310B261EA6B31DF4894E /* picasso_private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_private.h; sourceTree = ""; }; + B592BE8F0593EF3E8FC440E5 /* gfx_span_image_filters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_span_image_filters.h; sourceTree = ""; }; + B6BFE32B8F18C99E73934715 /* memory_manager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = memory_manager.h; sourceTree = ""; }; + B6DFB93C925595CF5CB3BB5A /* gfx_rendering_buffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_rendering_buffer.cpp; sourceTree = ""; }; + B7C57AF967C21EF1A15357E1 /* picasso_objects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_objects.h; sourceTree = ""; }; + BC23DD83941A9489AA9A3BD0 /* picasso_rendering_buffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_rendering_buffer.h; sourceTree = ""; }; + BD39108BC3125E1462F1F6CC /* gfx_blur.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_blur.h; sourceTree = ""; }; + C0B0558601CC5EA7FF82A923 /* picasso_rendering_buffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_rendering_buffer.cpp; sourceTree = ""; }; + C388112DF20A9A55E861E33F /* gfx_image_accessors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_image_accessors.h; sourceTree = ""; }; + C42B162250024B8B7F9B2F79 /* gfx_pixfmt_rgb16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_pixfmt_rgb16.h; sourceTree = ""; }; + C51CEA37076A91E8BEA0D5DD /* src.gypi */ = {isa = PBXFileReference; lastKnownFileType = text; name = src.gypi; path = src/src.gypi; sourceTree = ""; }; + C89103ECF5D2DE1F8A6D9053 /* picasso_painter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = picasso_painter.h; sourceTree = ""; }; + C90AB4019CFCF89230ED2B64 /* picasso_gradient_api.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_gradient_api.cpp; sourceTree = ""; }; + CBA0A52413AE85927BDD4237 /* gfx_renderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_renderer.h; sourceTree = ""; }; + CCDDA516AA5561D0E3361B2A /* gfx_span_generator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_span_generator.h; sourceTree = ""; }; + CF7C697683945CB205305B00 /* gfx_raster_adapter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_raster_adapter.cpp; sourceTree = ""; }; + D1721D1FC301B642F360EF26 /* fastcopy_sse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fastcopy_sse.h; sourceTree = ""; }; + D6D39B97684F968D27D87F54 /* gfx_font_adapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_font_adapter.h; sourceTree = ""; }; + D8D196A22F72253A1C52F5AD /* picasso_mask.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_mask.cpp; sourceTree = ""; }; + DA3142B6E023A11ED90345A8 /* interfaces.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = interfaces.h; sourceTree = ""; }; + DD2090E361A412AC76F0AA68 /* clipper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = clipper.h; sourceTree = ""; }; + E6D6746BDF7C60530DCE54EA /* convert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = convert.h; sourceTree = ""; }; + E71D779D444B2F403917261D /* platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; }; + E91DE94978EC61E31E51E0BF /* graphic_path.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = graphic_path.cpp; sourceTree = ""; }; + EA67023DCE44E6E8798DAF18 /* gfx_pixfmt_rgb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_pixfmt_rgb.h; sourceTree = ""; }; + EF597D9EF2F180D04F7395F8 /* gfx_scanline_storage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_scanline_storage.h; sourceTree = ""; }; + F1901AB71DB708E0B7DF614A /* gfx_mask_layer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_mask_layer.h; sourceTree = ""; }; + F20E7A7C07E84DC6A1892D00 /* gfx_image_filters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_image_filters.h; sourceTree = ""; }; + F8E4335EECD4FB27937D1F67 /* gfx_line_generator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_line_generator.h; sourceTree = ""; }; + F9AAE6595EB1D0D2E34DBD94 /* fastcopy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fastcopy.h; sourceTree = ""; }; + FA193F786370F63A7098D4ED /* libpicasso2_sw.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libpicasso2_sw.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + FBBC089B6D57E494F6DEF959 /* gfx_pixfmt_wrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_pixfmt_wrapper.h; sourceTree = ""; }; + FD0E3C0821A5EE1389C78BE0 /* picasso_font.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = picasso_font.cpp; sourceTree = ""; }; + FF3DBDB063F8FC12E08BB4FE /* curve.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = curve.cpp; sourceTree = ""; }; + FF827E1B3D2B33A471B9B38B /* data_vector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = data_vector.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 61106F7FAFFA0E118144408B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 040394DC820C5E137AC8834B /* include */ = { + isa = PBXGroup; + children = ( + DD2090E361A412AC76F0AA68 /* clipper.h */, + 87C3954F350B58A07CD52914 /* color_type.h */, + 13D22918E787FE192719FD03 /* common.h */, + E6D6746BDF7C60530DCE54EA /* convert.h */, + 80D41ED92196159AD2393C62 /* curve.h */, + FF827E1B3D2B33A471B9B38B /* data_vector.h */, + 363C35CDA7EBE0ED1FB5F379 /* device.h */, + F9AAE6595EB1D0D2E34DBD94 /* fastcopy.h */, + 91B6F546FF8064ED0A7AC242 /* geometry.h */, + 23C2D14C906271FDBFF21079 /* graphic_base.h */, + A45DF4B3B6C5FA2B6B2C71B5 /* graphic_helper.h */, + 60F3AA3723616698788C623F /* graphic_path.h */, + DA3142B6E023A11ED90345A8 /* interfaces.h */, + 48130BCC8617F3108E4B9347 /* math_type.h */, + B6BFE32B8F18C99E73934715 /* memory_manager.h */, + E71D779D444B2F403917261D /* platform.h */, + 6D620BE196B605B2655EE6E1 /* refptr.h */, + B08D85A47B492D7382690046 /* shared.h */, + AE4C09452DAA2030E890C5A0 /* vertex.h */, + 6F50809418CB9D9571410E1A /* vertex_dist.h */, + ); + path = include; + sourceTree = ""; + }; + 0B2489F2D31D70A43C29C6E5 /* include */ = { + isa = PBXGroup; + children = ( + 9995225561CB3F9FAD1CCAD7 /* picasso.h */, + ); + path = include; + sourceTree = ""; + }; + 3739A589E0E02DB49BA30409 = { + isa = PBXGroup; + children = ( + 86A4D94DB99CDC0C3C68A67B /* Source */, + 5C03B766294B6B2E7EE9E2DE /* Products */, + 6F8F68F236F763F873C279AA /* Build */, + ); + sourceTree = ""; + }; + 5C03B766294B6B2E7EE9E2DE /* Products */ = { + isa = PBXGroup; + children = ( + FA193F786370F63A7098D4ED /* libpicasso2_sw.dylib */, + ); + name = Products; + sourceTree = ""; + }; + 6F8F68F236F763F873C279AA /* Build */ = { + isa = PBXGroup; + children = ( + 927FF2E54364B5778709C33B /* configs.gypi */, + 7C861F2D6CD46564E2798741 /* defines.gypi */, + 9EBD147E61D9898E88E4063B /* picasso.gyp */, + C51CEA37076A91E8BEA0D5DD /* src.gypi */, + ); + name = Build; + sourceTree = ""; + }; + 86A4D94DB99CDC0C3C68A67B /* Source */ = { + isa = PBXGroup; + children = ( + D19E764BE94A49C1F6F40375 /* build */, + 0B2489F2D31D70A43C29C6E5 /* include */, + 8C0BA2BA28CE0D5D43BC6B06 /* src */, + ); + name = Source; + sourceTree = ""; + }; + 8C0BA2BA28CE0D5D43BC6B06 /* src */ = { + isa = PBXGroup; + children = ( + F4B41F88274FC1FC21CFA491 /* core */, + FD8AC5BC406B81C7DC800E15 /* gfx */, + 040394DC820C5E137AC8834B /* include */, + AB71687EC3B82BC6F27C2714 /* simd */, + 6ECA3B7F68DB800AD7147B56 /* picasso_api.cpp */, + 3681BD76380057BB28DCB236 /* picasso_canvas.cpp */, + FD0E3C0821A5EE1389C78BE0 /* picasso_font.cpp */, + 849F80A04861BC2C74E25D59 /* picasso_font.h */, + A1AB4642BE8629199D563B51 /* picasso_font_api.cpp */, + 20437C06DC87ED87483A147A /* picasso_font_cache.h */, + 9D8CD5F6362F3A4A8BBB4538 /* picasso_global.h */, + 701105EFB161A4D37F8699D7 /* picasso_gradient.cpp */, + 4811C7228147797DB2BDD985 /* picasso_gradient.h */, + C90AB4019CFCF89230ED2B64 /* picasso_gradient_api.cpp */, + 4CBAF92E5633CB8C7DE8CF1E /* picasso_image.cpp */, + D8D196A22F72253A1C52F5AD /* picasso_mask.cpp */, + 004879BC37442F32801A839E /* picasso_mask.h */, + 15E6AE30B6779A688F8DDBBB /* picasso_mask_api.cpp */, + 06D31D60ACCFFE40A50F6A4E /* picasso_matrix.cpp */, + 13F279B856E11936CA534E17 /* picasso_matrix.h */, + 4E86F0A450CD0277401DC2F7 /* picasso_matrix_api.cpp */, + B7C57AF967C21EF1A15357E1 /* picasso_objects.h */, + A8F67150DE73844D447F65A2 /* picasso_painter.cpp */, + C89103ECF5D2DE1F8A6D9053 /* picasso_painter.h */, + 2FDF22C98620BFC77F8B595C /* picasso_path.cpp */, + 676F2429E32C356FC6BAA00E /* picasso_pattern.cpp */, + B24E310B261EA6B31DF4894E /* picasso_private.h */, + 249AFBE781AD8B82C0C8D378 /* picasso_raster_adapter.cpp */, + 7556745A189CBA6B792483EC /* picasso_raster_adapter.h */, + C0B0558601CC5EA7FF82A923 /* picasso_rendering_buffer.cpp */, + BC23DD83941A9489AA9A3BD0 /* picasso_rendering_buffer.h */, + ); + path = src; + sourceTree = ""; + }; + AB71687EC3B82BC6F27C2714 /* simd */ = { + isa = PBXGroup; + children = ( + D1721D1FC301B642F360EF26 /* fastcopy_sse.h */, + ); + path = simd; + sourceTree = ""; + }; + D19E764BE94A49C1F6F40375 /* build */ = { + isa = PBXGroup; + children = ( + A74176B5B231DFA5CC48C360 /* pconfig.h */, + ); + path = build; + sourceTree = ""; + }; + F4B41F88274FC1FC21CFA491 /* core */ = { + isa = PBXGroup; + children = ( + 2D7AB9B21A68C18D9113A8CA /* clipper.cpp */, + FF3DBDB063F8FC12E08BB4FE /* curve.cpp */, + 996CE52288C635376FC63DEF /* device.cpp */, + E91DE94978EC61E31E51E0BF /* graphic_path.cpp */, + ); + path = core; + sourceTree = ""; + }; + FD8AC5BC406B81C7DC800E15 /* gfx */ = { + isa = PBXGroup; + children = ( + 8FD510148E865231CE3829B1 /* gfx_blur.cpp */, + BD39108BC3125E1462F1F6CC /* gfx_blur.h */, + 31CFDDBAA6515D828AB026A0 /* gfx_device.cpp */, + 51706059B6697AE450DD201D /* gfx_device.h */, + D6D39B97684F968D27D87F54 /* gfx_font_adapter.h */, + A8B08706EDC7C673AB5052A5 /* gfx_font_adapter_dummy.cpp */, + 2B39A491F231F13ECC003A8B /* gfx_font_adapter_freetype2.cpp */, + 4482407F78C650C24B12033E /* gfx_font_adapter_win32.cpp */, + 6905217C5A0180250163CE81 /* gfx_font_load_freetype2.cpp */, + 352740D1651F577EAEE9016F /* gfx_gamma_function.h */, + 3C1AF56B8A6138C3FB9E3C45 /* gfx_gradient_adapter.cpp */, + B111E97046C7B82A3719A8E9 /* gfx_gradient_adapter.h */, + C388112DF20A9A55E861E33F /* gfx_image_accessors.h */, + 1F35E4E71736B64C3CE4ED29 /* gfx_image_filters.cpp */, + F20E7A7C07E84DC6A1892D00 /* gfx_image_filters.h */, + F8E4335EECD4FB27937D1F67 /* gfx_line_generator.h */, + F1901AB71DB708E0B7DF614A /* gfx_mask_layer.h */, + 9D289D1B5D077E5553950909 /* gfx_math.h */, + 09C030947D0AA9EF20859EE5 /* gfx_painter.h */, + A0EB0A1836225B6EFC6A7954 /* gfx_painter_helper.h */, + EA67023DCE44E6E8798DAF18 /* gfx_pixfmt_rgb.h */, + C42B162250024B8B7F9B2F79 /* gfx_pixfmt_rgb16.h */, + 882EA1843C9311AC26510213 /* gfx_pixfmt_rgba.h */, + FBBC089B6D57E494F6DEF959 /* gfx_pixfmt_wrapper.h */, + CF7C697683945CB205305B00 /* gfx_raster_adapter.cpp */, + 97254BE783DBAEC4D908E3A0 /* gfx_raster_adapter.h */, + 369AB2F9E387FE83A7B8CEA9 /* gfx_rasterizer_cell.h */, + 14B5E05D018CFA3659AAC6CF /* gfx_rasterizer_scanline.h */, + CBA0A52413AE85927BDD4237 /* gfx_renderer.h */, + B6DFB93C925595CF5CB3BB5A /* gfx_rendering_buffer.cpp */, + 46CF22F1BC599ECDBAA5F552 /* gfx_rendering_buffer.h */, + 1624FCDBC61472F4D37A2204 /* gfx_scanline.h */, + 843E08995D1ACF16E8855062 /* gfx_scanline_renderer.h */, + EF597D9EF2F180D04F7395F8 /* gfx_scanline_storage.h */, + CCDDA516AA5561D0E3361B2A /* gfx_span_generator.h */, + B592BE8F0593EF3E8FC440E5 /* gfx_span_image_filters.h */, + 9B1BA38B8B8153284ED81EFE /* gfx_sqrt_tables.cpp */, + 8A45C841075AC1BFA992A7E1 /* gfx_trans_affine.h */, + ); + path = gfx; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C030DC1E16BBE1AEFD9FC033 /* picasso2_sw */ = { + isa = PBXNativeTarget; + buildConfigurationList = 806C1954CE950A4F564529B8 /* Build configuration list for PBXNativeTarget "picasso2_sw" */; + buildPhases = ( + B8952FFF4C60B6EEB1D201FA /* Sources */, + 61106F7FAFFA0E118144408B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = picasso2_sw; + productName = picasso2_sw; + productReference = FA193F786370F63A7098D4ED /* libpicasso2_sw.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BB57EDAB656476FCA0B57003 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + }; + buildConfigurationList = EE9341BBE040F2DA32FF5B03 /* Build configuration list for PBXProject "picasso" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 3739A589E0E02DB49BA30409; + projectDirPath = ..; + projectRoot = ""; + targets = ( + C030DC1E16BBE1AEFD9FC033 /* picasso2_sw */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + B8952FFF4C60B6EEB1D201FA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5FA768DD0E7925A2501AB58F /* curve.cpp in Sources */, + 6B53321482CB993CB79E033E /* device.cpp in Sources */, + 3C49105A95331BF3A806715B /* graphic_path.cpp in Sources */, + E1DBEDE43C4D5EEBAC26CFA3 /* clipper.cpp in Sources */, + 1A59CB70892359AA53A6232A /* gfx_blur.cpp in Sources */, + 25D86E89FA143DF1F68A6B8E /* gfx_device.cpp in Sources */, + 431D22F42BC7B4B572E095B5 /* gfx_font_adapter_freetype2.cpp in Sources */, + 835B8B30536B063CAB4E805D /* gfx_font_adapter_win32.cpp in Sources */, + AC090489487FC36E2C2177B3 /* gfx_font_adapter_dummy.cpp in Sources */, + 99EB3154A2D1DABD8A010F49 /* gfx_font_load_freetype2.cpp in Sources */, + 2B2A807C0196F273D99397BD /* gfx_gradient_adapter.cpp in Sources */, + AA1554FD438003A3B9889541 /* gfx_raster_adapter.cpp in Sources */, + 27BF9492C32CF064F3AE9755 /* gfx_rendering_buffer.cpp in Sources */, + D111AA1D4834A4F93A39505E /* gfx_sqrt_tables.cpp in Sources */, + 9D9B3AEC4CD643AEDAB68939 /* gfx_image_filters.cpp in Sources */, + 341F13A7B50AFA60B1A1E489 /* picasso_api.cpp in Sources */, + 28F1CECE83E00ADA6FAD1764 /* picasso_canvas.cpp in Sources */, + 6F942FF749500561D6E9E998 /* picasso_font_api.cpp in Sources */, + C4EAC307689092AB8276213A /* picasso_font.cpp in Sources */, + FE8776680BFBF57FD2525070 /* picasso_gradient_api.cpp in Sources */, + 29F277CF15934F38CC15FC0D /* picasso_gradient.cpp in Sources */, + 4FDB8E88C62AA825E8874EC8 /* picasso_image.cpp in Sources */, + BF83244E1CC969D943A3A2D2 /* picasso_mask_api.cpp in Sources */, + 7BCC4683A365F5484A44A13B /* picasso_mask.cpp in Sources */, + 16016407870B7175E22C58E3 /* picasso_matrix_api.cpp in Sources */, + B92D74D4A633F7C699F5F799 /* picasso_matrix.cpp in Sources */, + 33C908CCF32C07D4A5637272 /* picasso_painter.cpp in Sources */, + 0EC23D2875F7CFC8A59E900D /* picasso_path.cpp in Sources */, + 4419462AB830D6F7D4AB2531 /* picasso_pattern.cpp in Sources */, + C391DF2A97F4BCFD74D420DC /* picasso_raster_adapter.cpp in Sources */, + 797C8774DBE0B43FB8791AAA /* picasso_rendering_buffer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5397B5F31E7CD4B1AEBA30C3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Release; + }; + 6BAC5BDB9263A746D696A196 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + DEAD_CODE_STRIPPING = NO; + ENABLE_TESTABILITY = YES; + EXECUTABLE_PREFIX = lib; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "\"EXPORT\"", + "\"ENABLE_SYSTEM_MALLOC=1\"", + "\"_DEBUG\"", + ); + GCC_UNROLL_LOOPS = NO; + HEADER_SEARCH_PATHS = ( + include, + build, + src/, + src/include, + src/simd, + src/gfx, + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = picasso2_sw; + }; + name = Debug; + }; + A663B8962FC23030F5F6DA23 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Debug; + }; + B84F10B906C6F2385D639000 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW = NO; + CLANG_ENABLE_CODE_COVERAGE = NO; + CLANG_ENABLE_OBJC_WEAK = YES; + DEAD_CODE_STRIPPING = YES; + ENABLE_TESTABILITY = NO; + EXECUTABLE_PREFIX = lib; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "\"EXPORT\"", + "\"ENABLE_SYSTEM_MALLOC=1\"", + "\"NDEBUG\"", + ); + GCC_UNROLL_LOOPS = YES; + HEADER_SEARCH_PATHS = ( + include, + build, + src/, + src/include, + src/simd, + src/gfx, + ); + LLVM_LTO = YES; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = picasso2_sw; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 806C1954CE950A4F564529B8 /* Build configuration list for PBXNativeTarget "picasso2_sw" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6BAC5BDB9263A746D696A196 /* Debug */, + B84F10B906C6F2385D639000 /* Release */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Debug; + }; + EE9341BBE040F2DA32FF5B03 /* Build configuration list for PBXProject "picasso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A663B8962FC23030F5F6DA23 /* Debug */, + 5397B5F31E7CD4B1AEBA30C3 /* Release */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = BB57EDAB656476FCA0B57003 /* Project object */; +} diff --git a/proj/picasso.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/proj/picasso.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/proj/picasso.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/proj/picasso.xcodeproj/project.xcworkspace/xcuserdata/jipeng.xcuserdatad/UserInterfaceState.xcuserstate b/proj/picasso.xcodeproj/project.xcworkspace/xcuserdata/jipeng.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..a76ef06 Binary files /dev/null and b/proj/picasso.xcodeproj/project.xcworkspace/xcuserdata/jipeng.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/proj/picasso.xcodeproj/xcuserdata/jipeng.xcuserdatad/xcschemes/xcschememanagement.plist b/proj/picasso.xcodeproj/xcuserdata/jipeng.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4c6b091 --- /dev/null +++ b/proj/picasso.xcodeproj/xcuserdata/jipeng.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + picasso2_sw.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/src/core/curve.cpp b/src/core/curve.cpp index 7c936be..cbaaa0e 100644 --- a/src/core/curve.cpp +++ b/src/core/curve.cpp @@ -10,7 +10,6 @@ namespace picasso { -const scalar curve_distance_epsilon = FLT_TO_SCALAR(1e-30f); const scalar curve_collinearity_epsilon = FLT_TO_SCALAR(1e-30f); const scalar curve_angle_tolerance_epsilon = FLT_TO_SCALAR(0.01f); diff --git a/src/gfx/gfx_font_adapter_dummy.cpp b/src/gfx/gfx_font_adapter_dummy.cpp new file mode 100644 index 0000000..8c2287a --- /dev/null +++ b/src/gfx/gfx_font_adapter_dummy.cpp @@ -0,0 +1,51 @@ +/* Picasso - a vector graphics library + * + * Copyright (C) 2019 Zhang Ji Peng + * Contact: onecoolx@gmail.com + */ + +#include +#include "common.h" +#include "convert.h" +#include "gfx_font_adapter.h" +#include "gfx_trans_affine.h" + +#if !defined(WIN32) && !ENABLE(FREE_TYPE2) + +// dummy font interface +namespace gfx { + +gfx_font_adapter::gfx_font_adapter(const char* name, int charset, scalar size, scalar weight, + bool italic, bool hint, bool flip, bool a, const abstract_trans_affine* mtx) { } +gfx_font_adapter::~gfx_font_adapter() { } +void gfx_font_adapter::active(void) { } +void gfx_font_adapter::deactive(void) { } +void gfx_font_adapter::add_kerning(unsigned int first, unsigned int second, scalar* x, scalar* y) { } +bool gfx_font_adapter::prepare_glyph(unsigned int code) { return false; } +void gfx_font_adapter::write_glyph_to(byte* buffer) { } +void* gfx_font_adapter::create_storage(byte* buf, unsigned int len, scalar x, scalar y) { return NULL; } +void gfx_font_adapter::destroy_storage(void*) { } +void gfx_font_adapter::translate_storage(void* storage, scalar x, scalar y) { } +scalar gfx_font_adapter::height(void) const { return 0; } +scalar gfx_font_adapter::ascent(void) const { return 0; } +scalar gfx_font_adapter::descent(void) const { return 0; } +scalar gfx_font_adapter::leading(void) const { return 0; } +unsigned int gfx_font_adapter::units_per_em(void) const { return 0; } +unsigned int gfx_font_adapter::glyph_index(void) const { return 0; } +unsigned int gfx_font_adapter::data_size(void) const { return 0; } +glyph_type gfx_font_adapter::data_type(void) const { return glyph_type_invalid; } +const rect& gfx_font_adapter::bounds(void) const { static rect r; return r; } +scalar gfx_font_adapter::advance_x(void) const { return 0; } +scalar gfx_font_adapter::advance_y(void) const { return 0; } + +} + +bool platform_font_init(void) +{ + return true; +} + +void platform_font_shutdown(void) +{ +} +#endif diff --git a/src/include/common.h b/src/include/common.h index a027b85..31549b1 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -32,24 +32,4 @@ typedef long long int int64_t; // special types typedef uint8_t byte; -// aligned attribute -#if COMPILER(MSVC) -#define ALIGNED(x) __declspec(align(x)) -#elif COMPILER(GCC) -#define ALIGNED(x) __attribute__((aligned((x)))) -#else -#define ALIGNED(x) -#endif - -// force inline -#if COMPILER(MSVC) -#define _FORCE_INLINE_ __forceinline -#elif COMPILER(GCC) -#if __GNUC__ == 2 && __GNUC_MINOR__ < 96 -#define _FORCE_INLINE_ inline -#else -#define _FORCE_INLINE_ __attribute__((always_inline)) -#endif -#endif - #endif /*_COMMON_H_*/ diff --git a/src/include/memory_manager.h b/src/include/memory_manager.h index 04ddc13..95dcd8c 100644 --- a/src/include/memory_manager.h +++ b/src/include/memory_manager.h @@ -27,10 +27,10 @@ #undef new #undef delete -inline void* operator new (size_t size) { return mem_malloc(size); } -inline void* operator new[] (size_t size) { return mem_malloc(size); } -inline void operator delete (void* p) { mem_free(p); } -inline void operator delete[] (void* p) { mem_free(p); } +MAYBE_INLINE void* operator new (size_t size) { return mem_malloc(size); } +MAYBE_INLINE void* operator new[] (size_t size) { return mem_malloc(size); } +MAYBE_INLINE void operator delete (void* p) { mem_free(p); } +MAYBE_INLINE void operator delete[] (void* p) { mem_free(p); } #endif /*ENABLE(SYSTEM_MALLOC)*/ diff --git a/src/include/platform.h b/src/include/platform.h index b3723ff..eff0d04 100644 --- a/src/include/platform.h +++ b/src/include/platform.h @@ -42,7 +42,6 @@ #define COMPILER_CLANG 1 #endif - /* CPU(X86) - i386 / x86 32-bit */ #if defined(__i386__) \ || defined(i386) \ @@ -103,4 +102,30 @@ #define unlikely(X) (X) #endif +// aligned attribute +#if COMPILER(MSVC) +#define ALIGNED(x) __declspec(align(x)) +#elif COMPILER(GCC) +#define ALIGNED(x) __attribute__((aligned((x)))) +#else +#define ALIGNED(x) +#endif + +// force inline +#if COMPILER(MSVC) +#define _FORCE_INLINE_ __forceinline +#elif COMPILER(GCC) +#if __GNUC__ == 2 && __GNUC_MINOR__ < 96 +#define _FORCE_INLINE_ inline +#else +#define _FORCE_INLINE_ __attribute__((always_inline)) +#endif +#endif + +#if COMPILER(CLANG) +#define MAYBE_INLINE +#else +#define MAYBE_INLINE inline +#endif + #endif /*_PLATFORM_H_*/ diff --git a/src/src.gypi b/src/src.gypi index 3235a72..ab6a4fa 100644 --- a/src/src.gypi +++ b/src/src.gypi @@ -35,6 +35,7 @@ 'gfx/gfx_font_adapter.h', 'gfx/gfx_font_adapter_freetype2.cpp', 'gfx/gfx_font_adapter_win32.cpp', + 'gfx/gfx_font_adapter_dummy.cpp', 'gfx/gfx_font_load_freetype2.cpp', 'gfx/gfx_gamma_function.h', 'gfx/gfx_gradient_adapter.cpp',