| Index: skia/config/SkUserConfig.h
|
| diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2f13fda7b50405bba4380cb313c85d59411c2d51
|
| --- /dev/null
|
| +++ b/skia/config/SkUserConfig.h
|
| @@ -0,0 +1,268 @@
|
| +/*
|
| + * Copyright (C) 2006 The Android Open Source Project
|
| + *
|
| + * Licensed under the Apache License, Version 2.0 (the "License");
|
| + * you may not use this file except in compliance with the License.
|
| + * You may obtain a copy of the License at
|
| + *
|
| + * http://www.apache.org/licenses/LICENSE-2.0
|
| + *
|
| + * Unless required by applicable law or agreed to in writing, software
|
| + * distributed under the License is distributed on an "AS IS" BASIS,
|
| + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| + * See the License for the specific language governing permissions and
|
| + * limitations under the License.
|
| + */
|
| +
|
| +#ifndef SKIA_CONFIG_SKUSERCONFIG_H_
|
| +#define SKIA_CONFIG_SKUSERCONFIG_H_
|
| +
|
| +/* SkTypes.h, the root of the public header files, does the following trick:
|
| +
|
| + #include <SkPreConfig.h>
|
| + #include <SkUserConfig.h>
|
| + #include <SkPostConfig.h>
|
| +
|
| + SkPreConfig.h runs first, and it is responsible for initializing certain
|
| + skia defines.
|
| +
|
| + SkPostConfig.h runs last, and its job is to just check that the final
|
| + defines are consistent (i.e. that we don't have mutually conflicting
|
| + defines).
|
| +
|
| + SkUserConfig.h (this file) runs in the middle. It gets to change or augment
|
| + the list of flags initially set in preconfig, and then postconfig checks
|
| + that everything still makes sense.
|
| +
|
| + Below are optional defines that add, subtract, or change default behavior
|
| + in Skia. Your port can locally edit this file to enable/disable flags as
|
| + you choose, or these can be delared on your command line (i.e. -Dfoo).
|
| +
|
| + By default, this include file will always default to having all of the flags
|
| + commented out, so including it will have no effect.
|
| +*/
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| +/* Skia has lots of debug-only code. Often this is just null checks or other
|
| + parameter checking, but sometimes it can be quite intrusive (e.g. check that
|
| + each 32bit pixel is in premultiplied form). This code can be very useful
|
| + during development, but will slow things down in a shipping product.
|
| +
|
| + By default, these mutually exclusive flags are defined in SkPreConfig.h,
|
| + based on the presence or absence of NDEBUG, but that decision can be changed
|
| + here.
|
| + */
|
| +// #define SK_DEBUG
|
| +// #define SK_RELEASE
|
| +
|
| +// #ifdef DCHECK_ALWAYS_ON
|
| +// #undef SK_RELEASE
|
| +// #define SK_DEBUG
|
| +// #endif
|
| +
|
| +/* If, in debugging mode, Skia needs to stop (presumably to invoke a debugger)
|
| + it will call SK_CRASH(). If this is not defined it, it is defined in
|
| + SkPostConfig.h to write to an illegal address
|
| + */
|
| +// #define SK_CRASH() *(int *)(uintptr_t)0 = 0
|
| +
|
| +/* preconfig will have attempted to determine the endianness of the system,
|
| + but you can change these mutually exclusive flags here.
|
| + */
|
| +// #define SK_CPU_BENDIAN
|
| +// #define SK_CPU_LENDIAN
|
| +
|
| +/* If zlib is available and you want to support the flate compression
|
| + algorithm (used in PDF generation), define SK_ZLIB_INCLUDE to be the
|
| + include path.
|
| + */
|
| +// #define SK_ZLIB_INCLUDE <zlib.h>
|
| +
|
| +/* Define this to allow PDF scalars above 32k. The PDF/A spec doesn't allow
|
| + them, but modern PDF interpreters should handle them just fine.
|
| + */
|
| +// #define SK_ALLOW_LARGE_PDF_SCALARS
|
| +
|
| +/* Define this to provide font subsetter for font subsetting when generating
|
| + PDF documents.
|
| + */
|
| +// #define SK_SFNTLY_SUBSETTER \
|
| +// "third_party/sfntly/src/cpp/src/sample/chromium/font_subsetter.h"
|
| +
|
| +/* To write debug messages to a console, skia will call SkDebugf(...) following
|
| + printf conventions (e.g. const char* format, ...). If you want to redirect
|
| + this to something other than printf, define yours here
|
| + */
|
| +// #define SkDebugf(...) MyFunction(__VA_ARGS__)
|
| +
|
| +/* If SK_DEBUG is defined, then you can optionally define SK_SUPPORT_UNITTEST
|
| + which will run additional self-tests at startup. These can take a long time,
|
| + so this flag is optional.
|
| + */
|
| +#ifdef SK_DEBUG
|
| +#define SK_SUPPORT_UNITTEST
|
| +#endif
|
| +
|
| +/* If cross process SkPictureImageFilters are not explicitly enabled then
|
| + they are always disabled.
|
| + */
|
| +#ifndef SK_ALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS
|
| +#ifndef SK_DISALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS
|
| +#define SK_DISALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS
|
| +#endif
|
| +#endif
|
| +
|
| +/* If your system embeds skia and has complex event logging, define this
|
| + symbol to name a file that maps the following macros to your system's
|
| + equivalents:
|
| + SK_TRACE_EVENT0(event)
|
| + SK_TRACE_EVENT1(event, name1, value1)
|
| + SK_TRACE_EVENT2(event, name1, value1, name2, value2)
|
| + src/utils/SkDebugTrace.h has a trivial implementation that writes to
|
| + the debug output stream. If SK_USER_TRACE_INCLUDE_FILE is not defined,
|
| + SkTrace.h will define the above three macros to do nothing.
|
| +*/
|
| +#undef SK_USER_TRACE_INCLUDE_FILE
|
| +
|
| +// ===== Begin Chrome-specific definitions =====
|
| +
|
| +#define SK_SCALAR_IS_FLOAT
|
| +#undef SK_SCALAR_IS_FIXED
|
| +
|
| +#define SK_MSCALAR_IS_FLOAT
|
| +#undef SK_MSCALAR_IS_DOUBLE
|
| +
|
| +#define GR_MAX_OFFSCREEN_AA_DIM 512
|
| +
|
| +// Log the file and line number for assertions.
|
| +#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, false, __VA_ARGS__)
|
| +SK_API void SkDebugf_FileLine(const char* file,
|
| + int line,
|
| + bool fatal,
|
| + const char* format,
|
| + ...);
|
| +
|
| +// Marking the debug print as "fatal" will cause a debug break, so we don't need
|
| +// a separate crash call here.
|
| +#define SK_DEBUGBREAK(cond) \
|
| + do { \
|
| + if (!(cond)) { \
|
| + SkDebugf_FileLine(__FILE__, __LINE__, true, \
|
| + "%s:%d: failed assertion \"%s\"\n", __FILE__, \
|
| + __LINE__, #cond); \
|
| + } \
|
| + } while (false)
|
| +
|
| +#if !defined(ANDROID) // On Android, we use the skia default settings.
|
| +#define SK_A32_SHIFT 24
|
| +#define SK_R32_SHIFT 16
|
| +#define SK_G32_SHIFT 8
|
| +#define SK_B32_SHIFT 0
|
| +#endif
|
| +
|
| +#if defined(SK_BUILD_FOR_WIN32)
|
| +
|
| +#define SK_BUILD_FOR_WIN
|
| +
|
| +// Skia uses this deprecated bzero function to fill zeros into a string.
|
| +#define bzero(str, len) memset(str, 0, len)
|
| +
|
| +#elif defined(SK_BUILD_FOR_MAC)
|
| +
|
| +#define SK_CPU_LENDIAN
|
| +#undef SK_CPU_BENDIAN
|
| +
|
| +#elif defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_ANDROID)
|
| +
|
| +// Prefer FreeType's emboldening algorithm to Skia's
|
| +// TODO: skia used to just use hairline, but has improved since then, so
|
| +// we should revisit this choice...
|
| +#define SK_USE_FREETYPE_EMBOLDEN
|
| +
|
| +#if defined(SK_BUILD_FOR_UNIX) && defined(SK_CPU_BENDIAN)
|
| +// Above we set the order for ARGB channels in registers. I suspect that, on
|
| +// big endian machines, you can keep this the same and everything will work.
|
| +// The in-memory order will be different, of course, but as long as everything
|
| +// is reading memory as words rather than bytes, it will all work. However, if
|
| +// you find that colours are messed up I thought that I would leave a helpful
|
| +// locator for you. Also see the comments in
|
| +// base/gfx/bitmap_platform_device_linux.h
|
| +#error Read the comment at this location
|
| +#endif
|
| +
|
| +#endif
|
| +
|
| +// The default crash macro writes to badbeef which can cause some strange
|
| +// problems. Instead, pipe this through to the logging function as a fatal
|
| +// assertion.
|
| +#define SK_CRASH() SkDebugf_FileLine(__FILE__, __LINE__, true, "SK_CRASH")
|
| +
|
| +// These flags are no longer defined in Skia, but we have them (temporarily)
|
| +// until we update our call-sites (typically these are for API changes).
|
| +//
|
| +// Remove these as we update our sites.
|
| +//
|
| +#ifndef SK_SUPPORT_LEGACY_GETTOPDEVICE
|
| +#define SK_SUPPORT_LEGACY_GETTOPDEVICE
|
| +#endif
|
| +
|
| +#ifndef SK_SUPPORT_LEGACY_GETDEVICE
|
| +#define SK_SUPPORT_LEGACY_GETDEVICE
|
| +#endif
|
| +
|
| +// Workaround for poor anisotropic mipmap quality,
|
| +// pending Skia ripmap support.
|
| +// (https://bugs.chromium.org/p/skia/issues/detail?id=4863)
|
| +#ifndef SK_SUPPORT_LEGACY_ANISOTROPIC_MIPMAP_SCALE
|
| +#define SK_SUPPORT_LEGACY_ANISOTROPIC_MIPMAP_SCALE
|
| +#endif
|
| +
|
| +#ifndef SK_SUPPORT_LEGACY_REFENCODEDDATA_NOCTX
|
| +#define SK_SUPPORT_LEGACY_REFENCODEDDATA_NOCTX
|
| +#endif
|
| +
|
| +#ifndef SK_IGNORE_ETC1_SUPPORT
|
| +#define SK_IGNORE_ETC1_SUPPORT
|
| +#endif
|
| +
|
| +#ifndef SK_IGNORE_GPU_DITHER
|
| +#define SK_IGNORE_GPU_DITHER
|
| +#endif
|
| +
|
| +#ifndef SK_SUPPORT_LEGACY_EVAL_CUBIC
|
| +#define SK_SUPPORT_LEGACY_EVAL_CUBIC
|
| +#endif
|
| +
|
| +///////////////////////// Imported from BUILD.gn and skia_common.gypi
|
| +
|
| +/* In some places Skia can use static initializers for global initialization,
|
| + * or fall back to lazy runtime initialization. Chrome always wants the latter.
|
| + */
|
| +#define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0
|
| +
|
| +/* This flag forces Skia not to use typographic metrics with GDI.
|
| + */
|
| +#define SK_GDI_ALWAYS_USE_TEXTMETRICS_FOR_FONT_METRICS
|
| +
|
| +#define SK_IGNORE_BLURRED_RRECT_OPT
|
| +#define SK_USE_DISCARDABLE_SCALEDIMAGECACHE
|
| +#define SK_WILL_NEVER_DRAW_PERSPECTIVE_TEXT
|
| +
|
| +#define SK_ATTR_DEPRECATED SK_NOTHING_ARG1
|
| +#define SK_ENABLE_INST_COUNT 0
|
| +#define GR_GL_CUSTOM_SETUP_HEADER "GrGLConfig_chrome.h"
|
| +
|
| +// Blink layout tests are baselined to Clang optimizing through the UB in
|
| +// SkDivBits.
|
| +#define SK_SUPPORT_LEGACY_DIVBITS_UB
|
| +
|
| +// mtklein's fiddling with Src / SrcOver. Will rebaseline these only once when
|
| +// done.
|
| +#define SK_SUPPORT_LEGACY_X86_BLITS
|
| +
|
| +#define SK_DISABLE_TILE_IMAGE_FILTER_OPTIMIZATION
|
| +
|
| +// ===== End Chrome-specific definitions =====
|
| +
|
| +#endif // SKIA_CONFIG_SKUSERCONFIG_H_
|
|
|