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

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

Issue 1131253003: cc: Add support for non-2D texture targets to YUVVideoQuad. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/jamesr/sky/ Created 5 years, 7 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/gl_renderer.h ('k') | cc/output/gl_renderer_unittest.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 1885 matching lines...) Expand 10 before | Expand all | Expand 10 after
1896 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 1896 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
1897 gl_, 1897 gl_,
1898 &highp_threshold_cache_, 1898 &highp_threshold_cache_,
1899 highp_threshold_min_, 1899 highp_threshold_min_,
1900 quad->shared_quad_state->visible_content_rect.bottom_right()); 1900 quad->shared_quad_state->visible_content_rect.bottom_right());
1901 1901
1902 bool use_alpha_plane = quad->a_plane_resource_id != 0; 1902 bool use_alpha_plane = quad->a_plane_resource_id != 0;
1903 1903
1904 ResourceProvider::ScopedSamplerGL y_plane_lock( 1904 ResourceProvider::ScopedSamplerGL y_plane_lock(
1905 resource_provider_, quad->y_plane_resource_id, GL_TEXTURE1, GL_LINEAR); 1905 resource_provider_, quad->y_plane_resource_id, GL_TEXTURE1, GL_LINEAR);
1906 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), y_plane_lock.target());
1907 ResourceProvider::ScopedSamplerGL u_plane_lock( 1906 ResourceProvider::ScopedSamplerGL u_plane_lock(
1908 resource_provider_, quad->u_plane_resource_id, GL_TEXTURE2, GL_LINEAR); 1907 resource_provider_, quad->u_plane_resource_id, GL_TEXTURE2, GL_LINEAR);
1909 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), u_plane_lock.target()); 1908 DCHECK_EQ(y_plane_lock.target(), u_plane_lock.target());
1910 ResourceProvider::ScopedSamplerGL v_plane_lock( 1909 ResourceProvider::ScopedSamplerGL v_plane_lock(
1911 resource_provider_, quad->v_plane_resource_id, GL_TEXTURE3, GL_LINEAR); 1910 resource_provider_, quad->v_plane_resource_id, GL_TEXTURE3, GL_LINEAR);
1912 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), v_plane_lock.target()); 1911 DCHECK_EQ(y_plane_lock.target(), v_plane_lock.target());
1913 scoped_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock; 1912 scoped_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock;
1914 if (use_alpha_plane) { 1913 if (use_alpha_plane) {
1915 a_plane_lock.reset(new ResourceProvider::ScopedSamplerGL( 1914 a_plane_lock.reset(new ResourceProvider::ScopedSamplerGL(
1916 resource_provider_, quad->a_plane_resource_id, GL_TEXTURE4, GL_LINEAR)); 1915 resource_provider_, quad->a_plane_resource_id, GL_TEXTURE4, GL_LINEAR));
1917 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), a_plane_lock->target()); 1916 DCHECK_EQ(y_plane_lock.target(), a_plane_lock->target());
1918 } 1917 }
1919 1918
1919 // All planes must have the same sampler type.
1920 SamplerType sampler = SamplerTypeFromTextureTarget(y_plane_lock.target());
1921
1920 int matrix_location = -1; 1922 int matrix_location = -1;
1921 int tex_scale_location = -1; 1923 int ya_tex_scale_location = -1;
1922 int tex_offset_location = -1; 1924 int ya_tex_offset_location = -1;
1925 int uv_tex_scale_location = -1;
1926 int uv_tex_offset_location = -1;
1923 int ya_clamp_rect_location = -1; 1927 int ya_clamp_rect_location = -1;
1924 int uv_clamp_rect_location = -1; 1928 int uv_clamp_rect_location = -1;
1925 int y_texture_location = -1; 1929 int y_texture_location = -1;
1926 int u_texture_location = -1; 1930 int u_texture_location = -1;
1927 int v_texture_location = -1; 1931 int v_texture_location = -1;
1928 int a_texture_location = -1; 1932 int a_texture_location = -1;
1929 int yuv_matrix_location = -1; 1933 int yuv_matrix_location = -1;
1930 int yuv_adj_location = -1; 1934 int yuv_adj_location = -1;
1931 int alpha_location = -1; 1935 int alpha_location = -1;
1932 if (use_alpha_plane) { 1936 if (use_alpha_plane) {
1933 const VideoYUVAProgram* program = GetVideoYUVAProgram(tex_coord_precision); 1937 const VideoYUVAProgram* program =
1938 GetVideoYUVAProgram(tex_coord_precision, sampler);
1934 DCHECK(program && (program->initialized() || IsContextLost())); 1939 DCHECK(program && (program->initialized() || IsContextLost()));
1935 SetUseProgram(program->program()); 1940 SetUseProgram(program->program());
1936 matrix_location = program->vertex_shader().matrix_location(); 1941 matrix_location = program->vertex_shader().matrix_location();
1937 tex_scale_location = program->vertex_shader().tex_scale_location(); 1942 ya_tex_scale_location = program->vertex_shader().ya_tex_scale_location();
1938 tex_offset_location = program->vertex_shader().tex_offset_location(); 1943 ya_tex_offset_location = program->vertex_shader().ya_tex_offset_location();
1944 uv_tex_scale_location = program->vertex_shader().uv_tex_scale_location();
1945 uv_tex_offset_location = program->vertex_shader().uv_tex_offset_location();
1939 y_texture_location = program->fragment_shader().y_texture_location(); 1946 y_texture_location = program->fragment_shader().y_texture_location();
1940 u_texture_location = program->fragment_shader().u_texture_location(); 1947 u_texture_location = program->fragment_shader().u_texture_location();
1941 v_texture_location = program->fragment_shader().v_texture_location(); 1948 v_texture_location = program->fragment_shader().v_texture_location();
1942 a_texture_location = program->fragment_shader().a_texture_location(); 1949 a_texture_location = program->fragment_shader().a_texture_location();
1943 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); 1950 yuv_matrix_location = program->fragment_shader().yuv_matrix_location();
1944 yuv_adj_location = program->fragment_shader().yuv_adj_location(); 1951 yuv_adj_location = program->fragment_shader().yuv_adj_location();
1945 ya_clamp_rect_location = 1952 ya_clamp_rect_location =
1946 program->fragment_shader().ya_clamp_rect_location(); 1953 program->fragment_shader().ya_clamp_rect_location();
1947 uv_clamp_rect_location = 1954 uv_clamp_rect_location =
1948 program->fragment_shader().uv_clamp_rect_location(); 1955 program->fragment_shader().uv_clamp_rect_location();
1949 alpha_location = program->fragment_shader().alpha_location(); 1956 alpha_location = program->fragment_shader().alpha_location();
1950 } else { 1957 } else {
1951 const VideoYUVProgram* program = GetVideoYUVProgram(tex_coord_precision); 1958 const VideoYUVProgram* program =
1959 GetVideoYUVProgram(tex_coord_precision, sampler);
1952 DCHECK(program && (program->initialized() || IsContextLost())); 1960 DCHECK(program && (program->initialized() || IsContextLost()));
1953 SetUseProgram(program->program()); 1961 SetUseProgram(program->program());
1954 matrix_location = program->vertex_shader().matrix_location(); 1962 matrix_location = program->vertex_shader().matrix_location();
1955 tex_scale_location = program->vertex_shader().tex_scale_location(); 1963 ya_tex_scale_location = program->vertex_shader().ya_tex_scale_location();
1956 tex_offset_location = program->vertex_shader().tex_offset_location(); 1964 ya_tex_offset_location = program->vertex_shader().ya_tex_offset_location();
1965 uv_tex_scale_location = program->vertex_shader().uv_tex_scale_location();
1966 uv_tex_offset_location = program->vertex_shader().uv_tex_offset_location();
1957 y_texture_location = program->fragment_shader().y_texture_location(); 1967 y_texture_location = program->fragment_shader().y_texture_location();
1958 u_texture_location = program->fragment_shader().u_texture_location(); 1968 u_texture_location = program->fragment_shader().u_texture_location();
1959 v_texture_location = program->fragment_shader().v_texture_location(); 1969 v_texture_location = program->fragment_shader().v_texture_location();
1960 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); 1970 yuv_matrix_location = program->fragment_shader().yuv_matrix_location();
1961 yuv_adj_location = program->fragment_shader().yuv_adj_location(); 1971 yuv_adj_location = program->fragment_shader().yuv_adj_location();
1962 ya_clamp_rect_location = 1972 ya_clamp_rect_location =
1963 program->fragment_shader().ya_clamp_rect_location(); 1973 program->fragment_shader().ya_clamp_rect_location();
1964 uv_clamp_rect_location = 1974 uv_clamp_rect_location =
1965 program->fragment_shader().uv_clamp_rect_location(); 1975 program->fragment_shader().uv_clamp_rect_location();
1966 alpha_location = program->fragment_shader().alpha_location(); 1976 alpha_location = program->fragment_shader().alpha_location();
1967 } 1977 }
1968 1978
1969 gl_->Uniform2f(tex_scale_location, quad->tex_coord_rect.width(), 1979 gfx::SizeF ya_tex_scale(1.0f, 1.0f);
1970 quad->tex_coord_rect.height()); 1980 gfx::SizeF uv_tex_scale(1.0f, 1.0f);
1971 gl_->Uniform2f(tex_offset_location, quad->tex_coord_rect.x(), 1981 if (sampler != SAMPLER_TYPE_2D_RECT) {
1972 quad->tex_coord_rect.y()); 1982 DCHECK(!quad->ya_tex_size.IsEmpty());
1973 // Clamping to half a texel inside the tex coord rect prevents bilinear 1983 DCHECK(!quad->uv_tex_size.IsEmpty());
1974 // filtering from filtering outside the tex coord rect. 1984 ya_tex_scale = gfx::SizeF(1.0f / quad->ya_tex_size.width(),
1975 gfx::RectF ya_clamp_rect(quad->tex_coord_rect); 1985 1.0f / quad->ya_tex_size.height());
1976 // Special case: empty texture size implies no clamping. 1986 uv_tex_scale = gfx::SizeF(1.0f / quad->uv_tex_size.width(),
1977 if (!quad->ya_tex_size.IsEmpty()) { 1987 1.0f / quad->uv_tex_size.height());
1978 ya_clamp_rect.Inset(0.5f / quad->ya_tex_size.width(),
1979 0.5f / quad->ya_tex_size.height());
1980 } 1988 }
1981 gfx::RectF uv_clamp_rect(quad->tex_coord_rect); 1989
1982 if (!quad->uv_tex_size.IsEmpty()) { 1990 float ya_vertex_tex_translate_x =
1983 uv_clamp_rect.Inset(0.5f / quad->uv_tex_size.width(), 1991 quad->ya_tex_coord_rect.x() * ya_tex_scale.width();
1984 0.5f / quad->uv_tex_size.height()); 1992 float ya_vertex_tex_translate_y =
1985 } 1993 quad->ya_tex_coord_rect.y() * ya_tex_scale.height();
1994 float ya_vertex_tex_scale_x =
1995 quad->ya_tex_coord_rect.width() * ya_tex_scale.width();
1996 float ya_vertex_tex_scale_y =
1997 quad->ya_tex_coord_rect.height() * ya_tex_scale.height();
1998
1999 float uv_vertex_tex_translate_x =
2000 quad->uv_tex_coord_rect.x() * uv_tex_scale.width();
2001 float uv_vertex_tex_translate_y =
2002 quad->uv_tex_coord_rect.y() * uv_tex_scale.height();
2003 float uv_vertex_tex_scale_x =
2004 quad->uv_tex_coord_rect.width() * uv_tex_scale.width();
2005 float uv_vertex_tex_scale_y =
2006 quad->uv_tex_coord_rect.height() * uv_tex_scale.height();
2007
2008 gl_->Uniform2f(ya_tex_scale_location, ya_vertex_tex_scale_x,
2009 ya_vertex_tex_scale_y);
2010 gl_->Uniform2f(ya_tex_offset_location, ya_vertex_tex_translate_x,
2011 ya_vertex_tex_translate_y);
2012 gl_->Uniform2f(uv_tex_scale_location, uv_vertex_tex_scale_x,
2013 uv_vertex_tex_scale_y);
2014 gl_->Uniform2f(uv_tex_offset_location, uv_vertex_tex_translate_x,
2015 uv_vertex_tex_translate_y);
2016
2017 gfx::RectF ya_clamp_rect(ya_vertex_tex_translate_x, ya_vertex_tex_translate_y,
2018 ya_vertex_tex_scale_x, ya_vertex_tex_scale_y);
2019 ya_clamp_rect.Inset(0.5f * ya_tex_scale.width(),
2020 0.5f * ya_tex_scale.height());
2021 gfx::RectF uv_clamp_rect(uv_vertex_tex_translate_x, uv_vertex_tex_translate_y,
2022 uv_vertex_tex_scale_x, uv_vertex_tex_scale_y);
2023 uv_clamp_rect.Inset(0.5f * uv_tex_scale.width(),
2024 0.5f * uv_tex_scale.height());
1986 gl_->Uniform4f(ya_clamp_rect_location, ya_clamp_rect.x(), ya_clamp_rect.y(), 2025 gl_->Uniform4f(ya_clamp_rect_location, ya_clamp_rect.x(), ya_clamp_rect.y(),
1987 ya_clamp_rect.right(), ya_clamp_rect.bottom()); 2026 ya_clamp_rect.right(), ya_clamp_rect.bottom());
1988 gl_->Uniform4f(uv_clamp_rect_location, uv_clamp_rect.x(), uv_clamp_rect.y(), 2027 gl_->Uniform4f(uv_clamp_rect_location, uv_clamp_rect.x(), uv_clamp_rect.y(),
1989 uv_clamp_rect.right(), uv_clamp_rect.bottom()); 2028 uv_clamp_rect.right(), uv_clamp_rect.bottom());
1990 2029
1991 gl_->Uniform1i(y_texture_location, 1); 2030 gl_->Uniform1i(y_texture_location, 1);
1992 gl_->Uniform1i(u_texture_location, 2); 2031 gl_->Uniform1i(u_texture_location, 2);
1993 gl_->Uniform1i(v_texture_location, 3); 2032 gl_->Uniform1i(v_texture_location, 3);
1994 if (use_alpha_plane) 2033 if (use_alpha_plane)
1995 gl_->Uniform1i(a_texture_location, 4); 2034 gl_->Uniform1i(a_texture_location, 4);
(...skipping 1281 matching lines...) Expand 10 before | Expand all | Expand 10 after
3277 TextureProgram* program = &texture_io_surface_program_[precision]; 3316 TextureProgram* program = &texture_io_surface_program_[precision];
3278 if (!program->initialized()) { 3317 if (!program->initialized()) {
3279 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize"); 3318 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize");
3280 program->Initialize(output_surface_->context_provider(), precision, 3319 program->Initialize(output_surface_->context_provider(), precision,
3281 SAMPLER_TYPE_2D_RECT); 3320 SAMPLER_TYPE_2D_RECT);
3282 } 3321 }
3283 return program; 3322 return program;
3284 } 3323 }
3285 3324
3286 const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram( 3325 const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram(
3287 TexCoordPrecision precision) { 3326 TexCoordPrecision precision,
3327 SamplerType sampler) {
3288 DCHECK_GE(precision, 0); 3328 DCHECK_GE(precision, 0);
3289 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 3329 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
3290 VideoYUVProgram* program = &video_yuv_program_[precision]; 3330 DCHECK_GE(sampler, 0);
3331 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
3332 VideoYUVProgram* program = &video_yuv_program_[precision][sampler];
3291 if (!program->initialized()) { 3333 if (!program->initialized()) {
3292 TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize"); 3334 TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize");
3293 program->Initialize(output_surface_->context_provider(), precision, 3335 program->Initialize(output_surface_->context_provider(), precision,
3294 SAMPLER_TYPE_2D); 3336 sampler);
3295 } 3337 }
3296 return program; 3338 return program;
3297 } 3339 }
3298 3340
3299 const GLRenderer::VideoYUVAProgram* GLRenderer::GetVideoYUVAProgram( 3341 const GLRenderer::VideoYUVAProgram* GLRenderer::GetVideoYUVAProgram(
3300 TexCoordPrecision precision) { 3342 TexCoordPrecision precision,
3343 SamplerType sampler) {
3301 DCHECK_GE(precision, 0); 3344 DCHECK_GE(precision, 0);
3302 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 3345 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
3303 VideoYUVAProgram* program = &video_yuva_program_[precision]; 3346 DCHECK_GE(sampler, 0);
3347 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
3348 VideoYUVAProgram* program = &video_yuva_program_[precision][sampler];
3304 if (!program->initialized()) { 3349 if (!program->initialized()) {
3305 TRACE_EVENT0("cc", "GLRenderer::videoYUVAProgram::initialize"); 3350 TRACE_EVENT0("cc", "GLRenderer::videoYUVAProgram::initialize");
3306 program->Initialize(output_surface_->context_provider(), precision, 3351 program->Initialize(output_surface_->context_provider(), precision,
3307 SAMPLER_TYPE_2D); 3352 sampler);
3308 } 3353 }
3309 return program; 3354 return program;
3310 } 3355 }
3311 3356
3312 const GLRenderer::VideoStreamTextureProgram* 3357 const GLRenderer::VideoStreamTextureProgram*
3313 GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) { 3358 GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) {
3314 if (!Capabilities().using_egl_image) 3359 if (!Capabilities().using_egl_image)
3315 return NULL; 3360 return NULL;
3316 DCHECK_GE(precision, 0); 3361 DCHECK_GE(precision, 0);
3317 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 3362 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
(...skipping 20 matching lines...) Expand all
3338 tile_program_swizzle_aa_[i][j].Cleanup(gl_); 3383 tile_program_swizzle_aa_[i][j].Cleanup(gl_);
3339 3384
3340 for (int k = 0; k <= LAST_BLEND_MODE; k++) { 3385 for (int k = 0; k <= LAST_BLEND_MODE; k++) {
3341 for (int l = 0; l <= LAST_MASK_VALUE; ++l) { 3386 for (int l = 0; l <= LAST_MASK_VALUE; ++l) {
3342 render_pass_mask_program_[i][j][k][l].Cleanup(gl_); 3387 render_pass_mask_program_[i][j][k][l].Cleanup(gl_);
3343 render_pass_mask_program_aa_[i][j][k][l].Cleanup(gl_); 3388 render_pass_mask_program_aa_[i][j][k][l].Cleanup(gl_);
3344 render_pass_mask_color_matrix_program_aa_[i][j][k][l].Cleanup(gl_); 3389 render_pass_mask_color_matrix_program_aa_[i][j][k][l].Cleanup(gl_);
3345 render_pass_mask_color_matrix_program_[i][j][k][l].Cleanup(gl_); 3390 render_pass_mask_color_matrix_program_[i][j][k][l].Cleanup(gl_);
3346 } 3391 }
3347 } 3392 }
3393
3394 video_yuv_program_[i][j].Cleanup(gl_);
3395 video_yuva_program_[i][j].Cleanup(gl_);
3348 } 3396 }
3349 for (int j = 0; j <= LAST_BLEND_MODE; j++) { 3397 for (int j = 0; j <= LAST_BLEND_MODE; j++) {
3350 render_pass_program_[i][j].Cleanup(gl_); 3398 render_pass_program_[i][j].Cleanup(gl_);
3351 render_pass_program_aa_[i][j].Cleanup(gl_); 3399 render_pass_program_aa_[i][j].Cleanup(gl_);
3352 render_pass_color_matrix_program_[i][j].Cleanup(gl_); 3400 render_pass_color_matrix_program_[i][j].Cleanup(gl_);
3353 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_); 3401 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_);
3354 } 3402 }
3355 3403
3356 for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) { 3404 for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) {
3357 texture_program_[i][j].Cleanup(gl_); 3405 texture_program_[i][j].Cleanup(gl_);
3358 nonpremultiplied_texture_program_[i][j].Cleanup(gl_); 3406 nonpremultiplied_texture_program_[i][j].Cleanup(gl_);
3359 texture_background_program_[i][j].Cleanup(gl_); 3407 texture_background_program_[i][j].Cleanup(gl_);
3360 nonpremultiplied_texture_background_program_[i][j].Cleanup(gl_); 3408 nonpremultiplied_texture_background_program_[i][j].Cleanup(gl_);
3361 } 3409 }
3362 texture_io_surface_program_[i].Cleanup(gl_); 3410 texture_io_surface_program_[i].Cleanup(gl_);
3363 3411
3364 video_yuv_program_[i].Cleanup(gl_);
3365 video_yuva_program_[i].Cleanup(gl_);
3366 video_stream_texture_program_[i].Cleanup(gl_); 3412 video_stream_texture_program_[i].Cleanup(gl_);
3367 } 3413 }
3368 3414
3369 tile_checkerboard_program_.Cleanup(gl_); 3415 tile_checkerboard_program_.Cleanup(gl_);
3370 3416
3371 debug_border_program_.Cleanup(gl_); 3417 debug_border_program_.Cleanup(gl_);
3372 solid_color_program_.Cleanup(gl_); 3418 solid_color_program_.Cleanup(gl_);
3373 solid_color_program_aa_.Cleanup(gl_); 3419 solid_color_program_aa_.Cleanup(gl_);
3374 3420
3375 if (offscreen_framebuffer_id_) 3421 if (offscreen_framebuffer_id_)
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
3455 context_support_->ScheduleOverlayPlane( 3501 context_support_->ScheduleOverlayPlane(
3456 overlay.plane_z_order, 3502 overlay.plane_z_order,
3457 overlay.transform, 3503 overlay.transform,
3458 pending_overlay_resources_.back()->texture_id(), 3504 pending_overlay_resources_.back()->texture_id(),
3459 ToNearestRect(overlay.display_rect), 3505 ToNearestRect(overlay.display_rect),
3460 overlay.uv_rect); 3506 overlay.uv_rect);
3461 } 3507 }
3462 } 3508 }
3463 3509
3464 } // namespace cc 3510 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.h ('k') | cc/output/gl_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698