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

Side by Side Diff: content/renderer/pepper_platform_context_3d_impl.h

Issue 8342024: Fixed bugs with Pepper 3D under dynamic GPU switching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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) 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 #ifndef CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_ 4 #ifndef CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_
5 #define CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_ 5 #define CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "webkit/plugins/ppapi/plugin_delegate.h" 10 #include "webkit/plugins/ppapi/plugin_delegate.h"
11 11
12 #ifdef ENABLE_GPU 12 #ifdef ENABLE_GPU
13 13
14 namespace gpu { 14 namespace gpu {
15 15
16 class CommandBuffer; 16 class CommandBuffer;
17 17
18 } // namespace gpu 18 } // namespace gpu
19 19
20 class CommandBufferProxy; 20 class CommandBufferProxy;
21 class GpuChannelHost; 21 class GpuChannelHost;
22 class PepperParentContextProvider;
22 class RendererGLContext; 23 class RendererGLContext;
23 24
24 class PlatformContext3DImpl 25 class PlatformContext3DImpl
25 : public webkit::ppapi::PluginDelegate::PlatformContext3D { 26 : public webkit::ppapi::PluginDelegate::PlatformContext3D {
26 public: 27 public:
27 explicit PlatformContext3DImpl(RendererGLContext* parent_context); 28 explicit PlatformContext3DImpl(
29 PepperParentContextProvider* parent_context_provider);
28 virtual ~PlatformContext3DImpl(); 30 virtual ~PlatformContext3DImpl();
29 31
30 virtual bool Init(const int32* attrib_list); 32 virtual bool Init(const int32* attrib_list);
31 virtual unsigned GetBackingTextureId(); 33 virtual unsigned GetBackingTextureId();
32 virtual gpu::CommandBuffer* GetCommandBuffer(); 34 virtual gpu::CommandBuffer* GetCommandBuffer();
33 virtual int GetCommandBufferRouteId(); 35 virtual int GetCommandBufferRouteId();
34 virtual void SetContextLostCallback(const base::Closure& callback); 36 virtual void SetContextLostCallback(const base::Closure& callback);
35 virtual bool Echo(const base::Closure& task); 37 virtual bool Echo(const base::Closure& task);
36 38
37 private: 39 private:
38 bool InitRaw(); 40 bool InitRaw();
39 void OnContextLost(); 41 void OnContextLost();
40 42
43 // Implicitly weak pointer; must outlive this instance.
44 PepperParentContextProvider* parent_context_provider_;
41 base::WeakPtr<RendererGLContext> parent_context_; 45 base::WeakPtr<RendererGLContext> parent_context_;
42 scoped_refptr<GpuChannelHost> channel_; 46 scoped_refptr<GpuChannelHost> channel_;
43 unsigned int parent_texture_id_; 47 unsigned int parent_texture_id_;
44 CommandBufferProxy* command_buffer_; 48 CommandBufferProxy* command_buffer_;
45 base::Closure context_lost_callback_; 49 base::Closure context_lost_callback_;
46 base::WeakPtrFactory<PlatformContext3DImpl> weak_ptr_factory_; 50 base::WeakPtrFactory<PlatformContext3DImpl> weak_ptr_factory_;
47 }; 51 };
48 52
49 #endif // ENABLE_GPU 53 #endif // ENABLE_GPU
50 54
51 #endif // CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_ 55 #endif // CONTENT_RENDERER_PEPPER_PLATFORM_CONTEXT_3D_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/pepper_parent_context_provider.cc ('k') | content/renderer/pepper_platform_context_3d_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698