Chromium Code Reviews

Unified Diff: webkit/plugins/ppapi/ppb_surface_3d_impl.h

Issue 6047008: Added ppapi::Surface3D. This CL completes the new Pepper3D interface. The imp... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: webkit/plugins/ppapi/ppb_surface_3d_impl.h
===================================================================
--- webkit/plugins/ppapi/ppb_surface_3d_impl.h (revision 0)
+++ webkit/plugins/ppapi/ppb_surface_3d_impl.h (revision 0)
@@ -0,0 +1,71 @@
+// 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_SURFACE_3D_IMPL_H_
+#define WEBKIT_PLUGINS_PPAPI_PPB_SURFACE_3D_IMPL_H_
+
+#include "base/callback.h"
+#include "ppapi/c/dev/ppb_surface_3d_dev.h"
+#include "webkit/plugins/ppapi/plugin_delegate.h"
+#include "webkit/plugins/ppapi/resource.h"
+
+namespace gfx {
+class Size;
+}
+
+namespace webkit {
+namespace ppapi {
+
+class PPB_Surface3D_Impl : public Resource {
+ public:
+ explicit PPB_Surface3D_Impl(PluginInstance* instance);
+ virtual ~PPB_Surface3D_Impl();
+
+ static const PPB_Surface3D_Dev* GetInterface();
+
+ // Resource override.
+ virtual PPB_Surface3D_Impl* AsPPB_Surface3D_Impl();
+
+ bool Init(PP_Config3D_Dev config,
+ const int32_t* attrib_list);
+
+ PluginInstance* instance() const {
+ return instance_;
+ }
+ PluginDelegate::PlatformContext3D* context() const {
+ return context_;
+ }
+
+ // Binds/unbinds the graphics of this surface with the associated instance.
+ // If the surface is bound, anything drawn on the surface appears on instance
+ // window. Returns true if binding/unbinding is successful.
+ bool BindToInstance(bool bind);
+
+ // Binds the context such that all draw calls to context
+ // affect this surface. To unbind call this function will NULL context.
+ // Returns true if successful.
+ bool BindToContext(PluginDelegate::PlatformContext3D* context);
+
+ unsigned int GetBackingTextureId();
+
+ bool SwapBuffers();
+
+ private:
+ // Called when SwapBuffers is complete.
+ void OnSwapBuffers();
+
+ // Plugin instance this surface is associated with.
+ PluginInstance* instance_;
+ bool bound_to_instance_;
+
+ // The context this surface is currently bound to.
+ PluginDelegate::PlatformContext3D* context_;
+
+ DISALLOW_COPY_AND_ASSIGN(PPB_Surface3D_Impl);
+};
+
+} // namespace ppapi
+} // namespace webkit
+
+#endif // WEBKIT_PLUGINS_PPAPI_PPB_SURFACE_3D_IMPL_H_
Property changes on: webkit\plugins\ppapi\ppb_surface_3d_impl.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine