Merge "Fix performance issue in Launcher Bug #3515248" into honeycomb-mr1
This commit is contained in:
@@ -92,7 +92,11 @@ Region* LayerRenderer::getRegion() {
|
|||||||
|
|
||||||
void LayerRenderer::generateMesh() {
|
void LayerRenderer::generateMesh() {
|
||||||
#if RENDER_LAYERS_AS_REGIONS
|
#if RENDER_LAYERS_AS_REGIONS
|
||||||
|
#if RENDER_LAYERS_RECT_AS_RECT
|
||||||
if (mLayer->region.isRect() || mLayer->region.isEmpty()) {
|
if (mLayer->region.isRect() || mLayer->region.isEmpty()) {
|
||||||
|
#else
|
||||||
|
if (mLayer->region.isEmpty()) {
|
||||||
|
#endif
|
||||||
if (mLayer->mesh) {
|
if (mLayer->mesh) {
|
||||||
delete mLayer->mesh;
|
delete mLayer->mesh;
|
||||||
delete mLayer->meshIndices;
|
delete mLayer->meshIndices;
|
||||||
|
|||||||
@@ -636,11 +636,13 @@ void OpenGLRenderer::composeLayerRect(Layer* layer, const Rect& rect, bool swap)
|
|||||||
|
|
||||||
void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) {
|
void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) {
|
||||||
#if RENDER_LAYERS_AS_REGIONS
|
#if RENDER_LAYERS_AS_REGIONS
|
||||||
|
#if RENDER_LAYERS_RECT_AS_RECT
|
||||||
if (layer->region.isRect()) {
|
if (layer->region.isRect()) {
|
||||||
composeLayerRect(layer, rect);
|
composeLayerRect(layer, rect);
|
||||||
layer->region.clear();
|
layer->region.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!layer->region.isEmpty()) {
|
if (!layer->region.isEmpty()) {
|
||||||
size_t count;
|
size_t count;
|
||||||
@@ -1646,10 +1648,14 @@ void OpenGLRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* paint) {
|
|||||||
|
|
||||||
#if RENDER_LAYERS_AS_REGIONS
|
#if RENDER_LAYERS_AS_REGIONS
|
||||||
if (!layer->region.isEmpty()) {
|
if (!layer->region.isEmpty()) {
|
||||||
|
#if RENDER_LAYERS_RECT_AS_RECT
|
||||||
if (layer->region.isRect()) {
|
if (layer->region.isRect()) {
|
||||||
const Rect r(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight());
|
const Rect r(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight());
|
||||||
composeLayerRect(layer, r);
|
composeLayerRect(layer, r);
|
||||||
} else if (layer->mesh) {
|
} else if (layer->mesh) {
|
||||||
|
#else
|
||||||
|
if (layer->mesh) {
|
||||||
|
#endif
|
||||||
const float a = alpha / 255.0f;
|
const float a = alpha / 255.0f;
|
||||||
const Rect& rect = layer->layer;
|
const Rect& rect = layer->layer;
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
// If turned on, layers drawn inside FBOs are optimized with regions
|
// If turned on, layers drawn inside FBOs are optimized with regions
|
||||||
#define RENDER_LAYERS_AS_REGIONS 1
|
#define RENDER_LAYERS_AS_REGIONS 1
|
||||||
|
// If turned on, layers that map to a single rect are drawn as a rect
|
||||||
|
#define RENDER_LAYERS_RECT_AS_RECT 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug level for app developers.
|
* Debug level for app developers.
|
||||||
|
|||||||
Reference in New Issue
Block a user