From 7b6a75872bd2df96a23453d31c2e2e7fcc373554 Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Wed, 11 Apr 2012 14:32:02 -0700 Subject: Pass width/height parameters to webview When webview draws into an fbo layer, it needs to know the size of that surface to create the rendering transform appropriately. This change copies in the current viewport size to the structure that is passed to the webview. Change-Id: I7160b0836d00834134c799c95a439cdc045e2035 --- include/private/hwui/DrawGlInfo.h | 4 ++++ libs/hwui/OpenGLRenderer.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/include/private/hwui/DrawGlInfo.h b/include/private/hwui/DrawGlInfo.h index 8028bf3bb3f5..e33823e96b9e 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 2a908abba338..06928df6e393 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); -- cgit v1.2.3-59-g8ed1b