@galacean/effects-webgl 1.2.0 → 2.0.0-alpha.0

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.
@@ -1,4 +1,4 @@
1
- import type { Disposable, GeometryProps, spec, Engine } from '@galacean/effects-core';
1
+ import type { Engine, GeometryData, GeometryProps, spec } from '@galacean/effects-core';
2
2
  import { Geometry } from '@galacean/effects-core';
3
3
  import type { GLGPUBufferProps } from './gl-gpu-buffer';
4
4
  import { GLGPUBuffer } from './gl-gpu-buffer';
@@ -7,7 +7,7 @@ import type { GLVertexArrayObject } from './gl-vertex-array-object';
7
7
  /**
8
8
  * 应用层 Geometry 对象,本身不直接保存 GPU 资源而是通过 geometryInternal 成员保存 GPU 资源
9
9
  */
10
- export declare class GLGeometry extends Geometry implements Disposable {
10
+ export declare class GLGeometry extends Geometry {
11
11
  /**
12
12
  * 索引缓冲区
13
13
  */
@@ -36,8 +36,7 @@ export declare class GLGeometry extends Geometry implements Disposable {
36
36
  private dirtyFlags;
37
37
  private attributesName;
38
38
  private destroyed;
39
- engine?: Engine;
40
- constructor(engine: Engine, props: GeometryProps);
39
+ constructor(engine: Engine, props?: GeometryProps);
41
40
  get isDestroyed(): boolean;
42
41
  get isInitialized(): boolean;
43
42
  getOptions(): {
@@ -63,7 +62,7 @@ export declare class GLGeometry extends Geometry implements Disposable {
63
62
  getAttributeData(name: string): spec.TypedArray | undefined;
64
63
  setAttributeSubData(name: string, offset: number, data: spec.TypedArray): void;
65
64
  getIndexData(): spec.TypedArray | undefined;
66
- setIndexData(data?: spec.TypedArray): void;
65
+ setIndexData(data: spec.TypedArray): void;
67
66
  setIndexSubData(offset: number, data: spec.TypedArray): void;
68
67
  getAttributeStride(name: string): number;
69
68
  getAttributeNames(): string[];
@@ -74,5 +73,7 @@ export declare class GLGeometry extends Geometry implements Disposable {
74
73
  private getAttributeBufferOption;
75
74
  createIndicesBuffer(pipelineContext: GLPipelineContext, data: spec.TypedArray): GLGPUBuffer;
76
75
  flush(): void;
76
+ private processProps;
77
+ fromData(data: GeometryData): void;
77
78
  dispose(): void;
78
79
  }
@@ -1,9 +1,9 @@
1
- import type { MaterialDestroyOptions, MaterialProps, MaterialStates, UndefinedAble, Texture, Engine, GlobalUniforms } from '@galacean/effects-core';
1
+ import type { MaterialDestroyOptions, MaterialProps, MaterialStates, UndefinedAble, Texture, GlobalUniforms, Renderer, MaterialData } from '@galacean/effects-core';
2
2
  import { Material, math } from '@galacean/effects-core';
3
3
  import { GLMaterialState } from './gl-material-state';
4
4
  import type { GLPipelineContext } from './gl-pipeline-context';
5
5
  import type { GLShader } from './gl-shader';
6
- import type { GLRenderer } from './gl-renderer';
6
+ type Color = math.Color;
7
7
  type Vector2 = math.Vector2;
8
8
  type Vector3 = math.Vector3;
9
9
  type Vector4 = math.Vector4;
@@ -13,24 +13,23 @@ type Quaternion = math.Quaternion;
13
13
  declare const Vector4: typeof math.Vector4, Matrix4: typeof math.Matrix4;
14
14
  export declare class GLMaterial extends Material {
15
15
  shader: GLShader;
16
- floats: Record<string, number>;
17
- ints: Record<string, number>;
18
- vector2s: Record<string, Vector2>;
19
- vector3s: Record<string, Vector3>;
20
- vector4s: Record<string, Vector4>;
21
- quaternions: Record<string, Quaternion>;
22
- matrices: Record<string, Matrix4>;
23
- matrice3s: Record<string, Matrix3>;
24
- textures: Record<string, Texture>;
25
- floatArrays: Record<string, number[]>;
26
- vector4Arrays: Record<string, number[]>;
27
- matrixArrays: Record<string, number[]>;
16
+ private floats;
17
+ private ints;
18
+ private vector2s;
19
+ private vector3s;
20
+ private vector4s;
21
+ private colors;
22
+ private quaternions;
23
+ private matrices;
24
+ private matrice3s;
25
+ private textures;
26
+ private floatArrays;
27
+ private vector4Arrays;
28
+ private matrixArrays;
28
29
  samplers: string[];
29
30
  uniforms: string[];
30
31
  uniformDirtyFlag: boolean;
31
32
  glMaterialState: GLMaterialState;
32
- private engine?;
33
- constructor(engine: Engine, props: MaterialProps);
34
33
  get blending(): UndefinedAble<boolean>;
35
34
  set blending(blending: UndefinedAble<boolean>);
36
35
  get blendColor(): UndefinedAble<[r: number, g: number, b: number, a: number]>;
@@ -83,7 +82,7 @@ export declare class GLMaterial extends Material {
83
82
  /**shader和texture的GPU资源初始化。 */
84
83
  initialize(): void;
85
84
  setupStates(pipelineContext: GLPipelineContext): void;
86
- use(renderer: GLRenderer, globalUniforms?: GlobalUniforms): void;
85
+ use(renderer: Renderer, globalUniforms?: GlobalUniforms): void;
87
86
  getFloat(name: string): number | null;
88
87
  setFloat(name: string, value: number): void;
89
88
  getInt(name: string): number | null;
@@ -96,6 +95,8 @@ export declare class GLMaterial extends Material {
96
95
  setVector3(name: string, value: Vector3): void;
97
96
  getVector4(name: string): Vector4 | null;
98
97
  setVector4(name: string, value: Vector4): void;
98
+ getColor(name: string): Color | null;
99
+ setColor(name: string, value: Color): void;
99
100
  getQuaternion(name: string): Quaternion | null;
100
101
  setQuaternion(name: string, value: Quaternion): void;
101
102
  getMatrix(name: string): Matrix4 | null;
@@ -110,6 +111,13 @@ export declare class GLMaterial extends Material {
110
111
  setTexture(name: string, texture: Texture): void;
111
112
  hasUniform(name: string): boolean;
112
113
  clone(props?: MaterialProps): Material;
114
+ fromData(data: MaterialData): void;
115
+ /**
116
+ * @since 2.0.0
117
+ * @param sceneData
118
+ * @returns
119
+ */
120
+ toData(): MaterialData;
113
121
  cloneUniforms(sourceMaterial: Material): void;
114
122
  private checkUniform;
115
123
  dispose(options?: MaterialDestroyOptions): void;
@@ -1,6 +1,7 @@
1
1
  import type { Disposable, Texture, math } from '@galacean/effects-core';
2
2
  import { GLShaderLibrary } from './gl-shader-library';
3
3
  import type { GLEngine } from './gl-engine';
4
+ type Color = math.Color;
4
5
  type Vector2 = math.Vector2;
5
6
  type Vector3 = math.Vector3;
6
7
  type Vector4 = math.Vector4;
@@ -304,6 +305,7 @@ export declare class GLPipelineContext implements Disposable {
304
305
  setVector2(uniform: Nullable<WebGLUniformLocation>, value: Vector2): void;
305
306
  setVector3(uniform: Nullable<WebGLUniformLocation>, value: Vector3): void;
306
307
  setVector4(uniform: Nullable<WebGLUniformLocation>, value: Vector4): void;
308
+ setColor(uniform: Nullable<WebGLUniformLocation>, value: Color): void;
307
309
  setQuaternion(uniform: Nullable<WebGLUniformLocation>, value: Quaternion): void;
308
310
  setVector4Array(uniform: Nullable<WebGLUniformLocation>, array: number[]): void;
309
311
  setMatrix(uniform: Nullable<WebGLUniformLocation>, value: Matrix4): void;
@@ -1,5 +1,5 @@
1
- import type { Disposable, FrameBuffer, Geometry, LostHandler, Material, Mesh, RenderFrame, RenderPass, RenderPassClearAction, RenderPassStoreAction, RestoreHandler, ShaderLibrary, math } from '@galacean/effects-core';
2
- import { Renderer, FilterMode, RenderTextureFormat } from '@galacean/effects-core';
1
+ import type { Disposable, FrameBuffer, Geometry, LostHandler, Material, RenderFrame, RenderPass, RenderPassClearAction, RenderPassStoreAction, RendererComponent, RestoreHandler, ShaderLibrary } from '@galacean/effects-core';
2
+ import { FilterMode, RenderTextureFormat, Renderer, math } from '@galacean/effects-core';
3
3
  import { ExtWrap } from './ext-wrap';
4
4
  import { GLContextManager } from './gl-context-manager';
5
5
  import { GLPipelineContext } from './gl-pipeline-context';
@@ -19,7 +19,7 @@ export declare class GLRenderer extends Renderer implements Disposable {
19
19
  get width(): number;
20
20
  renderRenderFrame(renderFrame: RenderFrame): void;
21
21
  renderRenderPass(pass: RenderPass): void;
22
- renderMeshes(meshes: Mesh[]): void;
22
+ renderMeshes(meshes: RendererComponent[]): void;
23
23
  setGlobalFloat(name: string, value: number): void;
24
24
  setGlobalInt(name: string, value: number): void;
25
25
  setGlobalMatrix(name: string, value: Matrix4): void;
@@ -2,6 +2,7 @@ import type { ShaderCompileResult, ShaderWithSource, Texture, Engine, math } fro
2
2
  import { Shader } from '@galacean/effects-core';
3
3
  import type { GLProgram } from './gl-program';
4
4
  import type { GLPipelineContext } from './gl-pipeline-context';
5
+ type Color = math.Color;
5
6
  type Vector2 = math.Vector2;
6
7
  type Vector3 = math.Vector3;
7
8
  type Vector4 = math.Vector4;
@@ -16,7 +17,7 @@ export declare class GLShader extends Shader {
16
17
  initialized: boolean;
17
18
  uniformLocations: Record<string, WebGLUniformLocation | null>;
18
19
  private samplerChannels;
19
- constructor(source: ShaderWithSource);
20
+ constructor(engine: Engine, source: ShaderWithSource);
20
21
  initialize(engine: Engine): void;
21
22
  setFloat(name: string, value: number): void;
22
23
  setInt(name: string, value: number): void;
@@ -25,12 +26,14 @@ export declare class GLShader extends Shader {
25
26
  setVector2(name: string, value: Vector2): void;
26
27
  setVector3(name: string, value: Vector3): void;
27
28
  setVector4(name: string, value: Vector4): void;
29
+ setColor(name: string, value: Color): void;
28
30
  setQuaternion(name: string, value: Quaternion): void;
29
31
  setMatrix(name: string, value: Matrix4): void;
30
32
  setMatrix3(name: string, value: Matrix3): void;
31
33
  setVector4Array(name: string, array: number[]): void;
32
34
  setMatrixArray(name: string, array: number[]): void;
33
35
  fillShaderInformation(uniformNames: string[], samplers: string[]): void;
36
+ toData(): void;
34
37
  dispose(): void;
35
38
  }
36
39
  export {};
@@ -5,7 +5,7 @@ export declare class GLTexture extends Texture implements Disposable, RestoreHan
5
5
  target: GLenum;
6
6
  private pipelineContext;
7
7
  private initialized;
8
- constructor(engine: Engine, source: TextureSourceOptions);
8
+ constructor(engine: Engine, source?: TextureSourceOptions);
9
9
  /** 绑定当前Texture对象。*/
10
10
  bind(force?: boolean): void;
11
11
  /** 初始化Texture的GPU资源。*/
@@ -14,6 +14,7 @@ export declare class GLTexture extends Texture implements Disposable, RestoreHan
14
14
  release(): void;
15
15
  update(sourceOptions: TextureSourceOptions): void;
16
16
  setTextureFilters(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, options: TextureConfigOptions): void;
17
+ fromData(data: any): void;
17
18
  private texImage2D;
18
19
  private texImage2DData;
19
20
  private resizeImage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/effects-webgl",
3
- "version": "1.2.0",
3
+ "version": "2.0.0-alpha.0",
4
4
  "description": "Galacean Effects runtime webgl for the web",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
@@ -38,7 +38,7 @@
38
38
  "registry": "https://registry.npmjs.org"
39
39
  },
40
40
  "dependencies": {
41
- "@galacean/effects-core": "1.2.0"
41
+ "@galacean/effects-core": "2.0.0-alpha.0"
42
42
  },
43
43
  "scripts": {
44
44
  "prebuild": "pnpm clean",