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
This commit is contained in:
Chet Haase
2012-04-11 14:32:02 -07:00
parent d1f3de40ba
commit 7b6a75872b
2 changed files with 8 additions and 0 deletions

View File

@@ -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;

View File

@@ -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);