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

Unified Diff: sdk/lib/web_gl/dart2js/web_gl_dart2js.dart

Issue 1832713002: Optimize dartium dart:html bindings so real world application performance is acceptable. Improves d… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
diff --git a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
index 37916f4e659d22f2a02a7b1d418bab572b811384..8e107d29dfb0eea28ab942cc2025469e408f2d2b 100644
--- a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
@@ -2386,6 +2386,18 @@ class RenderingContext extends Interceptor implements CanvasRenderingContext {
@DocsEditable()
void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) native;
+ @JSName('bufferData')
+ /**
+ * Buffers the specified data.
+ *
+ * The [bufferData] method is provided for WebGL API compatibility reasons, but
+ * it is highly recommended that you use [bufferDataTyped] or [bufferByteData]
+ * depending on your purposes.
+ */
+ @DomName('WebGLRenderingContext.bufferData')
+ @DocsEditable()
+ void bufferByteData(int target, ByteBuffer data, int usage) native;
+
/**
* Buffers the specified data.
*
@@ -2397,6 +2409,30 @@ class RenderingContext extends Interceptor implements CanvasRenderingContext {
@DocsEditable()
void bufferData(int target, data_OR_size, int usage) native;
+ @JSName('bufferData')
+ /**
+ * Buffers the specified data.
+ *
+ * The [bufferData] method is provided for WebGL API compatibility reasons, but
+ * it is highly recommended that you use [bufferDataTyped] or [bufferByteData]
+ * depending on your purposes.
+ */
+ @DomName('WebGLRenderingContext.bufferData')
+ @DocsEditable()
+ void bufferDataTyped(int target, TypedData data, int usage) native;
+
+ @JSName('bufferSubData')
+ /**
+ * Buffers the specified subset of data.
+ *
+ * The [bufferSubData] method is provided for WebGL API compatibility reasons, but
+ * it is highly recommended that you use [bufferSubDataTyped] or [bufferSubByteData]
+ * depending on your purposes.
+ */
+ @DomName('WebGLRenderingContext.bufferSubData')
+ @DocsEditable()
+ void bufferSubByteData(int target, int offset, ByteBuffer data) native;
+
/**
* Buffers the specified subset of data.
*
@@ -2408,6 +2444,18 @@ class RenderingContext extends Interceptor implements CanvasRenderingContext {
@DocsEditable()
void bufferSubData(int target, int offset, data) native;
+ @JSName('bufferSubData')
+ /**
+ * Buffers the specified subset of data.
+ *
+ * The [bufferSubData] method is provided for WebGL API compatibility reasons, but
+ * it is highly recommended that you use [bufferSubDataTyped] or [bufferSubByteData]
+ * depending on your purposes.
+ */
+ @DomName('WebGLRenderingContext.bufferSubData')
+ @DocsEditable()
+ void bufferSubDataTyped(int target, int offset, TypedData data) native;
+
@DomName('WebGLRenderingContext.checkFramebufferStatus')
@DocsEditable()
int checkFramebufferStatus(int target) native;
@@ -2877,6 +2925,73 @@ class RenderingContext extends Interceptor implements CanvasRenderingContext {
@DocsEditable()
void _texImage2D_5(target, level, internalformat, format, type, VideoElement video) native;
+ @JSName('texImage2D')
+ /**
+ * Updates the currently bound texture to [data].
+ *
+ * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
+ * (or for more specificity, the more specialized [texImage2DImageData],
+ * [texImage2DCanvas], [texImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texImage2D')
+ @DocsEditable()
+ void texImage2DCanvas(int target, int level, int internalformat, int format, int type, CanvasElement canvas) native;
+
+ @JSName('texImage2D')
+ /**
+ * Updates the currently bound texture to [data].
+ *
+ * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
+ * (or for more specificity, the more specialized [texImage2DImageData],
+ * [texImage2DCanvas], [texImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texImage2D')
+ @DocsEditable()
+ void texImage2DImage(int target, int level, int internalformat, int format, int type, ImageElement image) native;
+
+ /**
+ * Updates the currently bound texture to [data].
+ *
+ * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
+ * (or for more specificity, the more specialized [texImage2DImageData],
+ * [texImage2DCanvas], [texImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texImage2D')
+ @DocsEditable()
+ void texImage2DImageData(int target, int level, int internalformat, int format, int type, ImageData pixels) {
+ var pixels_1 = convertDartToNative_ImageData(pixels);
+ _texImage2DImageData_1(target, level, internalformat, format, type, pixels_1);
+ return;
+ }
+ @JSName('texImage2D')
+ /**
+ * Updates the currently bound texture to [data].
+ *
+ * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
+ * (or for more specificity, the more specialized [texImage2DImageData],
+ * [texImage2DCanvas], [texImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texImage2D')
+ @DocsEditable()
+ void _texImage2DImageData_1(target, level, internalformat, format, type, pixels) native;
+
+ @JSName('texImage2D')
+ /**
+ * Updates the currently bound texture to [data].
+ *
+ * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
+ * (or for more specificity, the more specialized [texImage2DImageData],
+ * [texImage2DCanvas], [texImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texImage2D')
+ @DocsEditable()
+ void texImage2DVideo(int target, int level, int internalformat, int format, int type, VideoElement video) native;
+
@DomName('WebGLRenderingContext.texParameterf')
@DocsEditable()
void texParameterf(int target, int pname, num param) native;
@@ -2980,6 +3095,73 @@ class RenderingContext extends Interceptor implements CanvasRenderingContext {
@DocsEditable()
void _texSubImage2D_5(target, level, xoffset, yoffset, format, type, VideoElement video) native;
+ @JSName('texSubImage2D')
+ /**
+ * Updates a sub-rectangle of the currently bound texture to [data].
+ *
+ * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
+ * (or for more specificity, the more specialized [texSubImage2DImageData],
+ * [texSubImage2DCanvas], [texSubImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texSubImage2D')
+ @DocsEditable()
+ void texSubImage2DCanvas(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas) native;
+
+ @JSName('texSubImage2D')
+ /**
+ * Updates a sub-rectangle of the currently bound texture to [data].
+ *
+ * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
+ * (or for more specificity, the more specialized [texSubImage2DImageData],
+ * [texSubImage2DCanvas], [texSubImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texSubImage2D')
+ @DocsEditable()
+ void texSubImage2DImage(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image) native;
+
+ /**
+ * Updates a sub-rectangle of the currently bound texture to [data].
+ *
+ * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
+ * (or for more specificity, the more specialized [texSubImage2DImageData],
+ * [texSubImage2DCanvas], [texSubImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texSubImage2D')
+ @DocsEditable()
+ void texSubImage2DImageData(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels) {
+ var pixels_1 = convertDartToNative_ImageData(pixels);
+ _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels_1);
+ return;
+ }
+ @JSName('texSubImage2D')
+ /**
+ * Updates a sub-rectangle of the currently bound texture to [data].
+ *
+ * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
+ * (or for more specificity, the more specialized [texSubImage2DImageData],
+ * [texSubImage2DCanvas], [texSubImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texSubImage2D')
+ @DocsEditable()
+ void _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels) native;
+
+ @JSName('texSubImage2D')
+ /**
+ * Updates a sub-rectangle of the currently bound texture to [data].
+ *
+ * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
+ * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
+ * (or for more specificity, the more specialized [texSubImage2DImageData],
+ * [texSubImage2DCanvas], [texSubImage2DVideo]).
+ */
+ @DomName('WebGLRenderingContext.texSubImage2D')
+ @DocsEditable()
+ void texSubImage2DVideo(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video) native;
+
@DomName('WebGLRenderingContext.uniform1f')
@DocsEditable()
void uniform1f(UniformLocation location, num x) native;
@@ -5229,16 +5411,40 @@ class RenderingContext2 extends Interceptor implements _WebGL2RenderingContextBa
@Experimental() // untriaged
void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) native;
+ @JSName('bufferData')
+ @DomName('WebGL2RenderingContext.bufferData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferByteData(int target, ByteBuffer data, int usage) native;
+
@DomName('WebGL2RenderingContext.bufferData')
@DocsEditable()
@Experimental() // untriaged
void bufferData(int target, data_OR_size, int usage) native;
+ @JSName('bufferData')
+ @DomName('WebGL2RenderingContext.bufferData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferDataTyped(int target, TypedData data, int usage) native;
+
+ @JSName('bufferSubData')
+ @DomName('WebGL2RenderingContext.bufferSubData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferSubByteData(int target, int offset, ByteBuffer data) native;
+
@DomName('WebGL2RenderingContext.bufferSubData')
@DocsEditable()
@Experimental() // untriaged
void bufferSubData(int target, int offset, data) native;
+ @JSName('bufferSubData')
+ @DomName('WebGL2RenderingContext.bufferSubData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferSubDataTyped(int target, int offset, TypedData data) native;
+
@DomName('WebGL2RenderingContext.checkFramebufferStatus')
@DocsEditable()
@Experimental() // untriaged
@@ -5734,6 +5940,38 @@ class RenderingContext2 extends Interceptor implements _WebGL2RenderingContextBa
@Experimental() // untriaged
void _texImage2D_5(target, level, internalformat, format, type, VideoElement video) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texImage2DCanvas(int target, int level, int internalformat, int format, int type, CanvasElement canvas) native;
+
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texImage2DImage(int target, int level, int internalformat, int format, int type, ImageElement image) native;
+
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texImage2DImageData(int target, int level, int internalformat, int format, int type, ImageData pixels) {
+ var pixels_1 = convertDartToNative_ImageData(pixels);
+ _texImage2DImageData_1(target, level, internalformat, format, type, pixels_1);
+ return;
+ }
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2DImageData_1(target, level, internalformat, format, type, pixels) native;
+
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texImage2DVideo(int target, int level, int internalformat, int format, int type, VideoElement video) native;
+
@DomName('WebGL2RenderingContext.texParameterf')
@DocsEditable()
@Experimental() // untriaged
@@ -5797,6 +6035,38 @@ class RenderingContext2 extends Interceptor implements _WebGL2RenderingContextBa
@Experimental() // untriaged
void _texSubImage2D_5(target, level, xoffset, yoffset, format, type, VideoElement video) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texSubImage2DCanvas(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas) native;
+
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texSubImage2DImage(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image) native;
+
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texSubImage2DImageData(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels) {
+ var pixels_1 = convertDartToNative_ImageData(pixels);
+ _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels_1);
+ return;
+ }
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels) native;
+
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texSubImage2DVideo(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video) native;
+
@DomName('WebGL2RenderingContext.uniform1f')
@DocsEditable()
@Experimental() // untriaged

Powered by Google App Engine
This is Rietveld 408576698