aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/gpu/gl/debug/DebugGLTestContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gpu/gl/debug/DebugGLTestContext.cpp')
-rw-r--r--tools/gpu/gl/debug/DebugGLTestContext.cpp79
1 files changed, 77 insertions, 2 deletions
diff --git a/tools/gpu/gl/debug/DebugGLTestContext.cpp b/tools/gpu/gl/debug/DebugGLTestContext.cpp
index 022d56a452..cf8a9e4240 100644
--- a/tools/gpu/gl/debug/DebugGLTestContext.cpp
+++ b/tools/gpu/gl/debug/DebugGLTestContext.cpp
@@ -373,6 +373,34 @@ public:
}
}
+ GrGLvoid renderbufferStorage(GrGLenum target, GrGLenum internalformat, GrGLsizei width,
+ GrGLsizei height) override {
+ GrAlwaysAssert(GR_GL_RENDERBUFFER == target);
+ GrRenderBufferObj* renderBuffer = this->getRenderBuffer();
+ GrAlwaysAssert(renderBuffer);
+ renderBuffer->setNumSamples(1);
+ }
+
+ GrGLvoid renderbufferStorageMultisample(GrGLenum target, GrGLsizei samples,
+ GrGLenum internalformat, GrGLsizei width,
+ GrGLsizei height) override {
+ GrAlwaysAssert(GR_GL_RENDERBUFFER == target);
+ GrRenderBufferObj* renderBuffer = this->getRenderBuffer();
+ GrAlwaysAssert(renderBuffer);
+ renderBuffer->setNumSamples(samples);
+ }
+
+ GrGLvoid namedRenderbufferStorage(GrGLuint renderbuffer, GrGLenum GrGLinternalformat,
+ GrGLsizei width, GrGLsizei height) override {
+ SK_ABORT("Not implemented");
+ }
+
+ GrGLvoid namedRenderbufferStorageMultisample(GrGLuint renderbuffer, GrGLsizei samples,
+ GrGLenum GrGLinternalformat, GrGLsizei width,
+ GrGLsizei height) override {
+ SK_ABORT("Not implemented");
+ }
+
GrGLvoid framebufferRenderbuffer(GrGLenum target,
GrGLenum attachment,
GrGLenum renderbuffertarget,
@@ -410,6 +438,12 @@ public:
}
+ GrGLvoid namedFramebufferRenderbuffer(GrGLuint framebuffer, GrGLenum attachment,
+ GrGLenum renderbuffertarget,
+ GrGLuint renderbuffer) override {
+ SK_ABORT("Not implemented");
+ }
+
////////////////////////////////////////////////////////////////////////////////
GrGLvoid framebufferTexture2D(GrGLenum target, GrGLenum attachment, GrGLenum textarget,
GrGLuint textureID, GrGLint level) override {
@@ -450,6 +484,30 @@ public:
};
}
+ GrGLvoid framebufferTexture2DMultisample(GrGLenum target, GrGLenum attachment,
+ GrGLenum textarget, GrGLuint texture, GrGLint level,
+ GrGLsizei samples) override {
+ SK_ABORT("Not implemented");
+ }
+
+ GrGLvoid namedFramebufferTexture1D(GrGLuint framebuffer, GrGLenum attachment,
+ GrGLenum textarget, GrGLuint texture,
+ GrGLint level) override {
+ SK_ABORT("Not implemented");
+ }
+
+ GrGLvoid namedFramebufferTexture2D(GrGLuint framebuffer, GrGLenum attachment,
+ GrGLenum textarget, GrGLuint texture,
+ GrGLint level) override {
+ SK_ABORT("Not implemented");
+ }
+
+ GrGLvoid namedFramebufferTexture3D(GrGLuint framebuffer, GrGLenum attachment,
+ GrGLenum textarget, GrGLuint texture, GrGLint level,
+ GrGLint zoffset) override {
+ SK_ABORT("Not implemented");
+ }
+
GrGLuint createProgram() override {
GrProgramObj *program = CREATE(GrProgramObj, kProgram_ObjTypes);
@@ -530,9 +588,26 @@ public:
case GR_GL_STENCIL_BITS:
*params = 8;
break;
- case GR_GL_SAMPLES:
- *params = 1;
+ case GR_GL_SAMPLES: {
+ GrFrameBufferObj* framebuffer = this->getFrameBuffer();
+ GrAlwaysAssert(framebuffer);
+ int numSamples = 0;
+
+ if (GrFBBindableObj* stencil = framebuffer->getStencil()) {
+ numSamples = stencil->numSamples();
+ }
+ if (GrFBBindableObj* depth = framebuffer->getDepth()) {
+ GrAlwaysAssert(!numSamples || numSamples == depth->numSamples());
+ numSamples = depth->numSamples();
+ }
+ if (GrFBBindableObj* color = framebuffer->getColor()) {
+ GrAlwaysAssert(!numSamples || numSamples == color->numSamples());
+ numSamples = color->numSamples();
+ }
+ GrAlwaysAssert(numSamples);
+ *params = numSamples;
break;
+ }
case GR_GL_FRAMEBUFFER_BINDING:
*params = 0;
break;