diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-27 23:45:15 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-27 23:45:15 +0000 |
commit | 8c4531e00eb9b6c313aa98e7663daee83bfad8f7 (patch) | |
tree | 3915f9c06e487eac6a4426796873865e1b4d93aa /cc/debug | |
parent | 1a93d8d91f2fb1e6228234941fed5835ca620b04 (diff) | |
download | chromium_src-8c4531e00eb9b6c313aa98e7663daee83bfad8f7.zip chromium_src-8c4531e00eb9b6c313aa98e7663daee83bfad8f7.tar.gz chromium_src-8c4531e00eb9b6c313aa98e7663daee83bfad8f7.tar.bz2 |
Add array based versions of GL object creation/deletion.
BUG=309455
Review URL: https://codereview.chromium.org/39033003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231273 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug')
-rw-r--r-- | cc/debug/fake_web_graphics_context_3d.cc | 63 | ||||
-rw-r--r-- | cc/debug/fake_web_graphics_context_3d.h | 22 | ||||
-rw-r--r-- | cc/debug/test_web_graphics_context_3d.cc | 117 | ||||
-rw-r--r-- | cc/debug/test_web_graphics_context_3d.h | 24 |
4 files changed, 173 insertions, 53 deletions
diff --git a/cc/debug/fake_web_graphics_context_3d.cc b/cc/debug/fake_web_graphics_context_3d.cc index 25157bf..eab653b 100644 --- a/cc/debug/fake_web_graphics_context_3d.cc +++ b/cc/debug/fake_web_graphics_context_3d.cc @@ -9,6 +9,7 @@ using WebKit::WGC3Dboolean; using WebKit::WGC3Denum; +using WebKit::WGC3Dsizei; using WebKit::WebGLId; using WebKit::WebGraphicsContext3D; @@ -234,46 +235,82 @@ WGC3Dboolean FakeWebGraphicsContext3D::isTexture( return false; } -WebGLId FakeWebGraphicsContext3D::createBuffer() { - return 1; +void FakeWebGraphicsContext3D::genBuffers(WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = 1; } -void FakeWebGraphicsContext3D::deleteBuffer(WebKit::WebGLId id) { +void FakeWebGraphicsContext3D::genFramebuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = 1; } -WebGLId FakeWebGraphicsContext3D::createFramebuffer() { - return 1; +void FakeWebGraphicsContext3D::genRenderbuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = 1; } -void FakeWebGraphicsContext3D::deleteFramebuffer(WebKit::WebGLId id) { +void FakeWebGraphicsContext3D::genTextures(WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = 1; } -WebGLId FakeWebGraphicsContext3D::createProgram() { +void FakeWebGraphicsContext3D::deleteBuffers(WGC3Dsizei count, WebGLId* ids) { +} + +void FakeWebGraphicsContext3D::deleteFramebuffers( + WGC3Dsizei count, WebGLId* ids) { +} + +void FakeWebGraphicsContext3D::deleteRenderbuffers( + WGC3Dsizei count, WebGLId* ids) { +} + +void FakeWebGraphicsContext3D::deleteTextures(WGC3Dsizei count, WebGLId* ids) { +} + +WebGLId FakeWebGraphicsContext3D::createBuffer() { return 1; } -void FakeWebGraphicsContext3D::deleteProgram(WebKit::WebGLId id) { +WebGLId FakeWebGraphicsContext3D::createFramebuffer() { + return 1; } WebGLId FakeWebGraphicsContext3D::createRenderbuffer() { return 1; } +WebGLId FakeWebGraphicsContext3D::createTexture() { + return 1; +} + +void FakeWebGraphicsContext3D::deleteBuffer(WebKit::WebGLId id) { +} + +void FakeWebGraphicsContext3D::deleteFramebuffer(WebKit::WebGLId id) { +} + void FakeWebGraphicsContext3D::deleteRenderbuffer(WebKit::WebGLId id) { } -WebGLId FakeWebGraphicsContext3D::createShader(WGC3Denum) { - return 1; +void FakeWebGraphicsContext3D::deleteTexture(WebGLId texture_id) { } -void FakeWebGraphicsContext3D::deleteShader(WebKit::WebGLId id) { +WebGLId FakeWebGraphicsContext3D::createProgram() { + return 1; } -WebGLId FakeWebGraphicsContext3D::createTexture() { +WebGLId FakeWebGraphicsContext3D::createShader(WGC3Denum) { return 1; } -void FakeWebGraphicsContext3D::deleteTexture(WebGLId texture_id) { +void FakeWebGraphicsContext3D::deleteProgram(WebKit::WebGLId id) { +} + +void FakeWebGraphicsContext3D::deleteShader(WebKit::WebGLId id) { } void FakeWebGraphicsContext3D::attachShader(WebGLId program, WebGLId shader) { diff --git a/cc/debug/fake_web_graphics_context_3d.h b/cc/debug/fake_web_graphics_context_3d.h index 1bd3647..f923f714 100644 --- a/cc/debug/fake_web_graphics_context_3d.h +++ b/cc/debug/fake_web_graphics_context_3d.h @@ -530,19 +530,33 @@ class CC_EXPORT FakeWebGraphicsContext3D WebKit::WGC3Dsizei width, WebKit::WGC3Dsizei height) {} + virtual void genBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genFramebuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genRenderbuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + + virtual void deleteBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteFramebuffers( + WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteRenderbuffers( + WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + 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 deleteTexture(WebKit::WebGLId id); + + virtual WebKit::WebGLId createProgram(); + virtual WebKit::WebGLId createShader(WebKit::WGC3Denum); + + virtual void deleteProgram(WebKit::WebGLId id); virtual void deleteShader(WebKit::WebGLId id); - virtual void deleteTexture(WebKit::WebGLId texture_id); virtual void texStorage2DEXT( WebKit::WGC3Denum target, diff --git a/cc/debug/test_web_graphics_context_3d.cc b/cc/debug/test_web_graphics_context_3d.cc index 22f7602..74a6abc 100644 --- a/cc/debug/test_web_graphics_context_3d.cc +++ b/cc/debug/test_web_graphics_context_3d.cc @@ -188,56 +188,109 @@ WGC3Dboolean TestWebGraphicsContext3D::isTexture( return false; } -WebGLId TestWebGraphicsContext3D::createBuffer() { - return NextBufferId(); +void TestWebGraphicsContext3D::genBuffers(WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = NextBufferId(); } -void TestWebGraphicsContext3D::deleteBuffer(WebGLId id) { +void TestWebGraphicsContext3D::genFramebuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = kFramebufferId | context_id_ << 16; +} + +void TestWebGraphicsContext3D::genRenderbuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + ids[i] = kRenderbufferId | context_id_ << 16; +} + +void TestWebGraphicsContext3D::genTextures(WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) { + ids[i] = NextTextureId(); + DCHECK_NE(ids[i], kExternalTextureId); + } base::AutoLock lock(namespace_->lock); - unsigned context_id = id >> 17; - unsigned buffer_id = id & 0x1ffff; - DCHECK(buffer_id && buffer_id < namespace_->next_buffer_id); - DCHECK_EQ(context_id, context_id_); + for (int i = 0; i < count; ++i) + namespace_->textures.Append(ids[i], new TestTexture()); } -WebGLId TestWebGraphicsContext3D::createFramebuffer() { - return kFramebufferId | context_id_ << 16; +void TestWebGraphicsContext3D::deleteBuffers(WGC3Dsizei count, WebGLId* ids) { + base::AutoLock lock(namespace_->lock); + for (int i = 0; i < count; ++i) { + unsigned context_id = ids[i] >> 17; + unsigned buffer_id = ids[i] & 0x1ffff; + DCHECK(buffer_id && buffer_id < namespace_->next_buffer_id); + DCHECK_EQ(context_id, context_id_); + } } -void TestWebGraphicsContext3D::deleteFramebuffer(WebGLId id) { - DCHECK_EQ(kFramebufferId | context_id_ << 16, id); +void TestWebGraphicsContext3D::deleteFramebuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + DCHECK_EQ(kFramebufferId | context_id_ << 16, ids[i]); } -WebGLId TestWebGraphicsContext3D::createProgram() { - return kProgramId | context_id_ << 16; +void TestWebGraphicsContext3D::deleteRenderbuffers( + WGC3Dsizei count, WebGLId* ids) { + for (int i = 0; i < count; ++i) + DCHECK_EQ(kRenderbufferId | context_id_ << 16, ids[i]); } -void TestWebGraphicsContext3D::deleteProgram(WebGLId id) { - DCHECK_EQ(kProgramId | context_id_ << 16, id); +void TestWebGraphicsContext3D::deleteTextures(WGC3Dsizei count, WebGLId* ids) { + base::AutoLock lock(namespace_->lock); + for (int i = 0; i < count; ++i) { + namespace_->textures.Remove(ids[i]); + texture_targets_.UnbindTexture(ids[i]); + } +} + +WebGLId TestWebGraphicsContext3D::createBuffer() { + WebGLId id; + genBuffers(1, &id); + return id; +} + +WebGLId TestWebGraphicsContext3D::createFramebuffer() { + WebGLId id; + genFramebuffers(1, &id); + return id; } WebGLId TestWebGraphicsContext3D::createRenderbuffer() { - return kRenderbufferId | context_id_ << 16; + WebGLId id; + genRenderbuffers(1, &id); + return id; +} + +WebGLId TestWebGraphicsContext3D::createTexture() { + WebGLId id; + genTextures(1, &id); + return id; +} + +void TestWebGraphicsContext3D::deleteBuffer(WebGLId id) { + deleteBuffers(1, &id); +} + +void TestWebGraphicsContext3D::deleteFramebuffer(WebGLId id) { + deleteFramebuffers(1, &id); } void TestWebGraphicsContext3D::deleteRenderbuffer(WebGLId id) { - DCHECK_EQ(kRenderbufferId | context_id_ << 16, id); + deleteRenderbuffers(1, &id); } -WebGLId TestWebGraphicsContext3D::createShader(WGC3Denum) { - return kShaderId | context_id_ << 16; +void TestWebGraphicsContext3D::deleteTexture(WebGLId id) { + deleteTextures(1, &id); } -void TestWebGraphicsContext3D::deleteShader(WebGLId id) { - DCHECK_EQ(kShaderId | context_id_ << 16, id); +WebGLId TestWebGraphicsContext3D::createProgram() { + return kProgramId | context_id_ << 16; } -WebGLId TestWebGraphicsContext3D::createTexture() { - WebGLId texture_id = NextTextureId(); - DCHECK_NE(texture_id, kExternalTextureId); - base::AutoLock lock(namespace_->lock); - namespace_->textures.Append(texture_id, new TestTexture()); - return texture_id; +WebGLId TestWebGraphicsContext3D::createShader(WGC3Denum) { + return kShaderId | context_id_ << 16; } WebGLId TestWebGraphicsContext3D::createExternalTexture() { @@ -246,10 +299,12 @@ WebGLId TestWebGraphicsContext3D::createExternalTexture() { return kExternalTextureId; } -void TestWebGraphicsContext3D::deleteTexture(WebGLId texture_id) { - base::AutoLock lock(namespace_->lock); - namespace_->textures.Remove(texture_id); - texture_targets_.UnbindTexture(texture_id); +void TestWebGraphicsContext3D::deleteProgram(WebGLId id) { + DCHECK_EQ(kProgramId | context_id_ << 16, id); +} + +void TestWebGraphicsContext3D::deleteShader(WebGLId id) { + DCHECK_EQ(kShaderId | context_id_ << 16, id); } void TestWebGraphicsContext3D::attachShader(WebGLId program, WebGLId shader) { diff --git a/cc/debug/test_web_graphics_context_3d.h b/cc/debug/test_web_graphics_context_3d.h index 7da4d36..b2dac2d 100644 --- a/cc/debug/test_web_graphics_context_3d.h +++ b/cc/debug/test_web_graphics_context_3d.h @@ -70,20 +70,34 @@ class CC_EXPORT TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { virtual void useProgram(WebKit::WebGLId program); + virtual void genBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genFramebuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genRenderbuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void genTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + + virtual void deleteBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteFramebuffers( + WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteRenderbuffers( + WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + virtual void deleteTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids); + 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 WebKit::WebGLId createExternalTexture(); 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 deleteTexture(WebKit::WebGLId id); + + virtual WebKit::WebGLId createProgram(); + virtual WebKit::WebGLId createShader(WebKit::WGC3Denum); + virtual WebKit::WebGLId createExternalTexture(); + + virtual void deleteProgram(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( |