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 #if defined(ENABLE_GPU) | 5 #if defined(ENABLE_GPU) |
6 | 6 |
7 #include "content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h" | 7 #include "content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h" |
8 | 8 |
9 #include "gpu/GLES2/gl2.h" | 9 #include "gpu/GLES2/gl2.h" |
10 #ifndef GL_GLEXT_PROTOTYPES | 10 #ifndef GL_GLEXT_PROTOTYPES |
11 #define GL_GLEXT_PROTOTYPES 1 | 11 #define GL_GLEXT_PROTOTYPES 1 |
12 #endif | 12 #endif |
13 #include "gpu/GLES2/gl2ext.h" | 13 #include "gpu/GLES2/gl2ext.h" |
14 | 14 |
15 #include <algorithm> | 15 #include <algorithm> |
16 #include <set> | 16 #include <set> |
17 | 17 |
18 #include "base/bind.h" | 18 #include "base/bind.h" |
19 #include "base/lazy_instance.h" | 19 #include "base/lazy_instance.h" |
20 #include "base/string_tokenizer.h" | 20 #include "base/string_tokenizer.h" |
21 #include "base/command_line.h" | 21 #include "base/command_line.h" |
22 #include "base/debug/trace_event.h" | 22 #include "base/debug/trace_event.h" |
23 #include "base/logging.h" | 23 #include "base/logging.h" |
24 #include "base/metrics/histogram.h" | 24 #include "base/metrics/histogram.h" |
25 #include "base/synchronization/lock.h" | 25 #include "base/synchronization/lock.h" |
26 #include "content/common/content_switches.h" | 26 #include "content/common/content_switches.h" |
27 #include "content/renderer/gpu/command_buffer_proxy.h" | |
27 #include "content/renderer/gpu/gpu_channel_host.h" | 28 #include "content/renderer/gpu/gpu_channel_host.h" |
28 #include "content/renderer/render_thread_impl.h" | 29 #include "content/renderer/render_thread_impl.h" |
29 #include "content/renderer/render_view_impl.h" | 30 #include "content/renderer/render_view_impl.h" |
30 #include "gpu/command_buffer/client/gles2_implementation.h" | 31 #include "gpu/command_buffer/client/gles2_implementation.h" |
31 #include "gpu/command_buffer/common/constants.h" | 32 #include "gpu/command_buffer/common/constants.h" |
32 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" | 33 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" |
33 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | 34 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
34 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 35 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
35 #include "webkit/glue/gl_bindings_skia_cmd_buffer.h" | 36 #include "webkit/glue/gl_bindings_skia_cmd_buffer.h" |
36 | 37 |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
261 cached_width_ = width; | 262 cached_width_ = width; |
262 cached_height_ = height; | 263 cached_height_ = height; |
263 | 264 |
264 gl_->ResizeCHROMIUM(width, height); | 265 gl_->ResizeCHROMIUM(width, height); |
265 | 266 |
266 #ifdef FLIP_FRAMEBUFFER_VERTICALLY | 267 #ifdef FLIP_FRAMEBUFFER_VERTICALLY |
267 scanline_.reset(new uint8[width * 4]); | 268 scanline_.reset(new uint8[width * 4]); |
268 #endif // FLIP_FRAMEBUFFER_VERTICALLY | 269 #endif // FLIP_FRAMEBUFFER_VERTICALLY |
269 } | 270 } |
270 | 271 |
272 void WebGraphicsContext3DCommandBufferImpl::setVisibility(bool visible) { | |
273 gl_->Flush(); | |
274 // TODO(mmocny): Should context_ have a SetSurfaceVisible which forwards? | |
275 context_->GetCommandBufferProxy()->SetSurfaceVisible(visible); | |
mmocny
2011/10/13 18:54:17
RE TODO: I'm leaning towards having RendererGLCont
jonathan.backer
2011/10/13 19:25:07
I'm OK with it as is. There's one surface per comm
apatrick_chromium
2011/10/13 19:51:31
I lean towards a forwarding function. Law of demet
| |
276 } | |
277 | |
271 #ifdef FLIP_FRAMEBUFFER_VERTICALLY | 278 #ifdef FLIP_FRAMEBUFFER_VERTICALLY |
272 void WebGraphicsContext3DCommandBufferImpl::FlipVertically( | 279 void WebGraphicsContext3DCommandBufferImpl::FlipVertically( |
273 uint8* framebuffer, | 280 uint8* framebuffer, |
274 unsigned int width, | 281 unsigned int width, |
275 unsigned int height) { | 282 unsigned int height) { |
276 uint8* scanline = scanline_.get(); | 283 uint8* scanline = scanline_.get(); |
277 if (!scanline) | 284 if (!scanline) |
278 return; | 285 return; |
279 unsigned int row_bytes = width * 4; | 286 unsigned int row_bytes = width * 4; |
280 unsigned int count = height / 2; | 287 unsigned int count = height / 2; |
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1083 if (context_lost_callback_) { | 1090 if (context_lost_callback_) { |
1084 context_lost_callback_->onContextLost(); | 1091 context_lost_callback_->onContextLost(); |
1085 } | 1092 } |
1086 RenderViewImpl* renderview = | 1093 RenderViewImpl* renderview = |
1087 web_view_ ? RenderViewImpl::FromWebView(web_view_) : NULL; | 1094 web_view_ ? RenderViewImpl::FromWebView(web_view_) : NULL; |
1088 if (renderview) | 1095 if (renderview) |
1089 renderview->OnViewContextSwapBuffersAborted(); | 1096 renderview->OnViewContextSwapBuffersAborted(); |
1090 } | 1097 } |
1091 | 1098 |
1092 #endif // defined(ENABLE_GPU) | 1099 #endif // defined(ENABLE_GPU) |
OLD | NEW |