commit | 444dc8e626f5520ddad00b9e87f264cb408fba8e | [log] [tgz] |
---|---|---|
author | Fritz Koenig <frkoenig@chromium.org> | Sat Jun 15 00:36:51 2019 |
committer | Kenneth Russell <kbr@chromium.org> | Sat Jun 15 00:36:51 2019 |
tree | 49cdc3c8825df246fdfb45ee02f0a4fab0ff8c83 | |
parent | 21334887255bea3cb5d53d0d8cb4b704e17ca260 [diff] |
Adjust rectangle for flipped sources in TexImage2D When the source is a WebGL canvas the rectangle must be adjusted for flipping with MESA_framebuffer_flip_y. BUG=964010 TEST=https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html?version=2.0.1 (cherry picked from commit b6ab4acc0ac3a4b2c72bbe92e73f50b067de5d5c) Change-Id: I20f5ac0a5049b23b3033a6d46f53606886f4e4f2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1627555 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Fritz Koenig <frkoenig@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#665193} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1660960 Cr-Commit-Position: refs/branch-heads/3809@{#325} Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc index 655e77f..b1566fba 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -5420,7 +5420,12 @@ // The GPU-GPU copy path uses the Y-up coordinate system. IntRect adjusted_source_sub_rectangle = source_sub_rectangle; - if (!unpack_flip_y_) { + + bool should_adjust_source_sub_rectangle = !unpack_flip_y_; + if (is_origin_top_left_ && source_canvas_webgl_context) + should_adjust_source_sub_rectangle = !should_adjust_source_sub_rectangle; + + if (should_adjust_source_sub_rectangle) { adjusted_source_sub_rectangle.SetY(context_host->Size().Height() - adjusted_source_sub_rectangle.MaxY()); }