Suppress Clang compilation warnings.
Ignore warnings about unused parameters and initialization of static
constant float data members.
Change one potential error of allocating variable length
array of non-POD element type on stack.
Fix mismatch of class and struct declaration tags.
BUG: 17512760
Change-Id: I3a09c945fb1c17f27aff74a7e439dd4c35d1fb32
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 490921e..a2e4769 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -2,6 +2,14 @@
include $(CLEAR_VARS)
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+# Too many unused parameters in external/skia/include and this directory.
+# getConfig in external/skia/include/core/SkBitmap.h is deprecated.
+# Allow Gnu extension: in-class initializer of static 'const float' member.
+LOCAL_CLANG_CFLAGS += \
+ -Wno-unused-parameter \
+ -Wno-deprecated-declarations \
+ -Wno-gnu-static-float-init
+
# Only build libhwui when USE_OPENGL_RENDERER is
# defined in the current device/board configuration
ifeq ($(USE_OPENGL_RENDERER),true)
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index 1cd5f1c..4fc60b8 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -57,9 +57,9 @@
class DisplayListRenderer;
class OpenGLRenderer;
class Rect;
-class Layer;
-class SkiaColorFilter;
-class SkiaShader;
+struct Layer;
+struct SkiaColorFilter;
+struct SkiaShader;
class ClipRectOp;
class SaveLayerOp;
diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h
index b70042f..f965123 100644
--- a/libs/hwui/Layer.h
+++ b/libs/hwui/Layer.h
@@ -44,7 +44,7 @@
class OpenGLRenderer;
class DisplayList;
class DeferredDisplayList;
-class DeferStateStruct;
+struct DeferStateStruct;
/**
* A layer has dimensions and is backed by an OpenGL texture or FBO.
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index c13e614..8eb1f92 100755
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -2239,7 +2239,9 @@
const uint32_t count = meshWidth * meshHeight * 6;
- ColorTextureVertex mesh[count];
+ Vector<ColorTextureVertex> meshVector; // TODO: use C++11 unique_ptr
+ meshVector.setCapacity(count);
+ ColorTextureVertex* mesh = meshVector.editArray();
ColorTextureVertex* vertex = mesh;
bool cleanupColors = false;
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 2e03a1b8..3fbbe52 100755
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -1126,7 +1126,7 @@
String8 mName;
friend class DisplayListRenderer;
- friend class Layer;
+ friend struct Layer;
friend class TextSetupFunctor;
friend class DrawBitmapOp;
friend class DrawPatchOp;
diff --git a/libs/hwui/PathCache.h b/libs/hwui/PathCache.h
index 24f88f1..4fecd77 100644
--- a/libs/hwui/PathCache.h
+++ b/libs/hwui/PathCache.h
@@ -32,7 +32,7 @@
class SkCanvas;
class SkPaint;
class SkPath;
-class SkRect;
+struct SkRect;
namespace android {
namespace uirenderer {