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

Side by Side Diff: cc/test/test_web_graphics_context_3d.h

Issue 14273026: cc: Make async readback path use async glRreadPixels. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: forlanding Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/pixel_test.cc ('k') | cc/test/test_web_graphics_context_3d.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/hash_tables.h" 11 #include "base/hash_tables.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "cc/base/scoped_ptr_hash_map.h"
14 #include "cc/debug/fake_web_graphics_context_3d.h" 15 #include "cc/debug/fake_web_graphics_context_3d.h"
15 #include "third_party/khronos/GLES2/gl2.h" 16 #include "third_party/khronos/GLES2/gl2.h"
16 17
17 namespace cc { 18 namespace cc {
18 19
19 class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { 20 class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D {
20 public: 21 public:
21 static scoped_ptr<TestWebGraphicsContext3D> Create() { 22 static scoped_ptr<TestWebGraphicsContext3D> Create() {
22 return make_scoped_ptr(new TestWebGraphicsContext3D()); 23 return make_scoped_ptr(new TestWebGraphicsContext3D());
23 } 24 }
24 static scoped_ptr<TestWebGraphicsContext3D> Create( 25 static scoped_ptr<TestWebGraphicsContext3D> Create(
25 const WebKit::WebGraphicsContext3D::Attributes& attributes) { 26 const WebKit::WebGraphicsContext3D::Attributes& attributes) {
26 return make_scoped_ptr(new TestWebGraphicsContext3D(attributes)); 27 return make_scoped_ptr(new TestWebGraphicsContext3D(attributes));
27 } 28 }
28 virtual ~TestWebGraphicsContext3D(); 29 virtual ~TestWebGraphicsContext3D();
29 30
30 virtual bool makeContextCurrent(); 31 virtual bool makeContextCurrent();
31 32
32 virtual int width(); 33 virtual int width();
33 virtual int height(); 34 virtual int height();
34 35
35 virtual void reshape(int width, int height); 36 virtual void reshape(int width, int height);
36 37
37 virtual bool isContextLost(); 38 virtual bool isContextLost();
38 virtual WebKit::WGC3Denum getGraphicsResetStatusARB(); 39 virtual WebKit::WGC3Denum getGraphicsResetStatusARB();
39 40
40 virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader); 41 virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader);
41 virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer);
42 virtual void bindFramebuffer( 42 virtual void bindFramebuffer(
43 WebKit::WGC3Denum target, WebKit::WebGLId framebuffer); 43 WebKit::WGC3Denum target, WebKit::WebGLId framebuffer);
44 virtual void bindRenderbuffer( 44 virtual void bindRenderbuffer(
45 WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer); 45 WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer);
46 virtual void bindTexture( 46 virtual void bindTexture(
47 WebKit::WGC3Denum target, 47 WebKit::WGC3Denum target,
48 WebKit::WebGLId texture_id); 48 WebKit::WebGLId texture_id);
49 49
50 virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target); 50 virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target);
51 51
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 const WebKit::WGC3Dbyte* mailbox) { } 98 const WebKit::WGC3Dbyte* mailbox) { }
99 virtual void consumeTextureCHROMIUM(WebKit::WGC3Denum target, 99 virtual void consumeTextureCHROMIUM(WebKit::WGC3Denum target,
100 const WebKit::WGC3Dbyte* mailbox) { } 100 const WebKit::WGC3Dbyte* mailbox) { }
101 101
102 virtual void setContextLostCallback( 102 virtual void setContextLostCallback(
103 WebGraphicsContextLostCallback* callback); 103 WebGraphicsContextLostCallback* callback);
104 104
105 virtual void loseContextCHROMIUM(WebKit::WGC3Denum current, 105 virtual void loseContextCHROMIUM(WebKit::WGC3Denum current,
106 WebKit::WGC3Denum other); 106 WebKit::WGC3Denum other);
107 107
108 // Takes ownership of the |callback|.
109 virtual void signalSyncPoint(unsigned sync_point,
110 WebGraphicsSyncPointCallback* callback);
111
112 virtual void prepareTexture();
113 virtual void finish();
114 virtual void flush();
115
116 virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer);
117 virtual void bufferData(WebKit::WGC3Denum target,
118 WebKit::WGC3Dsizeiptr size,
119 const void* data,
120 WebKit::WGC3Denum usage);
121 virtual void* mapBufferCHROMIUM(WebKit::WGC3Denum target,
122 WebKit::WGC3Denum access);
123 virtual WebKit::WGC3Dboolean unmapBufferCHROMIUM(WebKit::WGC3Denum target);
124
108 // When set, MakeCurrent() will fail after this many times. 125 // When set, MakeCurrent() will fail after this many times.
109 void set_times_make_current_succeeds(int times) { 126 void set_times_make_current_succeeds(int times) {
110 times_make_current_succeeds_ = times; 127 times_make_current_succeeds_ = times;
111 } 128 }
112 void set_times_bind_texture_succeeds(int times) { 129 void set_times_bind_texture_succeeds(int times) {
113 times_bind_texture_succeeds_ = times; 130 times_bind_texture_succeeds_ = times;
114 } 131 }
115 void set_times_end_query_succeeds(int times) { 132 void set_times_end_query_succeeds(int times) {
116 times_end_query_succeeds_ = times; 133 times_end_query_succeeds_ = times;
117 } 134 }
(...skipping 17 matching lines...) Expand all
135 // When this context is lost, all contexts in its share group are also lost. 152 // When this context is lost, all contexts in its share group are also lost.
136 void add_share_group_context(WebKit::WebGraphicsContext3D* context3d) { 153 void add_share_group_context(WebKit::WebGraphicsContext3D* context3d) {
137 shared_contexts_.push_back(context3d); 154 shared_contexts_.push_back(context3d);
138 } 155 }
139 156
140 void set_max_texture_size(int size) { max_texture_size_ = size; } 157 void set_max_texture_size(int size) { max_texture_size_ = size; }
141 158
142 static const WebKit::WebGLId kExternalTextureId; 159 static const WebKit::WebGLId kExternalTextureId;
143 virtual WebKit::WebGLId NextTextureId(); 160 virtual WebKit::WebGLId NextTextureId();
144 161
162 virtual WebKit::WebGLId NextBufferId();
163
145 protected: 164 protected:
146 TestWebGraphicsContext3D(); 165 TestWebGraphicsContext3D();
147 TestWebGraphicsContext3D( 166 TestWebGraphicsContext3D(
148 const WebKit::WebGraphicsContext3D::Attributes& attributes); 167 const WebKit::WebGraphicsContext3D::Attributes& attributes);
149 168
169 void CallAllSyncPointCallbacks();
170
150 unsigned context_id_; 171 unsigned context_id_;
172 unsigned next_buffer_id_;
151 unsigned next_texture_id_; 173 unsigned next_texture_id_;
152 Attributes attributes_; 174 Attributes attributes_;
153 bool have_extension_io_surface_; 175 bool have_extension_io_surface_;
154 bool have_extension_egl_image_; 176 bool have_extension_egl_image_;
155 int times_make_current_succeeds_; 177 int times_make_current_succeeds_;
156 int times_bind_texture_succeeds_; 178 int times_bind_texture_succeeds_;
157 int times_end_query_succeeds_; 179 int times_end_query_succeeds_;
158 bool context_lost_; 180 bool context_lost_;
159 WebGraphicsContextLostCallback* context_lost_callback_; 181 WebGraphicsContextLostCallback* context_lost_callback_;
182 std::vector<WebGraphicsSyncPointCallback*> sync_point_callbacks_;
160 std::vector<WebKit::WebGLId> textures_; 183 std::vector<WebKit::WebGLId> textures_;
161 base::hash_set<WebKit::WebGLId> used_textures_; 184 base::hash_set<WebKit::WebGLId> used_textures_;
162 std::vector<WebKit::WebGraphicsContext3D*> shared_contexts_; 185 std::vector<WebKit::WebGraphicsContext3D*> shared_contexts_;
163 int max_texture_size_; 186 int max_texture_size_;
164 int width_; 187 int width_;
165 int height_; 188 int height_;
189
190 struct Buffer {
191 Buffer();
192 ~Buffer();
193
194 WebKit::WGC3Denum target;
195 scoped_ptr<uint8[]> pixels;
196
197 private:
198 DISALLOW_COPY_AND_ASSIGN(Buffer);
199 };
200 ScopedPtrHashMap<unsigned, Buffer> buffers_;
201 unsigned bound_buffer_;
166 }; 202 };
167 203
168 } // namespace cc 204 } // namespace cc
169 205
170 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 206 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
OLDNEW
« no previous file with comments | « cc/test/pixel_test.cc ('k') | cc/test/test_web_graphics_context_3d.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698