Index: Source/core/html/canvas/WebGLRenderingContext.cpp |
diff --git a/Source/core/html/canvas/WebGLRenderingContext.cpp b/Source/core/html/canvas/WebGLRenderingContext.cpp |
index c071fad626e342033d7202fdd3c7c7bc805585f5..200dabb94acd0ea0fa82263972e808c8aee9ab6c 100644 |
--- a/Source/core/html/canvas/WebGLRenderingContext.cpp |
+++ b/Source/core/html/canvas/WebGLRenderingContext.cpp |
@@ -29,6 +29,7 @@ |
#include "core/frame/LocalFrame.h" |
#include "core/html/canvas/ANGLEInstancedArrays.h" |
#include "core/html/canvas/CHROMIUMSubscribeUniform.h" |
+#include "core/html/canvas/ContextAttributeHelpers.h" |
#include "core/html/canvas/EXTBlendMinMax.h" |
#include "core/html/canvas/EXTFragDepth.h" |
#include "core/html/canvas/EXTShaderTextureLOD.h" |
@@ -45,7 +46,6 @@ |
#include "core/html/canvas/WebGLCompressedTextureETC1.h" |
#include "core/html/canvas/WebGLCompressedTexturePVRTC.h" |
#include "core/html/canvas/WebGLCompressedTextureS3TC.h" |
-#include "core/html/canvas/WebGLContextAttributes.h" |
#include "core/html/canvas/WebGLContextEvent.h" |
#include "core/html/canvas/WebGLDebugRendererInfo.h" |
#include "core/html/canvas/WebGLDebugShaders.h" |
@@ -64,7 +64,7 @@ namespace blink { |
static bool shouldFailContextCreationForTesting = false; |
-PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTMLCanvasElement* canvas, WebGLContextAttributes* attrs) |
+PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTMLCanvasElement* canvas, const CanvasContextCreationAttributes& attrs) |
{ |
Document& document = canvas->document(); |
LocalFrame* frame = document.frame(); |
@@ -81,15 +81,10 @@ PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTML |
return nullptr; |
} |
- // The only situation that attrs is null is through Document::getCSSCanvasContext(). |
- RefPtrWillBeRawPtr<WebGLContextAttributes> defaultAttrs = nullptr; |
- if (!attrs) { |
- defaultAttrs = WebGLContextAttributes::create(); |
- attrs = defaultAttrs.get(); |
- } |
- blink::WebGraphicsContext3D::Attributes attributes = attrs->attributes(document.topDocument().url().string(), settings, 1); |
+ WebGLContextAttributes attributes = toWebGLContextAttributes(attrs); |
+ blink::WebGraphicsContext3D::Attributes wgc3dAttributes = toWebGraphicsContext3DAttributes(attributes, document.topDocument().url().string(), settings, 1); |
blink::WebGLInfo glInfo; |
- OwnPtr<blink::WebGraphicsContext3D> context = adoptPtr(blink::Platform::current()->createOffscreenGraphicsContext3D(attributes, 0, &glInfo)); |
+ OwnPtr<blink::WebGraphicsContext3D> context = adoptPtr(blink::Platform::current()->createOffscreenGraphicsContext3D(wgc3dAttributes, 0, &glInfo)); |
if (!context || shouldFailContextCreationForTesting) { |
shouldFailContextCreationForTesting = false; |
String statusMessage("Could not create a WebGL context for VendorInfo = "); |
@@ -109,7 +104,7 @@ PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTML |
if (extensionsUtil->supportsExtension("GL_EXT_debug_marker")) |
context->pushGroupMarkerEXT("WebGLRenderingContext"); |
- OwnPtrWillBeRawPtr<WebGLRenderingContext> renderingContext = adoptPtrWillBeNoop(new WebGLRenderingContext(canvas, context.release(), attrs)); |
+ OwnPtrWillBeRawPtr<WebGLRenderingContext> renderingContext = adoptPtrWillBeNoop(new WebGLRenderingContext(canvas, context.release(), attributes)); |
renderingContext->registerContextExtensions(); |
renderingContext->suspendIfNeeded(); |
@@ -121,7 +116,7 @@ PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTML |
return renderingContext.release(); |
} |
-WebGLRenderingContext::WebGLRenderingContext(HTMLCanvasElement* passedCanvas, PassOwnPtr<blink::WebGraphicsContext3D> context, WebGLContextAttributes* requestedAttributes) |
+WebGLRenderingContext::WebGLRenderingContext(HTMLCanvasElement* passedCanvas, PassOwnPtr<blink::WebGraphicsContext3D> context, const WebGLContextAttributes& requestedAttributes) |
: WebGLRenderingContextBase(passedCanvas, context, requestedAttributes) |
{ |
} |