OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/gfx/compositor/compositor.h" | 5 #include "ui/gfx/compositor/compositor.h" |
6 | 6 |
7 #include <GL/gl.h> | 7 #include <GL/gl.h> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 if (!t.matrix().isIdentity()) { | 188 if (!t.matrix().isIdentity()) { |
189 glLoadIdentity(); | 189 glLoadIdentity(); |
190 } | 190 } |
191 | 191 |
192 glDisable(GL_TEXTURE_2D); | 192 glDisable(GL_TEXTURE_2D); |
193 } | 193 } |
194 | 194 |
195 CompositorGL::CompositorGL(gfx::AcceleratedWidget widget) | 195 CompositorGL::CompositorGL(gfx::AcceleratedWidget widget) |
196 : started_(false) { | 196 : started_(false) { |
197 gl_surface_.reset(gfx::GLSurface::CreateViewGLSurface(widget)); | 197 gl_surface_.reset(gfx::GLSurface::CreateViewGLSurface(widget)); |
198 gl_context_.reset(gfx::GLContext::CreateGLContext(NULL, gl_surface.get())), | 198 gl_context_.reset(gfx::GLContext::CreateGLContext(NULL, gl_surface_.get())), |
199 gl_context_->MakeCurrent(); | 199 gl_context_->MakeCurrent(gl_surface_.get()); |
200 glColorMask(true, true, true, true); | 200 glColorMask(true, true, true, true); |
201 glEnable(GL_BLEND); | 201 glEnable(GL_BLEND); |
202 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 202 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
203 } | 203 } |
204 | 204 |
205 CompositorGL::~CompositorGL() { | 205 CompositorGL::~CompositorGL() { |
206 } | 206 } |
207 | 207 |
208 void CompositorGL::MakeCurrent() { | 208 void CompositorGL::MakeCurrent() { |
209 gl_context_->MakeCurrent(); | 209 gl_context_->MakeCurrent(gl_surface_.get()); |
210 } | 210 } |
211 | 211 |
212 gfx::Size CompositorGL::GetSize() { | 212 gfx::Size CompositorGL::GetSize() { |
213 return gl_context_->GetSize(); | 213 return gl_surface_->GetSize(); |
214 } | 214 } |
215 | 215 |
216 Texture* CompositorGL::CreateTexture() { | 216 Texture* CompositorGL::CreateTexture() { |
217 Texture* texture = new TextureGL(this); | 217 Texture* texture = new TextureGL(this); |
218 return texture; | 218 return texture; |
219 } | 219 } |
220 | 220 |
221 void CompositorGL::NotifyStart() { | 221 void CompositorGL::NotifyStart() { |
222 started_ = true; | 222 started_ = true; |
223 gl_context_->MakeCurrent(gl_surface_.get()); | 223 gl_context_->MakeCurrent(gl_surface_.get()); |
224 glViewport(0, 0, | 224 glViewport(0, 0, |
225 gl_context_->GetSize().width(), gl_context_->GetSize().height()); | 225 gl_surface_->GetSize().width(), gl_surface_->GetSize().height()); |
226 | 226 |
227 // Clear to 'psychedelic' purple to make it easy to spot un-rendered regions. | 227 // Clear to 'psychedelic' purple to make it easy to spot un-rendered regions. |
228 glClearColor(223.0 / 255, 0, 1, 1); | 228 glClearColor(223.0 / 255, 0, 1, 1); |
229 glColorMask(true, true, true, true); | 229 glColorMask(true, true, true, true); |
230 glClear(GL_COLOR_BUFFER_BIT); | 230 glClear(GL_COLOR_BUFFER_BIT); |
231 // Disable alpha writes, since we're using blending anyways. | 231 // Disable alpha writes, since we're using blending anyways. |
232 glColorMask(true, true, true, false); | 232 glColorMask(true, true, true, false); |
233 } | 233 } |
234 | 234 |
235 void CompositorGL::NotifyEnd() { | 235 void CompositorGL::NotifyEnd() { |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 | 313 |
314 // static | 314 // static |
315 Compositor* Compositor::Create(gfx::AcceleratedWidget widget) { | 315 Compositor* Compositor::Create(gfx::AcceleratedWidget widget) { |
316 if (gfx::GetGLImplementation() != gfx::kGLImplementationNone) | 316 if (gfx::GetGLImplementation() != gfx::kGLImplementationNone) |
317 return new CompositorGL(widget); | 317 return new CompositorGL(widget); |
318 return NULL; | 318 return NULL; |
319 } | 319 } |
320 #endif | 320 #endif |
321 | 321 |
322 } // namespace ui | 322 } // namespace ui |
OLD | NEW |