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); }
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); }
Socket::~Socket() { if (this->impl) { getImpl().close(); } clearImpl(); }
void PCFilter::PtrMap::clear() { if (m_root) { auto current = (PtrMapNode*)&m_root; current->clearImpl(PTRMAP_PTR_SIZE); free(m_root); m_root = nullptr; } }
void Socket::setImpl(SocketImpl *impl) { if (this->impl) { getImpl().close(); clearImpl(); } if (!impl) { this->impl = new SocketImpl(); } else { this->impl = impl; } }
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); }
angle::Result FramebufferD3D::clear(const gl::Context *context, GLbitfield mask) { ClearParameters clearParams = GetClearParameters(context->getState(), mask); return clearImpl(context, clearParams); }