diff options
Diffstat (limited to 'components/script/dom/webgl_extensions/extension.rs')
-rw-r--r-- | components/script/dom/webgl_extensions/extension.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/components/script/dom/webgl_extensions/extension.rs b/components/script/dom/webgl_extensions/extension.rs new file mode 100644 index 00000000000..3463a1d3273 --- /dev/null +++ b/components/script/dom/webgl_extensions/extension.rs @@ -0,0 +1,26 @@ +/* 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/. */ + +use dom::bindings::js::Root; +use dom::bindings::reflector::DomObject; +use dom::bindings::trace::JSTraceable; +use dom::webglrenderingcontext::WebGLRenderingContext; +use super::WebGLExtensions; + +/// Trait implemented by WebGL extensions. +pub trait WebGLExtension: Sized where Self::Extension: DomObject + JSTraceable { + type Extension; + + /// Creates the DOM object of the WebGL extension. + fn new(ctx: &WebGLRenderingContext) -> Root<Self::Extension>; + + /// Checks if the extension is supported. + fn is_supported(ext: &WebGLExtensions) -> bool; + + /// Enable the extension. + fn enable(ext: &WebGLExtensions); + + /// Name of the WebGL Extension. + fn name() -> &'static str; +} |