Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graduate WebGL 1 from experimental #370

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package org.scalajs.dom.experimental.webgl

import org.scalajs.dom

/**
* @deprecated
*
* WebGL v1 API is graduated from experimental.
* Use [[org.scalajs.dom.webgl.extensions]] instead.
*/
package object extensions {

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESTextureFloat = dom.webgl.extensions.OESTextureFloat

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESTextureHalfFloat = dom.webgl.extensions.OESTextureHalfFloat

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLLoseContext = dom.webgl.extensions.WebGLLoseContext

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESStandardDerivatives = dom.webgl.extensions.OESStandardDerivatives

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLVertexArrayObjectOES =
dom.webgl.extensions.WebGLVertexArrayObjectOES

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESVertexArrayObject = dom.webgl.extensions.OESVertexArrayObject

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLDebugRendererInfo = dom.webgl.extensions.WebGLDebugRendererInfo

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLDebugShaders = dom.webgl.extensions.WebGLDebugShaders

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLCompressedTextureS3TC =
dom.webgl.extensions.WebGLCompressedTextureS3TC

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLDepthTexture = dom.webgl.extensions.WebGLDepthTexture

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTTextureFilterAnisotropic =
dom.webgl.extensions.EXTTextureFilterAnisotropic

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESElementIndexUint = dom.webgl.extensions.OESElementIndexUint

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTFragDepth = dom.webgl.extensions.EXTFragDepth

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WEBGLDrawBuffers = dom.webgl.extensions.WEBGLDrawBuffers

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type ANGLEInstancedArrays = dom.webgl.extensions.ANGLEInstancedArrays

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESTextureFloatLinear = dom.webgl.extensions.OESTextureFloatLinear

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type OESTextureHalfFloatLinear =
dom.webgl.extensions.OESTextureHalfFloatLinear

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTBlendMinmax = dom.webgl.extensions.EXTBlendMinmax

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTShaderTextureLOD = dom.webgl.extensions.EXTShaderTextureLOD

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLCompressedTextureATC =
dom.webgl.extensions.WebGLCompressedTextureATC

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLCompressedTexturePVRTC =
dom.webgl.extensions.WebGLCompressedTexturePVRTC

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTColorBufferHalfFloat = dom.webgl.extensions.EXTColorBufferHalfFloat

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WEBGLColorBufferFloat = dom.webgl.extensions.WEBGLColorBufferFloat

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTsRGB = dom.webgl.extensions.EXTsRGB

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WEBGLCompressedTextureETC1 =
dom.webgl.extensions.WEBGLCompressedTextureETC1

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type WebGLTimerQueryEXT = dom.webgl.extensions.WebGLTimerQueryEXT

@deprecated("Use the one defined in org.scalajs.webgl.extensions", "0.9.8")
type EXTDisjointTimerQuery = dom.webgl.extensions.EXTDisjointTimerQuery
}
103 changes: 88 additions & 15 deletions src/main/scala/org/scalajs/dom/experimental/webgl/package.scala
Original file line number Diff line number Diff line change
@@ -1,20 +1,93 @@
package org.scalajs.dom.experimental

import org.scalajs.dom.raw.WebGLRenderingContext
import scala.scalajs.js
import org.scalajs.dom

