summaryrefslogtreecommitdiffstats
path: root/dom/canvas/WebGL1Context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/WebGL1Context.cpp')
-rw-r--r--dom/canvas/WebGL1Context.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/dom/canvas/WebGL1Context.cpp b/dom/canvas/WebGL1Context.cpp
new file mode 100644
index 000000000..c1818a3f9
--- /dev/null
+++ b/dom/canvas/WebGL1Context.cpp
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "WebGL1Context.h"
+
+#include "mozilla/dom/WebGLRenderingContextBinding.h"
+#include "mozilla/Telemetry.h"
+#include "WebGLFormats.h"
+
+namespace mozilla {
+
+/*static*/ WebGL1Context*
+WebGL1Context::Create()
+{
+ return new WebGL1Context();
+}
+
+WebGL1Context::WebGL1Context()
+ : WebGLContext()
+{
+}
+
+WebGL1Context::~WebGL1Context()
+{
+}
+
+UniquePtr<webgl::FormatUsageAuthority>
+WebGL1Context::CreateFormatUsage(gl::GLContext* gl) const
+{
+ return webgl::FormatUsageAuthority::CreateForWebGL1(gl);
+}
+
+JSObject*
+WebGL1Context::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
+{
+ return dom::WebGLRenderingContextBinding::Wrap(cx, this, givenProto);
+}
+
+} // namespace mozilla
+
+nsresult
+NS_NewCanvasRenderingContextWebGL(nsIDOMWebGLRenderingContext** out_result)
+{
+ mozilla::Telemetry::Accumulate(mozilla::Telemetry::CANVAS_WEBGL_USED, 1);
+
+ nsIDOMWebGLRenderingContext* ctx = mozilla::WebGL1Context::Create();
+
+ NS_ADDREF(*out_result = ctx);
+ return NS_OK;
+}