1/*
2 * Copyright (C) 2010 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ANDROID_HWUI_DEBUG_H
18#define ANDROID_HWUI_DEBUG_H
19
20#define DEBUG_LEVEL_HIGH 3
21#define DEBUG_LEVEL_MODERATE 2
22#define DEBUG_LEVEL_LOW 1
23#define DEBUG_LEVEL_NONE 0
24
25// Turn on to check for OpenGL errors on each frame
26// Note DEBUG_LEVEL_HIGH for DEBUG_OPENGL is only setable by enabling
27// HWUI_ENABLE_OPENGL_VALIDATION when building HWUI. Similarly if
28// HWUI_ENABLE_OPENGL_VALIDATION is set then this is always DEBUG_LEVEL_HIGH
29#ifndef DEBUG_OPENGL
30#define DEBUG_OPENGL DEBUG_LEVEL_LOW
31#endif
32
33// Turn on to enable initialization information
34#define DEBUG_INIT 0
35
36// Turn on to enable memory usage summary on each frame
37#define DEBUG_MEMORY_USAGE 0
38
39// Turn on to enable debugging of cache flushes
40#define DEBUG_CACHE_FLUSH 0
41
42// Turn on to enable layers debugging when rendered as regions
43#define DEBUG_LAYERS_AS_REGIONS 0
44
45// Turn on to enable debugging when the clip is not a rect
46#define DEBUG_CLIP_REGIONS 0
47
48// Turn on to display debug info about vertex/fragment shaders
49#define DEBUG_PROGRAMS 0
50
51// Turn on to display info about layers
52#define DEBUG_LAYERS 0
53
54// Turn on to display info about render buffers
55#define DEBUG_RENDER_BUFFERS 0
56
57// Turn on to make stencil operations easier to debug
58// (writes 255 instead of 1 in the buffer, forces 8 bit stencil)
59#define DEBUG_STENCIL 0
60
61// Turn on to display debug info about 9patch objects
62#define DEBUG_PATCHES 0
63// Turn on to display vertex and tex coords data about 9patch objects
64// This flag requires DEBUG_PATCHES to be turned on
65#define DEBUG_PATCHES_VERTICES 0
66// Turn on to display vertex and tex coords data used by empty quads
67// in 9patch objects
68// This flag requires DEBUG_PATCHES to be turned on
69#define DEBUG_PATCHES_EMPTY_VERTICES 0
70
71// Turn on to display debug info about shapes
72#define DEBUG_PATHS 0
73
74// Turn on to display debug info about textures
75#define DEBUG_TEXTURES 0
76
77// Turn on to display debug info about the layer renderer
78#define DEBUG_LAYER_RENDERER 0
79
80// Turn on to enable additional debugging in the font renderers
81#define DEBUG_FONT_RENDERER 0
82
83// Turn on to log draw operation batching and deferral information
84#define DEBUG_DEFER 0
85
86// Turn on to dump display list state
87#define DEBUG_DISPLAY_LIST 0
88
89// Turn on to insert an event marker for each display list op
90#define DEBUG_DISPLAY_LIST_OPS_AS_EVENTS 0
91
92// Turn on to insert detailed event markers
93#define DEBUG_DETAILED_EVENTS 0
94
95// Turn on to highlight drawing batches and merged batches with different colors
96#define DEBUG_MERGE_BEHAVIOR 0
97
98// Turn on to enable debugging shadow
99#define DEBUG_SHADOW 0
100
101// Turn on to enable debugging vector drawable
102#define DEBUG_VECTOR_DRAWABLE 0
103
104#if DEBUG_INIT
105#define INIT_LOGD(...) ALOGD(__VA_ARGS__)
106#else
107#define INIT_LOGD(...)
108#endif
109
110#endif  // ANDROID_HWUI_DEBUG_H
111