/**
* @deprecated
*
* WebGL v1 API is graduated from experimental.
* Use [[org.scalajs.dom.webgl]] instead.
*/
package object webgl {
implicit class WebGLRenderingContextOps(val webGL: WebGLRenderingContext)
extends AnyVal {

/**
* Returns the WebGL extension for the given identifier, if present on this browser.
*
* @param id the identifier singleton.
* @tparam T The type of the result for this extension.
* @return `Some(extension)` or `None`
*/
def getExtension[T](id: WebGLExtensionIdentifier[T]): js.UndefOr[T] =
webGL.getExtension(id.value).asInstanceOf[js.UndefOr[T]]
}

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
type WebGLRenderingContextOps = dom.webgl.WebGLRenderingContextOps

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
type WebGLExtensionIdentifier[T] = dom.webgl.WebGLExtensionIdentifier[T]

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_texture_float = dom.webgl.OES_texture_float

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_texture_half_float = dom.webgl.OES_texture_half_float

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_lose_context = dom.webgl.WEBGL_lose_context

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_standard_derivatives = dom.webgl.OES_standard_derivatives

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_vertex_array_object = dom.webgl.OES_vertex_array_object

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_debug_renderer_info = dom.webgl.WEBGL_debug_renderer_info

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_debug_shaders = dom.webgl.WEBGL_debug_shaders

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_compressed_texture_s3tc = dom.webgl.WEBGL_compressed_texture_s3tc

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_depth_texture = dom.webgl.WEBGL_depth_texture

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_element_index_uint = dom.webgl.OES_element_index_uint

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_texture_filter_anisotropic = dom.webgl.EXT_texture_filter_anisotropic

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_frag_depth = dom.webgl.EXT_frag_depth

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_draw_buffers = dom.webgl.WEBGL_draw_buffers

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val ANGLE_instanced_arrays = dom.webgl.ANGLE_instanced_arrays

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_texture_float_linear = dom.webgl.OES_texture_float_linear

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val OES_texture_half_float_linear = dom.webgl.OES_texture_half_float_linear

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_blend_minmax = dom.webgl.EXT_blend_minmax

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_shader_texture_lod = dom.webgl.EXT_shader_texture_lod

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_compressed_texture_atc = dom.webgl.WEBGL_compressed_texture_atc

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_compressed_texture_pvrtc = dom.webgl.WEBGL_compressed_texture_pvrtc

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_color_buffer_half_float = dom.webgl.EXT_color_buffer_half_float

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_color_buffer_float = dom.webgl.WEBGL_color_buffer_float

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_sRGB = dom.webgl.EXT_sRGB

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val WEBGL_compressed_texture_etc1 = dom.webgl.WEBGL_compressed_texture_etc1

@deprecated("Use the one defined in org.scalajs.webgl", "0.9.8")
val EXT_disjoint_timer_query = dom.webgl.EXT_disjoint_timer_query
}
19 changes: 0 additions & 19 deletions src/main/scala/org/scalajs/dom/webgl.scala

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.scalajs.dom.experimental.webgl
package org.scalajs.dom.webgl

/**
* Abstract class that maps a string enum onto a WebGL extension type
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.scalajs.dom.experimental.webgl.extensions
package org.scalajs.dom.webgl.extensions

import org.scalajs.dom.raw.WebGLShader

Expand Down
33 changes: 33 additions & 0 deletions src/main/scala/org/scalajs/dom/webgl/package.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.scalajs.dom

import org.scalajs.dom.raw.WebGLRenderingContext
import scala.scalajs.js

package object webgl {
type ActiveInfo = raw.WebGLActiveInfo
type Buffer = raw.WebGLBuffer
type ContextAttributes = raw.WebGLContextAttributes
type Framebuffer = raw.WebGLFramebuffer
type Program = raw.WebGLProgram
type Renderbuffer = raw.WebGLRenderbuffer
type RenderingContext = raw.WebGLRenderingContext
type Shader = raw.WebGLShader
type ShaderPrecisionFormat = raw.WebGLShaderPrecisionFormat
type Texture = raw.WebGLTexture
type UniformLocation = raw.WebGLUniformLocation
@inline def RenderingContext = raw.WebGLRenderingContext

implicit class WebGLRenderingContextOps(val webGL: WebGLRenderingContext)
extends AnyVal {

/**
* Returns the WebGL extension for the given identifier, if present on this browser.
*
* @param id the identifier singleton.
* @tparam T The type of the result for this extension.
* @return `Some(extension)` or `None`
*/
def getExtension[T](id: WebGLExtensionIdentifier[T]): js.UndefOr[T] =
webGL.getExtension(id.value).asInstanceOf[js.UndefOr[T]]
}
}