angle::Result FramebufferD3D::clearBufferiv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLint *values) { // glClearBufferiv can be called to clear the color buffer or stencil buffer ClearParameters clearParams = GetClearParameters(context->getState(), 0); if (buffer == GL_COLOR) { for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++) { clearParams.clearColor[i] = (drawbuffer == static_cast<int>(i)); } clearParams.colorI = gl::ColorI(values[0], values[1], values[2], values[3]); clearParams.colorType = GL_INT; } if (buffer == GL_STENCIL) { clearParams.clearStencil = true; clearParams.stencilValue = values[0]; } return clearImpl(context, clearParams); }
angle::Result FramebufferD3D::clearBufferfv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLfloat *values) { // glClearBufferfv can be called to clear the color buffer or depth buffer ClearParameters clearParams = GetClearParameters(context->getState(), 0); if (buffer == GL_COLOR) { for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++) { clearParams.clearColor[i] = (drawbuffer == static_cast<int>(i)); } clearParams.colorF = gl::ColorF(values[0], values[1], values[2], values[3]); clearParams.colorType = GL_FLOAT; } if (buffer == GL_DEPTH) { clearParams.clearDepth = true; clearParams.depthValue = values[0]; } return clearImpl(context, clearParams); }
gl::Error FramebufferD3D::clearBufferfi(const gl::State &state, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { // glClearBufferfi can only be called to clear a depth stencil buffer ClearParameters clearParams = GetClearParameters(state, 0); clearParams.clearDepth = true; clearParams.depthClearValue = depth; clearParams.clearStencil = true; clearParams.stencilClearValue = stencil; return clear(state, clearParams); }
gl::Error FramebufferD3D::clearBufferuiv(const gl::State &state, GLenum buffer, GLint drawbuffer, const GLuint *values) { // glClearBufferuiv can only be called to clear a color buffer ClearParameters clearParams = GetClearParameters(state, 0); for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++) { clearParams.clearColor[i] = (drawbuffer == static_cast<int>(i)); } clearParams.colorUIClearValue = gl::ColorUI(values[0], values[1], values[2], values[3]); clearParams.colorClearType = GL_UNSIGNED_INT; return clear(state, clearParams); }
angle::Result FramebufferD3D::clearBufferfi(const gl::Context *context, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { // glClearBufferfi can only be called to clear a depth stencil buffer ClearParameters clearParams = GetClearParameters(context->getState(), 0); clearParams.clearDepth = true; clearParams.depthValue = depth; clearParams.clearStencil = true; clearParams.stencilValue = stencil; return clearImpl(context, clearParams); }
angle::Result FramebufferD3D::clearBufferuiv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLuint *values) { // glClearBufferuiv can only be called to clear a color buffer ClearParameters clearParams = GetClearParameters(context->getState(), 0); for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++) { clearParams.clearColor[i] = (drawbuffer == static_cast<int>(i)); } clearParams.colorUI = gl::ColorUI(values[0], values[1], values[2], values[3]); clearParams.colorType = GL_UNSIGNED_INT; return clearImpl(context, clearParams); }
gl::Error FramebufferD3D::clearBufferiv(const gl::State &state, GLenum buffer, GLint drawbuffer, const GLint *values) { // glClearBufferiv can be called to clear the color buffer or stencil buffer ClearParameters clearParams = GetClearParameters(state, 0); if (buffer == GL_COLOR) { for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++) { clearParams.clearColor[i] = (drawbuffer == static_cast<int>(i)); } clearParams.colorIClearValue = gl::ColorI(values[0], values[1], values[2], values[3]); clearParams.colorClearType = GL_INT; } if (buffer == GL_STENCIL) { clearParams.clearStencil = true; clearParams.stencilClearValue = values[1]; } return clear(state, clearParams); }
angle::Result FramebufferD3D::clear(const gl::Context *context, GLbitfield mask) { ClearParameters clearParams = GetClearParameters(context->getState(), mask); return clearImpl(context, clearParams); }
gl::Error FramebufferD3D::clear(const gl::Data &data, GLbitfield mask) { const gl::State &state = *data.state; ClearParameters clearParams = GetClearParameters(state, mask); return clear(state, clearParams); }