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

Unified Diff: chrome/renderer/pepper_plugin_delegate_impl.cc

Issue 5842003: Move PlatformContext3DImpl to separate file (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. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/pepper_platform_context_3d_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/pepper_plugin_delegate_impl.cc
diff --git a/chrome/renderer/pepper_plugin_delegate_impl.cc b/chrome/renderer/pepper_plugin_delegate_impl.cc
index e2fcfc7699c91befbfeb40290f4cb47631d69632..7783dea4c29614157c270a38a98df2fa53a5b412 100644
--- a/chrome/renderer/pepper_plugin_delegate_impl.cc
+++ b/chrome/renderer/pepper_plugin_delegate_impl.cc
@@ -26,6 +26,7 @@
#include "chrome/renderer/command_buffer_proxy.h"
#include "chrome/renderer/ggl/ggl.h"
#include "chrome/renderer/gpu_channel_host.h"
+#include "chrome/renderer/pepper_platform_context_3d_impl.h"
#include "chrome/renderer/render_thread.h"
#include "chrome/renderer/render_view.h"
#include "chrome/renderer/webgraphicscontext3d_command_buffer_impl.h"
@@ -97,36 +98,6 @@ class PlatformImage2DImpl : public pepper::PluginDelegate::PlatformImage2D {
DISALLOW_COPY_AND_ASSIGN(PlatformImage2DImpl);
};
-#ifdef ENABLE_GPU
-
-class PlatformContext3DImpl : public pepper::PluginDelegate::PlatformContext3D {
- public:
- explicit PlatformContext3DImpl(WebKit::WebView* web_view)
- : web_view_(web_view),
- context_(NULL) {
- }
-
- virtual ~PlatformContext3DImpl() {
- if (context_) {
- ggl::DestroyContext(context_);
- context_ = NULL;
- }
- }
-
- virtual bool Init();
- virtual bool SwapBuffers();
- virtual unsigned GetError();
- virtual void SetSwapBuffersCallback(Callback0::Type* callback);
- void ResizeBackingTexture(const gfx::Size& size);
- virtual unsigned GetBackingTextureId();
- virtual gpu::gles2::GLES2Implementation* GetGLES2Implementation();
-
- private:
- WebKit::WebView* web_view_;
- ggl::Context* context_;
-};
-
-#endif // ENABLE_GPU
class PlatformAudioImpl
: public pepper::PluginDelegate::PlatformAudio,
@@ -191,89 +162,6 @@ class PlatformAudioImpl
DISALLOW_COPY_AND_ASSIGN(PlatformAudioImpl);
};
-#ifdef ENABLE_GPU
-
-bool PlatformContext3DImpl::Init() {
- // Ignore initializing more than once.
- if (context_)
- return true;
-
- WebGraphicsContext3DCommandBufferImpl* context =
- static_cast<WebGraphicsContext3DCommandBufferImpl*>(
- web_view_->graphicsContext3D());
- if (!context)
- return false;
-
- ggl::Context* parent_context = context->context();
- if (!parent_context)
- return false;
-
- RenderThread* render_thread = RenderThread::current();
- if (!render_thread)
- return false;
-
- GpuChannelHost* host = render_thread->GetGpuChannel();
- if (!host)
- return false;
-
- DCHECK(host->state() == GpuChannelHost::kConnected);
-
- // TODO(apatrick): Let Pepper plugins configure their back buffer surface.
- static const int32 attribs[] = {
- ggl::GGL_ALPHA_SIZE, 8,
- ggl::GGL_DEPTH_SIZE, 24,
- ggl::GGL_STENCIL_SIZE, 8,
- ggl::GGL_SAMPLES, 0,
- ggl::GGL_SAMPLE_BUFFERS, 0,
- ggl::GGL_NONE,
- };
-
- // TODO(apatrick): Decide which extensions to expose to Pepper plugins.
- // Currently they get only core GLES2.
- context_ = ggl::CreateOffscreenContext(host,
- parent_context,
- gfx::Size(1, 1),
- "",
- attribs);
- if (!context_)
- return false;
-
- return true;
-}
-
-bool PlatformContext3DImpl::SwapBuffers() {
- DCHECK(context_);
- return ggl::SwapBuffers(context_);
-}
-
-unsigned PlatformContext3DImpl::GetError() {
- DCHECK(context_);
- return ggl::GetError(context_);
-}
-
-void PlatformContext3DImpl::ResizeBackingTexture(const gfx::Size& size) {
- DCHECK(context_);
- ggl::ResizeOffscreenContext(context_, size);
-}
-
-void PlatformContext3DImpl::SetSwapBuffersCallback(Callback0::Type* callback) {
- DCHECK(context_);
- ggl::SetSwapBuffersCallback(context_, callback);
-}
-
-unsigned PlatformContext3DImpl::GetBackingTextureId() {
- DCHECK(context_);
- return ggl::GetParentTextureId(context_);
-}
-
-gpu::gles2::GLES2Implementation*
- PlatformContext3DImpl::GetGLES2Implementation() {
- DCHECK(context_);
- return ggl::GetImplementation(context_);
-}
-
-#endif // ENABLE_GPU
-
bool PlatformAudioImpl::Initialize(
uint32_t sample_rate, uint32_t sample_count,
pepper::PluginDelegate::PlatformAudio::Client* client) {
@@ -611,7 +499,17 @@ PepperPluginDelegateImpl::CreateImage2D(int width, int height) {
pepper::PluginDelegate::PlatformContext3D*
PepperPluginDelegateImpl::CreateContext3D() {
#ifdef ENABLE_GPU
- return new PlatformContext3DImpl(render_view_->webview());
+ WebGraphicsContext3DCommandBufferImpl* context =
+ static_cast<WebGraphicsContext3DCommandBufferImpl*>(
+ render_view_->webview()->graphicsContext3D());
+ if (!context)
+ return NULL;
+
+ ggl::Context* parent_context = context->context();
+ if (!parent_context)
+ return NULL;
+
+ return new PlatformContext3DImpl(parent_context);
#else
return NULL;
#endif
« no previous file with comments | « chrome/renderer/pepper_platform_context_3d_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698