summaryrefslogtreecommitdiffstats
path: root/libs/hwui
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-11-10 20:54:07 -0800
committerAndreas Gampe <agampe@google.com>2014-11-10 21:29:52 -0800
commitedaecc1db0584fa017822dfc2da0c968b53967e6 (patch)
treedc2db79f490bc2e334c6e3688e099c98e846f381 /libs/hwui
parentbaa73b056cbd4627a84b39a6267065ae56677220 (diff)
downloadframeworks_base-edaecc1db0584fa017822dfc2da0c968b53967e6.zip
frameworks_base-edaecc1db0584fa017822dfc2da0c968b53967e6.tar.gz
frameworks_base-edaecc1db0584fa017822dfc2da0c968b53967e6.tar.bz2
resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp
(cherry picked from commit 1272887050a269d6d506b42099c2857847ad100b) Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
Diffstat (limited to 'libs/hwui')
-rw-r--r--libs/hwui/AmbientShadow.cpp2
-rw-r--r--libs/hwui/Android.mk185
-rw-r--r--libs/hwui/DeferredDisplayList.cpp4
-rw-r--r--libs/hwui/DeferredDisplayList.h2
-rw-r--r--libs/hwui/DisplayList.h3
-rw-r--r--libs/hwui/DisplayListLogBuffer.cpp2
-rw-r--r--libs/hwui/FontRenderer.cpp2
-rw-r--r--libs/hwui/Interpolator.cpp4
-rw-r--r--libs/hwui/LayerCache.cpp24
-rw-r--r--libs/hwui/LayerCache.h8
-rwxr-xr-xlibs/hwui/OpenGLRenderer.cpp24
-rw-r--r--libs/hwui/PathCache.cpp2
-rw-r--r--libs/hwui/PathTessellator.cpp2
-rw-r--r--libs/hwui/Properties.h2
-rw-r--r--libs/hwui/RenderNode.cpp6
-rw-r--r--libs/hwui/ShadowTessellator.cpp1
-rw-r--r--libs/hwui/SpotShadow.cpp8
-rw-r--r--libs/hwui/font/Font.cpp4
-rw-r--r--libs/hwui/font/FontUtil.h11
-rw-r--r--libs/hwui/renderthread/RenderProxy.cpp4
-rw-r--r--libs/hwui/renderthread/RenderTask.cpp4
21 files changed, 158 insertions, 146 deletions
diff --git a/libs/hwui/AmbientShadow.cpp b/libs/hwui/AmbientShadow.cpp
index 0fb9bc9..9dcd3a8 100644
--- a/libs/hwui/AmbientShadow.cpp
+++ b/libs/hwui/AmbientShadow.cpp
@@ -122,7 +122,7 @@ inline void computeBufferSize(int* totalVertexCount, int* totalIndexCount,
*totalUmbraCount = 0;
if (!isCasterOpaque) {
// Add the centroid if occluder is translucent.
- *totalVertexCount++;
+ (*totalVertexCount)++;
*totalIndexCount += 2 * innerVertexCount + 1;
*totalUmbraCount = innerVertexCount;
}
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 51f257f..a788f88 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -13,107 +13,110 @@ LOCAL_CLANG_CFLAGS += \
# Only build libhwui when USE_OPENGL_RENDERER is
# defined in the current device/board configuration
ifeq ($(USE_OPENGL_RENDERER),true)
- LOCAL_SRC_FILES := \
- utils/Blur.cpp \
- utils/GLUtils.cpp \
- utils/SortedListImpl.cpp \
- thread/TaskManager.cpp \
- font/CacheTexture.cpp \
- font/Font.cpp \
- AmbientShadow.cpp \
- AnimationContext.cpp \
- Animator.cpp \
- AnimatorManager.cpp \
- AssetAtlas.cpp \
- Caches.cpp \
- CanvasState.cpp \
- DamageAccumulator.cpp \
- DisplayList.cpp \
- DeferredDisplayList.cpp \
- DeferredLayerUpdater.cpp \
- DisplayListLogBuffer.cpp \
- DisplayListRenderer.cpp \
- Dither.cpp \
- DrawProfiler.cpp \
- Extensions.cpp \
- FboCache.cpp \
- FontRenderer.cpp \
- GammaFontRenderer.cpp \
- GradientCache.cpp \
- Image.cpp \
- Interpolator.cpp \
- Layer.cpp \
- LayerCache.cpp \
- LayerRenderer.cpp \
- Matrix.cpp \
- OpenGLRenderer.cpp \
- Patch.cpp \
- PatchCache.cpp \
- PathCache.cpp \
- PathTessellator.cpp \
- PixelBuffer.cpp \
- Program.cpp \
- ProgramCache.cpp \
- RenderBufferCache.cpp \
- RenderNode.cpp \
- RenderProperties.cpp \
- RenderState.cpp \
- ResourceCache.cpp \
- ShadowTessellator.cpp \
- SkiaShader.cpp \
- Snapshot.cpp \
- SpotShadow.cpp \
- Stencil.cpp \
- TessellationCache.cpp \
- Texture.cpp \
- TextureCache.cpp \
- TextDropShadowCache.cpp
+ LOCAL_SRC_FILES := \
+ utils/Blur.cpp \
+ utils/GLUtils.cpp \
+ utils/SortedListImpl.cpp \
+ thread/TaskManager.cpp \
+ font/CacheTexture.cpp \
+ font/Font.cpp \
+ AmbientShadow.cpp \
+ AnimationContext.cpp \
+ Animator.cpp \
+ AnimatorManager.cpp \
+ AssetAtlas.cpp \
+ Caches.cpp \
+ CanvasState.cpp \
+ DamageAccumulator.cpp \
+ DisplayList.cpp \
+ DeferredDisplayList.cpp \
+ DeferredLayerUpdater.cpp \
+ DisplayListLogBuffer.cpp \
+ DisplayListRenderer.cpp \
+ Dither.cpp \
+ DrawProfiler.cpp \
+ Extensions.cpp \
+ FboCache.cpp \
+ FontRenderer.cpp \
+ GammaFontRenderer.cpp \
+ GradientCache.cpp \
+ Image.cpp \
+ Interpolator.cpp \
+ Layer.cpp \
+ LayerCache.cpp \
+ LayerRenderer.cpp \
+ Matrix.cpp \
+ OpenGLRenderer.cpp \
+ Patch.cpp \
+ PatchCache.cpp \
+ PathCache.cpp \
+ PathTessellator.cpp \
+ PixelBuffer.cpp \
+ Program.cpp \
+ ProgramCache.cpp \
+ RenderBufferCache.cpp \
+ RenderNode.cpp \
+ RenderProperties.cpp \
+ RenderState.cpp \
+ ResourceCache.cpp \
+ ShadowTessellator.cpp \
+ SkiaShader.cpp \
+ Snapshot.cpp \
+ SpotShadow.cpp \
+ Stencil.cpp \
+ TessellationCache.cpp \
+ Texture.cpp \
+ TextureCache.cpp \
+ TextDropShadowCache.cpp
# RenderThread stuff
- LOCAL_SRC_FILES += \
- renderthread/CanvasContext.cpp \
- renderthread/DrawFrameTask.cpp \
- renderthread/EglManager.cpp \
- renderthread/RenderProxy.cpp \
- renderthread/RenderTask.cpp \
- renderthread/RenderThread.cpp \
- renderthread/TimeLord.cpp
+ LOCAL_SRC_FILES += \
+ renderthread/CanvasContext.cpp \
+ renderthread/DrawFrameTask.cpp \
+ renderthread/EglManager.cpp \
+ renderthread/RenderProxy.cpp \
+ renderthread/RenderTask.cpp \
+ renderthread/RenderThread.cpp \
+ renderthread/TimeLord.cpp
- intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,)
+ intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,)
- LOCAL_C_INCLUDES += \
- external/skia/src/core
+ LOCAL_C_INCLUDES += \
+ external/skia/src/core
- LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
- LOCAL_CFLAGS += -Wno-unused-parameter
- LOCAL_MODULE_CLASS := SHARED_LIBRARIES
- LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libEGL libGLESv2 libskia libui libgui
- LOCAL_MODULE := libhwui
- LOCAL_MODULE_TAGS := optional
+ LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
+ LOCAL_CFLAGS += -Wno-unused-parameter
+ LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+ LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libEGL libGLESv2 libskia libui libgui
+ LOCAL_MODULE := libhwui
+ LOCAL_MODULE_TAGS := optional
- ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
- LOCAL_CFLAGS += -DANDROID_ENABLE_RENDERSCRIPT
- LOCAL_SHARED_LIBRARIES += libRS libRScpp
- LOCAL_C_INCLUDES += \
- $(intermediates) \
- frameworks/rs/cpp \
- frameworks/rs \
+ ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
+ LOCAL_CFLAGS += -DANDROID_ENABLE_RENDERSCRIPT
+ LOCAL_SHARED_LIBRARIES += libRS libRScpp
+ LOCAL_C_INCLUDES += \
+ $(intermediates) \
+ frameworks/rs/cpp \
+ frameworks/rs \
- endif
+ endif
- ifndef HWUI_COMPILE_SYMBOLS
- LOCAL_CFLAGS += -fvisibility=hidden
- endif
+ ifndef HWUI_COMPILE_SYMBOLS
+ LOCAL_CFLAGS += -fvisibility=hidden
+ endif
- ifdef HWUI_COMPILE_FOR_PERF
- LOCAL_CFLAGS += -fno-omit-frame-pointer -marm -mapcs
- endif
+ ifdef HWUI_COMPILE_FOR_PERF
+ # TODO: Non-arm?
+ LOCAL_CFLAGS += -fno-omit-frame-pointer -marm -mapcs
+ endif
- # Defaults for ATRACE_TAG and LOG_TAG for libhwui
- LOCAL_CFLAGS += -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\"
+ # Defaults for ATRACE_TAG and LOG_TAG for libhwui
+ LOCAL_CFLAGS += -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\"
- include external/stlport/libstlport.mk
- include $(BUILD_SHARED_LIBRARY)
+ LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
- include $(call all-makefiles-under,$(LOCAL_PATH))
+ include external/stlport/libstlport.mk
+ include $(BUILD_SHARED_LIBRARY)
+
+ include $(call all-makefiles-under,$(LOCAL_PATH))
endif
diff --git a/libs/hwui/DeferredDisplayList.cpp b/libs/hwui/DeferredDisplayList.cpp
index a5e48e9..ea1d714 100644
--- a/libs/hwui/DeferredDisplayList.cpp
+++ b/libs/hwui/DeferredDisplayList.cpp
@@ -310,7 +310,7 @@ private:
class RestoreToCountBatch : public Batch {
public:
RestoreToCountBatch(const StateOp* op, const DeferredDisplayState* state, int restoreCount) :
- mOp(op), mState(state), mRestoreCount(restoreCount) {}
+ mState(state), mRestoreCount(restoreCount) {}
virtual void replay(OpenGLRenderer& renderer, Rect& dirty, int index) {
DEFER_LOGD("batch %p restoring to count %d", this, mRestoreCount);
@@ -321,7 +321,6 @@ public:
private:
// we use the state storage for the RestoreToCountOp, but don't replay the op itself
- const StateOp* mOp;
const DeferredDisplayState* mState;
/*
@@ -669,7 +668,6 @@ void DeferredDisplayList::discardDrawingBatches(const unsigned int maxIndex) {
for (unsigned int i = mEarliestUnclearedIndex; i <= maxIndex; i++) {
// leave deferred state ops alone for simplicity (empty save restore pairs may now exist)
if (mBatches[i] && mBatches[i]->purelyDrawBatch()) {
- DrawBatch* b = (DrawBatch*) mBatches[i];
delete mBatches[i];
mBatches.replaceAt(NULL, i);
}
diff --git a/libs/hwui/DeferredDisplayList.h b/libs/hwui/DeferredDisplayList.h
index 9e48d3c..fe70ec2 100644
--- a/libs/hwui/DeferredDisplayList.h
+++ b/libs/hwui/DeferredDisplayList.h
@@ -79,7 +79,7 @@ public:
};
class DeferredDisplayList {
- friend class DeferStateStruct; // used to give access to allocator
+ friend struct DeferStateStruct; // used to give access to allocator
public:
DeferredDisplayList(const Rect& bounds) :
mBounds(bounds) {
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index 85c2367..9ede003 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -92,8 +92,7 @@ private:
std::vector<SkPath> mTempPaths;
};
-class DeferStateStruct : public PlaybackStateStruct {
-public:
+struct DeferStateStruct : public PlaybackStateStruct {
DeferStateStruct(DeferredDisplayList& deferredList, OpenGLRenderer& renderer, int replayFlags)
: PlaybackStateStruct(renderer, replayFlags, &(deferredList.mAllocator)),
mDeferredList(deferredList) {}
diff --git a/libs/hwui/DisplayListLogBuffer.cpp b/libs/hwui/DisplayListLogBuffer.cpp
index 45aacca..bc9e7bd 100644
--- a/libs/hwui/DisplayListLogBuffer.cpp
+++ b/libs/hwui/DisplayListLogBuffer.cpp
@@ -80,7 +80,7 @@ void DisplayListLogBuffer::outputCommands(FILE *file)
fprintf(file, "%*s%s\n", 2 * tmpBufferPtr->level, "", tmpBufferPtr->label);
- OpLog* nextOp = tmpBufferPtr++;
+ tmpBufferPtr++;
if (tmpBufferPtr > mBufferLast) {
tmpBufferPtr = mBufferFirst;
}
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 3910381..5b5b098 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -358,7 +358,7 @@ void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyp
break;
}
case SkMask::kBW_Format: {
- uint32_t cacheX = 0, bX = 0, cacheY = 0, bY = 0;
+ uint32_t cacheX = 0, cacheY = 0;
uint32_t row = (startY - TEXTURE_BORDER_SIZE) * cacheWidth + startX
- TEXTURE_BORDER_SIZE;
static const uint8_t COLORS[2] = { 0, 255 };
diff --git a/libs/hwui/Interpolator.cpp b/libs/hwui/Interpolator.cpp
index ff8ff73..0e62d77 100644
--- a/libs/hwui/Interpolator.cpp
+++ b/libs/hwui/Interpolator.cpp
@@ -14,6 +14,10 @@
* limitations under the License.
*/
+// LOG_TAG is being provided by the Makefile, reset.
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
#define LOG_TAG "Interpolator"
#include "Interpolator.h"
diff --git a/libs/hwui/LayerCache.cpp b/libs/hwui/LayerCache.cpp
index 3033dc6..3216cd2 100644
--- a/libs/hwui/LayerCache.cpp
+++ b/libs/hwui/LayerCache.cpp
@@ -80,8 +80,10 @@ int LayerCache::LayerEntry::compare(const LayerCache::LayerEntry& lhs,
void LayerCache::deleteLayer(Layer* layer) {
if (layer) {
- LAYER_LOGD("Destroying layer %dx%d, fbo %d", layer->getWidth(), layer->getHeight(),
- layer->getFbo());
+ if (kDebugLayers) {
+ ALOGD("Destroying layer %dx%d, fbo %d", layer->getWidth(), layer->getHeight(),
+ layer->getFbo());
+ }
mSize -= layer->getWidth() * layer->getHeight() * 4;
layer->state = Layer::kState_DeletedFromCache;
layer->decStrong(0);
@@ -110,9 +112,13 @@ Layer* LayerCache::get(RenderState& renderState, const uint32_t width, const uin
layer->state = Layer::kState_RemovedFromCache;
mSize -= layer->getWidth() * layer->getHeight() * 4;
- LAYER_LOGD("Reusing layer %dx%d", layer->getWidth(), layer->getHeight());
+ if (kDebugLayers) {
+ ALOGD("Reusing layer %dx%d", layer->getWidth(), layer->getHeight());
+ }
} else {
- LAYER_LOGD("Creating new layer %dx%d", entry.mWidth, entry.mHeight);
+ if (kDebugLayers) {
+ ALOGD("Creating new layer %dx%d", entry.mWidth, entry.mHeight);
+ }
layer = new Layer(Layer::kType_DisplayList, renderState, entry.mWidth, entry.mHeight);
layer->setBlend(true);
@@ -137,7 +143,9 @@ void LayerCache::dump() {
size_t size = mCache.size();
for (size_t i = 0; i < size; i++) {
const LayerEntry& entry = mCache.itemAt(i);
- LAYER_LOGD(" Layer size %dx%d", entry.mWidth, entry.mHeight);
+ if (kDebugLayers) {
+ ALOGD(" Layer size %dx%d", entry.mWidth, entry.mHeight);
+ }
}
}
@@ -157,8 +165,10 @@ bool LayerCache::put(Layer* layer) {
deleteLayer(victim);
mCache.removeAt(position);
- LAYER_LOGD(" Deleting layer %.2fx%.2f", victim->layer.getWidth(),
- victim->layer.getHeight());
+ if (kDebugLayers) {
+ ALOGD(" Deleting layer %.2fx%.2f", victim->layer.getWidth(),
+ victim->layer.getHeight());
+ }
}
layer->cancelDefer();
diff --git a/libs/hwui/LayerCache.h b/libs/hwui/LayerCache.h
index 6b93e8f..81810ac 100644
--- a/libs/hwui/LayerCache.h
+++ b/libs/hwui/LayerCache.h
@@ -26,15 +26,11 @@ namespace uirenderer {
class RenderState;
-///////////////////////////////////////////////////////////////////////////////
-// Defines
-///////////////////////////////////////////////////////////////////////////////
-
// Debug
#if DEBUG_LAYERS
- #define LAYER_LOGD(...) ALOGD(__VA_ARGS__)
+static const bool kDebugLayers = true;
#else
- #define LAYER_LOGD(...)
+static const bool kDebugLayers = false;
#endif
///////////////////////////////////////////////////////////////////////////////
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 71b7c11..c113164 100755
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -473,8 +473,6 @@ bool OpenGLRenderer::updateLayer(Layer* layer, bool inFrame) {
&& layer->renderNode.get() && layer->renderNode->isRenderable()) {
ATRACE_CALL();
- Rect& dirty = layer->dirtyRect;
-
if (inFrame) {
endTiling();
debugOverdraw(false, false);
@@ -762,8 +760,10 @@ int OpenGLRenderer::saveLayerDeferred(float left, float top, float right, float
*/
bool OpenGLRenderer::createLayer(float left, float top, float right, float bottom,
const SkPaint* paint, int flags, const SkPath* convexMask) {
- LAYER_LOGD("Requesting layer %.2fx%.2f", right - left, bottom - top);
- LAYER_LOGD("Layer cache size = %d", mCaches.layerCache.getSize());
+ if (kDebugLayers) {
+ ALOGD("Requesting layer %.2fx%.2f", right - left, bottom - top);
+ ALOGD("Layer cache size = %d", mCaches.layerCache.getSize());
+ }
const bool fboLayer = flags & SkCanvas::kClipToLayer_SaveFlag;
@@ -941,7 +941,9 @@ void OpenGLRenderer::composeLayer(const Snapshot& removed, const Snapshot& resto
// Failing to add the layer to the cache should happen only if the layer is too large
layer->setConvexMask(NULL);
if (!mCaches.layerCache.put(layer)) {
- LAYER_LOGD("Deleting layer");
+ if (kDebugLayers) {
+ ALOGD("Deleting layer");
+ }
layer->decStrong(0);
}
}
@@ -1959,8 +1961,6 @@ void OpenGLRenderer::drawRenderNode(RenderNode* renderNode, Rect& dirty, int32_t
}
void OpenGLRenderer::drawAlphaBitmap(Texture* texture, float left, float top, const SkPaint* paint) {
- int color = paint != NULL ? paint->getColor() : 0;
-
float x = left;
float y = top;
@@ -2382,7 +2382,7 @@ void OpenGLRenderer::drawVertexBuffer(float translateX, float translateY,
setupDrawShaderUniforms(getShader(paint));
const void* vertices = vertexBuffer.getBuffer();
- bool force = mCaches.unbindMeshBuffer();
+ mCaches.unbindMeshBuffer();
mCaches.bindPositionVertexPointer(true, vertices, isAA ? gAlphaVertexStride : gVertexStride);
mCaches.resetTexCoordsVertexPointer();
@@ -3185,14 +3185,6 @@ void OpenGLRenderer::drawRects(const float* rects, int count, const SkPaint* pai
drawColorRects(rects, count, paint, false, true, true);
}
-static void mapPointFakeZ(Vector3& point, const mat4& transformXY, const mat4& transformZ) {
- // map z coordinate with true 3d matrix
- point.z = transformZ.mapZ(point);
-
- // map x,y coordinates with draw/Skia matrix
- transformXY.mapPoint(point.x, point.y);
-}
-
void OpenGLRenderer::drawShadow(float casterAlpha,
const VertexBuffer* ambientShadowVertexBuffer, const VertexBuffer* spotShadowVertexBuffer) {
if (mState.currentlyIgnored()) return;
diff --git a/libs/hwui/PathCache.cpp b/libs/hwui/PathCache.cpp
index 9ba8854..a3d7019 100644
--- a/libs/hwui/PathCache.cpp
+++ b/libs/hwui/PathCache.cpp
@@ -212,7 +212,7 @@ void PathCache::removeTexture(PathTexture* texture) {
// before attempting our cleanup
const sp<Task<SkBitmap*> >& task = texture->task();
if (task != NULL) {
- SkBitmap* bitmap = task->getResult();
+ task->getResult();
texture->clearTask();
} else {
// If there is a pending task, the path was not added
diff --git a/libs/hwui/PathTessellator.cpp b/libs/hwui/PathTessellator.cpp
index 27ef06f..bd97680 100644
--- a/libs/hwui/PathTessellator.cpp
+++ b/libs/hwui/PathTessellator.cpp
@@ -279,7 +279,6 @@ void getStrokeVerticesFromUnclosedVertices(const PaintInfo& paintInfo,
- (vertices[lastIndex].x - vertices[lastIndex - 1].x),
vertices[lastIndex].y - vertices[lastIndex - 1].y);
const float dTheta = PI / (extra + 1);
- const float radialScale = 2.0f / (1 + cos(dTheta));
int capOffset;
for (int i = 0; i < extra; i++) {
@@ -831,7 +830,6 @@ void PathTessellator::tessellatePoints(const float* points, int count, const SkP
Rect bounds;
// tessellate, then duplicate outline across points
- int numPoints = count / 2;
VertexBuffer tempBuffer;
if (!paintInfo.isAA) {
getFillVerticesFromPerimeter(outlineVertices, tempBuffer);
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index befed16..7b9459a 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -253,7 +253,7 @@ enum DebugLevel {
// Converts a number of kilo-bytes into bytes
#define KB(s) s * 1024
-static DebugLevel readDebugLevel() {
+static inline DebugLevel readDebugLevel() {
char property[PROPERTY_VALUE_MAX];
if (property_get(PROPERTY_DEBUG, property, NULL) > 0) {
return (DebugLevel) atoi(property);
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index e8f2bc0..743b2f5 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -752,7 +752,6 @@ void RenderNode::issueOperationsOf3dChildren(ChildrenSelectMode mode,
int restoreTo = renderer.save(SkCanvas::kMatrix_SaveFlag);
DrawRenderNodeOp* childOp = zTranslatedNodes[drawIndex].value;
- RenderNode* child = childOp->mRenderNode;
renderer.concatMatrix(childOp->mTransformFromParent);
childOp->mSkipInOrderDraw = false; // this is horrible, I'm so sorry everyone
@@ -901,7 +900,7 @@ void RenderNode::issueOperations(OpenGLRenderer& renderer, T& handler) {
initialTransform, zTranslatedNodes, renderer, handler);
- for (int opIndex = chunk.beginOpIndex; opIndex < chunk.endOpIndex; opIndex++) {
+ for (size_t opIndex = chunk.beginOpIndex; opIndex < chunk.endOpIndex; opIndex++) {
DisplayListOp *op = mDisplayListData->displayListOps[opIndex];
#if DEBUG_DISPLAY_LIST
op->output(level + 1);
@@ -909,7 +908,8 @@ void RenderNode::issueOperations(OpenGLRenderer& renderer, T& handler) {
logBuffer.writeCommand(level, op->name());
handler(op, saveCountOffset, properties().getClipToBounds());
- if (CC_UNLIKELY(!mProjectedNodes.isEmpty() && opIndex == projectionReceiveIndex)) {
+ if (CC_UNLIKELY(!mProjectedNodes.isEmpty() && projectionReceiveIndex >= 0 &&
+ opIndex == static_cast<size_t>(projectionReceiveIndex))) {
issueOperationsOfProjectedChildren(renderer, handler);
}
}
diff --git a/libs/hwui/ShadowTessellator.cpp b/libs/hwui/ShadowTessellator.cpp
index c1ffa0a..93d4b31 100644
--- a/libs/hwui/ShadowTessellator.cpp
+++ b/libs/hwui/ShadowTessellator.cpp
@@ -87,7 +87,6 @@ void ShadowTessellator::tessellateSpotShadow(bool isCasterOpaque,
reverseReceiverTransform.loadInverse(receiverTransform);
reverseReceiverTransform.mapPoint3d(adjustedLightCenter);
- const int lightVertexCount = 8;
if (CC_UNLIKELY(caches.propertyLightDiameter > 0)) {
lightRadius = caches.propertyLightDiameter;
}
diff --git a/libs/hwui/SpotShadow.cpp b/libs/hwui/SpotShadow.cpp
index 0faee65..001e22f 100644
--- a/libs/hwui/SpotShadow.cpp
+++ b/libs/hwui/SpotShadow.cpp
@@ -795,11 +795,15 @@ inline void genNewPenumbraAndPairWithUmbra(const Vector2* penumbra, int penumbra
previousPenumbra * weightForPreviousPenumbra;
int skippedUmbraIndex = (previousClosestUmbraIndex + k + 1) % umbraLength;
- verticesPair[verticesPairIndex++] = {newPenumbraIndex, skippedUmbraIndex};
+ verticesPair[verticesPairIndex].outerIndex = newPenumbraIndex;
+ verticesPair[verticesPairIndex].innerIndex = skippedUmbraIndex;
+ verticesPairIndex++;
newPenumbra[newPenumbraIndex++] = interpolatedPenumbra;
}
}
- verticesPair[verticesPairIndex++] = {newPenumbraIndex, currentClosestUmbraIndex};
+ verticesPair[verticesPairIndex].outerIndex = newPenumbraIndex;
+ verticesPair[verticesPairIndex].innerIndex = currentClosestUmbraIndex;
+ verticesPairIndex++;
newPenumbra[newPenumbraIndex++] = currentPenumbraVertex;
previousClosestUmbraIndex = currentClosestUmbraIndex;
diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp
index e1df9ba..29c122b 100644
--- a/libs/hwui/font/Font.cpp
+++ b/libs/hwui/font/Font.cpp
@@ -378,7 +378,7 @@ void Font::precache(const SkPaint* paint, const char* text, int numGlyphs) {
break;
}
- CachedGlyphInfo* cachedGlyph = getCachedGlyph(paint, glyph, true);
+ getCachedGlyph(paint, glyph, true);
glyphsCount++;
}
}
@@ -403,8 +403,6 @@ void Font::render(const SkPaint* paint, const char* text, uint32_t start, uint32
text += start;
int glyphsCount = 0;
- const SkPaint::Align align = paint->getTextAlign();
-
while (glyphsCount < numGlyphs) {
glyph_t glyph = GET_GLYPH(text);
diff --git a/libs/hwui/font/FontUtil.h b/libs/hwui/font/FontUtil.h
index c2fd5f5..4e5debe 100644
--- a/libs/hwui/font/FontUtil.h
+++ b/libs/hwui/font/FontUtil.h
@@ -30,9 +30,12 @@
#define DEFAULT_TEXT_LARGE_CACHE_WIDTH 2048
#define DEFAULT_TEXT_LARGE_CACHE_HEIGHT 512
-#define TEXTURE_BORDER_SIZE 1
-#if TEXTURE_BORDER_SIZE != 1
-# error TEXTURE_BORDER_SIZE other than 1 is not currently supported
+#ifdef TEXTURE_BORDER_SIZE
+ #if TEXTURE_BORDER_SIZE != 1
+ #error TEXTURE_BORDER_SIZE other than 1 is not currently supported
+ #endif
+#else
+ #define TEXTURE_BORDER_SIZE 1
#endif
#define CACHE_BLOCK_ROUNDING_SIZE 4
@@ -44,7 +47,7 @@
#define GET_GLYPH(text) nextGlyph((const uint16_t**) &text)
#define IS_END_OF_STRING(glyph) false
- static glyph_t nextGlyph(const uint16_t** srcPtr) {
+ static inline glyph_t nextGlyph(const uint16_t** srcPtr) {
const uint16_t* src = *srcPtr;
glyph_t g = *src++;
*srcPtr = src;
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 5d55ea6..3d106b7 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -345,8 +345,12 @@ CREATE_BRIDGE0(fence) {
return NULL;
}
+template <typename T>
+void UNUSED(T t) {}
+
void RenderProxy::fence() {
SETUP_TASK(fence);
+ UNUSED(args);
postAndWait(task);
}
diff --git a/libs/hwui/renderthread/RenderTask.cpp b/libs/hwui/renderthread/RenderTask.cpp
index 7ca61e4..13970ba 100644
--- a/libs/hwui/renderthread/RenderTask.cpp
+++ b/libs/hwui/renderthread/RenderTask.cpp
@@ -14,6 +14,10 @@
* limitations under the License.
*/
+// LOG_TAG is being provided by the Makefile, reset.
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
#define LOG_TAG "RenderTask"
#include "RenderTask.h"