@galacean/engine-rhi-webgl 0.9.2 → 0.9.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-rhi-webgl",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -15,11 +15,11 @@
15
15
  "types/**/*"
16
16
  ],
17
17
  "dependencies": {
18
- "@galacean/engine-core": "0.9.2",
19
- "@galacean/engine-math": "0.9.2"
18
+ "@galacean/engine-core": "0.9.3",
19
+ "@galacean/engine-math": "0.9.3"
20
20
  },
21
21
  "devDependencies": {
22
- "@galacean/engine-design": "0.9.2"
22
+ "@galacean/engine-design": "0.9.3"
23
23
  },
24
24
  "scripts": {
25
25
  "b:types": "tsc"
@@ -0,0 +1,16 @@
1
+ import { BufferBindFlag, BufferUsage, IPlatformBuffer, SetDataOptions } from "@galacean/engine-core";
2
+ import { WebGLGraphicDevice } from "./WebGLGraphicDevice";
3
+ export declare class GLBuffer implements IPlatformBuffer {
4
+ private _gl;
5
+ private _glBindTarget;
6
+ private _glBufferUsage;
7
+ private _glBuffer;
8
+ private _isWebGL2;
9
+ constructor(rhi: WebGLGraphicDevice, type: BufferBindFlag, byteLength: number, bufferUsage?: BufferUsage, data?: ArrayBuffer | ArrayBufferView);
10
+ bind(): void;
11
+ setData(byteLength: number, data: ArrayBuffer | ArrayBufferView, bufferByteOffset?: number, dataOffset?: number, dataLength?: number, options?: SetDataOptions): void;
12
+ getData(data: ArrayBufferView, bufferByteOffset?: number, dataOffset?: number, dataLength?: number): void;
13
+ resize(byteLength: number): void;
14
+ destroy(): void;
15
+ private _getGLBufferUsage;
16
+ }
@@ -0,0 +1,86 @@
1
+ import { BufferBindFlag, BufferUsage, CameraClearFlags, Canvas, Engine, GLCapabilityType, IHardwareRenderer, IPlatformBuffer, IPlatformRenderTarget, IPlatformTexture2D, IPlatformTextureCube, Mesh, RenderTarget, SubMesh, Texture2D, Texture2DArray, TextureCube } from "@galacean/engine-core";
2
+ import { IPlatformPrimitive } from "@galacean/engine-design";
3
+ import { Color, Vector4 } from "@galacean/engine-math";
4
+ import { GLCapability } from "./GLCapability";
5
+ import { GLRenderStates } from "./GLRenderStates";
6
+ import { GLTexture } from "./GLTexture";
7
+ import { GLTexture2DArray } from "./GLTexture2DArray";
8
+ import { WebGLExtension } from "./type";
9
+ /**
10
+ * WebGL mode.
11
+ */
12
+ export declare enum WebGLMode {
13
+ /** Auto, use WebGL2.0 if support, or will fallback to WebGL1.0. */
14
+ Auto = 0,
15
+ /** WebGL2.0. */
16
+ WebGL2 = 1,
17
+ /** WebGL1.0, */
18
+ WebGL1 = 2
19
+ }
20
+ /**
21
+ * WebGL graphic device options.
22
+ */
23
+ export interface WebGLGraphicDeviceOptions extends WebGLContextAttributes {
24
+ /** WebGL mode.*/
25
+ webGLMode?: WebGLMode;
26
+ }
27
+ /**
28
+ * WebGL graphic device, including WebGL1.0 and WebGL2.0.
29
+ */
30
+ export declare class WebGLGraphicDevice implements IHardwareRenderer {
31
+ private _options;
32
+ private _gl;
33
+ private _renderStates;
34
+ private _extensions;
35
+ private _capability;
36
+ private _isWebGL2;
37
+ private _renderer;
38
+ private _webCanvas;
39
+ private _activeTextureID;
40
+ private _activeTextures;
41
+ private _lastViewport;
42
+ private _lastScissor;
43
+ private _lastClearColor;
44
+ private _scissorEnable;
45
+ private _onDeviceLost;
46
+ private _onDeviceRestored;
47
+ get isWebGL2(): boolean;
48
+ get renderer(): string;
49
+ /**
50
+ * GL Context
51
+ * @member {WebGLRenderingContext}
52
+ */
53
+ get gl(): (WebGLRenderingContext & WebGLExtension) | WebGL2RenderingContext;
54
+ get renderStates(): GLRenderStates;
55
+ get capability(): GLCapability;
56
+ get canIUseMoreJoints(): boolean;
57
+ constructor(initializeOptions?: WebGLGraphicDeviceOptions);
58
+ init(canvas: Canvas, onDeviceLost: () => void, onDeviceRestored: () => void): void;
59
+ createPlatformPrimitive(primitive: Mesh): IPlatformPrimitive;
60
+ createPlatformTexture2D(texture2D: Texture2D): IPlatformTexture2D;
61
+ createPlatformTexture2DArray(texture2D: Texture2DArray): GLTexture2DArray;
62
+ createPlatformTextureCube(textureCube: TextureCube): IPlatformTextureCube;
63
+ createPlatformRenderTarget(target: RenderTarget): IPlatformRenderTarget;
64
+ createPlatformBuffer(type: BufferBindFlag, byteLength: number, bufferUsage?: BufferUsage, data?: ArrayBuffer | ArrayBufferView): IPlatformBuffer;
65
+ requireExtension(ext: any): any;
66
+ canIUse(capabilityType: GLCapabilityType): boolean;
67
+ canIUseCompressedTextureInternalFormat(type: number): boolean;
68
+ viewport(x: number, y: number, width: number, height: number): void;
69
+ scissor(x: number, y: number, width: number, height: number): void;
70
+ colorMask(r: boolean, g: boolean, b: boolean, a: boolean): void;
71
+ clearRenderTarget(engine: Engine, clearFlags: CameraClearFlags, clearColor: Color): void;
72
+ drawPrimitive(primitive: Mesh, subPrimitive: SubMesh, shaderProgram: any): void;
73
+ activeRenderTarget(renderTarget: RenderTarget, viewport: Vector4, mipLevel: number): void;
74
+ activeTexture(textureID: number): void;
75
+ bindTexture(texture: GLTexture): void;
76
+ setGlobalDepthBias(bias: number, slopeBias: number): void;
77
+ flush(): void;
78
+ forceLoseDevice(): void;
79
+ forceRestoreDevice(): void;
80
+ resetState(): void;
81
+ protected _initGLState(gl: (WebGLRenderingContext & WebGLExtension) | WebGL2RenderingContext): void;
82
+ destroy(): void;
83
+ private _onContextCreationError;
84
+ private _onWebGLContextLost;
85
+ private _onWebGLContextRestored;
86
+ }