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

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

Issue 17335011: cc: Allow output readback/copy requests to specify a sub-rect to copy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: copy-subrect: 3 patches in one Created 7 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 | Annotate | Revision Log
« no previous file with comments | « cc/output/copy_output_request.cc ('k') | cc/output/software_renderer.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 1896 matching lines...) Expand 10 before | Expand all | Expand 10 after
1907 return; 1907 return;
1908 1908
1909 FlushTextureQuadCache(); 1909 FlushTextureQuadCache();
1910 GLC(context_, context_->disable(GL_SCISSOR_TEST)); 1910 GLC(context_, context_->disable(GL_SCISSOR_TEST));
1911 is_scissor_enabled_ = false; 1911 is_scissor_enabled_ = false;
1912 } 1912 }
1913 1913
1914 void GLRenderer::CopyCurrentRenderPassToBitmap( 1914 void GLRenderer::CopyCurrentRenderPassToBitmap(
1915 DrawingFrame* frame, 1915 DrawingFrame* frame,
1916 scoped_ptr<CopyOutputRequest> request) { 1916 scoped_ptr<CopyOutputRequest> request) {
1917 GetFramebufferPixelsAsync(frame->current_render_pass->output_rect, 1917 gfx::Rect copy_rect = frame->current_render_pass->output_rect;
1918 request.Pass()); 1918 if (request->has_area()) {
1919 // Intersect with the request's area, positioned with its origin at the
1920 // origin of the full copy_rect.
1921 copy_rect.Intersect(request->area() - copy_rect.OffsetFromOrigin());
1922 }
1923 GetFramebufferPixelsAsync(copy_rect, request.Pass());
1919 } 1924 }
1920 1925
1921 void GLRenderer::ToGLMatrix(float* gl_matrix, const gfx::Transform& transform) { 1926 void GLRenderer::ToGLMatrix(float* gl_matrix, const gfx::Transform& transform) {
1922 transform.matrix().asColMajorf(gl_matrix); 1927 transform.matrix().asColMajorf(gl_matrix);
1923 } 1928 }
1924 1929
1925 void GLRenderer::SetShaderQuadF(const gfx::QuadF& quad, int quad_location) { 1930 void GLRenderer::SetShaderQuadF(const gfx::QuadF& quad, int quad_location) {
1926 if (quad_location == -1) 1931 if (quad_location == -1)
1927 return; 1932 return;
1928 1933
(...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after
3029 // The Skia GPU backend requires a stencil buffer. See ReinitializeGrCanvas 3034 // The Skia GPU backend requires a stencil buffer. See ReinitializeGrCanvas
3030 // implementation. 3035 // implementation.
3031 return gr_context_ && context_->getContextAttributes().stencil; 3036 return gr_context_ && context_->getContextAttributes().stencil;
3032 } 3037 }
3033 3038
3034 bool GLRenderer::IsContextLost() { 3039 bool GLRenderer::IsContextLost() {
3035 return (context_->getGraphicsResetStatusARB() != GL_NO_ERROR); 3040 return (context_->getGraphicsResetStatusARB() != GL_NO_ERROR);
3036 } 3041 }
3037 3042
3038 } // namespace cc 3043 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/copy_output_request.cc ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698