1c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy/*
2c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * Copyright (C) 2010 The Android Open Source Project
3c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy *
4c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * Licensed under the Apache License, Version 2.0 (the "License");
5c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * you may not use this file except in compliance with the License.
6c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * You may obtain a copy of the License at
7c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy *
8c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy *      http://www.apache.org/licenses/LICENSE-2.0
9c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy *
10c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * Unless required by applicable law or agreed to in writing, software
11c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * distributed under the License is distributed on an "AS IS" BASIS,
12c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * See the License for the specific language governing permissions and
14c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy * limitations under the License.
15c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy */
16c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
17c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#ifndef ANDROID_HWUI_DEBUG_H
18c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define ANDROID_HWUI_DEBUG_H
19c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
20c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy// Turn on to check for OpenGL errors on each frame
21c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_OPENGL 1
22c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
23a60c3889718f4513a6c9d8b80f655db5d6346905Romain Guy// Turn on to display informations about the GPU
24a60c3889718f4513a6c9d8b80f655db5d6346905Romain Guy#define DEBUG_EXTENSIONS 0
25a60c3889718f4513a6c9d8b80f655db5d6346905Romain Guy
26c9855a53edfac818dc68714557185977556f849dRomain Guy// Turn on to enable initialization information
27c9855a53edfac818dc68714557185977556f849dRomain Guy#define DEBUG_INIT 0
28c9855a53edfac818dc68714557185977556f849dRomain Guy
29c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy// Turn on to enable memory usage summary on each frame
30c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_MEMORY_USAGE 0
31c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
32bdf7609867a3f886455c51dba91623a86cceb6e2Romain Guy// Turn on to enable debugging of cache flushes
339c10ab03cd6a35fca9eec617b9bd444d13544b99Romain Guy#define DEBUG_CACHE_FLUSH 0
34bdf7609867a3f886455c51dba91623a86cceb6e2Romain Guy
35aaceeb0c5be11121a81e44b9633c06fc5c0fcd4dRomain Guy// Turn on to enable layers debugging when rendered as regions
36c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_LAYERS_AS_REGIONS 0
37c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
38735738c4ddf3229caa5f6e634bf591953ac29944Romain Guy// Turn on to enable debugging when the clip is not a rect
39735738c4ddf3229caa5f6e634bf591953ac29944Romain Guy#define DEBUG_CLIP_REGIONS 0
40735738c4ddf3229caa5f6e634bf591953ac29944Romain Guy
41c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy// Turn on to display debug info about vertex/fragment shaders
42c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_PROGRAMS 0
43c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
44c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy// Turn on to display info about layers
45c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_LAYERS 0
46c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
478d4aeb7111afac0c3c7e56d4ad5d92f9cfce2ffdRomain Guy// Turn on to display info about render buffers
488d4aeb7111afac0c3c7e56d4ad5d92f9cfce2ffdRomain Guy#define DEBUG_RENDER_BUFFERS 0
498d4aeb7111afac0c3c7e56d4ad5d92f9cfce2ffdRomain Guy
503bbacf27c0be1bae4e4483577fc89ae3113abe5dRomain Guy// Turn on to make stencil operations easier to debug
513ff0bfdd144bba3b023eda8c49b25fb0d0de8653Romain Guy// (writes 255 instead of 1 in the buffer, forces 8 bit stencil)
523bbacf27c0be1bae4e4483577fc89ae3113abe5dRomain Guy#define DEBUG_STENCIL 0
533bbacf27c0be1bae4e4483577fc89ae3113abe5dRomain Guy
54aaceeb0c5be11121a81e44b9633c06fc5c0fcd4dRomain Guy// Turn on to display debug info about 9patch objects
55c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_PATCHES 0
56a5ef39a21683189e5906c9f252b997f0508e350dRomain Guy// Turn on to display vertex and tex coords data about 9patch objects
57a5ef39a21683189e5906c9f252b997f0508e350dRomain Guy// This flag requires DEBUG_PATCHES to be turned on
58a5ef39a21683189e5906c9f252b997f0508e350dRomain Guy#define DEBUG_PATCHES_VERTICES 0
59fb13abd800cd610c7f46815848545feff83e5748Romain Guy// Turn on to display vertex and tex coords data used by empty quads
60fb13abd800cd610c7f46815848545feff83e5748Romain Guy// in 9patch objects
61fb13abd800cd610c7f46815848545feff83e5748Romain Guy// This flag requires DEBUG_PATCHES to be turned on
62fb13abd800cd610c7f46815848545feff83e5748Romain Guy#define DEBUG_PATCHES_EMPTY_VERTICES 0
63c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
6401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy// Turn on to display debug info about shapes
65c46d07a29e94807e768f8b162ce9f77a88ba6f46Romain Guy#define DEBUG_PATHS 0
6601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
67c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy// Turn on to display debug info about textures
68c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#define DEBUG_TEXTURES 0
69c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy
701fc883b271707c4206ae20cc9a935d7bd4a7485eRomain Guy// Turn on to display debug info about the layer renderer
711fc883b271707c4206ae20cc9a935d7bd4a7485eRomain Guy#define DEBUG_LAYER_RENDERER 0
721fc883b271707c4206ae20cc9a935d7bd4a7485eRomain Guy
73b629490ffb21752750cc081827ca4c1eae1eb015Romain Guy// Turn on to enable additional debugging in the font renderers
74b629490ffb21752750cc081827ca4c1eae1eb015Romain Guy#define DEBUG_FONT_RENDERER 0
75b629490ffb21752750cc081827ca4c1eae1eb015Romain Guy
76c3566d06421c8acc0aafb18f7e307e5725ce87e1Chris Craik// Turn on to log draw operation batching and deferral information
77c3566d06421c8acc0aafb18f7e307e5725ce87e1Chris Craik#define DEBUG_DEFER 0
78c3566d06421c8acc0aafb18f7e307e5725ce87e1Chris Craik
79ffac7fc5042296a459d0f5a450dbfe20917093dcRomain Guy// Turn on to dump display list state
80ffac7fc5042296a459d0f5a450dbfe20917093dcRomain Guy#define DEBUG_DISPLAY_LIST 0
81ffac7fc5042296a459d0f5a450dbfe20917093dcRomain Guy
828a4ac610e1aaf04931ac1af54b146a7fc8e66114Romain Guy// Turn on to insert an event marker for each display list op
838a4ac610e1aaf04931ac1af54b146a7fc8e66114Romain Guy#define DEBUG_DISPLAY_LIST_OPS_AS_EVENTS 0
848a4ac610e1aaf04931ac1af54b146a7fc8e66114Romain Guy
8562d307c2402777d5e53b4590af5f32f8c55afd81Chris Craik// Turn on to insert detailed event markers
8662d307c2402777d5e53b4590af5f32f8c55afd81Chris Craik#define DEBUG_DETAILED_EVENTS 0
8762d307c2402777d5e53b4590af5f32f8c55afd81Chris Craik
88527a3aace1dd72432c2e0472a570e030ad04bf16Chris Craik// Turn on to highlight drawing batches and merged batches with different colors
89527a3aace1dd72432c2e0472a570e030ad04bf16Chris Craik#define DEBUG_MERGE_BEHAVIOR 0
90527a3aace1dd72432c2e0472a570e030ad04bf16Chris Craik
9155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui// Turn on to enable debugging shadow
9255bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#define DEBUG_SHADOW 0
9355bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
94c9855a53edfac818dc68714557185977556f849dRomain Guy#if DEBUG_INIT
955baa3a62a97544669fba6d65a11c07f252e654ddSteve Block    #define INIT_LOGD(...) ALOGD(__VA_ARGS__)
96c9855a53edfac818dc68714557185977556f849dRomain Guy#else
97c9855a53edfac818dc68714557185977556f849dRomain Guy    #define INIT_LOGD(...)
98c9855a53edfac818dc68714557185977556f849dRomain Guy#endif
99c9855a53edfac818dc68714557185977556f849dRomain Guy
100c15008e72ec00ca20a271c3006dac649fd07533bRomain Guy#endif // ANDROID_HWUI_DEBUG_H
101