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

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

Issue 15579002: Implement transform/clip support for Android WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make MailboxOutputSurface use surface_size_ 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/output_surface.h" 5 #include "cc/output/output_surface.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 context3d_->ensureBackbufferCHROMIUM(); 105 context3d_->ensureBackbufferCHROMIUM();
106 } 106 }
107 107
108 void OutputSurface::DiscardBackbuffer() { 108 void OutputSurface::DiscardBackbuffer() {
109 DCHECK(context3d_); 109 DCHECK(context3d_);
110 if (has_gl_discard_backbuffer_) 110 if (has_gl_discard_backbuffer_)
111 context3d_->discardBackbufferCHROMIUM(); 111 context3d_->discardBackbufferCHROMIUM();
112 } 112 }
113 113
114 void OutputSurface::Reshape(gfx::Size size, float scale_factor) { 114 void OutputSurface::Reshape(gfx::Size size, float scale_factor) {
115 DCHECK(context3d_); 115 if (size == surface_size_ && scale_factor == device_scale_factor_)
116 context3d_->reshapeWithScaleFactor(size.width(), size.height(), scale_factor); 116 return;
117
118 surface_size_ = size;
119 device_scale_factor_ = scale_factor;
120 if (context3d_)
piman 2013/06/05 00:52:08 nit: brackets needed.
121 context3d_->reshapeWithScaleFactor(
122 size.width(), size.height(), scale_factor);
123 }
124
125 gfx::Size OutputSurface::SurfaceSize() const {
126 return surface_size_;
117 } 127 }
118 128
119 void OutputSurface::BindFramebuffer() { 129 void OutputSurface::BindFramebuffer() {
120 DCHECK(context3d_); 130 DCHECK(context3d_);
121 context3d_->bindFramebuffer(GL_FRAMEBUFFER, 0); 131 context3d_->bindFramebuffer(GL_FRAMEBUFFER, 0);
122 } 132 }
123 133
124 void OutputSurface::SwapBuffers(const ui::LatencyInfo& latency_info) { 134 void OutputSurface::SwapBuffers(const ui::LatencyInfo& latency_info) {
125 DCHECK(context3d_); 135 DCHECK(context3d_);
126 // Note that currently this has the same effect as SwapBuffers; we should 136 // Note that currently this has the same effect as SwapBuffers; we should
127 // consider exposing a different entry point on WebGraphicsContext3D. 137 // consider exposing a different entry point on WebGraphicsContext3D.
128 context3d_->prepareTexture(); 138 context3d_->prepareTexture();
129 } 139 }
130 140
131 void OutputSurface::PostSubBuffer(gfx::Rect rect, 141 void OutputSurface::PostSubBuffer(gfx::Rect rect,
132 const ui::LatencyInfo& latency_info) { 142 const ui::LatencyInfo& latency_info) {
133 DCHECK(context3d_); 143 DCHECK(context3d_);
134 context3d_->postSubBufferCHROMIUM( 144 context3d_->postSubBufferCHROMIUM(
135 rect.x(), rect.y(), rect.width(), rect.height()); 145 rect.x(), rect.y(), rect.width(), rect.height());
136 } 146 }
137 147
138 } // namespace cc 148 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698