Index: cc/test/test_web_graphics_context_3d.h |
diff --git a/cc/test/test_web_graphics_context_3d.h b/cc/test/test_web_graphics_context_3d.h |
index c7a92a5fc06bd970caa2b5e37b0c66a59cfa8940..26ccc5446d17f3f54c5480a78608df4f540a869b 100644 |
--- a/cc/test/test_web_graphics_context_3d.h |
+++ b/cc/test/test_web_graphics_context_3d.h |
@@ -11,6 +11,7 @@ |
#include "base/hash_tables.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/stl_util.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" |
@@ -38,7 +39,6 @@ class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { |
virtual WebKit::WGC3Denum getGraphicsResetStatusARB(); |
virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader); |
- virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer); |
virtual void bindFramebuffer( |
WebKit::WGC3Denum target, WebKit::WebGLId framebuffer); |
virtual void bindRenderbuffer( |
@@ -105,6 +105,23 @@ class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { |
virtual void loseContextCHROMIUM(WebKit::WGC3Denum current, |
WebKit::WGC3Denum other); |
+ // Takes ownership of the |callback|. |
+ virtual void signalSyncPoint(unsigned sync_point, |
+ WebGraphicsSyncPointCallback* 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); |
+ |
// When set, MakeCurrent() will fail after this many times. |
void set_times_make_current_succeeds(int times) { |
times_make_current_succeeds_ = times; |
@@ -142,12 +159,17 @@ class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { |
static const WebKit::WebGLId kExternalTextureId; |
virtual WebKit::WebGLId NextTextureId(); |
+ virtual WebKit::WebGLId NextBufferId(); |
+ |
protected: |
TestWebGraphicsContext3D(); |
TestWebGraphicsContext3D( |
const WebKit::WebGraphicsContext3D::Attributes& attributes); |
+ void CallAllSyncPointCallbacks(); |
+ |
unsigned context_id_; |
+ unsigned next_buffer_id_; |
unsigned next_texture_id_; |
Attributes attributes_; |
bool have_extension_io_surface_; |
@@ -157,12 +179,26 @@ class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { |
int times_end_query_succeeds_; |
bool context_lost_; |
WebGraphicsContextLostCallback* context_lost_callback_; |
+ std::vector<WebGraphicsSyncPointCallback*> sync_point_callbacks_; |
std::vector<WebKit::WebGLId> textures_; |
base::hash_set<WebKit::WebGLId> used_textures_; |
std::vector<WebKit::WebGraphicsContext3D*> shared_contexts_; |
int max_texture_size_; |
int width_; |
int height_; |
+ |
+ struct Buffer { |
+ Buffer(); |
+ ~Buffer(); |
+ |
+ WebKit::WGC3Denum target; |
+ scoped_ptr<uint8[]> pixels; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(Buffer); |
+ }; |
+ ScopedPtrHashMap<unsigned, Buffer> buffers_; |
+ unsigned bound_buffer_; |
}; |
} // namespace cc |