@zephyr3d/device 0.2.5 → 0.2.6
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/base_types.js +12 -13
- package/dist/base_types.js.map +1 -1
- package/dist/builder/ast.js +34 -48
- package/dist/builder/ast.js.map +1 -1
- package/dist/builder/base.js +6 -2
- package/dist/builder/base.js.map +1 -1
- package/dist/builder/builtinfunc.js +42 -6
- package/dist/builder/builtinfunc.js.map +1 -1
- package/dist/builder/constructors.js +2 -0
- package/dist/builder/constructors.js.map +1 -1
- package/dist/builder/errors.js +4 -4
- package/dist/builder/errors.js.map +1 -1
- package/dist/builder/misc.js +1 -1
- package/dist/builder/misc.js.map +1 -1
- package/dist/builder/programbuilder.js +18 -27
- package/dist/builder/programbuilder.js.map +1 -1
- package/dist/builder/reflection.js +1 -1
- package/dist/builder/reflection.js.map +1 -1
- package/dist/builder/types.js +7 -6
- package/dist/builder/types.js.map +1 -1
- package/dist/device.js +150 -39
- package/dist/device.js.map +1 -1
- package/dist/gpuobject.js +2 -1
- package/dist/gpuobject.js.map +1 -1
- package/dist/helpers/drawtext.js +29 -25
- package/dist/helpers/drawtext.js.map +1 -1
- package/dist/helpers/font.js.map +1 -1
- package/dist/helpers/glyphmanager.js +26 -8
- package/dist/helpers/glyphmanager.js.map +1 -1
- package/dist/helpers/textureatlas.js +7 -3
- package/dist/helpers/textureatlas.js.map +1 -1
- package/dist/index.d.ts +290 -266
- package/dist/pool.js +15 -6
- package/dist/pool.js.map +1 -1
- package/dist/timer.js +3 -2
- package/dist/timer.js.map +1 -1
- package/dist/uniformdata.js +1 -1
- package/dist/uniformdata.js.map +1 -1
- package/dist/vertexdata.js +2 -2
- package/dist/vertexdata.js.map +1 -1
- package/package.json +80 -80
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* Gets the variable which is the vertex attribute of specified semantic
|
|
43
43
|
* @param attrib - The vertex semantic
|
|
44
44
|
*/ attribute(attrib) {
|
|
45
|
-
return this._attribList[attrib]
|
|
45
|
+
return this._attribList[attrib] ?? null;
|
|
46
46
|
}
|
|
47
47
|
/** @internal */ setAttrib(attrib, exp) {
|
|
48
48
|
this._attribList[attrib] = exp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection.js","sources":["../../src/builder/reflection.ts"],"sourcesContent":["import type { PBGlobalScope, ProgramBuilder } from './programbuilder';\r\nimport type { PBShaderExp } from './base';\r\nimport type { VertexSemantic } from '../gpuobject';\r\n\r\n/**\r\n * Shader variable getter function type\r\n * @public\r\n */\r\nexport type PBReflectionTagGetter = (scope: PBGlobalScope) => PBShaderExp;\r\n\r\n/**\r\n * Reflection interface for program builder\r\n * @public\r\n */\r\nexport class PBReflection {\r\n /** @internal */\r\n private readonly _builder: ProgramBuilder;\r\n /** @internal */\r\n private _tagList: Record<string, PBReflectionTagGetter
|
|
1
|
+
{"version":3,"file":"reflection.js","sources":["../../src/builder/reflection.ts"],"sourcesContent":["import type { PBGlobalScope, ProgramBuilder } from './programbuilder';\r\nimport type { PBShaderExp } from './base';\r\nimport type { VertexSemantic } from '../gpuobject';\r\nimport type { Nullable } from '@zephyr3d/base';\r\n\r\n/**\r\n * Shader variable getter function type\r\n * @public\r\n */\r\nexport type PBReflectionTagGetter = (scope: PBGlobalScope) => PBShaderExp;\r\n\r\n/**\r\n * Reflection interface for program builder\r\n * @public\r\n */\r\nexport class PBReflection {\r\n /** @internal */\r\n private readonly _builder: ProgramBuilder;\r\n /** @internal */\r\n private _tagList: Partial<Record<string, PBReflectionTagGetter>>;\r\n /** @internal */\r\n private _attribList: Partial<Record<string, PBShaderExp>>;\r\n constructor(builder: ProgramBuilder) {\r\n this._builder = builder;\r\n this._tagList = {};\r\n this._attribList = {};\r\n }\r\n /** Gets all the vertex attributes that was used by the program */\r\n get vertexAttributes() {\r\n return this._builder.getVertexAttributes();\r\n }\r\n /**\r\n * Check if specified vertex attribute was used by the program\r\n * @param attrib - The vertex attribute to check\r\n */\r\n hasVertexAttribute(attrib: number) {\r\n return this.vertexAttributes.indexOf(attrib) >= 0;\r\n }\r\n /**\r\n * Clear all contents\r\n */\r\n clear() {\r\n this._tagList = {};\r\n this._attribList = {};\r\n }\r\n /**\r\n * Gets the variable that has tagged with given string\r\n * @param name - The tag string\r\n */\r\n tag(name: string): PBShaderExp;\r\n /**\r\n * Creates a new tag by specifying a function to get the tagged variable\r\n * @param name - The tag name\r\n * @param getter - The getter function\r\n */\r\n tag(name: string, getter: PBReflectionTagGetter): void;\r\n /**\r\n * Creates multiple tags from an object that contains the tag names and the getter functions\r\n * @param values - The object that contains the tag names and the getter functions\r\n */\r\n tag(values: Record<string, PBReflectionTagGetter>): void;\r\n tag(\r\n arg0: string | Record<string, PBReflectionTagGetter>,\r\n arg1?: PBReflectionTagGetter\r\n ): Nullable<PBShaderExp> | void {\r\n if (typeof arg0 === 'string') {\r\n if (arg1 === undefined) {\r\n return this.getTag(arg0);\r\n } else {\r\n this.addTag(arg0, arg1);\r\n }\r\n } else {\r\n for (const k of Object.keys(arg0)) {\r\n this.addTag(k, arg0[k]);\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the variable which is the vertex attribute of specified semantic\r\n * @param attrib - The vertex semantic\r\n */\r\n attribute(attrib: VertexSemantic) {\r\n return this._attribList[attrib] ?? null;\r\n }\r\n /** @internal */\r\n setAttrib(attrib: VertexSemantic, exp: PBShaderExp) {\r\n this._attribList[attrib] = exp;\r\n }\r\n /** @internal */\r\n private addTag(name: string, exp: PBReflectionTagGetter) {\r\n this._tagList[name] = exp;\r\n }\r\n /** @internal */\r\n private getTag(name: string) {\r\n const getter = this._tagList[name];\r\n return getter ? getter(this._builder.getGlobalScope()) : null;\r\n }\r\n}\r\n"],"names":["PBReflection","builder","_builder","_tagList","_attribList","vertexAttributes","getVertexAttributes","hasVertexAttribute","attrib","indexOf","clear","tag","arg0","arg1","undefined","getTag","addTag","k","Object","keys","attribute","setAttrib","exp","name","getter","getGlobalScope"],"mappings":"AAWA;;;AAGC,IACM,MAAMA,YAAAA,CAAAA;qBAEX,QAA0C;qBAE1C,QAAiE;qBAEjE,WAA0D;AAC1D,IAAA,WAAA,CAAYC,OAAuB,CAAE;QACnC,IAAI,CAACC,QAAQ,GAAGD,OAAAA;QAChB,IAAI,CAACE,QAAQ,GAAG,EAAC;QACjB,IAAI,CAACC,WAAW,GAAG,EAAC;AACtB;uEAEA,IAAIC,gBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAACH,QAAQ,CAACI,mBAAmB,EAAA;AAC1C;AACA;;;MAIAC,kBAAAA,CAAmBC,MAAc,EAAE;AACjC,QAAA,OAAO,IAAI,CAACH,gBAAgB,CAACI,OAAO,CAACD,MAAW,CAAA,IAAA,CAAA;AAClD;AACA;;AAEC,MACDE,KAAQ,GAAA;QACN,IAAI,CAACP,QAAQ,GAAG,EAAC;QACjB,IAAI,CAACC,WAAW,GAAG,EAAC;AACtB;IAiBAO,GACEC,CAAAA,IAAoD,EACpDC,IAA4B,EACE;QAC9B,IAAI,OAAOD,SAAS,QAAU,EAAA;AAC5B,YAAA,IAAIC,SAASC,SAAW,EAAA;gBACtB,OAAO,IAAI,CAACC,MAAM,CAACH,IAAAA,CAAAA;aACd,MAAA;gBACL,IAAI,CAACI,MAAM,CAACJ,IAAMC,EAAAA,IAAAA,CAAAA;AACpB;SACK,MAAA;AACL,YAAA,KAAK,MAAMI,CAAAA,IAAKC,MAAOC,CAAAA,IAAI,CAACP,IAAO,CAAA,CAAA;AACjC,gBAAA,IAAI,CAACI,MAAM,CAACC,CAAGL,EAAAA,IAAI,CAACK,CAAE,CAAA,CAAA;AACxB;AACF;AACF;AACA;;;MAIAG,SAAAA,CAAUZ,MAAsB,EAAE;AAChC,QAAA,OAAO,IAAI,CAACJ,WAAW,CAACI,OAAO,IAAI,IAAA;AACrC;AACA,qBACAa,SAAAA,CAAUb,MAAsB,EAAEc,GAAgB,EAAE;AAClD,QAAA,IAAI,CAAClB,WAAW,CAACI,MAAAA,CAAO,GAAGc,GAAAA;AAC7B;AACA,qBACA,MAAQN,CAAOO,IAAY,EAAED,GAA0B,EAAE;AACvD,QAAA,IAAI,CAACnB,QAAQ,CAACoB,IAAAA,CAAK,GAAGD,GAAAA;AACxB;AACA,qBACQP,MAAOQ,CAAAA,IAAY,EAAE;AAC3B,QAAA,MAAMC,MAAS,GAAA,IAAI,CAACrB,QAAQ,CAACoB,IAAK,CAAA;AAClC,QAAA,OAAOC,SAASA,MAAO,CAAA,IAAI,CAACtB,QAAQ,CAACuB,cAAc,EAAM,CAAA,GAAA,IAAA;AAC3D;AACF;;;;"}
|
package/dist/builder/types.js
CHANGED
|
@@ -841,6 +841,7 @@ const storageTexelFormatMap = {
|
|
|
841
841
|
return member.type.isAtomicI32() || member.type.isAtomicU32();
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
|
+
return false;
|
|
844
845
|
}
|
|
845
846
|
/**
|
|
846
847
|
* Creates a new struct type by extending this type
|
|
@@ -1014,7 +1015,7 @@ const storageTexelFormatMap = {
|
|
|
1014
1015
|
return this.detail.elementType.isHostSharable();
|
|
1015
1016
|
}
|
|
1016
1017
|
/** @internal */ isConstructible() {
|
|
1017
|
-
return this.dimension && this.detail.elementType.isConstructible();
|
|
1018
|
+
return !!this.dimension && this.detail.elementType.isConstructible();
|
|
1018
1019
|
}
|
|
1019
1020
|
/** @internal */ isStorable() {
|
|
1020
1021
|
return true;
|
|
@@ -1253,12 +1254,12 @@ const storageTexelFormatMap = {
|
|
|
1253
1254
|
constructor(textureType, texelFormat, readable, writable){
|
|
1254
1255
|
super(6, {
|
|
1255
1256
|
textureType: textureType,
|
|
1256
|
-
readable,
|
|
1257
|
-
writable,
|
|
1258
|
-
storageTexelFormat: texelFormat
|
|
1257
|
+
readable: readable ?? false,
|
|
1258
|
+
writable: writable ?? false,
|
|
1259
|
+
storageTexelFormat: texelFormat ?? null
|
|
1259
1260
|
});
|
|
1260
1261
|
ASSERT(!!textureTypeMapWGSL[textureType], 'unsupported texture type');
|
|
1261
|
-
ASSERT(!(textureType & BITFLAG_STORAGE) || !!storageTexelFormatMap
|
|
1262
|
+
ASSERT(!(textureType & BITFLAG_STORAGE) || !!texelFormat && texelFormat in storageTexelFormatMap, `invalid texel format for storage texture: ${texelFormat}`);
|
|
1262
1263
|
}
|
|
1263
1264
|
/** Get the texture type */ get textureType() {
|
|
1264
1265
|
return this.detail.textureType;
|
|
@@ -1328,7 +1329,7 @@ const storageTexelFormatMap = {
|
|
|
1328
1329
|
}
|
|
1329
1330
|
return varName ? `${varName}: ${typename}` : typename;
|
|
1330
1331
|
} else {
|
|
1331
|
-
const typename =
|
|
1332
|
+
const typename = deviceType === 'webgl' ? textureTypeMapWebGL[this.textureType] : textureTypeMapWebGL2[this.textureType];
|
|
1332
1333
|
ASSERT(!!typename, 'unsupported texture type');
|
|
1333
1334
|
return varName ? `${typename} ${varName}` : typename;
|
|
1334
1335
|
}
|