diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 19:31:05 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 19:31:05 +0000 |
commit | 95fc42145e5a8cdb0c7624060bf5bfd298838e19 (patch) | |
tree | 2b9a293e6581a60afbe69fe32177cf2b73704b9e /cc/test/test_web_graphics_context_3d.h | |
parent | 14ac682365925234f1f7bc3572f185b69f798814 (diff) | |
download | chromium_src-95fc42145e5a8cdb0c7624060bf5bfd298838e19.zip chromium_src-95fc42145e5a8cdb0c7624060bf5bfd298838e19.tar.gz chromium_src-95fc42145e5a8cdb0c7624060bf5bfd298838e19.tar.bz2 |
aura,cc: Make TestContextProvider usable outside cc.
This makes the TestWebGraphicsContext3D available outside
of cc, and replaces ui::TestWGC3D with the class from cc.
R=jbauman, piman
BUG=258625
Review URL: https://chromiumcodereview.appspot.com/22293007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217308 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test/test_web_graphics_context_3d.h')
-rw-r--r-- | cc/test/test_web_graphics_context_3d.h | 297 |
1 files changed, 0 insertions, 297 deletions
diff --git a/cc/test/test_web_graphics_context_3d.h b/cc/test/test_web_graphics_context_3d.h deleted file mode 100644 index fb278ef..0000000 --- a/cc/test/test_web_graphics_context_3d.h +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright 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 CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ -#define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ - -#include <vector> - -#include "base/callback.h" -#include "base/compiler_specific.h" -#include "base/containers/hash_tables.h" -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" -#include "base/stl_util.h" -#include "base/synchronization/lock.h" -#include "cc/base/scoped_ptr_hash_map.h" -#include "cc/debug/fake_web_graphics_context_3d.h" -#include "third_party/khronos/GLES2/gl2.h" - -namespace WebKit { -class WebGraphicsContext3D; -struct WebGraphicsMemoryAllocation; -} - -namespace cc { - -class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { - public: - static scoped_ptr<TestWebGraphicsContext3D> Create(); - static base::Callback< - scoped_ptr<TestWebGraphicsContext3D>()> CreateFactory(); - static base::Callback< - scoped_ptr<WebKit::WebGraphicsContext3D>()> CreateBaseFactory(); - - virtual ~TestWebGraphicsContext3D(); - - virtual bool makeContextCurrent(); - - virtual int width(); - virtual int height(); - - virtual void reshapeWithScaleFactor( - int width, int height, float scale_factor); - - virtual bool isContextLost(); - virtual WebKit::WGC3Denum getGraphicsResetStatusARB(); - - virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader); - virtual void bindFramebuffer( - WebKit::WGC3Denum target, WebKit::WebGLId framebuffer); - virtual void bindRenderbuffer( - WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer); - virtual void bindTexture( - WebKit::WGC3Denum target, - WebKit::WebGLId texture_id); - - virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target); - - virtual Attributes getContextAttributes(); - - virtual WebKit::WebString getString(WebKit::WGC3Denum name); - virtual WebKit::WGC3Dint getUniformLocation( - WebKit::WebGLId program, - const WebKit::WGC3Dchar* name); - virtual WebKit::WGC3Dsizeiptr getVertexAttribOffset( - WebKit::WGC3Duint index, - WebKit::WGC3Denum pname); - - virtual WebKit::WGC3Dboolean isBuffer(WebKit::WebGLId buffer); - virtual WebKit::WGC3Dboolean isEnabled(WebKit::WGC3Denum cap); - virtual WebKit::WGC3Dboolean isFramebuffer(WebKit::WebGLId framebuffer); - virtual WebKit::WGC3Dboolean isProgram(WebKit::WebGLId program); - virtual WebKit::WGC3Dboolean isRenderbuffer(WebKit::WebGLId renderbuffer); - virtual WebKit::WGC3Dboolean isShader(WebKit::WebGLId shader); - virtual WebKit::WGC3Dboolean isTexture(WebKit::WebGLId texture); - - virtual void useProgram(WebKit::WebGLId program); - - virtual WebKit::WebGLId createBuffer(); - virtual WebKit::WebGLId createFramebuffer(); - virtual WebKit::WebGLId createProgram(); - virtual WebKit::WebGLId createRenderbuffer(); - virtual WebKit::WebGLId createShader(WebKit::WGC3Denum); - virtual WebKit::WebGLId createTexture(); - - virtual void deleteBuffer(WebKit::WebGLId id); - virtual void deleteFramebuffer(WebKit::WebGLId id); - virtual void deleteProgram(WebKit::WebGLId id); - virtual void deleteRenderbuffer(WebKit::WebGLId id); - virtual void deleteShader(WebKit::WebGLId id); - virtual void deleteTexture(WebKit::WebGLId texture_id); - - virtual void endQueryEXT(WebKit::WGC3Denum target); - virtual void getQueryObjectuivEXT( - WebKit::WebGLId query, - WebKit::WGC3Denum pname, - WebKit::WGC3Duint* params); - - virtual void getIntegerv( - WebKit::WGC3Denum pname, - WebKit::WGC3Dint* value); - - virtual void genMailboxCHROMIUM(WebKit::WGC3Dbyte* mailbox); - virtual void produceTextureCHROMIUM(WebKit::WGC3Denum target, - const WebKit::WGC3Dbyte* mailbox) { } - virtual void consumeTextureCHROMIUM(WebKit::WGC3Denum target, - const WebKit::WGC3Dbyte* mailbox) { } - - virtual void setContextLostCallback( - WebGraphicsContextLostCallback* callback); - - virtual void loseContextCHROMIUM(WebKit::WGC3Denum current, - WebKit::WGC3Denum other); - - // Takes ownership of the |callback|. - virtual void signalSyncPoint(unsigned sync_point, - WebGraphicsSyncPointCallback* callback); - virtual void signalQuery(WebKit::WebGLId query, - WebGraphicsSyncPointCallback* callback); - - virtual void setSwapBuffersCompleteCallbackCHROMIUM( - WebGraphicsSwapBuffersCompleteCallbackCHROMIUM* callback); - - virtual void setMemoryAllocationChangedCallbackCHROMIUM( - WebGraphicsMemoryAllocationChangedCallbackCHROMIUM* callback); - - virtual void prepareTexture(); - virtual void finish(); - virtual void flush(); - - virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer); - virtual void bufferData(WebKit::WGC3Denum target, - WebKit::WGC3Dsizeiptr size, - const void* data, - WebKit::WGC3Denum usage); - virtual void* mapBufferCHROMIUM(WebKit::WGC3Denum target, - WebKit::WGC3Denum access); - virtual WebKit::WGC3Dboolean unmapBufferCHROMIUM(WebKit::WGC3Denum target); - - virtual void bindTexImage2DCHROMIUM(WebKit::WGC3Denum target, - WebKit::WGC3Dint image_id); - virtual WebKit::WGC3Duint createImageCHROMIUM( - WebKit::WGC3Dsizei width, - WebKit::WGC3Dsizei height, - WebKit::WGC3Denum internalformat); - virtual void destroyImageCHROMIUM(WebKit::WGC3Duint image_id); - virtual void getImageParameterivCHROMIUM( - WebKit::WGC3Duint image_id, - WebKit::WGC3Denum pname, - WebKit::WGC3Dint* params); - virtual void* mapImageCHROMIUM( - WebKit::WGC3Duint image_id, - WebKit::WGC3Denum access); - virtual void unmapImageCHROMIUM(WebKit::WGC3Duint image_id); - - // When set, MakeCurrent() will fail after this many times. - void set_times_make_current_succeeds(int times) { - times_make_current_succeeds_ = times; - } - void set_times_bind_texture_succeeds(int times) { - times_bind_texture_succeeds_ = times; - } - void set_times_end_query_succeeds(int times) { - times_end_query_succeeds_ = times; - } - void set_times_gen_mailbox_succeeds(int times) { - times_gen_mailbox_succeeds_ = times; - } - - // When set, mapImageCHROMIUM and mapBufferCHROMIUM will return NULL after - // this many times. - void set_times_map_image_chromium_succeeds(int times) { - times_map_image_chromium_succeeds_ = times; - } - void set_times_map_buffer_chromium_succeeds(int times) { - times_map_buffer_chromium_succeeds_ = times; - } - - size_t NumTextures() const; - WebKit::WebGLId TextureAt(int i) const; - - size_t NumUsedTextures() const { return used_textures_.size(); } - bool UsedTexture(int texture) const { - return ContainsKey(used_textures_, texture); - } - void ResetUsedTextures() { used_textures_.clear(); } - - void set_support_swapbuffers_complete_callback(bool support) { - support_swapbuffers_complete_callback_ = support; - } - void set_have_extension_io_surface(bool have) { - have_extension_io_surface_ = have; - } - void set_have_extension_egl_image(bool have) { - have_extension_egl_image_ = have; - } - - // When this context is lost, all contexts in its share group are also lost. - void add_share_group_context(WebKit::WebGraphicsContext3D* context3d) { - shared_contexts_.push_back(context3d); - } - - void set_max_texture_size(int size) { max_texture_size_ = size; } - - static const WebKit::WebGLId kExternalTextureId; - virtual WebKit::WebGLId NextTextureId(); - - virtual WebKit::WebGLId NextBufferId(); - - virtual WebKit::WebGLId NextImageId(); - - void SetMemoryAllocation(WebKit::WebGraphicsMemoryAllocation allocation); - - protected: - struct Buffer { - Buffer(); - ~Buffer(); - - WebKit::WGC3Denum target; - scoped_ptr<uint8[]> pixels; - - private: - DISALLOW_COPY_AND_ASSIGN(Buffer); - }; - - struct Image { - Image(); - ~Image(); - - scoped_ptr<uint8[]> pixels; - - private: - DISALLOW_COPY_AND_ASSIGN(Image); - }; - - struct Namespace : public base::RefCountedThreadSafe<Namespace> { - Namespace(); - - // Protects all fields. - base::Lock lock; - unsigned next_buffer_id; - unsigned next_image_id; - unsigned next_texture_id; - std::vector<WebKit::WebGLId> textures; - ScopedPtrHashMap<unsigned, Buffer> buffers; - ScopedPtrHashMap<unsigned, Image> images; - - private: - friend class base::RefCountedThreadSafe<Namespace>; - ~Namespace(); - DISALLOW_COPY_AND_ASSIGN(Namespace); - }; - - TestWebGraphicsContext3D(); - TestWebGraphicsContext3D( - const WebKit::WebGraphicsContext3D::Attributes& attributes); - - void CallAllSyncPointCallbacks(); - void SwapBuffersComplete(); - void CreateNamespace(); - - unsigned context_id_; - Attributes attributes_; - bool support_swapbuffers_complete_callback_; - bool have_extension_io_surface_; - bool have_extension_egl_image_; - int times_make_current_succeeds_; - int times_bind_texture_succeeds_; - int times_end_query_succeeds_; - int times_gen_mailbox_succeeds_; - bool context_lost_; - int times_map_image_chromium_succeeds_; - int times_map_buffer_chromium_succeeds_; - WebGraphicsContextLostCallback* context_lost_callback_; - WebGraphicsSwapBuffersCompleteCallbackCHROMIUM* swap_buffers_callback_; - WebGraphicsMemoryAllocationChangedCallbackCHROMIUM* - memory_allocation_changed_callback_; - std::vector<WebGraphicsSyncPointCallback*> sync_point_callbacks_; - base::hash_set<WebKit::WebGLId> used_textures_; - std::vector<WebKit::WebGraphicsContext3D*> shared_contexts_; - int max_texture_size_; - int width_; - int height_; - - unsigned bound_buffer_; - - scoped_refptr<Namespace> namespace_; - static Namespace* shared_namespace_; - - base::WeakPtrFactory<TestWebGraphicsContext3D> weak_ptr_factory_; -}; - -} // namespace cc - -#endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ |