summaryrefslogtreecommitdiffstats
path: root/cc/debug
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-27 23:45:15 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-27 23:45:15 +0000
commit8c4531e00eb9b6c313aa98e7663daee83bfad8f7 (patch)
tree3915f9c06e487eac6a4426796873865e1b4d93aa /cc/debug
parent1a93d8d91f2fb1e6228234941fed5835ca620b04 (diff)
downloadchromium_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.cc63
-rw-r--r--cc/debug/fake_web_graphics_context_3d.h22
-rw-r--r--cc/debug/test_web_graphics_context_3d.cc117
-rw-r--r--cc/debug/test_web_graphics_context_3d.h24
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(