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

Side by Side Diff: ui/gl/gl_context.cc

Issue 2934733002: Workaround for Intel 6xxx clear to 0/1 bug (Closed)
Patch Set: fix try-bot error Created 3 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 | « ui/gl/gl_context.h ('k') | ui/gl/gl_gl_api_implementation.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/gl/gl_context.h" 5 #include "ui/gl/gl_context.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/cancelable_callback.h" 10 #include "base/cancelable_callback.h"
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 GLSurface::SetCurrent(surface); 203 GLSurface::SetCurrent(surface);
204 // Leave the real GL api current so that unit tests work correctly. 204 // Leave the real GL api current so that unit tests work correctly.
205 // TODO(sievers): Remove this, but needs all gpu_unittest classes 205 // TODO(sievers): Remove this, but needs all gpu_unittest classes
206 // to create and make current a context. 206 // to create and make current a context.
207 if (!surface && GetGLImplementation() != kGLImplementationMockGL && 207 if (!surface && GetGLImplementation() != kGLImplementationMockGL &&
208 GetGLImplementation() != kGLImplementationStubGL) { 208 GetGLImplementation() != kGLImplementationStubGL) {
209 SetCurrentGL(nullptr); 209 SetCurrentGL(nullptr);
210 } 210 }
211 } 211 }
212 212
213 GLWorkarounds GLContext::GetGLWorkarounds() {
214 return gl_workarounds_;
215 }
216
217 void GLContext::SetGLWorkarounds(const GLWorkarounds& workarounds) {
218 gl_workarounds_ = workarounds;
219 }
220
213 GLStateRestorer* GLContext::GetGLStateRestorer() { 221 GLStateRestorer* GLContext::GetGLStateRestorer() {
214 return state_restorer_.get(); 222 return state_restorer_.get();
215 } 223 }
216 224
217 void GLContext::SetGLStateRestorer(GLStateRestorer* state_restorer) { 225 void GLContext::SetGLStateRestorer(GLStateRestorer* state_restorer) {
218 state_restorer_ = base::WrapUnique(state_restorer); 226 state_restorer_ = base::WrapUnique(state_restorer);
219 } 227 }
220 228
221 void GLContext::SetSwapInterval(int interval) { 229 void GLContext::SetSwapInterval(int interval) {
222 if (swap_interval_ == interval) 230 if (swap_interval_ == interval)
(...skipping 13 matching lines...) Expand all
236 return false; 244 return false;
237 } 245 }
238 246
239 void GLContext::InitializeDynamicBindings() { 247 void GLContext::InitializeDynamicBindings() {
240 DCHECK(IsCurrent(nullptr)); 248 DCHECK(IsCurrent(nullptr));
241 DCHECK(static_bindings_initialized_); 249 DCHECK(static_bindings_initialized_);
242 if (!dynamic_bindings_initialized_) { 250 if (!dynamic_bindings_initialized_) {
243 if (real_gl_api_) { 251 if (real_gl_api_) {
244 real_gl_api_->InitializeFilteredExtensions(); 252 real_gl_api_->InitializeFilteredExtensions();
245 real_gl_api_->set_version(GenerateGLVersionInfo()); 253 real_gl_api_->set_version(GenerateGLVersionInfo());
254 real_gl_api_->setGLContext(this);
Zhenyao Mo 2017/06/26 21:45:22 This is less optimal. GLContext owns real_gl_api_
jiajia.qin 2017/06/28 10:03:38 Sorry for so many iterations. Please check the new
246 } 255 }
247 256
248 driver_gl_->InitializeDynamicBindings(GetVersionInfo(), GetExtensions()); 257 driver_gl_->InitializeDynamicBindings(GetVersionInfo(), GetExtensions());
249 dynamic_bindings_initialized_ = true; 258 dynamic_bindings_initialized_ = true;
250 } 259 }
251 } 260 }
252 261
253 bool GLContext::MakeVirtuallyCurrent( 262 bool GLContext::MakeVirtuallyCurrent(
254 GLContext* virtual_context, GLSurface* surface) { 263 GLContext* virtual_context, GLSurface* surface) {
255 if (!ForceGpuSwitchIfNeeded()) 264 if (!ForceGpuSwitchIfNeeded())
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 348
340 scoped_refptr<GLContext> InitializeGLContext(scoped_refptr<GLContext> context, 349 scoped_refptr<GLContext> InitializeGLContext(scoped_refptr<GLContext> context,
341 GLSurface* compatible_surface, 350 GLSurface* compatible_surface,
342 const GLContextAttribs& attribs) { 351 const GLContextAttribs& attribs) {
343 if (!context->Initialize(compatible_surface, attribs)) 352 if (!context->Initialize(compatible_surface, attribs))
344 return nullptr; 353 return nullptr;
345 return context; 354 return context;
346 } 355 }
347 356
348 } // namespace gl 357 } // namespace gl
OLDNEW
« no previous file with comments | « ui/gl/gl_context.h ('k') | ui/gl/gl_gl_api_implementation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698