OLD | NEW |
---|---|
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 1884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1895 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( | 1895 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( |
1896 gl_, | 1896 gl_, |
1897 &highp_threshold_cache_, | 1897 &highp_threshold_cache_, |
1898 highp_threshold_min_, | 1898 highp_threshold_min_, |
1899 quad->shared_quad_state->visible_content_rect.bottom_right()); | 1899 quad->shared_quad_state->visible_content_rect.bottom_right()); |
1900 | 1900 |
1901 bool use_alpha_plane = quad->a_plane_resource_id != 0; | 1901 bool use_alpha_plane = quad->a_plane_resource_id != 0; |
1902 | 1902 |
1903 ResourceProvider::ScopedSamplerGL y_plane_lock( | 1903 ResourceProvider::ScopedSamplerGL y_plane_lock( |
1904 resource_provider_, quad->y_plane_resource_id, GL_TEXTURE1, GL_LINEAR); | 1904 resource_provider_, quad->y_plane_resource_id, GL_TEXTURE1, GL_LINEAR); |
1905 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), y_plane_lock.target()); | |
1906 ResourceProvider::ScopedSamplerGL u_plane_lock( | 1905 ResourceProvider::ScopedSamplerGL u_plane_lock( |
1907 resource_provider_, quad->u_plane_resource_id, GL_TEXTURE2, GL_LINEAR); | 1906 resource_provider_, quad->u_plane_resource_id, GL_TEXTURE2, GL_LINEAR); |
1908 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), u_plane_lock.target()); | 1907 DCHECK_EQ(y_plane_lock.target(), u_plane_lock.target()); |
1909 ResourceProvider::ScopedSamplerGL v_plane_lock( | 1908 ResourceProvider::ScopedSamplerGL v_plane_lock( |
1910 resource_provider_, quad->v_plane_resource_id, GL_TEXTURE3, GL_LINEAR); | 1909 resource_provider_, quad->v_plane_resource_id, GL_TEXTURE3, GL_LINEAR); |
1911 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), v_plane_lock.target()); | 1910 DCHECK_EQ(y_plane_lock.target(), v_plane_lock.target()); |
1912 scoped_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock; | 1911 scoped_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock; |
1913 if (use_alpha_plane) { | 1912 if (use_alpha_plane) { |
1914 a_plane_lock.reset(new ResourceProvider::ScopedSamplerGL( | 1913 a_plane_lock.reset(new ResourceProvider::ScopedSamplerGL( |
1915 resource_provider_, quad->a_plane_resource_id, GL_TEXTURE4, GL_LINEAR)); | 1914 resource_provider_, quad->a_plane_resource_id, GL_TEXTURE4, GL_LINEAR)); |
1916 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), a_plane_lock->target()); | 1915 DCHECK_EQ(y_plane_lock.target(), a_plane_lock->target()); |
1917 } | 1916 } |
1918 | 1917 |
1918 // All planes must have the same sampler type. | |
1919 SamplerType sampler = SamplerTypeFromTextureTarget(y_plane_lock.target()); | |
1920 | |
1919 int matrix_location = -1; | 1921 int matrix_location = -1; |
1920 int tex_scale_location = -1; | 1922 int ya_tex_scale_location = -1; |
1921 int tex_offset_location = -1; | 1923 int ya_tex_offset_location = -1; |
1924 int uv_tex_scale_location = -1; | |
1925 int uv_tex_offset_location = -1; | |
1922 int ya_clamp_rect_location = -1; | 1926 int ya_clamp_rect_location = -1; |
1923 int uv_clamp_rect_location = -1; | 1927 int uv_clamp_rect_location = -1; |
1924 int y_texture_location = -1; | 1928 int y_texture_location = -1; |
1925 int u_texture_location = -1; | 1929 int u_texture_location = -1; |
1926 int v_texture_location = -1; | 1930 int v_texture_location = -1; |
1927 int a_texture_location = -1; | 1931 int a_texture_location = -1; |
1928 int yuv_matrix_location = -1; | 1932 int yuv_matrix_location = -1; |
1929 int yuv_adj_location = -1; | 1933 int yuv_adj_location = -1; |
1930 int alpha_location = -1; | 1934 int alpha_location = -1; |
1931 if (use_alpha_plane) { | 1935 if (use_alpha_plane) { |
1932 const VideoYUVAProgram* program = GetVideoYUVAProgram(tex_coord_precision); | 1936 const VideoYUVAProgram* program = |
1937 GetVideoYUVAProgram(tex_coord_precision, sampler); | |
1933 DCHECK(program && (program->initialized() || IsContextLost())); | 1938 DCHECK(program && (program->initialized() || IsContextLost())); |
1934 SetUseProgram(program->program()); | 1939 SetUseProgram(program->program()); |
1935 matrix_location = program->vertex_shader().matrix_location(); | 1940 matrix_location = program->vertex_shader().matrix_location(); |
1936 tex_scale_location = program->vertex_shader().tex_scale_location(); | 1941 ya_tex_scale_location = program->vertex_shader().ya_tex_scale_location(); |
1937 tex_offset_location = program->vertex_shader().tex_offset_location(); | 1942 ya_tex_offset_location = program->vertex_shader().ya_tex_offset_location(); |
1943 uv_tex_scale_location = program->vertex_shader().uv_tex_scale_location(); | |
1944 uv_tex_offset_location = program->vertex_shader().uv_tex_offset_location(); | |
1938 y_texture_location = program->fragment_shader().y_texture_location(); | 1945 y_texture_location = program->fragment_shader().y_texture_location(); |
1939 u_texture_location = program->fragment_shader().u_texture_location(); | 1946 u_texture_location = program->fragment_shader().u_texture_location(); |
1940 v_texture_location = program->fragment_shader().v_texture_location(); | 1947 v_texture_location = program->fragment_shader().v_texture_location(); |
1941 a_texture_location = program->fragment_shader().a_texture_location(); | 1948 a_texture_location = program->fragment_shader().a_texture_location(); |
1942 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); | 1949 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); |
1943 yuv_adj_location = program->fragment_shader().yuv_adj_location(); | 1950 yuv_adj_location = program->fragment_shader().yuv_adj_location(); |
1944 ya_clamp_rect_location = | 1951 ya_clamp_rect_location = |
1945 program->fragment_shader().ya_clamp_rect_location(); | 1952 program->fragment_shader().ya_clamp_rect_location(); |
1946 uv_clamp_rect_location = | 1953 uv_clamp_rect_location = |
1947 program->fragment_shader().uv_clamp_rect_location(); | 1954 program->fragment_shader().uv_clamp_rect_location(); |
1948 alpha_location = program->fragment_shader().alpha_location(); | 1955 alpha_location = program->fragment_shader().alpha_location(); |
1949 } else { | 1956 } else { |
1950 const VideoYUVProgram* program = GetVideoYUVProgram(tex_coord_precision); | 1957 const VideoYUVProgram* program = |
1958 GetVideoYUVProgram(tex_coord_precision, sampler); | |
1951 DCHECK(program && (program->initialized() || IsContextLost())); | 1959 DCHECK(program && (program->initialized() || IsContextLost())); |
1952 SetUseProgram(program->program()); | 1960 SetUseProgram(program->program()); |
1953 matrix_location = program->vertex_shader().matrix_location(); | 1961 matrix_location = program->vertex_shader().matrix_location(); |
1954 tex_scale_location = program->vertex_shader().tex_scale_location(); | 1962 ya_tex_scale_location = program->vertex_shader().ya_tex_scale_location(); |
1955 tex_offset_location = program->vertex_shader().tex_offset_location(); | 1963 ya_tex_offset_location = program->vertex_shader().ya_tex_offset_location(); |
1964 uv_tex_scale_location = program->vertex_shader().uv_tex_scale_location(); | |
1965 uv_tex_offset_location = program->vertex_shader().uv_tex_offset_location(); | |
1956 y_texture_location = program->fragment_shader().y_texture_location(); | 1966 y_texture_location = program->fragment_shader().y_texture_location(); |
1957 u_texture_location = program->fragment_shader().u_texture_location(); | 1967 u_texture_location = program->fragment_shader().u_texture_location(); |
1958 v_texture_location = program->fragment_shader().v_texture_location(); | 1968 v_texture_location = program->fragment_shader().v_texture_location(); |
1959 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); | 1969 yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); |
1960 yuv_adj_location = program->fragment_shader().yuv_adj_location(); | 1970 yuv_adj_location = program->fragment_shader().yuv_adj_location(); |
1961 ya_clamp_rect_location = | 1971 ya_clamp_rect_location = |
1962 program->fragment_shader().ya_clamp_rect_location(); | 1972 program->fragment_shader().ya_clamp_rect_location(); |
1963 uv_clamp_rect_location = | 1973 uv_clamp_rect_location = |
1964 program->fragment_shader().uv_clamp_rect_location(); | 1974 program->fragment_shader().uv_clamp_rect_location(); |
1965 alpha_location = program->fragment_shader().alpha_location(); | 1975 alpha_location = program->fragment_shader().alpha_location(); |
1966 } | 1976 } |
1967 | 1977 |
1968 gl_->Uniform2f(tex_scale_location, quad->tex_coord_rect.width(), | 1978 gfx::Size ya_tex_scale = |
1969 quad->tex_coord_rect.height()); | 1979 sampler == SAMPLER_TYPE_2D_RECT ? gfx::Size(1, 1) : quad->ya_tex_size; |
Daniele Castagna
2015/05/09 00:43:44
nit: You can compute the inverse here and multiply
reveman
2015/05/09 00:56:38
Done.
| |
1970 gl_->Uniform2f(tex_offset_location, quad->tex_coord_rect.x(), | 1980 gfx::Size uv_tex_scale = |
1971 quad->tex_coord_rect.y()); | 1981 sampler == SAMPLER_TYPE_2D_RECT ? gfx::Size(1, 1) : quad->uv_tex_size; |
1972 // Clamping to half a texel inside the tex coord rect prevents bilinear | 1982 |
1973 // filtering from filtering outside the tex coord rect. | 1983 DCHECK(!ya_tex_scale.IsEmpty()); |
1974 gfx::RectF ya_clamp_rect(quad->tex_coord_rect); | 1984 float ya_vertex_tex_translate_x = |
1975 // Special case: empty texture size implies no clamping. | 1985 quad->ya_tex_coord_rect.x() / ya_tex_scale.width(); |
1976 if (!quad->ya_tex_size.IsEmpty()) { | 1986 float ya_vertex_tex_translate_y = |
1977 ya_clamp_rect.Inset(0.5f / quad->ya_tex_size.width(), | 1987 quad->ya_tex_coord_rect.y() / ya_tex_scale.height(); |
1978 0.5f / quad->ya_tex_size.height()); | 1988 float ya_vertex_tex_scale_x = |
1979 } | 1989 quad->ya_tex_coord_rect.width() / ya_tex_scale.width(); |
1980 gfx::RectF uv_clamp_rect(quad->tex_coord_rect); | 1990 float ya_vertex_tex_scale_y = |
1981 if (!quad->uv_tex_size.IsEmpty()) { | 1991 quad->ya_tex_coord_rect.height() / ya_tex_scale.height(); |
1982 uv_clamp_rect.Inset(0.5f / quad->uv_tex_size.width(), | 1992 |
1983 0.5f / quad->uv_tex_size.height()); | 1993 DCHECK(!uv_tex_scale.IsEmpty()); |
1984 } | 1994 float uv_vertex_tex_translate_x = |
1995 quad->uv_tex_coord_rect.x() / uv_tex_scale.width(); | |
1996 float uv_vertex_tex_translate_y = | |
1997 quad->uv_tex_coord_rect.y() / uv_tex_scale.height(); | |
1998 float uv_vertex_tex_scale_x = | |
1999 quad->uv_tex_coord_rect.width() / uv_tex_scale.width(); | |
2000 float uv_vertex_tex_scale_y = | |
2001 quad->uv_tex_coord_rect.height() / uv_tex_scale.height(); | |
2002 | |
2003 gl_->Uniform2f(ya_tex_scale_location, ya_vertex_tex_scale_x, | |
2004 ya_vertex_tex_scale_y); | |
2005 gl_->Uniform2f(ya_tex_offset_location, ya_vertex_tex_translate_x, | |
2006 ya_vertex_tex_translate_y); | |
2007 gl_->Uniform2f(uv_tex_scale_location, uv_vertex_tex_scale_x, | |
2008 uv_vertex_tex_scale_y); | |
2009 gl_->Uniform2f(uv_tex_offset_location, uv_vertex_tex_translate_x, | |
2010 uv_vertex_tex_translate_y); | |
2011 | |
2012 gfx::RectF ya_clamp_rect(ya_vertex_tex_translate_x, ya_vertex_tex_translate_y, | |
2013 ya_vertex_tex_scale_x, ya_vertex_tex_scale_y); | |
2014 ya_clamp_rect.Inset(0.5f / ya_tex_scale.width(), | |
2015 0.5f / ya_tex_scale.height()); | |
2016 gfx::RectF uv_clamp_rect(uv_vertex_tex_translate_x, uv_vertex_tex_translate_y, | |
2017 uv_vertex_tex_scale_x, uv_vertex_tex_scale_y); | |
2018 uv_clamp_rect.Inset(0.5f / uv_tex_scale.width(), | |
2019 0.5f / uv_tex_scale.height()); | |
1985 gl_->Uniform4f(ya_clamp_rect_location, ya_clamp_rect.x(), ya_clamp_rect.y(), | 2020 gl_->Uniform4f(ya_clamp_rect_location, ya_clamp_rect.x(), ya_clamp_rect.y(), |
1986 ya_clamp_rect.right(), ya_clamp_rect.bottom()); | 2021 ya_clamp_rect.right(), ya_clamp_rect.bottom()); |
1987 gl_->Uniform4f(uv_clamp_rect_location, uv_clamp_rect.x(), uv_clamp_rect.y(), | 2022 gl_->Uniform4f(uv_clamp_rect_location, uv_clamp_rect.x(), uv_clamp_rect.y(), |
1988 uv_clamp_rect.right(), uv_clamp_rect.bottom()); | 2023 uv_clamp_rect.right(), uv_clamp_rect.bottom()); |
1989 | 2024 |
1990 gl_->Uniform1i(y_texture_location, 1); | 2025 gl_->Uniform1i(y_texture_location, 1); |
1991 gl_->Uniform1i(u_texture_location, 2); | 2026 gl_->Uniform1i(u_texture_location, 2); |
1992 gl_->Uniform1i(v_texture_location, 3); | 2027 gl_->Uniform1i(v_texture_location, 3); |
1993 if (use_alpha_plane) | 2028 if (use_alpha_plane) |
1994 gl_->Uniform1i(a_texture_location, 4); | 2029 gl_->Uniform1i(a_texture_location, 4); |
(...skipping 1264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3259 TextureProgram* program = &texture_io_surface_program_[precision]; | 3294 TextureProgram* program = &texture_io_surface_program_[precision]; |
3260 if (!program->initialized()) { | 3295 if (!program->initialized()) { |
3261 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize"); | 3296 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize"); |
3262 program->Initialize(output_surface_->context_provider(), precision, | 3297 program->Initialize(output_surface_->context_provider(), precision, |
3263 SAMPLER_TYPE_2D_RECT); | 3298 SAMPLER_TYPE_2D_RECT); |
3264 } | 3299 } |
3265 return program; | 3300 return program; |
3266 } | 3301 } |
3267 | 3302 |
3268 const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram( | 3303 const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram( |
3269 TexCoordPrecision precision) { | 3304 TexCoordPrecision precision, |
3305 SamplerType sampler) { | |
3270 DCHECK_GE(precision, 0); | 3306 DCHECK_GE(precision, 0); |
3271 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); | 3307 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); |
3272 VideoYUVProgram* program = &video_yuv_program_[precision]; | 3308 DCHECK_GE(sampler, 0); |
3309 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); | |
3310 VideoYUVProgram* program = &video_yuv_program_[precision][sampler]; | |
3273 if (!program->initialized()) { | 3311 if (!program->initialized()) { |
3274 TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize"); | 3312 TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize"); |
3275 program->Initialize(output_surface_->context_provider(), precision, | 3313 program->Initialize(output_surface_->context_provider(), precision, |
3276 SAMPLER_TYPE_2D); | 3314 sampler); |
3277 } | 3315 } |
3278 return program; | 3316 return program; |
3279 } | 3317 } |
3280 | 3318 |
3281 const GLRenderer::VideoYUVAProgram* GLRenderer::GetVideoYUVAProgram( | 3319 const GLRenderer::VideoYUVAProgram* GLRenderer::GetVideoYUVAProgram( |
3282 TexCoordPrecision precision) { | 3320 TexCoordPrecision precision, |
3321 SamplerType sampler) { | |
3283 DCHECK_GE(precision, 0); | 3322 DCHECK_GE(precision, 0); |
3284 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); | 3323 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); |
3285 VideoYUVAProgram* program = &video_yuva_program_[precision]; | 3324 DCHECK_GE(sampler, 0); |
3325 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); | |
3326 VideoYUVAProgram* program = &video_yuva_program_[precision][sampler]; | |
3286 if (!program->initialized()) { | 3327 if (!program->initialized()) { |
3287 TRACE_EVENT0("cc", "GLRenderer::videoYUVAProgram::initialize"); | 3328 TRACE_EVENT0("cc", "GLRenderer::videoYUVAProgram::initialize"); |
3288 program->Initialize(output_surface_->context_provider(), precision, | 3329 program->Initialize(output_surface_->context_provider(), precision, |
3289 SAMPLER_TYPE_2D); | 3330 sampler); |
3290 } | 3331 } |
3291 return program; | 3332 return program; |
3292 } | 3333 } |
3293 | 3334 |
3294 const GLRenderer::VideoStreamTextureProgram* | 3335 const GLRenderer::VideoStreamTextureProgram* |
3295 GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) { | 3336 GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) { |
3296 if (!Capabilities().using_egl_image) | 3337 if (!Capabilities().using_egl_image) |
3297 return NULL; | 3338 return NULL; |
3298 DCHECK_GE(precision, 0); | 3339 DCHECK_GE(precision, 0); |
3299 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); | 3340 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); |
(...skipping 20 matching lines...) Expand all Loading... | |
3320 tile_program_swizzle_aa_[i][j].Cleanup(gl_); | 3361 tile_program_swizzle_aa_[i][j].Cleanup(gl_); |
3321 | 3362 |
3322 for (int k = 0; k <= LAST_BLEND_MODE; k++) { | 3363 for (int k = 0; k <= LAST_BLEND_MODE; k++) { |
3323 for (int l = 0; l <= LAST_MASK_VALUE; ++l) { | 3364 for (int l = 0; l <= LAST_MASK_VALUE; ++l) { |
3324 render_pass_mask_program_[i][j][k][l].Cleanup(gl_); | 3365 render_pass_mask_program_[i][j][k][l].Cleanup(gl_); |
3325 render_pass_mask_program_aa_[i][j][k][l].Cleanup(gl_); | 3366 render_pass_mask_program_aa_[i][j][k][l].Cleanup(gl_); |
3326 render_pass_mask_color_matrix_program_aa_[i][j][k][l].Cleanup(gl_); | 3367 render_pass_mask_color_matrix_program_aa_[i][j][k][l].Cleanup(gl_); |
3327 render_pass_mask_color_matrix_program_[i][j][k][l].Cleanup(gl_); | 3368 render_pass_mask_color_matrix_program_[i][j][k][l].Cleanup(gl_); |
3328 } | 3369 } |
3329 } | 3370 } |
3371 | |
3372 video_yuv_program_[i][j].Cleanup(gl_); | |
3373 video_yuva_program_[i][j].Cleanup(gl_); | |
3330 } | 3374 } |
3331 for (int j = 0; j <= LAST_BLEND_MODE; j++) { | 3375 for (int j = 0; j <= LAST_BLEND_MODE; j++) { |
3332 render_pass_program_[i][j].Cleanup(gl_); | 3376 render_pass_program_[i][j].Cleanup(gl_); |
3333 render_pass_program_aa_[i][j].Cleanup(gl_); | 3377 render_pass_program_aa_[i][j].Cleanup(gl_); |
3334 render_pass_color_matrix_program_[i][j].Cleanup(gl_); | 3378 render_pass_color_matrix_program_[i][j].Cleanup(gl_); |
3335 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_); | 3379 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_); |
3336 } | 3380 } |
3337 | 3381 |
3338 texture_program_[i].Cleanup(gl_); | 3382 texture_program_[i].Cleanup(gl_); |
3339 nonpremultiplied_texture_program_[i].Cleanup(gl_); | 3383 nonpremultiplied_texture_program_[i].Cleanup(gl_); |
3340 texture_background_program_[i].Cleanup(gl_); | 3384 texture_background_program_[i].Cleanup(gl_); |
3341 nonpremultiplied_texture_background_program_[i].Cleanup(gl_); | 3385 nonpremultiplied_texture_background_program_[i].Cleanup(gl_); |
3342 texture_io_surface_program_[i].Cleanup(gl_); | 3386 texture_io_surface_program_[i].Cleanup(gl_); |
3343 | 3387 |
3344 video_yuv_program_[i].Cleanup(gl_); | |
3345 video_yuva_program_[i].Cleanup(gl_); | |
3346 video_stream_texture_program_[i].Cleanup(gl_); | 3388 video_stream_texture_program_[i].Cleanup(gl_); |
3347 } | 3389 } |
3348 | 3390 |
3349 tile_checkerboard_program_.Cleanup(gl_); | 3391 tile_checkerboard_program_.Cleanup(gl_); |
3350 | 3392 |
3351 debug_border_program_.Cleanup(gl_); | 3393 debug_border_program_.Cleanup(gl_); |
3352 solid_color_program_.Cleanup(gl_); | 3394 solid_color_program_.Cleanup(gl_); |
3353 solid_color_program_aa_.Cleanup(gl_); | 3395 solid_color_program_aa_.Cleanup(gl_); |
3354 | 3396 |
3355 if (offscreen_framebuffer_id_) | 3397 if (offscreen_framebuffer_id_) |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3435 context_support_->ScheduleOverlayPlane( | 3477 context_support_->ScheduleOverlayPlane( |
3436 overlay.plane_z_order, | 3478 overlay.plane_z_order, |
3437 overlay.transform, | 3479 overlay.transform, |
3438 pending_overlay_resources_.back()->texture_id(), | 3480 pending_overlay_resources_.back()->texture_id(), |
3439 ToNearestRect(overlay.display_rect), | 3481 ToNearestRect(overlay.display_rect), |
3440 overlay.uv_rect); | 3482 overlay.uv_rect); |
3441 } | 3483 } |
3442 } | 3484 } |
3443 | 3485 |
3444 } // namespace cc | 3486 } // namespace cc |
OLD | NEW |