summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2015-10-26 15:49:47 -0700
committerJohn Reck <jreck@google.com>2015-10-27 07:54:17 -0700
commit77c40109cf25d29f85ee6c13aeb96e22e55f33ab (patch)
tree479c941dfbb94c36fb73dc86e03da8412636fcec
parent5918519f972b4eedfc0e402b96cf8a288446deed (diff)
Cleanups
Change-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a
-rw-r--r--libs/hwui/RenderNode.cpp26
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp6
-rw-r--r--libs/hwui/renderthread/CanvasContext.h4
3 files changed, 21 insertions, 15 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 351fbaa86a2a..ea872a133ddb 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -16,13 +16,6 @@
#include "RenderNode.h"
-#include <algorithm>
-#include <string>
-
-#include <SkCanvas.h>
-#include <algorithm>
-
-
#include "DamageAccumulator.h"
#include "Debug.h"
#if HWUI_NEW_OPS
@@ -39,6 +32,12 @@
#include "protos/hwui.pb.h"
#include "protos/ProtoHelpers.h"
+#include <SkCanvas.h>
+
+#include <algorithm>
+#include <sstream>
+#include <string>
+
namespace android {
namespace uirenderer {
@@ -269,9 +268,16 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) {
if (!mLayer) {
Caches::getInstance().dumpMemoryUsage();
if (info.errorHandler) {
- std::string msg = "Unable to create layer for ";
- msg += getName();
- info.errorHandler->onError(msg);
+ std::ostringstream err;
+ err << "Unable to create layer for " << getName();
+ const int maxTextureSize = Caches::getInstance().maxTextureSize;
+ if (getWidth() > maxTextureSize || getHeight() > maxTextureSize) {
+ err << ", size " << getWidth() << "x" << getHeight()
+ << " exceeds max size " << maxTextureSize;
+ } else {
+ err << ", see logcat for more info";
+ }
+ info.errorHandler->onError(err.str());
}
return;
}
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 7c0f0b67b8a3..bceb02d0c73c 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -266,11 +266,11 @@ void CanvasContext::draw() {
Frame frame = mEglManager.beginFrame(mEglSurface);
- if (frame.width() != lastFrameWidth || frame.height() != lastFrameHeight) {
+ if (frame.width() != mLastFrameWidth || frame.height() != mLastFrameHeight) {
// can't rely on prior content of window if viewport size changes
dirty.setEmpty();
- lastFrameWidth = frame.width();
- lastFrameHeight = frame.height();
+ mLastFrameWidth = frame.width();
+ mLastFrameHeight = frame.height();
} else if (mHaveNewSurface || frame.bufferAge() == 0) {
// New surface needs a full draw
dirty.setEmpty();
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 16956e6f1e47..533d69374ed7 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -141,8 +141,8 @@ private:
void freePrefetechedLayers();
- int lastFrameWidth = 0;
- int lastFrameHeight = 0;
+ EGLint mLastFrameWidth = 0;
+ EGLint mLastFrameHeight = 0;
RenderThread& mRenderThread;
EglManager& mEglManager;