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

Side by Side Diff: chrome/gpu/gpu_command_buffer_stub.cc

Issue 6241015: Make Pepper resize the buffer through the command buffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 11 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #if defined(ENABLE_GPU) 5 #if defined(ENABLE_GPU)
6 6
7 #include "base/process_util.h" 7 #include "base/process_util.h"
8 #include "base/shared_memory.h" 8 #include "base/shared_memory.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "chrome/common/child_thread.h" 10 #include "chrome/common/child_thread.h"
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 #if defined(OS_MACOSX) 250 #if defined(OS_MACOSX)
251 if (handle_) { 251 if (handle_) {
252 // This context conceptually puts its output directly on the 252 // This context conceptually puts its output directly on the
253 // screen, rendered by the accelerated plugin layer in 253 // screen, rendered by the accelerated plugin layer in
254 // RenderWidgetHostViewMac. Set up a pathway to notify the 254 // RenderWidgetHostViewMac. Set up a pathway to notify the
255 // browser process when its contents change. 255 // browser process when its contents change.
256 processor_->SetSwapBuffersCallback( 256 processor_->SetSwapBuffersCallback(
257 NewCallback(this, 257 NewCallback(this,
258 &GpuCommandBufferStub::SwapBuffersCallback)); 258 &GpuCommandBufferStub::SwapBuffersCallback));
259 } 259 }
260 #elif defined(OS_LINUX) || defined(OS_WIN)
261 if (handle_) {
262 // Set up a pathway for resizing the output window at the right time
263 // relative to other GL commands.
264 processor_->SetResizeCallback(
265 NewCallback(this,
266 &GpuCommandBufferStub::ResizeCallback));
267 }
268 #endif // defined(OS_MACOSX) 260 #endif // defined(OS_MACOSX)
261
262 // Set up a pathway for resizing the output window or framebuffer at the
263 // right time relative to other GL commands.
264 processor_->SetResizeCallback(
265 NewCallback(this,
neb 2011/01/25 19:16:06 This can fit on the same line, no?
Antoine Labour 2011/01/25 19:32:24 Done.
266 &GpuCommandBufferStub::ResizeCallback));
269 } else { 267 } else {
270 processor_.reset(); 268 processor_.reset();
271 command_buffer_.reset(); 269 command_buffer_.reset();
272 } 270 }
273 } 271 }
274 } 272 }
275 } 273 }
276 274
277 void GpuCommandBufferStub::OnGetState(gpu::CommandBuffer::State* state) { 275 void GpuCommandBufferStub::OnGetState(gpu::CommandBuffer::State* state) {
278 *state = command_buffer_->GetState(); 276 *state = command_buffer_->GetState();
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 366
369 void GpuCommandBufferStub::AcceleratedSurfaceBuffersSwapped( 367 void GpuCommandBufferStub::AcceleratedSurfaceBuffersSwapped(
370 uint64 swap_buffers_count) { 368 uint64 swap_buffers_count) {
371 processor_->set_acknowledged_swap_buffers_count(swap_buffers_count); 369 processor_->set_acknowledged_swap_buffers_count(swap_buffers_count);
372 // Wake up the GpuProcessor to start doing work again. 370 // Wake up the GpuProcessor to start doing work again.
373 processor_->ScheduleProcessCommands(); 371 processor_->ScheduleProcessCommands();
374 } 372 }
375 #endif // defined(OS_MACOSX) 373 #endif // defined(OS_MACOSX)
376 374
377 void GpuCommandBufferStub::ResizeCallback(gfx::Size size) { 375 void GpuCommandBufferStub::ResizeCallback(gfx::Size size) {
378 if (handle_ == gfx::kNullPluginWindow) 376 if (handle_ == gfx::kNullPluginWindow) {
379 return; 377 processor_->decoder()->ResizeOffscreenFrameBuffer(size);
380 378 processor_->decoder()->UpdateOffscreenFrameBufferSize();
379 } else {
381 #if defined(OS_LINUX) 380 #if defined(OS_LINUX)
382 GpuThread* gpu_thread = channel_->gpu_thread(); 381 GpuThread* gpu_thread = channel_->gpu_thread();
383 bool result = false; 382 bool result = false;
384 gpu_thread->Send( 383 gpu_thread->Send(
385 new GpuHostMsg_ResizeXID(handle_, size, &result)); 384 new GpuHostMsg_ResizeXID(handle_, size, &result));
386 #elif defined(OS_WIN) 385 #elif defined(OS_WIN)
387 HWND hwnd = static_cast<HWND>(compositor_window_); 386 HWND hwnd = static_cast<HWND>(compositor_window_);
388 UINT swp_flags = SWP_NOSENDCHANGING | SWP_NOOWNERZORDER | SWP_NOCOPYBITS | 387 UINT swp_flags = SWP_NOSENDCHANGING | SWP_NOOWNERZORDER | SWP_NOCOPYBITS |
389 SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_DEFERERASE; 388 SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_DEFERERASE;
390 SetWindowPos(hwnd, NULL, 0, 0, size.width(), size.height(), swp_flags); 389 SetWindowPos(hwnd, NULL, 0, 0, size.width(), size.height(), swp_flags);
391 #endif // defined(OS_LINUX) 390 #endif // defined(OS_LINUX)
391 }
392 } 392 }
393 393
394 #endif // defined(ENABLE_GPU) 394 #endif // defined(ENABLE_GPU)
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/pepper_platform_context_3d_impl.h » ('j') | webkit/plugins/ppapi/ppb_surface_3d_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698