Commit 696a818c by Alexis Hetu Committed by Alexis Hétu

Adding support for GL_DEPTH_STENCIL_ATTACHMENT

ES3 supports set/get for both stencil and depth attachments simultaneously though GL_DEPTH_STENCIL_ATTACHMENT, so support for it was added in FramebufferRenderbuffer and GetFramebufferAttachmentParameteriv. Change-Id: I09b077de1f31899a20baacbd651c65dfa9e7fc5d Reviewed-on: https://swiftshader-review.googlesource.com/3546Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 911307d7
...@@ -2231,6 +2231,14 @@ void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuff ...@@ -2231,6 +2231,14 @@ void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuff
case GL_STENCIL_ATTACHMENT: case GL_STENCIL_ATTACHMENT:
framebuffer->setStencilbuffer(GL_RENDERBUFFER, renderbuffer); framebuffer->setStencilbuffer(GL_RENDERBUFFER, renderbuffer);
break; break;
case GL_DEPTH_STENCIL_ATTACHMENT:
if(clientVersion >= 3)
{
framebuffer->setDepthbuffer(GL_RENDERBUFFER, renderbuffer);
framebuffer->setStencilbuffer(GL_RENDERBUFFER, renderbuffer);
break;
}
else return error(GL_INVALID_ENUM);
default: default:
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
...@@ -2981,6 +2989,18 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu ...@@ -2981,6 +2989,18 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
attachmentType = framebuffer->getStencilbufferType(); attachmentType = framebuffer->getStencilbufferType();
attachmentHandle = framebuffer->getStencilbufferName(); attachmentHandle = framebuffer->getStencilbufferName();
break; break;
case GL_DEPTH_STENCIL_ATTACHMENT:
if(clientVersion >= 3)
{
attachmentType = framebuffer->getDepthbufferType();
attachmentHandle = framebuffer->getDepthbufferName();
if(attachmentHandle != framebuffer->getStencilbufferName())
{
// Different attachments to DEPTH and STENCIL, query fails
return error(GL_INVALID_OPERATION);
}
}
else return error(GL_INVALID_ENUM);
default: default:
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment