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

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGLRenderingContext.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 #include "modules/webgl/WebGLContextEvent.h" 55 #include "modules/webgl/WebGLContextEvent.h"
56 #include "modules/webgl/WebGLDebugRendererInfo.h" 56 #include "modules/webgl/WebGLDebugRendererInfo.h"
57 #include "modules/webgl/WebGLDebugShaders.h" 57 #include "modules/webgl/WebGLDebugShaders.h"
58 #include "modules/webgl/WebGLDepthTexture.h" 58 #include "modules/webgl/WebGLDepthTexture.h"
59 #include "modules/webgl/WebGLDrawBuffers.h" 59 #include "modules/webgl/WebGLDrawBuffers.h"
60 #include "modules/webgl/WebGLLoseContext.h" 60 #include "modules/webgl/WebGLLoseContext.h"
61 #include "platform/CheckedInt.h" 61 #include "platform/CheckedInt.h"
62 #include "platform/graphics/gpu/DrawingBuffer.h" 62 #include "platform/graphics/gpu/DrawingBuffer.h"
63 #include "public/platform/Platform.h" 63 #include "public/platform/Platform.h"
64 #include "public/platform/WebGraphicsContext3DProvider.h" 64 #include "public/platform/WebGraphicsContext3DProvider.h"
65 #include <memory>
65 66
66 namespace blink { 67 namespace blink {
67 68
68 // An helper function for the two create() methods. The return value is an 69 // An helper function for the two create() methods. The return value is an
69 // indicate of whether the create() should return nullptr or not. 70 // indicate of whether the create() should return nullptr or not.
70 static bool shouldCreateContext(WebGraphicsContext3DProvider* contextProvider) 71 static bool shouldCreateContext(WebGraphicsContext3DProvider* contextProvider)
71 { 72 {
72 if (!contextProvider) 73 if (!contextProvider)
73 return false; 74 return false;
74 gpu::gles2::GLES2Interface* gl = contextProvider->contextGL(); 75 gpu::gles2::GLES2Interface* gl = contextProvider->contextGL();
75 OwnPtr<Extensions3DUtil> extensionsUtil = Extensions3DUtil::create(gl); 76 std::unique_ptr<Extensions3DUtil> extensionsUtil = Extensions3DUtil::create( gl);
76 if (!extensionsUtil) 77 if (!extensionsUtil)
77 return false; 78 return false;
78 if (extensionsUtil->supportsExtension("GL_EXT_debug_marker")) { 79 if (extensionsUtil->supportsExtension("GL_EXT_debug_marker")) {
79 String contextLabel(String::format("WebGLRenderingContext-%p", contextPr ovider)); 80 String contextLabel(String::format("WebGLRenderingContext-%p", contextPr ovider));
80 gl->PushGroupMarkerEXT(0, contextLabel.ascii().data()); 81 gl->PushGroupMarkerEXT(0, contextLabel.ascii().data());
81 } 82 }
82 return true; 83 return true;
83 } 84 }
84 85
85 CanvasRenderingContext* WebGLRenderingContext::Factory::create(ScriptState* scri ptState, OffscreenCanvas* offscreenCanvas, const CanvasContextCreationAttributes & attrs) 86 CanvasRenderingContext* WebGLRenderingContext::Factory::create(ScriptState* scri ptState, OffscreenCanvas* offscreenCanvas, const CanvasContextCreationAttributes & attrs)
86 { 87 {
87 WebGLContextAttributes attributes = toWebGLContextAttributes(attrs); 88 WebGLContextAttributes attributes = toWebGLContextAttributes(attrs);
88 OwnPtr<WebGraphicsContext3DProvider> contextProvider(createWebGraphicsContex t3DProvider(scriptState, attributes, 1)); 89 std::unique_ptr<WebGraphicsContext3DProvider> contextProvider(createWebGraph icsContext3DProvider(scriptState, attributes, 1));
89 if (!shouldCreateContext(contextProvider.get())) 90 if (!shouldCreateContext(contextProvider.get()))
90 return nullptr; 91 return nullptr;
91 92
92 WebGLRenderingContext* renderingContext = new WebGLRenderingContext(offscree nCanvas, std::move(contextProvider), attributes); 93 WebGLRenderingContext* renderingContext = new WebGLRenderingContext(offscree nCanvas, std::move(contextProvider), attributes);
93 if (!renderingContext->drawingBuffer()) 94 if (!renderingContext->drawingBuffer())
94 return nullptr; 95 return nullptr;
95 renderingContext->initializeNewContext(); 96 renderingContext->initializeNewContext();
96 renderingContext->registerContextExtensions(); 97 renderingContext->registerContextExtensions();
97 98
98 return renderingContext; 99 return renderingContext;
99 } 100 }
100 101
101 CanvasRenderingContext* WebGLRenderingContext::Factory::create(HTMLCanvasElement * canvas, const CanvasContextCreationAttributes& attrs, Document&) 102 CanvasRenderingContext* WebGLRenderingContext::Factory::create(HTMLCanvasElement * canvas, const CanvasContextCreationAttributes& attrs, Document&)
102 { 103 {
103 WebGLContextAttributes attributes = toWebGLContextAttributes(attrs); 104 WebGLContextAttributes attributes = toWebGLContextAttributes(attrs);
104 OwnPtr<WebGraphicsContext3DProvider> contextProvider(createWebGraphicsContex t3DProvider(canvas, attributes, 1)); 105 std::unique_ptr<WebGraphicsContext3DProvider> contextProvider(createWebGraph icsContext3DProvider(canvas, attributes, 1));
105 if (!shouldCreateContext(contextProvider.get())) 106 if (!shouldCreateContext(contextProvider.get()))
106 return nullptr; 107 return nullptr;
107 108
108 WebGLRenderingContext* renderingContext = new WebGLRenderingContext(canvas, std::move(contextProvider), attributes); 109 WebGLRenderingContext* renderingContext = new WebGLRenderingContext(canvas, std::move(contextProvider), attributes);
109 if (!renderingContext->drawingBuffer()) { 110 if (!renderingContext->drawingBuffer()) {
110 canvas->dispatchEvent(WebGLContextEvent::create(EventTypeNames::webglcon textcreationerror, false, true, "Could not create a WebGL context.")); 111 canvas->dispatchEvent(WebGLContextEvent::create(EventTypeNames::webglcon textcreationerror, false, true, "Could not create a WebGL context."));
111 return nullptr; 112 return nullptr;
112 } 113 }
113 renderingContext->initializeNewContext(); 114 renderingContext->initializeNewContext();
114 renderingContext->registerContextExtensions(); 115 renderingContext->registerContextExtensions();
115 116
116 return renderingContext; 117 return renderingContext;
117 } 118 }
118 119
119 void WebGLRenderingContext::Factory::onError(HTMLCanvasElement* canvas, const St ring& error) 120 void WebGLRenderingContext::Factory::onError(HTMLCanvasElement* canvas, const St ring& error)
120 { 121 {
121 canvas->dispatchEvent(WebGLContextEvent::create(EventTypeNames::webglcontext creationerror, false, true, error)); 122 canvas->dispatchEvent(WebGLContextEvent::create(EventTypeNames::webglcontext creationerror, false, true, error));
122 } 123 }
123 124
124 WebGLRenderingContext::WebGLRenderingContext(HTMLCanvasElement* passedCanvas, Pa ssOwnPtr<WebGraphicsContext3DProvider> contextProvider, const WebGLContextAttrib utes& requestedAttributes) 125 WebGLRenderingContext::WebGLRenderingContext(HTMLCanvasElement* passedCanvas, st d::unique_ptr<WebGraphicsContext3DProvider> contextProvider, const WebGLContextA ttributes& requestedAttributes)
125 : WebGLRenderingContextBase(passedCanvas, std::move(contextProvider), reques tedAttributes) 126 : WebGLRenderingContextBase(passedCanvas, std::move(contextProvider), reques tedAttributes)
126 { 127 {
127 } 128 }
128 129
129 WebGLRenderingContext::WebGLRenderingContext(OffscreenCanvas* passedOffscreenCan vas, PassOwnPtr<WebGraphicsContext3DProvider> contextProvider, const WebGLContex tAttributes& requestedAttributes) 130 WebGLRenderingContext::WebGLRenderingContext(OffscreenCanvas* passedOffscreenCan vas, std::unique_ptr<WebGraphicsContext3DProvider> contextProvider, const WebGLC ontextAttributes& requestedAttributes)
130 : WebGLRenderingContextBase(passedOffscreenCanvas, std::move(contextProvider ), requestedAttributes) 131 : WebGLRenderingContextBase(passedOffscreenCanvas, std::move(contextProvider ), requestedAttributes)
131 { 132 {
132 } 133 }
133 134
134 WebGLRenderingContext::~WebGLRenderingContext() 135 WebGLRenderingContext::~WebGLRenderingContext()
135 { 136 {
136 } 137 }
137 138
138 void WebGLRenderingContext::setCanvasGetContextResult(RenderingContext& result) 139 void WebGLRenderingContext::setCanvasGetContextResult(RenderingContext& result)
139 { 140 {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 visitor->traceWrappers(m_webglDebugShaders); 232 visitor->traceWrappers(m_webglDebugShaders);
232 visitor->traceWrappers(m_webglDrawBuffers); 233 visitor->traceWrappers(m_webglDrawBuffers);
233 visitor->traceWrappers(m_webglCompressedTextureASTC); 234 visitor->traceWrappers(m_webglCompressedTextureASTC);
234 visitor->traceWrappers(m_webglCompressedTextureATC); 235 visitor->traceWrappers(m_webglCompressedTextureATC);
235 visitor->traceWrappers(m_webglCompressedTextureETC1); 236 visitor->traceWrappers(m_webglCompressedTextureETC1);
236 visitor->traceWrappers(m_webglCompressedTexturePVRTC); 237 visitor->traceWrappers(m_webglCompressedTexturePVRTC);
237 visitor->traceWrappers(m_webglCompressedTextureS3TC); 238 visitor->traceWrappers(m_webglCompressedTextureS3TC);
238 visitor->traceWrappers(m_webglDepthTexture); 239 visitor->traceWrappers(m_webglDepthTexture);
239 } 240 }
240 } // namespace blink 241 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698