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

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

Issue 6824006: Completed the implementation for PPB_Graphics3D interface. Mostly copied from the implementations... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: webkit/plugins/ppapi/ppb_graphics_3d_impl.h
===================================================================
--- webkit/plugins/ppapi/ppb_graphics_3d_impl.h (revision 80830)
+++ webkit/plugins/ppapi/ppb_graphics_3d_impl.h (working copy)
@@ -1,13 +1,26 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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_GRAPHICS_3D_IMPL_H_
#define WEBKIT_PLUGINS_PPAPI_PPB_GRAPHICS_3D_IMPL_H_
+#include "base/memory/scoped_callback_factory.h"
+#include "base/memory/scoped_ptr.h"
#include "ppapi/c/dev/ppb_graphics_3d_dev.h"
+#include "webkit/plugins/ppapi/plugin_delegate.h"
#include "webkit/plugins/ppapi/resource.h"
+struct PPB_Context3DTrusted_Dev;
+
+namespace gpu {
+class CommandBuffer;
+namespace gles2 {
+class GLES2CmdHelper;
+class GLES2Implementation;
+} // namespace gles2
+} // namespace gpu
+
namespace webkit {
namespace ppapi {
@@ -17,6 +30,8 @@
virtual ~PPB_Graphics3D_Impl();
static const PPB_Graphics3D_Dev* GetInterface();
+ // TODO(alokp): Rename PPB_Context3DTrusted_Dev to PPB_Graphics3DTrusted_Dev.
+ static const PPB_Context3DTrusted_Dev* GetTrustedInterface();
// Resource override.
virtual PPB_Graphics3D_Impl* AsPPB_Graphics3D_Impl();
@@ -24,8 +39,53 @@
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);
+ PluginDelegate::PlatformContext3D* platform_context() {
+ return platform_context_.get();
+ }
+ gpu::gles2::GLES2Implementation* gles2_impl() {
+ return gles2_impl_.get();
+ }
+ gpu::CommandBuffer* GetCommandBuffer();
+ unsigned int GetBackingTextureId();
+
+ // 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);
+
+ void ViewInitiatedPaint();
+ void ViewFlushedPaint();
+ int32_t SwapBuffers(PP_CompletionCallback callback);
+
private:
+ bool CreateImplementation();
+ void OnSwapBuffers();
+ void OnContextLost();
+ void SendSwapBuffers();
+ void SendContextLost();
+
+ // True if the context is bound to plugin instance.
+ bool bound_to_instance_;
+
+ // PluginDelegate's 3D Context. Responsible for providing the command buffer.
+ scoped_ptr<PluginDelegate::PlatformContext3D> platform_context_;
+
+ int32 transfer_buffer_id_;
+ scoped_ptr<gpu::gles2::GLES2CmdHelper> command_buffer_helper_;
+ scoped_ptr<gpu::gles2::GLES2Implementation> gles2_impl_;
+
+ // True when the compositor has been asked to commit texture but has
+ // not returned yet.
+ bool commit_initiated_;
+ // Callback provided by the plugin that needs to be called at the
+ // completion of swap buffers.
+ PP_CompletionCallback swap_callback_;
+ base::ScopedCallbackFactory<PPB_Graphics3D_Impl> callback_factory_;
+
DISALLOW_COPY_AND_ASSIGN(PPB_Graphics3D_Impl);
};

Powered by Google App Engine
This is Rietveld 408576698