@luma.gl/webgl 9.0.0-alpha.21 → 9.0.0-alpha.24
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/dist/adapter/converters/device-parameters.d.ts +1 -1
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +9 -9
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +1 -1
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/texture-formats.d.ts +29 -40
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +152 -114
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/attribute-utils.js +1 -1
- package/dist/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-info.js.map +1 -1
- package/dist/adapter/helpers/uniforms.d.ts +7 -8
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
- package/dist/adapter/helpers/uniforms.js +4 -4
- package/dist/adapter/helpers/uniforms.js.map +1 -1
- package/dist/adapter/objects/constants-to-keys.d.ts +0 -2
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +0 -20
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +12 -9
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +29 -19
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +0 -1
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +4 -7
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +3 -2
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +13 -7
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +168 -25
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +3 -2
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +6 -2
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +11 -14
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +29 -79
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +16 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +80 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +5 -5
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +1 -1
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +43 -23
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +32 -30
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts +1 -2
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +13 -6
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +20 -2
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/buffer.d.ts +1 -2
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +0 -6
- package/dist/classic/buffer.js.map +1 -1
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +88 -0
- package/dist/classic/clear.js.map +1 -0
- package/dist/classic/copy-and-blit.d.ts +45 -0
- package/dist/classic/copy-and-blit.d.ts.map +1 -0
- package/dist/classic/copy-and-blit.js +136 -0
- package/dist/classic/copy-and-blit.js.map +1 -0
- package/dist/classic/format-utils.d.ts +3 -0
- package/dist/classic/format-utils.d.ts.map +1 -0
- package/dist/classic/format-utils.js +38 -0
- package/dist/classic/format-utils.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +15 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +1 -1
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/create-browser-context.d.ts +17 -19
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +4 -4
- package/dist/context/context/create-browser-context.js.map +1 -1
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -3
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +1 -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-parameter-tables.d.ts +2 -3
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/dist.dev.js +1306 -659
- package/dist/index.cjs +1269 -897
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist.min.js +22 -21
- package/package.json +7 -4
- package/src/adapter/converters/device-parameters.ts +46 -22
- package/src/adapter/converters/sampler-parameters.ts +1 -2
- package/src/adapter/converters/texture-formats.ts +242 -161
- package/src/adapter/helpers/attribute-utils.ts +1 -2
- package/src/adapter/helpers/get-shader-info.ts +3 -0
- package/src/adapter/helpers/uniforms.ts +9 -10
- package/src/adapter/objects/constants-to-keys.ts +0 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +32 -29
- package/src/adapter/objects/webgl-resource.ts +4 -8
- package/src/adapter/resources/webgl-buffer.ts +4 -5
- package/src/adapter/resources/webgl-command-buffer.ts +328 -21
- package/src/adapter/resources/webgl-command-encoder.ts +7 -2
- package/src/adapter/resources/webgl-framebuffer.ts +63 -111
- package/src/adapter/resources/webgl-render-pass.ts +146 -2
- package/src/adapter/resources/webgl-render-pipeline.ts +7 -4
- package/src/adapter/resources/webgl-sampler.ts +1 -2
- package/src/adapter/resources/webgl-texture.ts +61 -43
- package/src/adapter/webgl-canvas-context.ts +2 -2
- package/src/adapter/webgl-device.ts +37 -8
- package/src/classic/buffer.ts +3 -3
- package/src/classic/clear.ts +110 -0
- package/src/classic/copy-and-blit.ts +189 -0
- package/src/classic/format-utils.ts +43 -0
- package/src/classic/typed-array-utils.ts +15 -26
- package/src/context/context/create-browser-context.ts +37 -30
- package/src/context/parameters/unified-parameter-api.ts +1 -1
- package/src/context/parameters/webgl-parameter-tables.ts +2 -2
- package/src/index.ts +10 -3
- package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js +0 -180
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/types/webgl.d.ts +0 -145
- package/dist/types/webgl.d.ts.map +0 -1
- package/dist/types/webgl.js +0 -2
- package/dist/types/webgl.js.map +0 -1
- package/src/.DS_Store +0 -0
- package/src/adapter/.DS_Store +0 -0
- package/src/adapter/converters/renderbuffer-formats.ts +0 -90
- package/src/context/.DS_Store +0 -0
- package/src/types/webgl.ts +0 -286
|
@@ -1,19 +1,42 @@
|
|
|
1
1
|
import { Device, TextureProps, Sampler, SamplerProps, TypedArray } from '@luma.gl/api';
|
|
2
2
|
import { Texture } from '@luma.gl/api';
|
|
3
|
-
import GL from '@luma.gl/constants';
|
|
4
|
-
import type { GLSamplerParameters } from '../../types/webgl';
|
|
3
|
+
import { GL, GLSamplerParameters } from '@luma.gl/constants';
|
|
5
4
|
import { WebGLDevice } from '../webgl-device';
|
|
6
5
|
import { WEBGLSampler } from './webgl-sampler';
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export type WEBGLTextureProps = TextureProps & {
|
|
7
|
+
/** @deprecated use props.sampler */
|
|
8
|
+
parameters?: Record<number, number>;
|
|
9
|
+
/** @deprecated use props.data */
|
|
10
|
+
pixels?: any;
|
|
11
|
+
/** @deprecated use props.format */
|
|
12
|
+
dataFormat?: number | null;
|
|
13
|
+
/** @deprecated rarely supported */
|
|
14
|
+
border?: number;
|
|
15
|
+
/** @deprecated WebGL only. */
|
|
16
|
+
pixelStore?: object;
|
|
17
|
+
/** @deprecated WebGL only. */
|
|
18
|
+
textureUnit?: number;
|
|
19
|
+
/** @deprecated WebGL only. Use dimension. */
|
|
20
|
+
target?: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const DEFAULT_WEBGL_TEXTURE_PROPS: {
|
|
23
|
+
parameters: {};
|
|
24
|
+
pixelStore: {};
|
|
25
|
+
pixels: any;
|
|
26
|
+
border: number;
|
|
27
|
+
dataFormat: any;
|
|
28
|
+
textureUnit: any;
|
|
29
|
+
target: any;
|
|
30
|
+
};
|
|
31
|
+
export type TextureSourceData = TypedArray | ImageData | HTMLImageElement | HTMLCanvasElement | ImageBitmap | HTMLVideoElement;
|
|
32
|
+
type SetImageDataOptions = {
|
|
10
33
|
target?: number;
|
|
11
34
|
level?: number;
|
|
12
35
|
dataFormat?: any;
|
|
13
36
|
width?: number;
|
|
14
37
|
height?: number;
|
|
15
38
|
depth?: number;
|
|
16
|
-
|
|
39
|
+
glFormat?: GL;
|
|
17
40
|
type?: any;
|
|
18
41
|
offset?: number;
|
|
19
42
|
data: any;
|
|
@@ -44,14 +67,14 @@ declare type SetImageDataOptions = {
|
|
|
44
67
|
* @param {Number} offset - (WEBGL2) offset from start of buffer
|
|
45
68
|
* @parameters - temporary settings to be applied, can be used to supply pixel store settings.
|
|
46
69
|
*/
|
|
47
|
-
|
|
70
|
+
type SetSubImageDataOptions = {
|
|
48
71
|
target?: number;
|
|
49
72
|
level?: number;
|
|
50
73
|
dataFormat?: any;
|
|
51
74
|
width?: number;
|
|
52
75
|
height?: number;
|
|
53
76
|
depth?: number;
|
|
54
|
-
|
|
77
|
+
glFormat?: any;
|
|
55
78
|
type?: any;
|
|
56
79
|
offset?: number;
|
|
57
80
|
data: any;
|
|
@@ -62,7 +85,7 @@ declare type SetSubImageDataOptions = {
|
|
|
62
85
|
/** @deprecated */
|
|
63
86
|
pixels?: any;
|
|
64
87
|
};
|
|
65
|
-
|
|
88
|
+
type SetImageData3DOptions = {
|
|
66
89
|
level?: number;
|
|
67
90
|
dataFormat?: any;
|
|
68
91
|
width?: number;
|
|
@@ -74,18 +97,16 @@ declare type SetImageData3DOptions = {
|
|
|
74
97
|
data: any;
|
|
75
98
|
parameters?: Record<GL, any>;
|
|
76
99
|
};
|
|
77
|
-
export declare class WEBGLTexture extends Texture {
|
|
100
|
+
export declare class WEBGLTexture extends Texture<WEBGLTextureProps> {
|
|
78
101
|
static FACES: number[];
|
|
79
102
|
readonly MAX_ATTRIBUTES: number;
|
|
80
103
|
readonly device: WebGLDevice;
|
|
81
104
|
readonly gl: WebGLRenderingContext;
|
|
82
105
|
readonly gl2: WebGL2RenderingContext | null;
|
|
83
106
|
readonly handle: WebGLTexture;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
depth: number;
|
|
88
|
-
format: GL;
|
|
107
|
+
/** Sampler object (currently unused) */
|
|
108
|
+
sampler: WEBGLSampler;
|
|
109
|
+
glFormat: GL;
|
|
89
110
|
type: GL;
|
|
90
111
|
dataFormat: GL;
|
|
91
112
|
mipmaps: boolean;
|
|
@@ -100,8 +121,6 @@ export declare class WEBGLTexture extends Texture {
|
|
|
100
121
|
* */
|
|
101
122
|
target: GL;
|
|
102
123
|
textureUnit: number;
|
|
103
|
-
/** Sampler object (currently unused) */
|
|
104
|
-
sampler: WEBGLSampler;
|
|
105
124
|
/**
|
|
106
125
|
* Program.draw() checks the loaded flag of all textures to avoid
|
|
107
126
|
* Textures that are still loading from promises
|
|
@@ -113,11 +132,11 @@ export declare class WEBGLTexture extends Texture {
|
|
|
113
132
|
parameters: any;
|
|
114
133
|
lastTime: number;
|
|
115
134
|
};
|
|
116
|
-
constructor(device: Device, props:
|
|
135
|
+
constructor(device: Device, props: WEBGLTextureProps);
|
|
117
136
|
destroy(): void;
|
|
118
137
|
toString(): string;
|
|
119
|
-
initialize(props?:
|
|
120
|
-
initializeCube(props?:
|
|
138
|
+
initialize(props?: WEBGLTextureProps): this;
|
|
139
|
+
initializeCube(props?: WEBGLTextureProps): this;
|
|
121
140
|
setSampler(sampler?: Sampler | SamplerProps): this;
|
|
122
141
|
/**
|
|
123
142
|
* If size has changed, reinitializes with current format
|
|
@@ -137,7 +156,7 @@ export declare class WEBGLTexture extends Texture {
|
|
|
137
156
|
* Note: does not allocate storage
|
|
138
157
|
* Redefines an area of an existing texture
|
|
139
158
|
*/
|
|
140
|
-
setSubImageData({ target, pixels, data, x, y, width, height, level,
|
|
159
|
+
setSubImageData({ target, pixels, data, x, y, width, height, level, glFormat, type, dataFormat, compressed, offset, parameters }: SetSubImageDataOptions): void;
|
|
141
160
|
/**
|
|
142
161
|
* Defines a two-dimensional texture image or cube-map texture image with
|
|
143
162
|
* pixels from the current framebuffer (rather than from client memory).
|
|
@@ -157,13 +176,13 @@ export declare class WEBGLTexture extends Texture {
|
|
|
157
176
|
data: any;
|
|
158
177
|
dataType: string;
|
|
159
178
|
};
|
|
160
|
-
_deduceParameters(opts:
|
|
179
|
+
_deduceParameters(opts: WEBGLTextureProps): {
|
|
161
180
|
dataFormat: number;
|
|
162
181
|
type: number;
|
|
163
182
|
compressed: boolean;
|
|
164
183
|
width: number;
|
|
165
184
|
height: number;
|
|
166
|
-
format:
|
|
185
|
+
format: import("@luma.gl/api").TextureFormat;
|
|
167
186
|
data: string | HTMLVideoElement | import("@luma.gl/api").TextureData | Promise<import("@luma.gl/api").TextureData> | import("modules/api/dist/adapter/resources/texture").CubeTextureData;
|
|
168
187
|
};
|
|
169
188
|
_deduceImageSize(data: any, width: any, height: any): {
|
|
@@ -190,4 +209,5 @@ export declare class WEBGLTexture extends Texture {
|
|
|
190
209
|
/** @deprecated For LegacyTexture subclass */
|
|
191
210
|
protected _getWebGL1NPOTParameterOverride(pname: number, value: number): number;
|
|
192
211
|
}
|
|
212
|
+
export {};
|
|
193
213
|
//# sourceMappingURL=webgl-texture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,OAAO,EACP,YAAY,EAEZ,UAAU,EAEX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,OAAO,EAA6C,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import { isObjectEmpty } from '@luma.gl/api';
|
|
3
3
|
import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/api';
|
|
4
|
-
import GL from '@luma.gl/constants';
|
|
4
|
+
import { GL } from '@luma.gl/constants';
|
|
5
5
|
import { withParameters } from "../../context/state-tracker/with-parameters.js";
|
|
6
|
-
import {
|
|
6
|
+
import { convertTextureFormatToGL, getWebGLTextureParameters, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
|
|
7
7
|
import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from "../converters/sampler-parameters.js";
|
|
8
8
|
import { WEBGLBuffer } from "./webgl-buffer.js";
|
|
9
9
|
import { WEBGLSampler } from "./webgl-sampler.js";
|
|
10
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
11
|
+
parameters: {},
|
|
12
|
+
pixelStore: {},
|
|
13
|
+
pixels: null,
|
|
14
|
+
border: 0,
|
|
15
|
+
dataFormat: undefined,
|
|
16
|
+
textureUnit: undefined,
|
|
17
|
+
target: undefined
|
|
18
|
+
};
|
|
10
19
|
export class WEBGLTexture extends Texture {
|
|
11
20
|
constructor(device, props) {
|
|
12
21
|
var _this$props;
|
|
13
22
|
super(device, {
|
|
14
|
-
|
|
23
|
+
...DEFAULT_WEBGL_TEXTURE_PROPS,
|
|
24
|
+
format: 'rgba8unorm',
|
|
15
25
|
...props
|
|
16
26
|
});
|
|
17
27
|
_defineProperty(this, "MAX_ATTRIBUTES", void 0);
|
|
@@ -19,17 +29,13 @@ export class WEBGLTexture extends Texture {
|
|
|
19
29
|
_defineProperty(this, "gl", void 0);
|
|
20
30
|
_defineProperty(this, "gl2", void 0);
|
|
21
31
|
_defineProperty(this, "handle", void 0);
|
|
22
|
-
_defineProperty(this, "
|
|
23
|
-
_defineProperty(this, "
|
|
24
|
-
_defineProperty(this, "height", undefined);
|
|
25
|
-
_defineProperty(this, "depth", undefined);
|
|
26
|
-
_defineProperty(this, "format", undefined);
|
|
32
|
+
_defineProperty(this, "sampler", undefined);
|
|
33
|
+
_defineProperty(this, "glFormat", undefined);
|
|
27
34
|
_defineProperty(this, "type", undefined);
|
|
28
35
|
_defineProperty(this, "dataFormat", undefined);
|
|
29
36
|
_defineProperty(this, "mipmaps", undefined);
|
|
30
37
|
_defineProperty(this, "target", void 0);
|
|
31
38
|
_defineProperty(this, "textureUnit", undefined);
|
|
32
|
-
_defineProperty(this, "sampler", undefined);
|
|
33
39
|
_defineProperty(this, "loaded", false);
|
|
34
40
|
_defineProperty(this, "_video", void 0);
|
|
35
41
|
this.device = cast(device);
|
|
@@ -40,6 +46,7 @@ export class WEBGLTexture extends Texture {
|
|
|
40
46
|
...this.props,
|
|
41
47
|
data: typeof this.props.data
|
|
42
48
|
});
|
|
49
|
+
this.glFormat = GL.RGBA;
|
|
43
50
|
this.target = getWebGLTextureTarget(this.props);
|
|
44
51
|
this.loaded = false;
|
|
45
52
|
if (typeof ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
|
|
@@ -85,7 +92,6 @@ export class WEBGLTexture extends Texture {
|
|
|
85
92
|
} = props;
|
|
86
93
|
const {
|
|
87
94
|
pixels = null,
|
|
88
|
-
recreate = false,
|
|
89
95
|
pixelStore = {},
|
|
90
96
|
textureUnit = undefined
|
|
91
97
|
} = props;
|
|
@@ -103,6 +109,7 @@ export class WEBGLTexture extends Texture {
|
|
|
103
109
|
const {
|
|
104
110
|
depth = 0
|
|
105
111
|
} = props;
|
|
112
|
+
const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
|
|
106
113
|
({
|
|
107
114
|
width,
|
|
108
115
|
height,
|
|
@@ -118,11 +125,9 @@ export class WEBGLTexture extends Texture {
|
|
|
118
125
|
width,
|
|
119
126
|
height
|
|
120
127
|
}));
|
|
121
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
122
128
|
this.width = width;
|
|
123
129
|
this.height = height;
|
|
124
|
-
this.
|
|
125
|
-
this.format = format;
|
|
130
|
+
this.glFormat = glFormat;
|
|
126
131
|
this.type = type;
|
|
127
132
|
this.dataFormat = dataFormat;
|
|
128
133
|
this.textureUnit = textureUnit;
|
|
@@ -140,7 +145,7 @@ export class WEBGLTexture extends Texture {
|
|
|
140
145
|
width,
|
|
141
146
|
height,
|
|
142
147
|
depth,
|
|
143
|
-
format,
|
|
148
|
+
format: glFormat,
|
|
144
149
|
type,
|
|
145
150
|
dataFormat,
|
|
146
151
|
parameters: pixelStore,
|
|
@@ -151,9 +156,6 @@ export class WEBGLTexture extends Texture {
|
|
|
151
156
|
if (mipmaps) {
|
|
152
157
|
this.generateMipmap();
|
|
153
158
|
}
|
|
154
|
-
if (recreate) {
|
|
155
|
-
this.data = data;
|
|
156
|
-
}
|
|
157
159
|
if (isVideo) {
|
|
158
160
|
this._video = {
|
|
159
161
|
video: data,
|
|
@@ -245,7 +247,7 @@ export class WEBGLTexture extends Texture {
|
|
|
245
247
|
return this;
|
|
246
248
|
}
|
|
247
249
|
setImageData(options) {
|
|
248
|
-
if (this.props.dimension === '3d') {
|
|
250
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
249
251
|
return this.setImageData3D(options);
|
|
250
252
|
}
|
|
251
253
|
this.trackDeallocatedMemory('Texture');
|
|
@@ -253,7 +255,7 @@ export class WEBGLTexture extends Texture {
|
|
|
253
255
|
target = this.target,
|
|
254
256
|
pixels = null,
|
|
255
257
|
level = 0,
|
|
256
|
-
|
|
258
|
+
glFormat = this.glFormat,
|
|
257
259
|
offset = 0,
|
|
258
260
|
parameters = {}
|
|
259
261
|
} = options;
|
|
@@ -299,22 +301,22 @@ export class WEBGLTexture extends Texture {
|
|
|
299
301
|
withParameters(this.gl, parameters, () => {
|
|
300
302
|
switch (dataType) {
|
|
301
303
|
case 'null':
|
|
302
|
-
gl.texImage2D(target, level,
|
|
304
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
|
|
303
305
|
break;
|
|
304
306
|
case 'typed-array':
|
|
305
|
-
gl.texImage2D(target, level,
|
|
307
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data, offset);
|
|
306
308
|
break;
|
|
307
309
|
case 'buffer':
|
|
308
310
|
gl2 = this.device.assertWebGL2();
|
|
309
311
|
gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
|
|
310
|
-
gl2.texImage2D(target, level,
|
|
312
|
+
gl2.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, offset);
|
|
311
313
|
gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
|
|
312
314
|
break;
|
|
313
315
|
case 'browser-object':
|
|
314
316
|
if (this.device.isWebGL2) {
|
|
315
|
-
gl.texImage2D(target, level,
|
|
317
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
|
|
316
318
|
} else {
|
|
317
|
-
gl.texImage2D(target, level,
|
|
319
|
+
gl.texImage2D(target, level, glFormat, dataFormat, type, data);
|
|
318
320
|
}
|
|
319
321
|
break;
|
|
320
322
|
case 'compressed':
|
|
@@ -329,7 +331,7 @@ export class WEBGLTexture extends Texture {
|
|
|
329
331
|
if (data && data.byteLength) {
|
|
330
332
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
331
333
|
} else {
|
|
332
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
334
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
333
335
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
334
336
|
}
|
|
335
337
|
this.loaded = true;
|
|
@@ -345,7 +347,7 @@ export class WEBGLTexture extends Texture {
|
|
|
345
347
|
width = this.width,
|
|
346
348
|
height = this.height,
|
|
347
349
|
level = 0,
|
|
348
|
-
|
|
350
|
+
glFormat = this.glFormat,
|
|
349
351
|
type = this.type,
|
|
350
352
|
dataFormat = this.dataFormat,
|
|
351
353
|
compressed = false,
|
|
@@ -383,7 +385,7 @@ export class WEBGLTexture extends Texture {
|
|
|
383
385
|
this.gl.bindTexture(this.target, this.handle);
|
|
384
386
|
withParameters(this.gl, parameters, () => {
|
|
385
387
|
if (compressed) {
|
|
386
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
388
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
387
389
|
} else if (data === null) {
|
|
388
390
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
389
391
|
} else if (ArrayBuffer.isView(data)) {
|
|
@@ -486,7 +488,7 @@ export class WEBGLTexture extends Texture {
|
|
|
486
488
|
type,
|
|
487
489
|
compressed
|
|
488
490
|
} = opts;
|
|
489
|
-
const parameters = getWebGLTextureParameters(this.
|
|
491
|
+
const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
490
492
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
491
493
|
type = type || parameters.type;
|
|
492
494
|
compressed = compressed || parameters.compressed;
|
|
@@ -622,7 +624,7 @@ export class WEBGLTexture extends Texture {
|
|
|
622
624
|
} = options;
|
|
623
625
|
this.trackDeallocatedMemory('Texture');
|
|
624
626
|
this.gl.bindTexture(this.target, this.handle);
|
|
625
|
-
const webglTextureFormat = getWebGLTextureParameters(this.
|
|
627
|
+
const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
626
628
|
withParameters(this.gl, parameters, () => {
|
|
627
629
|
if (ArrayBuffer.isView(data)) {
|
|
628
630
|
this.gl.texImage3D(this.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
|
|
@@ -635,7 +637,7 @@ export class WEBGLTexture extends Texture {
|
|
|
635
637
|
if (data && data.byteLength) {
|
|
636
638
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
637
639
|
} else {
|
|
638
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
640
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
639
641
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
640
642
|
}
|
|
641
643
|
this.loaded = true;
|