15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (C) 2006 The Android Open Source Project 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you may not use this file except in compliance with the License. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You may obtain a copy of the License at 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See the License for the specific language governing permissions and 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * limitations under the License. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SkUserConfig_DEFINED 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SkUserConfig_DEFINED 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* SkTypes.h, the root of the public header files, does the following trick: 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #include <SkPreConfig.h> 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #include <SkUserConfig.h> 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #include <SkPostConfig.h> 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPreConfig.h runs first, and it is responsible for initializing certain 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) skia defines. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPostConfig.h runs last, and its job is to just check that the final 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defines are consistent (i.e. that we don't have mutually conflicting 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defines). 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkUserConfig.h (this file) runs in the middle. It gets to change or augment 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the list of flags initially set in preconfig, and then postconfig checks 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) that everything still makes sense. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Below are optional defines that add, subtract, or change default behavior 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) in Skia. Your port can locally edit this file to enable/disable flags as 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) you choose, or these can be delared on your command line (i.e. -Dfoo). 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) By default, this include file will always default to having all of the flags 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) commented out, so including it will have no effect. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/////////////////////////////////////////////////////////////////////////////// 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Scalars (the fractional value type in skia) can be implemented either as 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) floats or 16.16 integers (fixed). Exactly one of these two symbols must be 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_SCALAR_IS_FLOAT 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_SCALAR_IS_FIXED 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Somewhat independent of how SkScalar is implemented, Skia also wants to know 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if it can use floats at all. Naturally, if SK_SCALAR_IS_FLOAT is defined, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) then so muse SK_CAN_USE_FLOAT, but if scalars are fixed, SK_CAN_USE_FLOAT 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) can go either way. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_CAN_USE_FLOAT 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* For some performance-critical scalar operations, skia will optionally work 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) around the standard float operators if it knows that the CPU does not have 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) native support for floats. If your environment uses software floating point, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) define this flag. 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_SOFTWARE_FLOAT 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Skia has lots of debug-only code. Often this is just null checks or other 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parameter checking, but sometimes it can be quite intrusive (e.g. check that 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) each 32bit pixel is in premultiplied form). This code can be very useful 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) during development, but will slow things down in a shipping product. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) By default, these mutually exclusive flags are defined in SkPreConfig.h, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) based on the presence or absence of NDEBUG, but that decision can be changed 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) here. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_DEBUG 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_RELEASE 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If, in debugging mode, Skia needs to stop (presumably to invoke a debugger) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) it will call SK_CRASH(). If this is not defined it, it is defined in 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPostConfig.h to write to an illegal address 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_CRASH() *(int *)(uintptr_t)0 = 0 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* preconfig will have attempted to determine the endianness of the system, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) but you can change these mutually exclusive flags here. 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_CPU_BENDIAN 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_CPU_LENDIAN 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Some compilers don't support long long for 64bit integers. If yours does 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) not, define this to the appropriate type. 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SkLONGLONG int64_t 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Some envorinments do not suport writable globals (eek!). If yours does not, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) define this flag. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_USE_RUNTIME_GLOBALS 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If zlib is available and you want to support the flate compression 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) algorithm (used in PDF generation), define SK_ZLIB_INCLUDE to be the 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) include path. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_ZLIB_INCLUDE <zlib.h> 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_ZLIB_INCLUDE "third_party/zlib/zlib.h" 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Define this to allow PDF scalars above 32k. The PDF/A spec doesn't allow 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) them, but modern PDF interpreters should handle them just fine. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SK_ALLOW_LARGE_PDF_SCALARS 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Define this to provide font subsetter for font subsetting when generating 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PDF documents. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_SFNTLY_SUBSETTER \ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "third_party/sfntly/cpp/src/sample/chromium/font_subsetter.h" 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* To write debug messages to a console, skia will call SkDebugf(...) following 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf conventions (e.g. const char* format, ...). If you want to redirect 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this to something other than printf, define yours here 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//#define SkDebugf(...) MyFunction(__VA_ARGS__) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If SK_DEBUG is defined, then you can optionally define SK_SUPPORT_UNITTEST 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) which will run additional self-tests at startup. These can take a long time, 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) so this flag is optional. 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SK_DEBUG 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_SUPPORT_UNITTEST 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If your system embeds skia and has complex event logging, define this 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) symbol to name a file that maps the following macros to your system's 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) equivalents: 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SK_TRACE_EVENT0(event) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SK_TRACE_EVENT1(event, name1, value1) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SK_TRACE_EVENT2(event, name1, value1, name2, value2) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) src/utils/SkDebugTrace.h has a trivial implementation that writes to 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the debug output stream. If SK_USER_TRACE_INCLUDE_FILE is not defined, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkTrace.h will define the above three macros to do nothing. 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SK_USER_TRACE_INCLUDE_FILE 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ===== Begin Chrome-specific definitions ===== 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#ifdef SK_DEBUG 1561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#define SK_REF_CNT_MIXIN_INCLUDE "sk_ref_cnt_ext_debug.h" 1571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#else 1581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#define SK_REF_CNT_MIXIN_INCLUDE "sk_ref_cnt_ext_release.h" 1591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#endif 1601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_SCALAR_IS_FLOAT 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SK_SCALAR_IS_FIXED 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define SK_MSCALAR_IS_FLOAT 1654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#undef SK_MSCALAR_IS_DOUBLE 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GR_MAX_OFFSCREEN_AA_DIM 512 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Log the file and line number for assertions. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, false, __VA_ARGS__) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SK_API void SkDebugf_FileLine(const char* file, int line, bool fatal, 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* format, ...); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Marking the debug print as "fatal" will cause a debug break, so we don't need 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// a separate crash call here. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_DEBUGBREAK(cond) do { if (!(cond)) { \ 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkDebugf_FileLine(__FILE__, __LINE__, true, \ 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "%s:%d: failed assertion \"%s\"\n", \ 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __FILE__, __LINE__, #cond); } } while (false) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(ANDROID) // On Android, we use the skia default settings. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_A32_SHIFT 24 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_R32_SHIFT 16 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_G32_SHIFT 8 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_B32_SHIFT 0 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SK_BUILD_FOR_WIN32) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_BUILD_FOR_WIN 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Skia uses this deprecated bzero function to fill zeros into a string. 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define bzero(str, len) memset(str, 0, len) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(SK_BUILD_FOR_MAC) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_CPU_LENDIAN 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SK_CPU_BENDIAN 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(SK_BUILD_FOR_UNIX) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Prefer FreeType's emboldening algorithm to Skia's 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO: skia used to just use hairline, but has improved since then, so 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// we should revisit this choice... 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_USE_FREETYPE_EMBOLDEN 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SK_CPU_BENDIAN 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Above we set the order for ARGB channels in registers. I suspect that, on 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// big endian machines, you can keep this the same and everything will work. 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The in-memory order will be different, of course, but as long as everything 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// is reading memory as words rather than bytes, it will all work. However, if 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// you find that colours are messed up I thought that I would leave a helpful 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// locator for you. Also see the comments in 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// base/gfx/bitmap_platform_device_linux.h 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error Read the comment at this location 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The default crash macro writes to badbeef which can cause some strange 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// problems. Instead, pipe this through to the logging function as a fatal 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// assertion. 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SK_CRASH() SkDebugf_FileLine(__FILE__, __LINE__, true, "SK_CRASH") 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Uncomment the following line to forward skia trace events to Chrome 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// tracing. 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// #define SK_USER_TRACE_INCLUDE_FILE "skia/ext/skia_trace_shim.h" 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ===== End Chrome-specific definitions ===== 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 232