Home | History | Annotate | Download | only in canvas

Lines Matching refs:attachment

56         virtual void attach(blink::WebGraphicsContext3D*, GLenum attachment) OVERRIDE;
57 virtual void unattach(blink::WebGraphicsContext3D*, GLenum attachment) OVERRIDE;
115 void WebGLRenderbufferAttachment::attach(blink::WebGraphicsContext3D* context, GLenum attachment)
118 if (attachment == GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL && m_renderbuffer->emulatedStencilBuffer()) {
122 context->framebufferRenderbuffer(GL_FRAMEBUFFER, attachment, GL_RENDERBUFFER, object);
126 void WebGLRenderbufferAttachment::unattach(blink::WebGraphicsContext3D* context, GLenum attachment)
128 if (attachment == GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL) {
132 context->framebufferRenderbuffer(GL_FRAMEBUFFER, attachment, GL_RENDERBUFFER, 0);
156 virtual void attach(blink::WebGraphicsContext3D*, GLenum attachment) OVERRIDE;
157 virtual void unattach(blink::WebGraphicsContext3D*, GLenum attachment) OVERRIDE;
213 void WebGLTextureAttachment::attach(blink::WebGraphicsContext3D* context, GLenum attachment)
216 context->framebufferTexture2D(GL_FRAMEBUFFER, attachment, m_target, object, m_level);
219 void WebGLTextureAttachment::unattach(blink::WebGraphicsContext3D* context, GLenum attachment)
221 if (attachment == GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL) {
225 context->framebufferTexture2D(GL_FRAMEBUFFER, attachment, m_target, 0, m_level);
274 void WebGLFramebuffer::setAttachmentForBoundFramebuffer(GLenum attachment, GLenum texTarget, WebGLTexture* texture, GLint level)
277 removeAttachmentFromBoundFramebuffer(attachment);
281 m_attachments.add(attachment, WebGLTextureAttachment::create(texture, texTarget, level));
287 void WebGLFramebuffer::setAttachmentForBoundFramebuffer(GLenum attachment, WebGLRenderbuffer* renderbuffer)
290 removeAttachmentFromBoundFramebuffer(attachment);
294 m_attachments.add(attachment, WebGLRenderbufferAttachment::create(renderbuffer));
300 void WebGLFramebuffer::attach(GLenum attachment, GLenum attachmentPoint)
303 WebGLAttachment* attachmentObject = getAttachment(attachment);
308 WebGLSharedObject* WebGLFramebuffer::getAttachmentObject(GLenum attachment) const
312 WebGLAttachment* attachmentObject = getAttachment(attachment);
316 bool WebGLFramebuffer::isAttachmentComplete(WebGLAttachment* attachedObject, GLenum attachment, const char** reason) const
325 if (attachment == GL_DEPTH_ATTACHMENT) {
339 } else if (attachment == GL_STENCIL_ATTACHMENT) {
348 } else if (attachment == GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL) {
362 } else if (attachment == GL_COLOR_ATTACHMENT0
363 || (context()->extensionEnabled(WebGLDrawBuffersName) && attachment > GL_COLOR_ATTACHMENT0
364 && attachment < static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + context()->maxColorAttachments()))) {
391 *reason = "unknown framebuffer attachment point";
396 *reason = "attachment has a 0 dimension";
402 WebGLFramebuffer::WebGLAttachment* WebGLFramebuffer::getAttachment(GLenum attachment) const
404 const AttachmentMap::const_iterator it = m_attachments.find(attachment);
408 void WebGLFramebuffer::removeAttachmentFromBoundFramebuffer(GLenum attachment)
414 WebGLAttachment* attachmentObject = getAttachment(attachment);
417 m_attachments.remove(attachment);
419 switch (attachment) {
434 attachment)
439 if (!attachment)
447 if (attachmentObject->isSharedObject(attachment)) {
462 WebGLAttachment* attachment = getAttachment(GL_COLOR_ATTACHMENT0);
463 if (!attachment)
465 return attachment->format();
476 WebGLAttachment* attachment = it->value.get();
477 if (!isAttachmentComplete(attachment, it->key, reason))
479 if (!attachment->valid()) {
480 *reason = "attachment is not valid";
483 if (!attachment->format()) {
484 *reason = "attachment is an unsupported format";
499 width = attachment->width();
500 height = attachment->height();
502 if (width != attachment->width() || height != attachment->height()) {
534 WebGLAttachment* attachment = getAttachment(GL_STENCIL_ATTACHMENT);
535 if (!attachment)
536 attachment = getAttachment(GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL);
537 return attachment && attachment->valid();