diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h index 41889aba94d491..c2c2605753a11e 100644 --- a/skia/config/SkUserConfig.h +++ b/skia/config/SkUserConfig.h @@ -1,27 +1,20 @@ + /* - * 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 + * Copyright 2006 The Android Open Source Project * - * 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. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + #ifndef SKIA_CONFIG_SKUSERCONFIG_H_ #define SKIA_CONFIG_SKUSERCONFIG_H_ /* SkTypes.h, the root of the public header files, does the following trick: - #include - #include - #include + #include "include/config/SkUserConfig.h" + #include "include/core/SkPostConfig.h" + #include "include/core/SkPreConfig.h" SkPreConfig.h runs first, and it is responsible for initializing certain skia defines. @@ -36,7 +29,7 @@ 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 declared on your command line (i.e. -Dfoo). + 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. @@ -56,6 +49,81 @@ //#define SK_DEBUG //#define SK_RELEASE +/* Skia has certain debug-only code that is extremely intensive even for debug + builds. This code is useful for diagnosing specific issues, but is not + generally applicable, therefore it must be explicitly enabled to avoid + the performance impact. By default these flags are undefined, but can be + enabled by uncommenting them below. + */ +//#define SK_DEBUG_GLYPH_CACHE +//#define SK_DEBUG_PATH + +/* 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 + +/* Most compilers use the same bit endianness for bit flags in a byte as the + system byte endianness, and this is the default. If for some reason this + needs to be overridden, specify which of the mutually exclusive flags to + use. For example, some atom processors in certain configurations have big + endian byte order but little endian bit orders. +*/ +//#define SK_UINT8_BITFIELD_BENDIAN +//#define SK_UINT8_BITFIELD_LENDIAN + + +/* 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__) + +/* + * To specify a different default font cache limit, define this. If this is + * undefined, skia will use a built-in value. + */ +//#define SK_DEFAULT_FONT_CACHE_LIMIT (1024 * 1024) + +/* + * To specify the default size of the image cache, undefine this and set it to + * the desired value (in bytes). SkGraphics.h as a runtime API to set this + * value as well. If this is undefined, a built-in value will be used. + */ +//#define SK_DEFAULT_IMAGE_CACHE_LIMIT (1024 * 1024) + +/* Define this to set the upper limit for text to support LCD. Values that + are very large increase the cost in the font cache and draw slower, without + improving readability. If this is undefined, Skia will use its default + value (e.g. 48) + */ +//#define SK_MAX_SIZE_FOR_LCDTEXT 48 + +/* Change the kN32_SkColorType ordering to BGRA to work in X windows. + */ +//#define SK_R32_SHIFT 16 + + +/* Determines whether to build code that supports the GPU backend. Some classes + that are not GPU-specific, such as SkShader subclasses, have optional code + that is used allows them to interact with the GPU backend. If you'd like to + omit this code set SK_SUPPORT_GPU to 0. This also allows you to omit the gpu + directories from your include search path when you're not building the GPU + backend. Defaults to 1 (build the GPU code). + */ +//#define SK_SUPPORT_GPU 1 + +/* Skia makes use of histogram logging macros to trace the frequency of + * events. By default, Skia provides no-op versions of these macros. + * Skia consumers can provide their own definitions of these macros to + * integrate with their histogram collection backend. + */ +//#define SK_HISTOGRAM_BOOLEAN(name, value) +//#define SK_HISTOGRAM_ENUMERATION(name, value, boundary_value) + +// ===== Begin Chrome-specific definitions ===== + #ifdef DCHECK_ALWAYS_ON #undef SK_RELEASE #define SK_DEBUG @@ -70,8 +138,6 @@ // converted to type3 when producing PDFs, and reduces build size. #define SK_PDF_DO_NOT_SUPPORT_TYPE_1_FONTS -// ===== Begin Chrome-specific definitions ===== - #ifdef SK_DEBUG #define SK_REF_CNT_MIXIN_INCLUDE "skia/config/sk_ref_cnt_ext_debug.h" #else @@ -82,16 +148,11 @@ #undef SK_MSCALAR_IS_DOUBLE // 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) +#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, __VA_ARGS__) +SK_API void SkDebugf_FileLine(const char* file, + int line, + const char* format, + ...); #if !defined(ANDROID) // On Android, we use the skia default settings. #define SK_A32_SHIFT 24 @@ -125,11 +186,6 @@ SK_API void SkDebugf_FileLine(const char* file, int line, bool fatal, #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). // diff --git a/skia/ext/google_logging.cc b/skia/ext/google_logging.cc index 27b44d4d6da496..c3db43b3c91288 100644 --- a/skia/ext/google_logging.cc +++ b/skia/ext/google_logging.cc @@ -10,12 +10,11 @@ #include "base/strings/stringprintf.h" #include "third_party/skia/include/core/SkTypes.h" -void SkDebugf_FileLine(const char* file, int line, bool fatal, - const char* format, ...) { +void SkDebugf_FileLine(const char* file, int line, const char* format, ...) { #if DCHECK_IS_ON() - int severity = fatal ? logging::LOG_FATAL : logging::LOG_ERROR; + int severity = logging::LOG_ERROR; #else - int severity = fatal ? logging::LOG_FATAL : logging::LOG_INFO; + int severity = logging::LOG_INFO; #endif if (severity < logging::GetMinLogLevel()) return; diff --git a/skia/ext/platform_canvas.cc b/skia/ext/platform_canvas.cc index 4258dff3994e94..e2574cedf99a01 100644 --- a/skia/ext/platform_canvas.cc +++ b/skia/ext/platform_canvas.cc @@ -57,8 +57,7 @@ std::unique_ptr CreatePlatformCanvasWithPixels( bitmap.setPixels(data); } else { if (!bitmap.tryAllocPixels()) { - if (CRASH_ON_FAILURE == failureType) - SK_CRASH(); + CHECK(failureType != CRASH_ON_FAILURE); return nullptr; } diff --git a/skia/ext/raster_handle_allocator_win.cc b/skia/ext/raster_handle_allocator_win.cc index d2c4feb6f454c1..8cd6de710d6679 100644 --- a/skia/ext/raster_handle_allocator_win.cc +++ b/skia/ext/raster_handle_allocator_win.cc @@ -148,8 +148,7 @@ std::unique_ptr CreatePlatformCanvasWithSharedSection( } } - if (failure_type == CRASH_ON_FAILURE) - SK_CRASH(); + CHECK(failure_type != CRASH_ON_FAILURE); return nullptr; }