diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-07 00:01:30 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-07 00:01:30 +0000 |
commit | 56d7ad42237c35d2b7653c7cad89e9ca6ea75d68 (patch) | |
tree | b16971de9045c0f3524566b5a242bef0ac0ab1db /ppapi/shared_impl/graphics_3d_impl.h | |
parent | f26d7fa665143e0bf1c173e093f9eadce0a10e97 (diff) | |
download | chromium_src-56d7ad42237c35d2b7653c7cad89e9ca6ea75d68.zip chromium_src-56d7ad42237c35d2b7653c7cad89e9ca6ea75d68.tar.gz chromium_src-56d7ad42237c35d2b7653c7cad89e9ca6ea75d68.tar.bz2 |
Revert 113290 - Rename the shared_impl resource files to give them more regular names.
I keep getting confused between things like AudioImpl and PPB_Audio_Impl. This uses _shared for the names, so now we have _impl, _proxy, and _shared which makes more sense.
I also removed the ppb_opengles2_impl file since it was just a forward to the shared version.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8790004
TBR=brettw@chromium.org
Review URL: http://codereview.chromium.org/8824015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113302 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl/graphics_3d_impl.h')
-rw-r--r-- | ppapi/shared_impl/graphics_3d_impl.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/ppapi/shared_impl/graphics_3d_impl.h b/ppapi/shared_impl/graphics_3d_impl.h new file mode 100644 index 0000000..07fe967 --- /dev/null +++ b/ppapi/shared_impl/graphics_3d_impl.h @@ -0,0 +1,76 @@ +// 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 PPAPI_SHARED_IMPL_GRAPHICS_3D_IMPL_H_ +#define PPAPI_SHARED_IMPL_GRAPHICS_3D_IMPL_H_ + +#include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" +#include "ppapi/c/pp_completion_callback.h" +#include "ppapi/shared_impl/ppapi_shared_export.h" +#include "ppapi/thunk/ppb_graphics_3d_api.h" + +namespace gpu { +class CommandBuffer; +namespace gles2 { +class GLES2CmdHelper; +class GLES2Implementation; +} // namespace gles2 +} // namespace gpu. + +namespace ppapi { + +class PPAPI_SHARED_EXPORT Graphics3DImpl : public thunk::PPB_Graphics3D_API { + public: + // PPB_Graphics3D_API implementation. + virtual int32_t GetAttribs(int32_t* attrib_list) OVERRIDE; + virtual int32_t SetAttribs(int32_t* attrib_list) OVERRIDE; + virtual int32_t GetError() OVERRIDE; + virtual int32_t ResizeBuffers(int32_t width, int32_t height) OVERRIDE; + virtual int32_t SwapBuffers(PP_CompletionCallback callback) OVERRIDE; + virtual void* MapTexSubImage2DCHROMIUM(GLenum target, + GLint level, + GLint xoffset, + GLint yoffset, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + GLenum access) OVERRIDE; + virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) OVERRIDE; + + gpu::gles2::GLES2Implementation* gles2_impl() { + return gles2_impl_.get(); + } + + // Sends swap-buffers notification to the plugin. + void SwapBuffersACK(int32_t pp_error); + + protected: + Graphics3DImpl(); + virtual ~Graphics3DImpl(); + + virtual gpu::CommandBuffer* GetCommandBuffer() = 0; + virtual int32 DoSwapBuffers() = 0; + + bool HasPendingSwap() { return swap_callback_.func != NULL; } + bool CreateGLES2Impl(int32 command_buffer_size, + int32 transfer_buffer_size); + void DestroyGLES2Impl(); + + private: + int32 transfer_buffer_id_; + scoped_ptr<gpu::gles2::GLES2CmdHelper> gles2_helper_; + scoped_ptr<gpu::gles2::GLES2Implementation> gles2_impl_; + + // Callback that needs to be executed when swap-buffers is completed. + PP_CompletionCallback swap_callback_; + + DISALLOW_COPY_AND_ASSIGN(Graphics3DImpl); +}; + +} // namespace ppapi + +#endif // PPAPI_SHARED_IMPL_GRAPHICS_3D_IMPL_H_ + |