@luma.gl/webgl 8.6.0-alpha.2 → 8.6.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -1
- package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
- package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/set-device-parameters.js +124 -0
- package/dist/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/{device → adapter/device-helpers}/device-features.d.ts +0 -0
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
- package/dist/{esm/device → adapter/device-helpers}/device-features.js +2 -2
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/{device → adapter/device-helpers}/device-limits.d.ts +0 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
- package/dist/{esm/device → adapter/device-helpers}/device-limits.js +1 -1
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/{device → adapter/device-helpers}/get-device-info.d.ts +0 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
- package/dist/{device → adapter/device-helpers}/get-device-info.js +1 -1
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/{webgl-utils → adapter/device-helpers}/is-old-ie.d.ts +0 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/device-helpers}/is-old-ie.js +0 -0
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/{device → adapter}/webgl-device.d.ts +3 -3
- package/dist/adapter/webgl-device.d.ts.map +1 -0
- package/dist/{esm/device → adapter}/webgl-device.js +6 -6
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/adapter/webgl-shader.d.ts +18 -0
- package/dist/adapter/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/webgl-shader.js +82 -0
- package/dist/adapter/webgl-shader.js.map +1 -0
- package/dist/classes/framebuffer.js +1 -1
- package/dist/classes/framebuffer.js.map +1 -1
- package/dist/classes/program-configuration.d.ts +14 -17
- package/dist/classes/program-configuration.d.ts.map +1 -1
- package/dist/classes/program-configuration.js +10 -97
- package/dist/classes/program-configuration.js.map +1 -1
- package/dist/classes/program.d.ts +20 -15
- package/dist/classes/program.d.ts.map +1 -1
- package/dist/classes/program.js +31 -22
- package/dist/classes/program.js.map +1 -1
- package/dist/classes/query.js +1 -1
- package/dist/classes/query.js.map +1 -1
- package/dist/classes/renderbuffer.js +1 -1
- package/dist/classes/renderbuffer.js.map +1 -1
- package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -15
- package/dist/classes/shader.d.ts.map +1 -0
- package/dist/{esm/classes/webgl-shader.js → classes/shader.js} +6 -81
- package/dist/classes/shader.js.map +1 -0
- package/dist/classes/texture-3d.js +1 -1
- package/dist/classes/texture-3d.js.map +1 -1
- package/dist/classes/texture-cube.js.map +1 -1
- package/dist/classes/texture.d.ts +1 -1
- package/dist/classes/texture.d.ts.map +1 -1
- package/dist/classes/texture.js +1 -1
- package/dist/classes/texture.js.map +1 -1
- package/dist/classes/transform-feedback.js +1 -1
- package/dist/classes/transform-feedback.js.map +1 -1
- package/dist/classes/vertex-array-object.d.ts +6 -5
- package/dist/classes/vertex-array-object.d.ts.map +1 -1
- package/dist/classes/vertex-array-object.js +5 -5
- package/dist/classes/vertex-array-object.js.map +1 -1
- package/dist/classes/vertex-array.d.ts +13 -13
- package/dist/classes/vertex-array.d.ts.map +1 -1
- package/dist/classes/vertex-array.js +2 -2
- package/dist/classes/vertex-array.js.map +1 -1
- package/dist/classes/webgl-buffer.d.ts +1 -1
- package/dist/classes/webgl-buffer.d.ts.map +1 -1
- package/dist/classes/webgl-buffer.js +1 -1
- package/dist/classes/webgl-buffer.js.map +1 -1
- package/dist/classes/webgl-resource.d.ts +1 -1
- package/dist/classes/webgl-resource.d.ts.map +1 -1
- package/dist/classes/webgl-resource.js +1 -1
- package/dist/classes/webgl-resource.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +2 -1
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameters.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
- package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/es5/{device → adapter/device-helpers}/device-features.js +2 -2
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/es5/{device → adapter/device-helpers}/device-limits.js +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/es5/{device → adapter/device-helpers}/get-device-info.js +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/device-helpers}/is-old-ie.js +0 -0
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/es5/{device → adapter}/webgl-device.js +6 -6
- package/dist/es5/adapter/webgl-device.js.map +1 -0
- package/dist/es5/adapter/webgl-shader.js +155 -0
- package/dist/es5/adapter/webgl-shader.js.map +1 -0
- package/dist/es5/classes/framebuffer.js +1 -1
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +34 -101
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +38 -27
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +1 -1
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +1 -1
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/{webgl-shader.js → shader.js} +18 -132
- package/dist/es5/classes/shader.js.map +1 -0
- package/dist/es5/classes/texture-3d.js +1 -1
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture.js +1 -1
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +1 -1
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +5 -5
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +5 -5
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/webgl-buffer.js +1 -1
- package/dist/es5/classes/webgl-buffer.js.map +1 -1
- package/dist/es5/classes/webgl-resource.js +1 -1
- package/dist/es5/classes/webgl-resource.js.map +1 -1
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameters.js.map +1 -1
- package/dist/es5/helpers/get-program-bindings.js +274 -0
- package/dist/es5/helpers/get-program-bindings.js.map +1 -0
- package/dist/es5/helpers/program-bindings.js +2 -0
- package/dist/es5/helpers/program-bindings.js.map +1 -0
- package/dist/es5/index.js +31 -15
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +1 -1
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/accessor.d.ts +29 -0
- package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
- package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/{device → esm/adapter/device-helpers}/device-features.js +2 -2
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/{device → esm/adapter/device-helpers}/device-limits.js +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/esm/{device → adapter/device-helpers}/get-device-info.js +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/device-helpers}/is-old-ie.js +0 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/{device → esm/adapter}/webgl-device.js +6 -6
- package/dist/esm/adapter/webgl-device.js.map +1 -0
- package/dist/esm/adapter/webgl-shader.js +82 -0
- package/dist/esm/adapter/webgl-shader.js.map +1 -0
- package/dist/esm/classes/framebuffer.js +1 -1
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +10 -97
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +31 -22
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +1 -1
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +1 -1
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/{classes/webgl-shader.js → esm/classes/shader.js} +6 -81
- package/dist/esm/classes/shader.js.map +1 -0
- package/dist/esm/classes/texture-3d.js +1 -1
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture.js +1 -1
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +1 -1
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +5 -5
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +2 -2
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +1 -1
- package/dist/esm/classes/webgl-buffer.js.map +1 -1
- package/dist/esm/classes/webgl-resource.js +1 -1
- package/dist/esm/classes/webgl-resource.js.map +1 -1
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameters.js.map +1 -1
- package/dist/esm/helpers/get-program-bindings.js +228 -0
- package/dist/esm/helpers/get-program-bindings.js.map +1 -0
- package/dist/esm/helpers/program-bindings.js +2 -0
- package/dist/esm/helpers/program-bindings.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +1 -1
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/accessor.d.ts +29 -0
- package/dist/helpers/get-program-bindings.d.ts +8 -0
- package/dist/helpers/get-program-bindings.d.ts.map +1 -0
- package/dist/helpers/get-program-bindings.js +228 -0
- package/dist/helpers/get-program-bindings.js.map +1 -0
- package/dist/helpers/program-bindings.d.ts +41 -0
- package/dist/helpers/program-bindings.d.ts.map +1 -0
- package/dist/helpers/program-bindings.js +2 -0
- package/dist/helpers/program-bindings.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/init.js +1 -1
- package/dist/init.js.map +1 -1
- package/dist/types/accessor.d.ts +29 -0
- package/package.json +5 -5
- package/src/adapter/converters/set-device-parameters.ts +182 -0
- package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
- package/src/{device → adapter/device-helpers}/device-features.ts +4 -4
- package/src/{device → adapter/device-helpers}/device-limits.ts +1 -1
- package/src/{device → adapter/device-helpers}/get-device-info.ts +2 -2
- package/src/{webgl-utils → adapter/device-helpers}/is-old-ie.ts +0 -0
- package/src/{device → adapter}/webgl-device.ts +9 -9
- package/src/adapter/webgl-shader.ts +84 -0
- package/src/classes/framebuffer.ts +1 -1
- package/src/classes/program-configuration.ts +28 -81
- package/src/classes/program.ts +70 -62
- package/src/classes/query.ts +1 -1
- package/src/classes/renderbuffer.ts +1 -1
- package/src/classes/{webgl-shader.ts → shader.ts} +6 -79
- package/src/classes/texture-3d.ts +1 -1
- package/src/classes/texture-cube.ts +1 -1
- package/src/classes/texture.ts +1 -1
- package/src/classes/transform-feedback.ts +1 -1
- package/src/classes/vertex-array-object.ts +9 -8
- package/src/classes/vertex-array.ts +14 -8
- package/src/classes/webgl-buffer.ts +1 -1
- package/src/classes/webgl-resource.ts +1 -1
- package/src/context/parameters/unified-parameter-api.ts +3 -2
- package/src/context/parameters/webgl-parameters.ts +115 -115
- package/src/helpers/get-program-bindings.ts +244 -0
- package/src/helpers/program-bindings.ts +46 -0
- package/src/index.ts +12 -6
- package/src/init.ts +1 -1
- package/src/types/accessor.d.ts +29 -0
- package/dist/api/device2.d.ts +0 -52
- package/dist/api/device2.d.ts.map +0 -1
- package/dist/api/device2.js +0 -23
- package/dist/api/device2.js.map +0 -1
- package/dist/classes/webgl-shader.d.ts.map +0 -1
- package/dist/classes/webgl-shader.js.map +0 -1
- package/dist/device/check-glsl-extension.d.ts +0 -4
- package/dist/device/check-glsl-extension.d.ts.map +0 -1
- package/dist/device/check-glsl-extension.js +0 -22
- package/dist/device/check-glsl-extension.js.map +0 -1
- package/dist/device/device-features.d.ts.map +0 -1
- package/dist/device/device-features.js.map +0 -1
- package/dist/device/device-limits.d.ts.map +0 -1
- package/dist/device/device-limits.js.map +0 -1
- package/dist/device/get-device-info.d.ts.map +0 -1
- package/dist/device/get-device-info.js.map +0 -1
- package/dist/device/webgl-device.d.ts.map +0 -1
- package/dist/device/webgl-device.js.map +0 -1
- package/dist/es5/api/device2.js +0 -42
- package/dist/es5/api/device2.js.map +0 -1
- package/dist/es5/classes/webgl-shader.js.map +0 -1
- package/dist/es5/device/check-glsl-extension.js +0 -33
- package/dist/es5/device/check-glsl-extension.js.map +0 -1
- package/dist/es5/device/device-features.js.map +0 -1
- package/dist/es5/device/device-limits.js.map +0 -1
- package/dist/es5/device/get-device-info.js.map +0 -1
- package/dist/es5/device/webgl-device.js.map +0 -1
- package/dist/es5/webgl-utils/is-old-ie.js.map +0 -1
- package/dist/es5/webgl-utils/webgl-info.ts.disabled +0 -135
- package/dist/esm/api/device2.js +0 -23
- package/dist/esm/api/device2.js.map +0 -1
- package/dist/esm/classes/webgl-shader.js.map +0 -1
- package/dist/esm/device/check-glsl-extension.js +0 -22
- package/dist/esm/device/check-glsl-extension.js.map +0 -1
- package/dist/esm/device/device-features.js.map +0 -1
- package/dist/esm/device/device-limits.js.map +0 -1
- package/dist/esm/device/get-device-info.js.map +0 -1
- package/dist/esm/device/webgl-device.js.map +0 -1
- package/dist/esm/webgl-utils/is-old-ie.js.map +0 -1
- package/dist/esm/webgl-utils/webgl-info.ts.disabled +0 -135
- package/dist/webgl-utils/is-old-ie.d.ts.map +0 -1
- package/dist/webgl-utils/is-old-ie.js.map +0 -1
- package/dist/webgl-utils/webgl-info.ts.disabled +0 -135
- package/src/api/device2.ts +0 -71
- package/src/device/check-glsl-extension.ts +0 -44
- package/src/webgl-utils/webgl-info.ts.disabled +0 -135
|
@@ -59,139 +59,139 @@ type GL_STENCIL_OP =
|
|
|
59
59
|
GL.INVERT;
|
|
60
60
|
|
|
61
61
|
export type GLValueParameters = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
62
|
+
[GL.BLEND]?: boolean;
|
|
63
|
+
[GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;
|
|
64
|
+
[GL.BLEND_EQUATION_RGB]?: GL_BLEND_EQUATION;
|
|
65
|
+
[GL.BLEND_EQUATION_ALPHA]?: GL_BLEND_EQUATION;
|
|
66
|
+
[GL.BLEND_SRC_RGB]?: GL_BLEND_FUNCTION;
|
|
67
|
+
[GL.BLEND_DST_RGB]?: GL_BLEND_FUNCTION;
|
|
68
|
+
[GL.BLEND_SRC_ALPHA]?: GL_BLEND_FUNCTION;
|
|
69
|
+
[GL.BLEND_DST_ALPHA]?: GL_BLEND_FUNCTION;
|
|
70
|
+
[GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;
|
|
71
|
+
[GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];
|
|
72
|
+
[GL.CULL_FACE]?: boolean;
|
|
73
|
+
[GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
|
|
74
|
+
[GL.DEPTH_TEST]?: boolean;
|
|
75
|
+
[GL.DEPTH_CLEAR_VALUE]?: number;
|
|
76
|
+
[GL.DEPTH_FUNC]?: GL_FUNCTION;
|
|
77
|
+
[GL.DEPTH_RANGE]?: [number, number] | NumberArray;
|
|
78
|
+
[GL.DEPTH_WRITEMASK]?: boolean;
|
|
79
|
+
[GL.DITHER]?: boolean;
|
|
80
|
+
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
|
|
81
|
+
[GL.CURRENT_PROGRAM]?: WebGLProgram | null,
|
|
82
|
+
[GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;
|
|
83
|
+
[GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null,
|
|
84
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null,
|
|
85
|
+
[GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null,
|
|
86
|
+
[GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null,
|
|
87
|
+
[GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null,
|
|
88
|
+
[GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null,
|
|
89
|
+
[GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null,
|
|
90
|
+
[GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null,
|
|
91
|
+
[GL.TEXTURE_BINDING_2D]?: WebGLTexture | null,
|
|
92
|
+
[GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null,
|
|
93
|
+
[GL.TEXTURE_BINDING_3D]?: WebGLTexture | null,
|
|
94
|
+
[GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null,
|
|
95
|
+
[GL.FRONT_FACE]?: GL.CW | GL.CCW;
|
|
96
|
+
[GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
|
|
97
|
+
[GL.LINE_WIDTH]?: number;
|
|
98
|
+
[GL.POLYGON_OFFSET_FILL]?: boolean;
|
|
99
|
+
[GL.POLYGON_OFFSET_FACTOR]?: number;
|
|
100
|
+
[GL.POLYGON_OFFSET_UNITS]?: number;
|
|
101
|
+
[GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean,
|
|
102
|
+
[GL.SAMPLE_COVERAGE]?: boolean,
|
|
103
|
+
[GL.RASTERIZER_DISCARD]?: boolean;
|
|
104
|
+
[GL.SAMPLE_COVERAGE_VALUE]?: number;
|
|
105
|
+
[GL.SAMPLE_COVERAGE_INVERT]?: boolean;
|
|
106
|
+
[GL.SCISSOR_TEST]?: boolean;
|
|
107
|
+
[GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;
|
|
108
|
+
[GL.STENCIL_TEST]?: boolean;
|
|
109
|
+
[GL.STENCIL_CLEAR_VALUE]?: number;
|
|
110
|
+
[GL.STENCIL_WRITEMASK]?: number;
|
|
111
|
+
[GL.STENCIL_BACK_WRITEMASK]?: number;
|
|
112
|
+
[GL.STENCIL_FUNC]?: GL_FUNCTION;
|
|
113
|
+
[GL.STENCIL_REF]?: GL_FUNCTION;
|
|
114
|
+
[GL.STENCIL_VALUE_MASK]?: GL_FUNCTION;
|
|
115
|
+
[GL.STENCIL_BACK_FUNC]?: GL_FUNCTION;
|
|
116
|
+
[GL.STENCIL_BACK_REF]?: GL_FUNCTION;
|
|
117
|
+
[GL.STENCIL_BACK_VALUE_MASK]?: GL_FUNCTION;
|
|
118
|
+
[GL.STENCIL_FAIL]?: GL_STENCIL_OP;
|
|
119
|
+
[GL.STENCIL_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;
|
|
120
|
+
[GL.STENCIL_PASS_DEPTH_PASS]?: GL_STENCIL_OP;
|
|
121
|
+
[GL.STENCIL_BACK_FAIL]?: GL_STENCIL_OP;
|
|
122
|
+
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;
|
|
123
|
+
[GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GL_STENCIL_OP;
|
|
124
|
+
[GL.VIEWPORT]?: [number, number, number, number] | NumberArray;
|
|
125
|
+
|
|
126
|
+
// WEBGL1 PIXEL PACK/UNPACK MODES
|
|
127
|
+
[GL.PACK_ALIGNMENT]?: number;
|
|
128
|
+
[GL.UNPACK_ALIGNMENT]?: number;
|
|
129
|
+
[GL.UNPACK_FLIP_Y_WEBGL]?: boolean;
|
|
130
|
+
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;
|
|
131
|
+
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;
|
|
132
|
+
|
|
133
|
+
// WEBGL2 PIXEL PACK/UNPACK MODES
|
|
134
|
+
// RASTERIZER_DISCARD ...
|
|
135
|
+
[GL.PACK_ROW_LENGTH]?: number;
|
|
136
|
+
[GL.PACK_SKIP_PIXELS]?: number;
|
|
137
|
+
[GL.PACK_SKIP_ROWS]?: number;
|
|
138
|
+
[GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;
|
|
139
|
+
[GL.UNPACK_ROW_LENGTH]?: number;
|
|
140
|
+
[GL.UNPACK_IMAGE_HEIGHT]?: number;
|
|
141
|
+
[GL.UNPACK_SKIP_PIXELS]?: number;
|
|
142
|
+
[GL.UNPACK_SKIP_ROWS]?: number;
|
|
143
|
+
[GL.UNPACK_SKIP_IMAGES]?: number;
|
|
144
144
|
};
|
|
145
145
|
|
|
146
146
|
export type GLFunctionStyleParameters = {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
147
|
+
// Function-style setters
|
|
148
|
+
framebuffer?: Framebuffer | null;
|
|
149
|
+
blend?: boolean;
|
|
150
|
+
blendColor?: [number, number, number, number] | NumberArray;
|
|
151
|
+
blendEquation?: GL_BLEND_EQUATION | [GL_BLEND_EQUATION, GL_BLEND_EQUATION];
|
|
152
|
+
blendFunc?:
|
|
153
153
|
[GL_BLEND_FUNCTION, GL_BLEND_FUNCTION] |
|
|
154
154
|
[GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION];
|
|
155
155
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
clearColor?: [number, number, number, number] | NumberArray;
|
|
157
|
+
clearDepth?: number;
|
|
158
|
+
clearStencil?: number;
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
colorMask?: [boolean, boolean, boolean, boolean];
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
cull?: boolean;
|
|
163
|
+
cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
depthTest?: boolean;
|
|
166
|
+
depthFunc?: GL_FUNCTION;
|
|
167
|
+
depthMask?: boolean;
|
|
168
|
+
depthRange?: [number, number] | NumberArray;
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
dither?: boolean;
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
frontFace?: GL.CW | GL.CCW;
|
|
175
175
|
|
|
176
|
-
|
|
176
|
+
mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
lineWidth?: number;
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
polygonOffsetFill?: boolean;
|
|
181
|
+
polygonOffset?: [number, number];
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
sampleCoverage?: [number, boolean];
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
scissorTest?: boolean;
|
|
186
|
+
scissor?: [number, number, number, number] | NumberArray;
|
|
187
187
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
stencilTest?: boolean;
|
|
189
|
+
stencilMask?: number | [number, number];
|
|
190
|
+
stencilFunc?: [GL_FUNCTION, number, number] | [GL_FUNCTION, number, number, GL_FUNCTION, number, number];
|
|
191
|
+
stencilOp?:
|
|
192
192
|
[GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP] |
|
|
193
193
|
[GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP];
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
viewport?: [number, number, number, number] | NumberArray;
|
|
195
|
+
};
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
export type GLParameters = GLValueParameters | GLFunctionStyleParameters;
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
2
|
+
import {isWebGL2} from '../context/context/webgl-checks';
|
|
3
|
+
import {ProgramBindings, AttributeBinding, UniformBinding, UniformBlockBinding, VaryingBinding} from './program-bindings'
|
|
4
|
+
import Accessor from '../classes/accessor';
|
|
5
|
+
import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Extract metadata describing binding information for a program's shaders
|
|
9
|
+
* Note: `linkProgram()` needs to have been called
|
|
10
|
+
* (although linking does not need to have been successful).
|
|
11
|
+
*/
|
|
12
|
+
export function getProgramBindings(gl: WebGL2RenderingContext, program: WebGLProgram): ProgramBindings {
|
|
13
|
+
const config: ProgramBindings = {
|
|
14
|
+
attributes: readAttributeBindings(gl, program),
|
|
15
|
+
uniforms: readUniformBindings(gl, program),
|
|
16
|
+
uniformBlocks: readUniformBlocks(gl, program),
|
|
17
|
+
varyings: readVaryings(gl, program)
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
Object.seal(config);
|
|
21
|
+
return config;
|
|
22
|
+
// generateWebGPUStyleBindings(bindings);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Extract info about all transform feedback varyings
|
|
28
|
+
*
|
|
29
|
+
* linkProgram needs to have been called, although linking does not need to have been successful
|
|
30
|
+
*/
|
|
31
|
+
function readAttributeBindings(gl: WebGL2RenderingContext, program: WebGLProgram): AttributeBinding[] {
|
|
32
|
+
const attributes: AttributeBinding[] = [];
|
|
33
|
+
|
|
34
|
+
const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
|
|
35
|
+
|
|
36
|
+
for (let index = 0; index < count; index++) {
|
|
37
|
+
const {name, type: compositeType, size} = gl.getActiveAttrib(program, index);
|
|
38
|
+
const location = gl.getAttribLocation(program, name);
|
|
39
|
+
// Add only user provided attributes, for built-in attributes like
|
|
40
|
+
// `gl_InstanceID` locaiton will be < 0
|
|
41
|
+
if (location >= 0) {
|
|
42
|
+
const {type, components} = decomposeCompositeGLType(compositeType);
|
|
43
|
+
const accessor = {type, size: size * components};
|
|
44
|
+
inferProperties(location, name, accessor);
|
|
45
|
+
|
|
46
|
+
const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values
|
|
47
|
+
attributes.push(attributeInfo);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
attributes.sort((a, b) => a.location - b.location);
|
|
52
|
+
return attributes;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Extract info about all transform feedback varyings
|
|
57
|
+
*
|
|
58
|
+
* linkProgram needs to have been called, although linking does not need to have been successful
|
|
59
|
+
*/
|
|
60
|
+
function readVaryings(gl: WebGL2RenderingContext, program: WebGLProgram): VaryingBinding[] {
|
|
61
|
+
if (!isWebGL2(gl)) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const varyings = [];
|
|
66
|
+
|
|
67
|
+
const count = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);
|
|
68
|
+
for (let location = 0; location < count; location++) {
|
|
69
|
+
const {name, type: compositeType, size} = gl.getTransformFeedbackVarying(program, location);
|
|
70
|
+
const {type, components} = decomposeCompositeGLType(compositeType);
|
|
71
|
+
const accessor = new Accessor({type, size: size * components});
|
|
72
|
+
const varying = {location, name, accessor}; // Base values
|
|
73
|
+
varyings.push(varying);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
varyings.sort((a, b) => a.location - b.location);
|
|
77
|
+
return varyings;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Extract info about all uniforms
|
|
82
|
+
*
|
|
83
|
+
* Query uniform locations and build name to setter map.
|
|
84
|
+
*/
|
|
85
|
+
function readUniformBindings(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBinding[] {
|
|
86
|
+
const uniforms: UniformBinding[] = [];
|
|
87
|
+
|
|
88
|
+
const uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
|
|
89
|
+
for (let i = 0; i < uniformCount; i++) {
|
|
90
|
+
const {name: rawName, size, type} = gl.getActiveUniform(program, i);
|
|
91
|
+
const {name, isArray} = parseUniformName(rawName);
|
|
92
|
+
let webglLocation = gl.getUniformLocation(program, name);
|
|
93
|
+
const uniformInfo = {
|
|
94
|
+
// WebGL locations are uniquely typed but just numbers
|
|
95
|
+
location: webglLocation as number,
|
|
96
|
+
name,
|
|
97
|
+
size,
|
|
98
|
+
type,
|
|
99
|
+
isArray
|
|
100
|
+
};
|
|
101
|
+
uniforms.push(uniformInfo);
|
|
102
|
+
|
|
103
|
+
// Array (e.g. matrix) uniforms can occupy several 4x4 byte banks
|
|
104
|
+
if (uniformInfo.size > 1) {
|
|
105
|
+
for (let j = 0; j < uniformInfo.size; j++) {
|
|
106
|
+
const elementName = `${name}[${j}]`;
|
|
107
|
+
|
|
108
|
+
webglLocation = gl.getUniformLocation(program, elementName);
|
|
109
|
+
|
|
110
|
+
const arrayElementUniformInfo = {
|
|
111
|
+
...uniformInfo,
|
|
112
|
+
name: elementName,
|
|
113
|
+
location: webglLocation as number
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
uniforms.push(arrayElementUniformInfo);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return uniforms;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Extract info about all "active" uniform blocks
|
|
125
|
+
*
|
|
126
|
+
* ("Active" just means that unused (aka inactive) blocks may have been
|
|
127
|
+
* optimized away during linking)
|
|
128
|
+
*/
|
|
129
|
+
function readUniformBlocks(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBlockBinding[] {
|
|
130
|
+
const getBlockParameter = (blockIndex, pname) => gl.getActiveUniformBlockParameter(program, blockIndex, pname);
|
|
131
|
+
|
|
132
|
+
const uniformBlocks: UniformBlockBinding[] = [];
|
|
133
|
+
|
|
134
|
+
const blockCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
|
|
135
|
+
for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
|
|
136
|
+
|
|
137
|
+
const blockInfo = {
|
|
138
|
+
name: gl.getActiveUniformBlockName(program, blockIndex),
|
|
139
|
+
location: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_BINDING),
|
|
140
|
+
byteLength: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
|
|
141
|
+
vertex: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
|
|
142
|
+
fragment: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
|
|
143
|
+
uniformCount: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
|
|
144
|
+
uniformIndices: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
|
|
145
|
+
uniforms: []
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
for (let uniformIndex = 0; uniformIndex < blockInfo.uniformCount; ++uniformIndex) {
|
|
149
|
+
// TODO - Can we extract more?
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
uniformBlocks.push(blockInfo);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
uniformBlocks.sort((a, b) => a.location - b.location);
|
|
156
|
+
return uniformBlocks;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const SAMPLER_UNIFORMS_GL_TO_GPU = {
|
|
160
|
+
[GL.SAMPLER_2D]: ['2d', 'float'],
|
|
161
|
+
[GL.SAMPLER_CUBE]: ['cube', 'float'],
|
|
162
|
+
[GL.SAMPLER_3D]: ['3d', 'float'],
|
|
163
|
+
[GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],
|
|
164
|
+
[GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],
|
|
165
|
+
[GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],
|
|
166
|
+
[GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],
|
|
167
|
+
[GL.INT_SAMPLER_2D]: ['2d', 'sint'],
|
|
168
|
+
[GL.INT_SAMPLER_3D]: ['3d', 'sint'],
|
|
169
|
+
[GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],
|
|
170
|
+
[GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint'],
|
|
171
|
+
[GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'sint'],
|
|
172
|
+
[GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'sint'],
|
|
173
|
+
[GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'sint'],
|
|
174
|
+
[GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint']
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Generate a list of "WebGPU-style" bindings for this program
|
|
179
|
+
*/
|
|
180
|
+
function generateWebGPUStyleBindings(config: ProgramBindings) {
|
|
181
|
+
const bindings: any = [];
|
|
182
|
+
|
|
183
|
+
// Uniform blocks
|
|
184
|
+
for (const blockInfo of config.uniformBlocks) {
|
|
185
|
+
bindings.push({
|
|
186
|
+
binding: blockInfo.location,
|
|
187
|
+
visibility: (blockInfo.vertex ? 0x1 : 0) & (blockInfo.fragment ? 0x2 : 0),
|
|
188
|
+
buffer: {
|
|
189
|
+
type: 'uniform',
|
|
190
|
+
// minBindingSize: blockInfo.size
|
|
191
|
+
}
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Sampler uniforms
|
|
196
|
+
for (const uniformInfo of config.uniforms) {
|
|
197
|
+
let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[uniformInfo.type];
|
|
198
|
+
if (sampler) {
|
|
199
|
+
const [viewDimension, sampleType] = sampler;
|
|
200
|
+
bindings.push({
|
|
201
|
+
binding: uniformInfo.location,
|
|
202
|
+
visibility: 0, // Not available in WebGL on individual uniforms?
|
|
203
|
+
texture: {
|
|
204
|
+
viewDimension,
|
|
205
|
+
sampleType
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// HELPERS
|
|
213
|
+
|
|
214
|
+
function parseUniformName(name) {
|
|
215
|
+
// Shortcut to avoid redundant or bad matches
|
|
216
|
+
if (name[name.length - 1] !== ']'){
|
|
217
|
+
return {
|
|
218
|
+
name,
|
|
219
|
+
length: 1,
|
|
220
|
+
isArray: false
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// if array name then clean the array brackets
|
|
225
|
+
const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
|
|
226
|
+
const matches = name.match(UNIFORM_NAME_REGEXP);
|
|
227
|
+
if (!matches || matches.length < 2) {
|
|
228
|
+
throw new Error(`Failed to parse GLSL uniform name ${name}`);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return {
|
|
232
|
+
name: matches[1],
|
|
233
|
+
length: matches[2] || 1,
|
|
234
|
+
isArray: Boolean(matches[2])
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Extract additional attribute metadata from shader names (based on attribute naming conventions)
|
|
239
|
+
function inferProperties(accessor, location, name) {
|
|
240
|
+
if (/instance/i.test(name)) {
|
|
241
|
+
// Any attribute containing the word "instance" will be assumed to be instanced
|
|
242
|
+
accessor.divisor = 1;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {Accessor} from '../types/accessor';
|
|
2
|
+
|
|
3
|
+
/** Describes an attribute binding for a program */
|
|
4
|
+
export type AttributeBinding = {
|
|
5
|
+
location: number;
|
|
6
|
+
name: string;
|
|
7
|
+
accessor: Accessor;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Describes a varying binding for a program */
|
|
11
|
+
export type VaryingBinding = {
|
|
12
|
+
location: number;
|
|
13
|
+
name: string;
|
|
14
|
+
accessor: Accessor;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Describes a uniform block binding for a program */
|
|
18
|
+
export type UniformBlockBinding = {
|
|
19
|
+
location: number;
|
|
20
|
+
name: string;
|
|
21
|
+
byteLength: number;
|
|
22
|
+
vertex: boolean;
|
|
23
|
+
fragment: boolean;
|
|
24
|
+
uniformCount: number;
|
|
25
|
+
uniformIndices: number[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Describes a uniform (sampler etc) binding for a program */
|
|
29
|
+
export type UniformBinding = {
|
|
30
|
+
location: number;
|
|
31
|
+
name: string;
|
|
32
|
+
size: number;
|
|
33
|
+
type: number;
|
|
34
|
+
isArray: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Holds metadata describing attribute configurations for a program's shaders
|
|
39
|
+
*/
|
|
40
|
+
export type ProgramBindings = {
|
|
41
|
+
readonly attributes: AttributeBinding[];
|
|
42
|
+
readonly varyings: VaryingBinding[];
|
|
43
|
+
readonly uniformBlocks: UniformBlockBinding[];
|
|
44
|
+
// Note - samplers are always in unform bindings, even if uniform blocks are used
|
|
45
|
+
readonly uniforms: UniformBinding[];
|
|
46
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
import './init';
|
|
9
9
|
|
|
10
10
|
// export type {WebGLDeviceProps, WebGLDeviceInfo, WebGPUDeviceLimits} from './lib/webgl-device';
|
|
11
|
-
export type {WebGLDeviceProps} from './
|
|
12
|
-
export {default as WebGLDevice, getWebGLDevice} from './
|
|
11
|
+
export type {WebGLDeviceProps} from './adapter/webgl-device';
|
|
12
|
+
export {default as WebGLDevice, getWebGLDevice} from './adapter/webgl-device';
|
|
13
13
|
|
|
14
14
|
// UTILS
|
|
15
15
|
export {requestAnimationFrame, cancelAnimationFrame} from './webgl-utils/request-animation-frame';
|
|
@@ -29,8 +29,6 @@ export {default as Texture2D} from './classes/texture-2d';
|
|
|
29
29
|
export type {TextureCubeProps} from './classes/texture-cube';
|
|
30
30
|
export {default as TextureCube} from './classes/texture-cube';
|
|
31
31
|
|
|
32
|
-
export type {ShaderProps} from './classes/webgl-shader';
|
|
33
|
-
export {Shader, VertexShader, FragmentShader} from './classes/webgl-shader';
|
|
34
32
|
export type {ProgramProps} from './classes/program';
|
|
35
33
|
export {default as Program} from './classes/program';
|
|
36
34
|
export type {FramebufferProps} from './classes/framebuffer';
|
|
@@ -38,6 +36,10 @@ export {default as Framebuffer} from './classes/framebuffer';
|
|
|
38
36
|
export type {RenderbufferProps} from './classes/renderbuffer';
|
|
39
37
|
export {default as Renderbuffer} from './classes/renderbuffer';
|
|
40
38
|
|
|
39
|
+
// Classic luma.gl classes (For backwards compatibility)
|
|
40
|
+
export type {ShaderProps} from './classes/shader';
|
|
41
|
+
export {Shader, VertexShader, FragmentShader} from './classes/shader';
|
|
42
|
+
|
|
41
43
|
export {clear, clearBuffer} from './classes/clear';
|
|
42
44
|
|
|
43
45
|
// Copy and Blit
|
|
@@ -63,6 +65,8 @@ export type {VertexArrayProps} from './classes/vertex-array';
|
|
|
63
65
|
export {default as VertexArray} from './classes/vertex-array';
|
|
64
66
|
export {default as UniformBufferLayout} from './classes/uniform-buffer-layout';
|
|
65
67
|
|
|
68
|
+
export {setDeviceParameters} from './adapter/converters/set-device-parameters';
|
|
69
|
+
|
|
66
70
|
// experimental WebGL exports
|
|
67
71
|
|
|
68
72
|
// UTILS
|
|
@@ -113,7 +117,6 @@ export {lumaStats} from './init';
|
|
|
113
117
|
export {log, assert, uid, isObjectEmpty} from '@luma.gl/api';
|
|
114
118
|
export {setPathPrefix, loadFile, loadImage} from '@luma.gl/api';
|
|
115
119
|
|
|
116
|
-
|
|
117
120
|
// export {
|
|
118
121
|
// getContextInfo, getGLContextInfo, getContextLimits,
|
|
119
122
|
// FEATURES,
|
|
@@ -121,7 +124,10 @@ export {setPathPrefix, loadFile, loadImage} from '@luma.gl/api';
|
|
|
121
124
|
// canCompileGLGSExtension
|
|
122
125
|
// } from '@luma.gl/gltools';
|
|
123
126
|
|
|
124
|
-
//
|
|
127
|
+
// HELPERS - EXPERIMENTAL
|
|
128
|
+
export {getProgramBindings} from './helpers/get-program-bindings';
|
|
129
|
+
|
|
130
|
+
// REMOVED in v8.7
|
|
125
131
|
// getShaderInfo,
|
|
126
132
|
// getShaderName
|
|
127
133
|
// getShaderVersion
|
package/src/init.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {log} from '@luma.gl/api';
|
|
2
2
|
import {isBrowser} from '@probe.gl/env';
|
|
3
3
|
import {luma, lumaStats} from '@luma.gl/api';
|
|
4
|
-
import WebGLDevice from './
|
|
4
|
+
import WebGLDevice from './adapter/webgl-device';
|
|
5
5
|
|
|
6
6
|
// Version detection using babel plugin
|
|
7
7
|
// @ts-expect-error
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ACCESSORS
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Attribute descriptor object
|
|
5
|
+
*/
|
|
6
|
+
export type Accessor = {
|
|
7
|
+
format?: string;
|
|
8
|
+
offset?: number;
|
|
9
|
+
location?: number;
|
|
10
|
+
|
|
11
|
+
// can now be described with single WebGPU-style `format` string
|
|
12
|
+
type?: number;
|
|
13
|
+
size?: number;
|
|
14
|
+
normalized?: boolean;
|
|
15
|
+
integer?: boolean;
|
|
16
|
+
|
|
17
|
+
// deprecated - now shared between accessors in the surrounding BufferAccessor object
|
|
18
|
+
stride?: number;
|
|
19
|
+
divisor?: number;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* List of attribute descriptors for one interleaved buffer
|
|
24
|
+
*/
|
|
25
|
+
export type BufferAccessors = {
|
|
26
|
+
stride?: number;
|
|
27
|
+
stepMode?: 'vertex' | 'instance';
|
|
28
|
+
attributes: Accessor[];
|
|
29
|
+
}
|