summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/private/hwui/DrawGlInfo.h4
-rw-r--r--libs/hwui/OpenGLRenderer.cpp4
2 files changed, 8 insertions, 0 deletions
diff --git a/include/private/hwui/DrawGlInfo.h b/include/private/hwui/DrawGlInfo.h
index 8028bf3..e33823e 100644
--- a/include/private/hwui/DrawGlInfo.h
+++ b/include/private/hwui/DrawGlInfo.h
@@ -31,6 +31,10 @@ struct DrawGlInfo {
int clipRight;
int clipBottom;
+ // Input: current width/height of destination surface
+ int width;
+ int height;
+
// Input: is the render target an FBO
bool isLayer;
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 2a908ab..06928df 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -249,6 +249,8 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {
info.clipRight = 0;
info.clipBottom = 0;
info.isLayer = false;
+ info.width = 0;
+ info.height = 0;
memset(info.transform, 0, sizeof(float) * 16);
size_t count = functors.size();
@@ -292,6 +294,8 @@ status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
info.clipRight = clip.right;
info.clipBottom = clip.bottom;
info.isLayer = hasLayer();
+ info.width = getSnapshot()->viewport.getWidth();
+ info.height = getSnapshot()->height;
getSnapshot()->transform->copyTo(&info.transform[0]);
status_t result = (*functor)(DrawGlInfo::kModeDraw, &info);