Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: cc/output/gl_renderer.cc

Issue 1175113010: cc: Rename visible_content_rect and content stuff on quads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename-visible-content-rect: moreandroid Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/direct_renderer.cc ('k') | cc/output/overlay_strategy_common.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 static_cast<int>(tile_rect.y() / quad->scale) % kCheckerboardWidth; 592 static_cast<int>(tile_rect.y() / quad->scale) % kCheckerboardWidth;
593 float tex_scale_x = tile_rect.width() / quad->scale; 593 float tex_scale_x = tile_rect.width() / quad->scale;
594 float tex_scale_y = tile_rect.height() / quad->scale; 594 float tex_scale_y = tile_rect.height() / quad->scale;
595 gl_->Uniform4f(program->fragment_shader().tex_transform_location(), 595 gl_->Uniform4f(program->fragment_shader().tex_transform_location(),
596 tex_offset_x, tex_offset_y, tex_scale_x, tex_scale_y); 596 tex_offset_x, tex_offset_y, tex_scale_x, tex_scale_y);
597 597
598 gl_->Uniform1f(program->fragment_shader().frequency_location(), frequency); 598 gl_->Uniform1f(program->fragment_shader().frequency_location(), frequency);
599 599
600 SetShaderOpacity(quad->shared_quad_state->opacity, 600 SetShaderOpacity(quad->shared_quad_state->opacity,
601 program->fragment_shader().alpha_location()); 601 program->fragment_shader().alpha_location());
602 DrawQuadGeometry(frame, quad->shared_quad_state->content_to_target_transform, 602 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
603 quad->rect, program->vertex_shader().matrix_location()); 603 quad->rect, program->vertex_shader().matrix_location());
604 } 604 }
605 605
606 // This function does not handle 3D sorting right now, since the debug border 606 // This function does not handle 3D sorting right now, since the debug border
607 // quads are just drawn as their original quads and not in split pieces. This 607 // quads are just drawn as their original quads and not in split pieces. This
608 // results in some debug border quads drawing over foreground quads. 608 // results in some debug border quads drawing over foreground quads.
609 void GLRenderer::DrawDebugBorderQuad(const DrawingFrame* frame, 609 void GLRenderer::DrawDebugBorderQuad(const DrawingFrame* frame,
610 const DebugBorderDrawQuad* quad) { 610 const DebugBorderDrawQuad* quad) {
611 SetBlendEnabled(quad->ShouldDrawWithBlending()); 611 SetBlendEnabled(quad->ShouldDrawWithBlending());
612 612
613 static float gl_matrix[16]; 613 static float gl_matrix[16];
614 const DebugBorderProgram* program = GetDebugBorderProgram(); 614 const DebugBorderProgram* program = GetDebugBorderProgram();
615 DCHECK(program && (program->initialized() || IsContextLost())); 615 DCHECK(program && (program->initialized() || IsContextLost()));
616 SetUseProgram(program->program()); 616 SetUseProgram(program->program());
617 617
618 // Use the full quad_rect for debug quads to not move the edges based on 618 // Use the full quad_rect for debug quads to not move the edges based on
619 // partial swaps. 619 // partial swaps.
620 gfx::Rect layer_rect = quad->rect; 620 gfx::Rect layer_rect = quad->rect;
621 gfx::Transform render_matrix; 621 gfx::Transform render_matrix;
622 QuadRectTransform(&render_matrix, 622 QuadRectTransform(&render_matrix,
623 quad->shared_quad_state->content_to_target_transform, 623 quad->shared_quad_state->quad_to_target_transform,
624 layer_rect); 624 layer_rect);
625 GLRenderer::ToGLMatrix(&gl_matrix[0], 625 GLRenderer::ToGLMatrix(&gl_matrix[0],
626 frame->projection_matrix * render_matrix); 626 frame->projection_matrix * render_matrix);
627 gl_->UniformMatrix4fv(program->vertex_shader().matrix_location(), 1, false, 627 gl_->UniformMatrix4fv(program->vertex_shader().matrix_location(), 1, false,
628 &gl_matrix[0]); 628 &gl_matrix[0]);
629 629
630 SkColor color = quad->color; 630 SkColor color = quad->color;
631 float alpha = SkColorGetA(color) * (1.0f / 255.0f); 631 float alpha = SkColorGetA(color) * (1.0f / 255.0f);
632 632
633 gl_->Uniform4f(program->fragment_shader().color_location(), 633 gl_->Uniform4f(program->fragment_shader().color_location(),
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, 920 void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
921 const RenderPassDrawQuad* quad, 921 const RenderPassDrawQuad* quad,
922 const gfx::QuadF* clip_region) { 922 const gfx::QuadF* clip_region) {
923 ScopedResource* contents_texture = 923 ScopedResource* contents_texture =
924 render_pass_textures_.get(quad->render_pass_id); 924 render_pass_textures_.get(quad->render_pass_id);
925 DCHECK(contents_texture); 925 DCHECK(contents_texture);
926 DCHECK(contents_texture->id()); 926 DCHECK(contents_texture->id());
927 927
928 gfx::Transform quad_rect_matrix; 928 gfx::Transform quad_rect_matrix;
929 QuadRectTransform(&quad_rect_matrix, 929 QuadRectTransform(&quad_rect_matrix,
930 quad->shared_quad_state->content_to_target_transform, 930 quad->shared_quad_state->quad_to_target_transform,
931 quad->rect); 931 quad->rect);
932 gfx::Transform contents_device_transform = 932 gfx::Transform contents_device_transform =
933 frame->window_matrix * frame->projection_matrix * quad_rect_matrix; 933 frame->window_matrix * frame->projection_matrix * quad_rect_matrix;
934 contents_device_transform.FlattenTo2d(); 934 contents_device_transform.FlattenTo2d();
935 935
936 // Can only draw surface if device matrix is invertible. 936 // Can only draw surface if device matrix is invertible.
937 if (!contents_device_transform.IsInvertible()) 937 if (!contents_device_transform.IsInvertible())
938 return; 938 return;
939 939
940 gfx::QuadF surface_quad = SharedGeometryQuad(); 940 gfx::QuadF surface_quad = SharedGeometryQuad();
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 } 1074 }
1075 1075
1076 if (!use_shaders_for_blending) { 1076 if (!use_shaders_for_blending) {
1077 if (!use_blend_equation_advanced_coherent_ && use_blend_equation_advanced_) 1077 if (!use_blend_equation_advanced_coherent_ && use_blend_equation_advanced_)
1078 gl_->BlendBarrierKHR(); 1078 gl_->BlendBarrierKHR();
1079 1079
1080 ApplyBlendModeUsingBlendFunc(blend_mode); 1080 ApplyBlendModeUsingBlendFunc(blend_mode);
1081 } 1081 }
1082 1082
1083 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 1083 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
1084 gl_, 1084 gl_, &highp_threshold_cache_, highp_threshold_min_,
1085 &highp_threshold_cache_, 1085 quad->shared_quad_state->visible_quad_layer_rect.bottom_right());
1086 highp_threshold_min_,
1087 quad->shared_quad_state->visible_content_rect.bottom_right());
1088 1086
1089 ShaderLocations locations; 1087 ShaderLocations locations;
1090 1088
1091 DCHECK_EQ(background_texture || background_image_id, 1089 DCHECK_EQ(background_texture || background_image_id,
1092 use_shaders_for_blending); 1090 use_shaders_for_blending);
1093 BlendMode shader_blend_mode = use_shaders_for_blending 1091 BlendMode shader_blend_mode = use_shaders_for_blending
1094 ? BlendModeFromSkXfermode(blend_mode) 1092 ? BlendModeFromSkXfermode(blend_mode)
1095 : BLEND_MODE_NONE; 1093 : BLEND_MODE_NONE;
1096 1094
1097 if (use_aa && mask_texture_id && !use_color_matrix) { 1095 if (use_aa && mask_texture_id && !use_color_matrix) {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 background_texture->id(), 1249 background_texture->id(),
1252 GL_TEXTURE0 + last_texture_unit, 1250 GL_TEXTURE0 + last_texture_unit,
1253 GL_LINEAR)); 1251 GL_LINEAR));
1254 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), 1252 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D),
1255 shader_background_sampler_lock->target()); 1253 shader_background_sampler_lock->target());
1256 } 1254 }
1257 } 1255 }
1258 1256
1259 SetShaderOpacity(quad->shared_quad_state->opacity, locations.alpha); 1257 SetShaderOpacity(quad->shared_quad_state->opacity, locations.alpha);
1260 SetShaderQuadF(surface_quad, locations.quad); 1258 SetShaderQuadF(surface_quad, locations.quad);
1261 DrawQuadGeometry(frame, quad->shared_quad_state->content_to_target_transform, 1259 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
1262 quad->rect, locations.matrix); 1260 quad->rect, locations.matrix);
1263 1261
1264 // Flush the compositor context before the filter bitmap goes out of 1262 // Flush the compositor context before the filter bitmap goes out of
1265 // scope, so the draw gets processed before the filter texture gets deleted. 1263 // scope, so the draw gets processed before the filter texture gets deleted.
1266 if (filter_image_id) 1264 if (filter_image_id)
1267 gl_->Flush(); 1265 gl_->Flush();
1268 1266
1269 if (!use_shaders_for_blending) 1267 if (!use_shaders_for_blending)
1270 RestoreBlendFuncToDefault(blend_mode); 1268 RestoreBlendFuncToDefault(blend_mode);
1271 } 1269 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1303 std::abs(clip_region->p2().y()) < kAntiAliasingEpsilon; 1301 std::abs(clip_region->p2().y()) < kAntiAliasingEpsilon;
1304 } 1302 }
1305 1303
1306 bool is_bottom(const gfx::QuadF* clip_region, const DrawQuad* quad) { 1304 bool is_bottom(const gfx::QuadF* clip_region, const DrawQuad* quad) {
1307 if (!quad->IsBottomEdge()) 1305 if (!quad->IsBottomEdge())
1308 return false; 1306 return false;
1309 if (!clip_region) 1307 if (!clip_region)
1310 return true; 1308 return true;
1311 1309
1312 return std::abs(clip_region->p3().y() - 1310 return std::abs(clip_region->p3().y() -
1313 quad->shared_quad_state->content_bounds.height()) < 1311 quad->shared_quad_state->quad_layer_bounds.height()) <
1314 kAntiAliasingEpsilon && 1312 kAntiAliasingEpsilon &&
1315 std::abs(clip_region->p4().y() - 1313 std::abs(clip_region->p4().y() -
1316 quad->shared_quad_state->content_bounds.height()) < 1314 quad->shared_quad_state->quad_layer_bounds.height()) <
1317 kAntiAliasingEpsilon; 1315 kAntiAliasingEpsilon;
1318 } 1316 }
1319 1317
1320 bool is_left(const gfx::QuadF* clip_region, const DrawQuad* quad) { 1318 bool is_left(const gfx::QuadF* clip_region, const DrawQuad* quad) {
1321 if (!quad->IsLeftEdge()) 1319 if (!quad->IsLeftEdge())
1322 return false; 1320 return false;
1323 if (!clip_region) 1321 if (!clip_region)
1324 return true; 1322 return true;
1325 1323
1326 return std::abs(clip_region->p1().x()) < kAntiAliasingEpsilon && 1324 return std::abs(clip_region->p1().x()) < kAntiAliasingEpsilon &&
1327 std::abs(clip_region->p4().x()) < kAntiAliasingEpsilon; 1325 std::abs(clip_region->p4().x()) < kAntiAliasingEpsilon;
1328 } 1326 }
1329 1327
1330 bool is_right(const gfx::QuadF* clip_region, const DrawQuad* quad) { 1328 bool is_right(const gfx::QuadF* clip_region, const DrawQuad* quad) {
1331 if (!quad->IsRightEdge()) 1329 if (!quad->IsRightEdge())
1332 return false; 1330 return false;
1333 if (!clip_region) 1331 if (!clip_region)
1334 return true; 1332 return true;
1335 1333
1336 return std::abs(clip_region->p2().x() - 1334 return std::abs(clip_region->p2().x() -
1337 quad->shared_quad_state->content_bounds.width()) < 1335 quad->shared_quad_state->quad_layer_bounds.width()) <
1338 kAntiAliasingEpsilon && 1336 kAntiAliasingEpsilon &&
1339 std::abs(clip_region->p3().x() - 1337 std::abs(clip_region->p3().x() -
1340 quad->shared_quad_state->content_bounds.width()) < 1338 quad->shared_quad_state->quad_layer_bounds.width()) <
1341 kAntiAliasingEpsilon; 1339 kAntiAliasingEpsilon;
1342 } 1340 }
1343 } // anonymous namespace 1341 } // anonymous namespace
1344 1342
1345 static gfx::QuadF GetDeviceQuadWithAntialiasingOnExteriorEdges( 1343 static gfx::QuadF GetDeviceQuadWithAntialiasingOnExteriorEdges(
1346 const LayerQuad& device_layer_edges, 1344 const LayerQuad& device_layer_edges,
1347 const gfx::Transform& device_transform, 1345 const gfx::Transform& device_transform,
1348 const gfx::QuadF& tile_quad, 1346 const gfx::QuadF& tile_quad,
1349 const gfx::QuadF* clip_region, 1347 const gfx::QuadF* clip_region,
1350 const DrawQuad* quad) { 1348 const DrawQuad* quad) {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 float opacity = quad->shared_quad_state->opacity; 1575 float opacity = quad->shared_quad_state->opacity;
1578 float alpha = (SkColorGetA(color) * (1.0f / 255.0f)) * opacity; 1576 float alpha = (SkColorGetA(color) * (1.0f / 255.0f)) * opacity;
1579 1577
1580 // Early out if alpha is small enough that quad doesn't contribute to output. 1578 // Early out if alpha is small enough that quad doesn't contribute to output.
1581 if (alpha < std::numeric_limits<float>::epsilon() && 1579 if (alpha < std::numeric_limits<float>::epsilon() &&
1582 quad->ShouldDrawWithBlending()) 1580 quad->ShouldDrawWithBlending())
1583 return; 1581 return;
1584 1582
1585 gfx::Transform device_transform = 1583 gfx::Transform device_transform =
1586 frame->window_matrix * frame->projection_matrix * 1584 frame->window_matrix * frame->projection_matrix *
1587 quad->shared_quad_state->content_to_target_transform; 1585 quad->shared_quad_state->quad_to_target_transform;
1588 device_transform.FlattenTo2d(); 1586 device_transform.FlattenTo2d();
1589 if (!device_transform.IsInvertible()) 1587 if (!device_transform.IsInvertible())
1590 return; 1588 return;
1591 1589
1592 gfx::QuadF local_quad = gfx::QuadF(gfx::RectF(tile_rect)); 1590 gfx::QuadF local_quad = gfx::QuadF(gfx::RectF(tile_rect));
1593 1591
1594 gfx::QuadF device_layer_quad; 1592 gfx::QuadF device_layer_quad;
1595 bool use_aa = false; 1593 bool use_aa = false;
1596 bool allow_aa = settings_->allow_antialiasing && 1594 bool allow_aa = settings_->allow_antialiasing &&
1597 !quad->force_anti_aliasing_off && quad->IsEdge(); 1595 !quad->force_anti_aliasing_off && quad->IsEdge();
1598 1596
1599 if (allow_aa) { 1597 if (allow_aa) {
1600 bool clipped = false; 1598 bool clipped = false;
1601 bool force_aa = false; 1599 bool force_aa = false;
1602 device_layer_quad = MathUtil::MapQuad( 1600 device_layer_quad = MathUtil::MapQuad(
1603 device_transform, 1601 device_transform,
1604 gfx::QuadF(quad->shared_quad_state->visible_content_rect), &clipped); 1602 gfx::QuadF(quad->shared_quad_state->visible_quad_layer_rect), &clipped);
1605 use_aa = ShouldAntialiasQuad(device_layer_quad, clipped, force_aa); 1603 use_aa = ShouldAntialiasQuad(device_layer_quad, clipped, force_aa);
1606 } 1604 }
1607 1605
1608 float edge[24]; 1606 float edge[24];
1609 const gfx::QuadF* aa_quad = use_aa ? &device_layer_quad : nullptr; 1607 const gfx::QuadF* aa_quad = use_aa ? &device_layer_quad : nullptr;
1610 SetupQuadForClippingAndAntialiasing(device_transform, quad, aa_quad, 1608 SetupQuadForClippingAndAntialiasing(device_transform, quad, aa_quad,
1611 clip_region, &local_quad, edge); 1609 clip_region, &local_quad, edge);
1612 1610
1613 SolidColorProgramUniforms uniforms; 1611 SolidColorProgramUniforms uniforms;
1614 if (use_aa) { 1612 if (use_aa) {
(...skipping 27 matching lines...) Expand all
1642 1640
1643 SetShaderQuadF(local_quad, uniforms.quad_location); 1641 SetShaderQuadF(local_quad, uniforms.quad_location);
1644 1642
1645 // The transform and vertex data are used to figure out the extents that the 1643 // The transform and vertex data are used to figure out the extents that the
1646 // un-antialiased quad should have and which vertex this is and the float 1644 // un-antialiased quad should have and which vertex this is and the float
1647 // quad passed in via uniform is the actual geometry that gets used to draw 1645 // quad passed in via uniform is the actual geometry that gets used to draw
1648 // it. This is why this centered rect is used and not the original quad_rect. 1646 // it. This is why this centered rect is used and not the original quad_rect.
1649 gfx::RectF centered_rect( 1647 gfx::RectF centered_rect(
1650 gfx::PointF(-0.5f * tile_rect.width(), -0.5f * tile_rect.height()), 1648 gfx::PointF(-0.5f * tile_rect.width(), -0.5f * tile_rect.height()),
1651 tile_rect.size()); 1649 tile_rect.size());
1652 DrawQuadGeometry(frame, quad->shared_quad_state->content_to_target_transform, 1650 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
1653 centered_rect, uniforms.matrix_location); 1651 centered_rect, uniforms.matrix_location);
1654 } 1652 }
1655 1653
1656 struct TileProgramUniforms { 1654 struct TileProgramUniforms {
1657 unsigned program; 1655 unsigned program;
1658 unsigned matrix_location; 1656 unsigned matrix_location;
1659 unsigned viewport_location; 1657 unsigned viewport_location;
1660 unsigned quad_location; 1658 unsigned quad_location;
1661 unsigned edge_location; 1659 unsigned edge_location;
1662 unsigned vertex_tex_transform_location; 1660 unsigned vertex_tex_transform_location;
(...skipping 23 matching lines...) Expand all
1686 const gfx::QuadF* clip_region) { 1684 const gfx::QuadF* clip_region) {
1687 DrawContentQuad(frame, quad, quad->resource_id(), clip_region); 1685 DrawContentQuad(frame, quad, quad->resource_id(), clip_region);
1688 } 1686 }
1689 1687
1690 void GLRenderer::DrawContentQuad(const DrawingFrame* frame, 1688 void GLRenderer::DrawContentQuad(const DrawingFrame* frame,
1691 const ContentDrawQuadBase* quad, 1689 const ContentDrawQuadBase* quad,
1692 ResourceId resource_id, 1690 ResourceId resource_id,
1693 const gfx::QuadF* clip_region) { 1691 const gfx::QuadF* clip_region) {
1694 gfx::Transform device_transform = 1692 gfx::Transform device_transform =
1695 frame->window_matrix * frame->projection_matrix * 1693 frame->window_matrix * frame->projection_matrix *
1696 quad->shared_quad_state->content_to_target_transform; 1694 quad->shared_quad_state->quad_to_target_transform;
1697 device_transform.FlattenTo2d(); 1695 device_transform.FlattenTo2d();
1698 1696
1699 gfx::QuadF device_layer_quad; 1697 gfx::QuadF device_layer_quad;
1700 bool use_aa = false; 1698 bool use_aa = false;
1701 bool allow_aa = settings_->allow_antialiasing && quad->IsEdge(); 1699 bool allow_aa = settings_->allow_antialiasing && quad->IsEdge();
1702 if (allow_aa) { 1700 if (allow_aa) {
1703 bool clipped = false; 1701 bool clipped = false;
1704 bool force_aa = false; 1702 bool force_aa = false;
1705 device_layer_quad = MathUtil::MapQuad( 1703 device_layer_quad = MathUtil::MapQuad(
1706 device_transform, 1704 device_transform,
1707 gfx::QuadF(quad->shared_quad_state->visible_content_rect), &clipped); 1705 gfx::QuadF(quad->shared_quad_state->visible_quad_layer_rect), &clipped);
1708 use_aa = ShouldAntialiasQuad(device_layer_quad, clipped, force_aa); 1706 use_aa = ShouldAntialiasQuad(device_layer_quad, clipped, force_aa);
1709 } 1707 }
1710 1708
1711 // TODO(timav): simplify coordinate transformations in DrawContentQuadAA 1709 // TODO(timav): simplify coordinate transformations in DrawContentQuadAA
1712 // similar to the way DrawContentQuadNoAA works and then consider 1710 // similar to the way DrawContentQuadNoAA works and then consider
1713 // combining DrawContentQuadAA and DrawContentQuadNoAA into one method. 1711 // combining DrawContentQuadAA and DrawContentQuadNoAA into one method.
1714 if (use_aa) 1712 if (use_aa)
1715 DrawContentQuadAA(frame, quad, resource_id, device_transform, 1713 DrawContentQuadAA(frame, quad, resource_id, device_transform,
1716 device_layer_quad, clip_region); 1714 device_layer_quad, clip_region);
1717 else 1715 else
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1828 SetShaderOpacity(quad->shared_quad_state->opacity, uniforms.alpha_location); 1826 SetShaderOpacity(quad->shared_quad_state->opacity, uniforms.alpha_location);
1829 SetShaderQuadF(local_quad, uniforms.quad_location); 1827 SetShaderQuadF(local_quad, uniforms.quad_location);
1830 1828
1831 // The transform and vertex data are used to figure out the extents that the 1829 // The transform and vertex data are used to figure out the extents that the
1832 // un-antialiased quad should have and which vertex this is and the float 1830 // un-antialiased quad should have and which vertex this is and the float
1833 // quad passed in via uniform is the actual geometry that gets used to draw 1831 // quad passed in via uniform is the actual geometry that gets used to draw
1834 // it. This is why this centered rect is used and not the original quad_rect. 1832 // it. This is why this centered rect is used and not the original quad_rect.
1835 gfx::RectF centered_rect( 1833 gfx::RectF centered_rect(
1836 gfx::PointF(-0.5f * tile_rect.width(), -0.5f * tile_rect.height()), 1834 gfx::PointF(-0.5f * tile_rect.width(), -0.5f * tile_rect.height()),
1837 tile_rect.size()); 1835 tile_rect.size());
1838 DrawQuadGeometry(frame, quad->shared_quad_state->content_to_target_transform, 1836 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
1839 centered_rect, uniforms.matrix_location); 1837 centered_rect, uniforms.matrix_location);
1840 } 1838 }
1841 1839
1842 void GLRenderer::DrawContentQuadNoAA(const DrawingFrame* frame, 1840 void GLRenderer::DrawContentQuadNoAA(const DrawingFrame* frame,
1843 const ContentDrawQuadBase* quad, 1841 const ContentDrawQuadBase* quad,
1844 ResourceId resource_id, 1842 ResourceId resource_id,
1845 const gfx::QuadF* clip_region) { 1843 const gfx::QuadF* clip_region) {
1846 gfx::RectF tex_coord_rect = MathUtil::ScaleRectProportional( 1844 gfx::RectF tex_coord_rect = MathUtil::ScaleRectProportional(
1847 quad->tex_coord_rect, quad->rect, quad->visible_rect); 1845 quad->tex_coord_rect, quad->rect, quad->visible_rect);
1848 float tex_to_geom_scale_x = quad->rect.width() / quad->tex_coord_rect.width(); 1846 float tex_to_geom_scale_x = quad->rect.width() / quad->tex_coord_rect.width();
1849 float tex_to_geom_scale_y = 1847 float tex_to_geom_scale_y =
1850 quad->rect.height() / quad->tex_coord_rect.height(); 1848 quad->rect.height() / quad->tex_coord_rect.height();
1851 1849
1852 bool scaled = (tex_to_geom_scale_x != 1.f || tex_to_geom_scale_y != 1.f); 1850 bool scaled = (tex_to_geom_scale_x != 1.f || tex_to_geom_scale_y != 1.f);
1853 GLenum filter = (scaled || 1851 GLenum filter = (scaled ||
1854 !quad->shared_quad_state->content_to_target_transform 1852 !quad->shared_quad_state->quad_to_target_transform
1855 .IsIdentityOrIntegerTranslation()) && 1853 .IsIdentityOrIntegerTranslation()) &&
1856 !quad->nearest_neighbor 1854 !quad->nearest_neighbor
1857 ? GL_LINEAR 1855 ? GL_LINEAR
1858 : GL_NEAREST; 1856 : GL_NEAREST;
1859 1857
1860 ResourceProvider::ScopedSamplerGL quad_resource_lock( 1858 ResourceProvider::ScopedSamplerGL quad_resource_lock(
1861 resource_provider_, resource_id, filter); 1859 resource_provider_, resource_id, filter);
1862 SamplerType sampler = 1860 SamplerType sampler =
1863 SamplerTypeFromTextureTarget(quad_resource_lock.target()); 1861 SamplerTypeFromTextureTarget(quad_resource_lock.target());
1864 1862
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1944 tile_rect.p2().x(), 1942 tile_rect.p2().x(),
1945 tile_rect.p2().y(), 1943 tile_rect.p2().y(),
1946 tile_rect.p3().x(), 1944 tile_rect.p3().x(),
1947 tile_rect.p3().y(), 1945 tile_rect.p3().y(),
1948 }; 1946 };
1949 gl_->Uniform2fv(uniforms.quad_location, 4, gl_quad); 1947 gl_->Uniform2fv(uniforms.quad_location, 4, gl_quad);
1950 1948
1951 static float gl_matrix[16]; 1949 static float gl_matrix[16];
1952 ToGLMatrix(&gl_matrix[0], 1950 ToGLMatrix(&gl_matrix[0],
1953 frame->projection_matrix * 1951 frame->projection_matrix *
1954 quad->shared_quad_state->content_to_target_transform); 1952 quad->shared_quad_state->quad_to_target_transform);
1955 gl_->UniformMatrix4fv(uniforms.matrix_location, 1, false, &gl_matrix[0]); 1953 gl_->UniformMatrix4fv(uniforms.matrix_location, 1, false, &gl_matrix[0]);
1956 1954
1957 gl_->DrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); 1955 gl_->DrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
1958 } 1956 }
1959 1957
1960 void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame, 1958 void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
1961 const YUVVideoDrawQuad* quad, 1959 const YUVVideoDrawQuad* quad,
1962 const gfx::QuadF* clip_region) { 1960 const gfx::QuadF* clip_region) {
1963 SetBlendEnabled(quad->ShouldDrawWithBlending()); 1961 SetBlendEnabled(quad->ShouldDrawWithBlending());
1964 1962
1965 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 1963 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
1966 gl_, 1964 gl_, &highp_threshold_cache_, highp_threshold_min_,
1967 &highp_threshold_cache_, 1965 quad->shared_quad_state->visible_quad_layer_rect.bottom_right());
1968 highp_threshold_min_,
1969 quad->shared_quad_state->visible_content_rect.bottom_right());
1970 1966
1971 bool use_alpha_plane = quad->a_plane_resource_id() != 0; 1967 bool use_alpha_plane = quad->a_plane_resource_id() != 0;
1972 1968
1973 ResourceProvider::ScopedSamplerGL y_plane_lock( 1969 ResourceProvider::ScopedSamplerGL y_plane_lock(
1974 resource_provider_, quad->y_plane_resource_id(), GL_TEXTURE1, GL_LINEAR); 1970 resource_provider_, quad->y_plane_resource_id(), GL_TEXTURE1, GL_LINEAR);
1975 ResourceProvider::ScopedSamplerGL u_plane_lock( 1971 ResourceProvider::ScopedSamplerGL u_plane_lock(
1976 resource_provider_, quad->u_plane_resource_id(), GL_TEXTURE2, GL_LINEAR); 1972 resource_provider_, quad->u_plane_resource_id(), GL_TEXTURE2, GL_LINEAR);
1977 DCHECK_EQ(y_plane_lock.target(), u_plane_lock.target()); 1973 DCHECK_EQ(y_plane_lock.target(), u_plane_lock.target());
1978 ResourceProvider::ScopedSamplerGL v_plane_lock( 1974 ResourceProvider::ScopedSamplerGL v_plane_lock(
1979 resource_provider_, quad->v_plane_resource_id(), GL_TEXTURE3, GL_LINEAR); 1975 resource_provider_, quad->v_plane_resource_id(), GL_TEXTURE3, GL_LINEAR);
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 // The transform and vertex data are used to figure out the extents that the 2148 // The transform and vertex data are used to figure out the extents that the
2153 // un-antialiased quad should have and which vertex this is and the float 2149 // un-antialiased quad should have and which vertex this is and the float
2154 // quad passed in via uniform is the actual geometry that gets used to draw 2150 // quad passed in via uniform is the actual geometry that gets used to draw
2155 // it. This is why this centered rect is used and not the original quad_rect. 2151 // it. This is why this centered rect is used and not the original quad_rect.
2156 gfx::RectF tile_rect = quad->rect; 2152 gfx::RectF tile_rect = quad->rect;
2157 gl_->UniformMatrix3fv(yuv_matrix_location, 1, 0, yuv_to_rgb); 2153 gl_->UniformMatrix3fv(yuv_matrix_location, 1, 0, yuv_to_rgb);
2158 gl_->Uniform3fv(yuv_adj_location, 1, yuv_adjust); 2154 gl_->Uniform3fv(yuv_adj_location, 1, yuv_adjust);
2159 2155
2160 SetShaderOpacity(quad->shared_quad_state->opacity, alpha_location); 2156 SetShaderOpacity(quad->shared_quad_state->opacity, alpha_location);
2161 if (!clip_region) { 2157 if (!clip_region) {
2162 DrawQuadGeometry(frame, 2158 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
2163 quad->shared_quad_state->content_to_target_transform,
2164 tile_rect, matrix_location); 2159 tile_rect, matrix_location);
2165 } else { 2160 } else {
2166 float uvs[8] = {0}; 2161 float uvs[8] = {0};
2167 GetScaledUVs(quad->visible_rect, clip_region, uvs); 2162 GetScaledUVs(quad->visible_rect, clip_region, uvs);
2168 gfx::QuadF region_quad = *clip_region; 2163 gfx::QuadF region_quad = *clip_region;
2169 region_quad.Scale(1.0f / tile_rect.width(), 1.0f / tile_rect.height()); 2164 region_quad.Scale(1.0f / tile_rect.width(), 1.0f / tile_rect.height());
2170 region_quad -= gfx::Vector2dF(0.5f, 0.5f); 2165 region_quad -= gfx::Vector2dF(0.5f, 0.5f);
2171 DrawQuadGeometryClippedByQuadF( 2166 DrawQuadGeometryClippedByQuadF(
2172 frame, quad->shared_quad_state->content_to_target_transform, tile_rect, 2167 frame, quad->shared_quad_state->quad_to_target_transform, tile_rect,
2173 region_quad, matrix_location, uvs); 2168 region_quad, matrix_location, uvs);
2174 } 2169 }
2175 } 2170 }
2176 2171
2177 void GLRenderer::DrawStreamVideoQuad(const DrawingFrame* frame, 2172 void GLRenderer::DrawStreamVideoQuad(const DrawingFrame* frame,
2178 const StreamVideoDrawQuad* quad, 2173 const StreamVideoDrawQuad* quad,
2179 const gfx::QuadF* clip_region) { 2174 const gfx::QuadF* clip_region) {
2180 SetBlendEnabled(quad->ShouldDrawWithBlending()); 2175 SetBlendEnabled(quad->ShouldDrawWithBlending());
2181 2176
2182 static float gl_matrix[16]; 2177 static float gl_matrix[16];
2183 2178
2184 DCHECK(capabilities_.using_egl_image); 2179 DCHECK(capabilities_.using_egl_image);
2185 2180
2186 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 2181 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
2187 gl_, 2182 gl_, &highp_threshold_cache_, highp_threshold_min_,
2188 &highp_threshold_cache_, 2183 quad->shared_quad_state->visible_quad_layer_rect.bottom_right());
2189 highp_threshold_min_,
2190 quad->shared_quad_state->visible_content_rect.bottom_right());
2191 2184
2192 const VideoStreamTextureProgram* program = 2185 const VideoStreamTextureProgram* program =
2193 GetVideoStreamTextureProgram(tex_coord_precision); 2186 GetVideoStreamTextureProgram(tex_coord_precision);
2194 SetUseProgram(program->program()); 2187 SetUseProgram(program->program());
2195 2188
2196 ToGLMatrix(&gl_matrix[0], quad->matrix); 2189 ToGLMatrix(&gl_matrix[0], quad->matrix);
2197 gl_->UniformMatrix4fv(program->vertex_shader().tex_matrix_location(), 1, 2190 gl_->UniformMatrix4fv(program->vertex_shader().tex_matrix_location(), 1,
2198 false, gl_matrix); 2191 false, gl_matrix);
2199 2192
2200 ResourceProvider::ScopedReadLockGL lock(resource_provider_, 2193 ResourceProvider::ScopedReadLockGL lock(resource_provider_,
2201 quad->resource_id()); 2194 quad->resource_id());
2202 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); 2195 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
2203 gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); 2196 gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id());
2204 2197
2205 gl_->Uniform1i(program->fragment_shader().sampler_location(), 0); 2198 gl_->Uniform1i(program->fragment_shader().sampler_location(), 0);
2206 2199
2207 SetShaderOpacity(quad->shared_quad_state->opacity, 2200 SetShaderOpacity(quad->shared_quad_state->opacity,
2208 program->fragment_shader().alpha_location()); 2201 program->fragment_shader().alpha_location());
2209 if (!clip_region) { 2202 if (!clip_region) {
2210 DrawQuadGeometry(frame, 2203 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
2211 quad->shared_quad_state->content_to_target_transform,
2212 quad->rect, program->vertex_shader().matrix_location()); 2204 quad->rect, program->vertex_shader().matrix_location());
2213 } else { 2205 } else {
2214 gfx::QuadF region_quad(*clip_region); 2206 gfx::QuadF region_quad(*clip_region);
2215 region_quad.Scale(1.0f / quad->rect.width(), 1.0f / quad->rect.height()); 2207 region_quad.Scale(1.0f / quad->rect.width(), 1.0f / quad->rect.height());
2216 region_quad -= gfx::Vector2dF(0.5f, 0.5f); 2208 region_quad -= gfx::Vector2dF(0.5f, 0.5f);
2217 float uvs[8] = {0}; 2209 float uvs[8] = {0};
2218 GetScaledUVs(quad->visible_rect, clip_region, uvs); 2210 GetScaledUVs(quad->visible_rect, clip_region, uvs);
2219 DrawQuadGeometryClippedByQuadF( 2211 DrawQuadGeometryClippedByQuadF(
2220 frame, quad->shared_quad_state->content_to_target_transform, quad->rect, 2212 frame, quad->shared_quad_state->quad_to_target_transform, quad->rect,
2221 region_quad, program->vertex_shader().matrix_location(), uvs); 2213 region_quad, program->vertex_shader().matrix_location(), uvs);
2222 } 2214 }
2223 } 2215 }
2224 2216
2225 struct TextureProgramBinding { 2217 struct TextureProgramBinding {
2226 template <class Program> 2218 template <class Program>
2227 void Set(Program* program) { 2219 void Set(Program* program) {
2228 DCHECK(program); 2220 DCHECK(program);
2229 program_id = program->program(); 2221 program_id = program->program();
2230 sampler_location = program->fragment_shader().sampler_location(); 2222 sampler_location = program->fragment_shader().sampler_location();
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 // If we have a clip_region then we have to render the next quad 2318 // If we have a clip_region then we have to render the next quad
2327 // with dynamic geometry, therefore we must flush all pending 2319 // with dynamic geometry, therefore we must flush all pending
2328 // texture quads. 2320 // texture quads.
2329 if (clip_region) { 2321 if (clip_region) {
2330 // We send in false here because we want to flush what's currently in the 2322 // We send in false here because we want to flush what's currently in the
2331 // queue using the shared_geometry and not clipped_geometry 2323 // queue using the shared_geometry and not clipped_geometry
2332 FlushTextureQuadCache(SHARED_BINDING); 2324 FlushTextureQuadCache(SHARED_BINDING);
2333 } 2325 }
2334 2326
2335 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 2327 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
2336 gl_, 2328 gl_, &highp_threshold_cache_, highp_threshold_min_,
2337 &highp_threshold_cache_, 2329 quad->shared_quad_state->visible_quad_layer_rect.bottom_right());
2338 highp_threshold_min_,
2339 quad->shared_quad_state->visible_content_rect.bottom_right());
2340 2330
2341 ResourceProvider::ScopedReadLockGL lock(resource_provider_, 2331 ResourceProvider::ScopedReadLockGL lock(resource_provider_,
2342 quad->resource_id()); 2332 quad->resource_id());
2343 const SamplerType sampler = SamplerTypeFromTextureTarget(lock.target()); 2333 const SamplerType sampler = SamplerTypeFromTextureTarget(lock.target());
2344 // Choose the correct texture program binding 2334 // Choose the correct texture program binding
2345 TexTransformTextureProgramBinding binding; 2335 TexTransformTextureProgramBinding binding;
2346 if (quad->premultiplied_alpha) { 2336 if (quad->premultiplied_alpha) {
2347 if (quad->background_color == SK_ColorTRANSPARENT) { 2337 if (quad->background_color == SK_ColorTRANSPARENT) {
2348 binding.Set(GetTextureProgram(tex_coord_precision, sampler)); 2338 binding.Set(GetTextureProgram(tex_coord_precision, sampler));
2349 } else { 2339 } else {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 // Generate the vertex opacity 2382 // Generate the vertex opacity
2393 const float opacity = quad->shared_quad_state->opacity; 2383 const float opacity = quad->shared_quad_state->opacity;
2394 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[0] * opacity); 2384 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[0] * opacity);
2395 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[1] * opacity); 2385 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[1] * opacity);
2396 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[2] * opacity); 2386 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[2] * opacity);
2397 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[3] * opacity); 2387 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[3] * opacity);
2398 2388
2399 // Generate the transform matrix 2389 // Generate the transform matrix
2400 gfx::Transform quad_rect_matrix; 2390 gfx::Transform quad_rect_matrix;
2401 QuadRectTransform(&quad_rect_matrix, 2391 QuadRectTransform(&quad_rect_matrix,
2402 quad->shared_quad_state->content_to_target_transform, 2392 quad->shared_quad_state->quad_to_target_transform,
2403 quad->rect); 2393 quad->rect);
2404 quad_rect_matrix = frame->projection_matrix * quad_rect_matrix; 2394 quad_rect_matrix = frame->projection_matrix * quad_rect_matrix;
2405 2395
2406 Float16 m; 2396 Float16 m;
2407 quad_rect_matrix.matrix().asColMajorf(m.data); 2397 quad_rect_matrix.matrix().asColMajorf(m.data);
2408 draw_cache_.matrix_data.push_back(m); 2398 draw_cache_.matrix_data.push_back(m);
2409 2399
2410 if (clip_region) { 2400 if (clip_region) {
2411 gfx::QuadF scaled_region; 2401 gfx::QuadF scaled_region;
2412 if (!GetScaledRegion(quad->rect, clip_region, &scaled_region)) { 2402 if (!GetScaledRegion(quad->rect, clip_region, &scaled_region)) {
(...skipping 15 matching lines...) Expand all
2428 FlushTextureQuadCache(CLIPPED_BINDING); 2418 FlushTextureQuadCache(CLIPPED_BINDING);
2429 } 2419 }
2430 } 2420 }
2431 2421
2432 void GLRenderer::DrawIOSurfaceQuad(const DrawingFrame* frame, 2422 void GLRenderer::DrawIOSurfaceQuad(const DrawingFrame* frame,
2433 const IOSurfaceDrawQuad* quad, 2423 const IOSurfaceDrawQuad* quad,
2434 const gfx::QuadF* clip_region) { 2424 const gfx::QuadF* clip_region) {
2435 SetBlendEnabled(quad->ShouldDrawWithBlending()); 2425 SetBlendEnabled(quad->ShouldDrawWithBlending());
2436 2426
2437 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 2427 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
2438 gl_, 2428 gl_, &highp_threshold_cache_, highp_threshold_min_,
2439 &highp_threshold_cache_, 2429 quad->shared_quad_state->visible_quad_layer_rect.bottom_right());
2440 highp_threshold_min_,
2441 quad->shared_quad_state->visible_content_rect.bottom_right());
2442 2430
2443 TexTransformTextureProgramBinding binding; 2431 TexTransformTextureProgramBinding binding;
2444 binding.Set(GetTextureIOSurfaceProgram(tex_coord_precision)); 2432 binding.Set(GetTextureIOSurfaceProgram(tex_coord_precision));
2445 2433
2446 SetUseProgram(binding.program_id); 2434 SetUseProgram(binding.program_id);
2447 gl_->Uniform1i(binding.sampler_location, 0); 2435 gl_->Uniform1i(binding.sampler_location, 0);
2448 if (quad->orientation == IOSurfaceDrawQuad::FLIPPED) { 2436 if (quad->orientation == IOSurfaceDrawQuad::FLIPPED) {
2449 gl_->Uniform4f( 2437 gl_->Uniform4f(
2450 binding.tex_transform_location, 0, quad->io_surface_size.height(), 2438 binding.tex_transform_location, 0, quad->io_surface_size.height(),
2451 quad->io_surface_size.width(), quad->io_surface_size.height() * -1.0f); 2439 quad->io_surface_size.width(), quad->io_surface_size.height() * -1.0f);
2452 } else { 2440 } else {
2453 gl_->Uniform4f(binding.tex_transform_location, 0, 0, 2441 gl_->Uniform4f(binding.tex_transform_location, 0, 0,
2454 quad->io_surface_size.width(), 2442 quad->io_surface_size.width(),
2455 quad->io_surface_size.height()); 2443 quad->io_surface_size.height());
2456 } 2444 }
2457 2445
2458 const float vertex_opacity[] = {quad->shared_quad_state->opacity, 2446 const float vertex_opacity[] = {quad->shared_quad_state->opacity,
2459 quad->shared_quad_state->opacity, 2447 quad->shared_quad_state->opacity,
2460 quad->shared_quad_state->opacity, 2448 quad->shared_quad_state->opacity,
2461 quad->shared_quad_state->opacity}; 2449 quad->shared_quad_state->opacity};
2462 gl_->Uniform1fv(binding.vertex_opacity_location, 4, vertex_opacity); 2450 gl_->Uniform1fv(binding.vertex_opacity_location, 4, vertex_opacity);
2463 2451
2464 ResourceProvider::ScopedReadLockGL lock(resource_provider_, 2452 ResourceProvider::ScopedReadLockGL lock(resource_provider_,
2465 quad->io_surface_resource_id()); 2453 quad->io_surface_resource_id());
2466 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); 2454 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
2467 gl_->BindTexture(GL_TEXTURE_RECTANGLE_ARB, lock.texture_id()); 2455 gl_->BindTexture(GL_TEXTURE_RECTANGLE_ARB, lock.texture_id());
2468 2456
2469 if (!clip_region) { 2457 if (!clip_region) {
2470 DrawQuadGeometry(frame, 2458 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform,
2471 quad->shared_quad_state->content_to_target_transform,
2472 quad->rect, binding.matrix_location); 2459 quad->rect, binding.matrix_location);
2473 } else { 2460 } else {
2474 float uvs[8] = {0}; 2461 float uvs[8] = {0};
2475 GetScaledUVs(quad->visible_rect, clip_region, uvs); 2462 GetScaledUVs(quad->visible_rect, clip_region, uvs);
2476 DrawQuadGeometryClippedByQuadF( 2463 DrawQuadGeometryClippedByQuadF(
2477 frame, quad->shared_quad_state->content_to_target_transform, quad->rect, 2464 frame, quad->shared_quad_state->quad_to_target_transform, quad->rect,
2478 *clip_region, binding.matrix_location, uvs); 2465 *clip_region, binding.matrix_location, uvs);
2479 } 2466 }
2480 2467
2481 gl_->BindTexture(GL_TEXTURE_RECTANGLE_ARB, 0); 2468 gl_->BindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
2482 } 2469 }
2483 2470
2484 void GLRenderer::FinishDrawingFrame(DrawingFrame* frame) { 2471 void GLRenderer::FinishDrawingFrame(DrawingFrame* frame) {
2485 if (use_sync_query_) { 2472 if (use_sync_query_) {
2486 DCHECK(current_sync_query_); 2473 DCHECK(current_sync_query_);
2487 current_sync_query_->End(); 2474 current_sync_query_->End();
(...skipping 1096 matching lines...) Expand 10 before | Expand all | Expand 10 after
3584 context_support_->ScheduleOverlayPlane( 3571 context_support_->ScheduleOverlayPlane(
3585 overlay.plane_z_order, 3572 overlay.plane_z_order,
3586 overlay.transform, 3573 overlay.transform,
3587 pending_overlay_resources_.back()->texture_id(), 3574 pending_overlay_resources_.back()->texture_id(),
3588 ToNearestRect(overlay.display_rect), 3575 ToNearestRect(overlay.display_rect),
3589 overlay.uv_rect); 3576 overlay.uv_rect);
3590 } 3577 }
3591 } 3578 }
3592 3579
3593 } // namespace cc 3580 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/direct_renderer.cc ('k') | cc/output/overlay_strategy_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698