Index: webkit/plugins/ppapi/ppb_context_3d_impl.h |
=================================================================== |
--- webkit/plugins/ppapi/ppb_context_3d_impl.h (revision 0) |
+++ webkit/plugins/ppapi/ppb_context_3d_impl.h (revision 0) |
@@ -0,0 +1,82 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef WEBKIT_PLUGINS_PPAPI_PPB_CONTEXT_3D_IMPL_H_ |
+#define WEBKIT_PLUGINS_PPAPI_PPB_CONTEXT_3D_IMPL_H_ |
+ |
+#include "base/callback.h" |
+#include "base/scoped_ptr.h" |
+#include "ppapi/c/dev/ppb_context_3d_dev.h" |
+#include "webkit/plugins/ppapi/plugin_delegate.h" |
+#include "webkit/plugins/ppapi/resource.h" |
+ |
+namespace gfx { |
+class Size; |
+} |
+ |
+namespace gpu { |
+namespace gles2 { |
+class GLES2Implementation; |
+} // namespace gles2 |
+} // namespace gpu |
+ |
+namespace webkit { |
+namespace ppapi { |
+ |
+class PPB_Context3D_Impl : public Resource { |
+ public: |
+ explicit PPB_Context3D_Impl(PluginModule* module); |
+ virtual ~PPB_Context3D_Impl(); |
+ |
+ static const PPB_Context3D_Dev* GetInterface(); |
+ |
+ // Resource override. |
+ virtual PPB_Context3D_Impl* AsPPB_Context3D_Impl(); |
+ |
+ bool Init(PluginInstance* instance, |
+ PP_Config3D_Dev config, |
+ PP_Resource share_context, |
+ const int32_t* attrib_list); |
+ |
+ // Associates this PPB_Context3D_Impl with the given plugin instance. |
+ // You can pass NULL to clear the existing device. Returns true on success. |
+ // In this case, the last rendered frame is displayed. |
+ // |
+ // TODO(alokp): This is confusing. This context is already associated with |
+ // an instance. This function should rather be called BindToInstanceGraphics |
+ // or something similar which means from this point on, anything drawn with |
+ // this context appears on instance window. This function should also not |
+ // take any argument. But this means modifying PPB_Instance::BindGraphics. |
+ bool BindToInstance(PluginInstance* new_instance); |
+ |
+ bool SwapBuffers(); |
+ void SetSwapBuffersCallback(Callback0::Type* callback); |
+ |
+ unsigned int GetBackingTextureId(); |
+ void ResizeBackingTexture(const gfx::Size& size); |
+ |
+ gpu::gles2::GLES2Implementation* gles2_impl() { |
+ return gles2_impl_; |
+ } |
+ |
+ private: |
+ void Destroy(); |
+ |
+ // Non-owning pointer to the plugin instance this context is currently bound |
+ // to, if any. If the context is currently unbound, this will be NULL. |
+ PluginInstance* bound_instance_; |
+ |
+ // PluginDelegate's 3D Context. Responsible for providing the command buffer. |
+ scoped_ptr<PluginDelegate::PlatformContext3D> platform_context_; |
+ |
+ // GLES2 Implementation instance. Owned by the platform context's GGL context. |
+ gpu::gles2::GLES2Implementation* gles2_impl_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PPB_Context3D_Impl); |
+}; |
+ |
+} // namespace ppapi |
+} // namespace webkit |
+ |
+#endif // WEBKIT_PLUGINS_PPAPI_PPB_CONTEXT_3D_IMPL_H_ |
Property changes on: webkit\plugins\ppapi\ppb_context_3d_impl.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |