Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: Source/core/html/canvas/WebGLDrawBuffers.cpp

Issue 24096029: Moved the majority of WebGL functionality into WebGLRenderingContextBase (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 13 matching lines...) Expand all
24 */ 24 */
25 25
26 #include "config.h" 26 #include "config.h"
27 27
28 #include "core/html/canvas/WebGLDrawBuffers.h" 28 #include "core/html/canvas/WebGLDrawBuffers.h"
29 29
30 #include "core/platform/graphics/Extensions3D.h" 30 #include "core/platform/graphics/Extensions3D.h"
31 31
32 namespace WebCore { 32 namespace WebCore {
33 33
34 WebGLDrawBuffers::WebGLDrawBuffers(WebGLRenderingContext* context) 34 WebGLDrawBuffers::WebGLDrawBuffers(WebGLRenderingContextBase* context)
35 : WebGLExtension(context) 35 : WebGLExtension(context)
36 { 36 {
37 ScriptWrappable::init(this); 37 ScriptWrappable::init(this);
38 context->graphicsContext3D()->getExtensions()->ensureEnabled("GL_EXT_draw_bu ffers"); 38 context->graphicsContext3D()->getExtensions()->ensureEnabled("GL_EXT_draw_bu ffers");
39 } 39 }
40 40
41 WebGLDrawBuffers::~WebGLDrawBuffers() 41 WebGLDrawBuffers::~WebGLDrawBuffers()
42 { 42 {
43 } 43 }
44 44
45 WebGLExtension::ExtensionName WebGLDrawBuffers::getName() const 45 WebGLExtension::ExtensionName WebGLDrawBuffers::getName() const
46 { 46 {
47 return WebGLExtension::WebGLDrawBuffersName; 47 return WebGLExtension::WebGLDrawBuffersName;
48 } 48 }
49 49
50 PassRefPtr<WebGLDrawBuffers> WebGLDrawBuffers::create(WebGLRenderingContext* con text) 50 PassRefPtr<WebGLDrawBuffers> WebGLDrawBuffers::create(WebGLRenderingContextBase* context)
51 { 51 {
52 return adoptRef(new WebGLDrawBuffers(context)); 52 return adoptRef(new WebGLDrawBuffers(context));
53 } 53 }
54 54
55 // static 55 // static
56 bool WebGLDrawBuffers::supported(WebGLRenderingContext* context) 56 bool WebGLDrawBuffers::supported(WebGLRenderingContextBase* context)
57 { 57 {
58 Extensions3D* extensions = context->graphicsContext3D()->getExtensions(); 58 Extensions3D* extensions = context->graphicsContext3D()->getExtensions();
59 return (extensions->supports("GL_EXT_draw_buffers") 59 return (extensions->supports("GL_EXT_draw_buffers")
60 && satisfiesWebGLRequirements(context)); 60 && satisfiesWebGLRequirements(context));
61 } 61 }
62 62
63 const char* WebGLDrawBuffers::getExtensionName() 63 const char* WebGLDrawBuffers::getExtensionName()
64 { 64 {
65 return "WEBGL_draw_buffers"; 65 return "WEBGL_draw_buffers";
66 } 66 }
(...skipping 26 matching lines...) Expand all
93 if (bufs[i] != GraphicsContext3D::NONE && bufs[i] != static_cast<GC3 Denum>(Extensions3D::COLOR_ATTACHMENT0_EXT + i)) { 93 if (bufs[i] != GraphicsContext3D::NONE && bufs[i] != static_cast<GC3 Denum>(Extensions3D::COLOR_ATTACHMENT0_EXT + i)) {
94 m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATIO N, "drawBuffersWEBGL", "COLOR_ATTACHMENTi_EXT or NONE"); 94 m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATIO N, "drawBuffersWEBGL", "COLOR_ATTACHMENTi_EXT or NONE");
95 return; 95 return;
96 } 96 }
97 } 97 }
98 m_context->m_framebufferBinding->drawBuffers(buffers); 98 m_context->m_framebufferBinding->drawBuffers(buffers);
99 } 99 }
100 } 100 }
101 101
102 // static 102 // static
103 bool WebGLDrawBuffers::satisfiesWebGLRequirements(WebGLRenderingContext* webglCo ntext) 103 bool WebGLDrawBuffers::satisfiesWebGLRequirements(WebGLRenderingContextBase* web glContext)
104 { 104 {
105 GraphicsContext3D* context = webglContext->graphicsContext3D(); 105 GraphicsContext3D* context = webglContext->graphicsContext3D();
106 106
107 // This is called after we make sure GL_EXT_draw_buffers is supported. 107 // This is called after we make sure GL_EXT_draw_buffers is supported.
108 GC3Dint maxDrawBuffers = 0; 108 GC3Dint maxDrawBuffers = 0;
109 GC3Dint maxColorAttachments = 0; 109 GC3Dint maxColorAttachments = 0;
110 context->getIntegerv(Extensions3D::MAX_DRAW_BUFFERS_EXT, &maxDrawBuffers); 110 context->getIntegerv(Extensions3D::MAX_DRAW_BUFFERS_EXT, &maxDrawBuffers);
111 context->getIntegerv(Extensions3D::MAX_COLOR_ATTACHMENTS_EXT, &maxColorAttac hments); 111 context->getIntegerv(Extensions3D::MAX_COLOR_ATTACHMENTS_EXT, &maxColorAttac hments);
112 if (maxDrawBuffers < 4 || maxColorAttachments < 4) 112 if (maxDrawBuffers < 4 || maxColorAttachments < 4)
113 return false; 113 return false;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 if (supportsDepth) 173 if (supportsDepth)
174 context->deleteTexture(depth); 174 context->deleteTexture(depth);
175 if (supportsDepthStencil) 175 if (supportsDepthStencil)
176 context->deleteTexture(depthStencil); 176 context->deleteTexture(depthStencil);
177 for (size_t i = 0; i < colors.size(); ++i) 177 for (size_t i = 0; i < colors.size(); ++i)
178 context->deleteTexture(colors[i]); 178 context->deleteTexture(colors[i]);
179 return ok; 179 return ok;
180 } 180 }
181 181
182 } // namespace WebCore 182 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698