Chris Craik 527a3aace1 Draw Operation merging
Merge simple bitmap draw operations and text operations to avoid
issuing individual gl draws for each operation. Merging other ops to
be done eventually.

The methods are different - the bitmap merging generates a single
mesh for reused, unclipped images (esp. repeated images in a listview)

The text approach queries just defers the normal font rendering until
the last drawText in the sequence that can share the same shader.

Patches are sorted and merged, but don't yet have a multiDraw
implementation. For now, the pretending-to-merge gives better sorting
behavior by keeping similar patches together.

Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
2013-04-15 13:53:02 -07:00

97 lines
2.9 KiB
C

/*
* Copyright (C) 2010 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 ANDROID_HWUI_DEBUG_H
#define ANDROID_HWUI_DEBUG_H
// Turn on to check for OpenGL errors on each frame
#define DEBUG_OPENGL 1
// Turn on to display informations about the GPU
#define DEBUG_EXTENSIONS 0
// Turn on to enable initialization information
#define DEBUG_INIT 0
// Turn on to enable memory usage summary on each frame
#define DEBUG_MEMORY_USAGE 0
// Turn on to enable debugging of cache flushes
#define DEBUG_CACHE_FLUSH 0
// Turn on to enable layers debugging when rendered as regions
#define DEBUG_LAYERS_AS_REGIONS 0
// Turn on to enable debugging when the clip is not a rect
#define DEBUG_CLIP_REGIONS 0
// Turn on to display debug info about vertex/fragment shaders
#define DEBUG_PROGRAMS 0
// Turn on to display info about layers
#define DEBUG_LAYERS 0
// Turn on to display info about render buffers
#define DEBUG_RENDER_BUFFERS 0
// Turn on to make stencil operations easier to debug
// (writes 255 instead of 1 in the buffer, forces 8 bit stencil)
#define DEBUG_STENCIL 0
// Turn on to display debug info about 9patch objects
#define DEBUG_PATCHES 0
// Turn on to "explode" 9patch objects
#define DEBUG_EXPLODE_PATCHES 0
// Turn on to display vertex and tex coords data about 9patch objects
// This flag requires DEBUG_PATCHES to be turned on
#define DEBUG_PATCHES_VERTICES 0
// Turn on to display vertex and tex coords data used by empty quads
// in 9patch objects
// This flag requires DEBUG_PATCHES to be turned on
#define DEBUG_PATCHES_EMPTY_VERTICES 0
// Turn on to display debug info about shapes
#define DEBUG_PATHS 0
// Turn on to display debug info about textures
#define DEBUG_TEXTURES 0
// Turn on to display debug info about the layer renderer
#define DEBUG_LAYER_RENDERER 0
// Turn on to enable additional debugging in the font renderers
#define DEBUG_FONT_RENDERER 0
// Turn on to log draw operation batching and deferral information
#define DEBUG_DEFER 0
// Turn on to dump display list state
#define DEBUG_DISPLAY_LIST 0
// Turn on to insert an event marker for each display list op
#define DEBUG_DISPLAY_LIST_OPS_AS_EVENTS 0
// Turn on to highlight drawing batches and merged batches with different colors
#define DEBUG_MERGE_BEHAVIOR 0
#if DEBUG_INIT
#define INIT_LOGD(...) ALOGD(__VA_ARGS__)
#else
#define INIT_LOGD(...)
#endif
#endif // ANDROID_HWUI_DEBUG_H