| Index: webkit/plugins/ppapi/ppb_graphics_3d_impl.h
|
| ===================================================================
|
| --- webkit/plugins/ppapi/ppb_graphics_3d_impl.h (revision 92908)
|
| +++ webkit/plugins/ppapi/ppb_graphics_3d_impl.h (working copy)
|
| @@ -5,14 +5,16 @@
|
| #ifndef WEBKIT_PLUGINS_PPAPI_PPB_GRAPHICS_3D_IMPL_H_
|
| #define WEBKIT_PLUGINS_PPAPI_PPB_GRAPHICS_3D_IMPL_H_
|
|
|
| -#include "ppapi/thunk/ppb_graphics_3d_api.h"
|
| +#include "base/memory/scoped_callback_factory.h"
|
| +#include "ppapi/shared_impl/graphics_3d_impl.h"
|
| +#include "webkit/plugins/ppapi/plugin_delegate.h"
|
| #include "webkit/plugins/ppapi/resource.h"
|
|
|
| namespace webkit {
|
| namespace ppapi {
|
|
|
| class PPB_Graphics3D_Impl : public Resource,
|
| - public ::ppapi::thunk::PPB_Graphics3D_API {
|
| + public ::ppapi::Graphics3DImpl {
|
| public:
|
| virtual ~PPB_Graphics3D_Impl();
|
|
|
| @@ -20,22 +22,72 @@
|
| PP_Config3D_Dev config,
|
| PP_Resource share_context,
|
| const int32_t* attrib_list);
|
| + static PP_Resource CreateRaw(PluginInstance* instance,
|
| + PP_Config3D_Dev config,
|
| + PP_Resource share_context,
|
| + const int32_t* attrib_list);
|
|
|
| // ResourceObjectBase override.
|
| virtual ::ppapi::thunk::PPB_Graphics3D_API* AsPPB_Graphics3D_API() OVERRIDE;
|
|
|
| - // PPB_Graphics3D_API implementation.
|
| - virtual int32_t GetAttribs(int32_t* attrib_list) OVERRIDE;
|
| - virtual int32_t SetAttribs(int32_t* attrib_list) OVERRIDE;
|
| - virtual int32_t SwapBuffers(PP_CompletionCallback callback) OVERRIDE;
|
| + // PPB_Graphics3D_API trusted implementation.
|
| + virtual PP_Bool InitCommandBuffer(int32_t size) OVERRIDE;
|
| + virtual PP_Bool GetRingBuffer(int* shm_handle,
|
| + uint32_t* shm_size) OVERRIDE;
|
| + virtual PP_Graphics3DTrustedState GetState() OVERRIDE;
|
| + virtual int32_t CreateTransferBuffer(uint32_t size) OVERRIDE;
|
| + virtual PP_Bool DestroyTransferBuffer(int32_t id) OVERRIDE;
|
| + virtual PP_Bool GetTransferBuffer(int32_t id,
|
| + int* shm_handle,
|
| + uint32_t* shm_size) OVERRIDE;
|
| + virtual PP_Bool Flush(int32_t put_offset) OVERRIDE;
|
| + virtual PP_Graphics3DTrustedState FlushSync(int32_t put_offset) OVERRIDE;
|
| + virtual PP_Graphics3DTrustedState FlushSyncFast(
|
| + int32_t put_offset,
|
| + int32_t last_known_get) OVERRIDE;
|
|
|
| + // Binds/unbinds the graphics of this context with the associated instance.
|
| + // Returns true if binding/unbinding is successful.
|
| + bool BindToInstance(bool bind);
|
| +
|
| + // Returns the id of texture that can be used by the compositor.
|
| + unsigned int GetBackingTextureId();
|
| +
|
| + // Notifications that the view has rendered the page and that it has been
|
| + // flushed to the screen. These messages are used to send Flush callbacks to
|
| + // the plugin.
|
| + void ViewInitiatedPaint();
|
| + void ViewFlushedPaint();
|
| +
|
| + protected:
|
| + // ppapi::Graphics3DImpl overrides.
|
| + virtual gpu::CommandBuffer* GetCommandBuffer() OVERRIDE;
|
| + virtual int32 DoSwapBuffers() OVERRIDE;
|
| +
|
| private:
|
| explicit PPB_Graphics3D_Impl(PluginInstance* instance);
|
|
|
| bool Init(PP_Config3D_Dev config,
|
| PP_Resource share_context,
|
| const int32_t* attrib_list);
|
| + bool InitRaw(PP_Config3D_Dev config,
|
| + PP_Resource share_context,
|
| + const int32_t* attrib_list);
|
|
|
| + // Notifications received from the GPU process.
|
| + void OnSwapBuffers();
|
| + void OnContextLost();
|
| + // Notifications sent to plugin.
|
| + void SendContextLost();
|
| +
|
| + // True if context is bound to instance.
|
| + bool bound_to_instance_;
|
| + // True when waiting for compositor to commit our backing texture.
|
| + bool commit_pending_;
|
| + // PluginDelegate's 3D Context. Responsible for providing the command buffer.
|
| + scoped_ptr<PluginDelegate::PlatformContext3D> platform_context_;
|
| + base::ScopedCallbackFactory<PPB_Graphics3D_Impl> callback_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PPB_Graphics3D_Impl);
|
| };
|
|
|
| @@ -43,4 +95,3 @@
|
| } // namespace webkit
|
|
|
| #endif // WEBKIT_PLUGINS_PPAPI_PPB_GRAPHICS_3D_IMPL_H_
|
| -
|
|
|