Chromium Code Reviews| 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. |
|
brettw
2010/12/22 22:56:21
I'm not quite sure what you mean here. "This funct
alokp
2010/12/22 23:04:49
Yes I will remove the argument when I move this fu
|
| + 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 |