ris-framework 0.2.0-dev.13 → 0.2.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.
- package/CHANGELOG.md +4 -0
- package/README.md +6 -0
- package/dist/api/IFramework.d.ts +3 -3
- package/dist/api/IFramework.d.ts.map +1 -1
- package/dist/api/content/ContentManager.d.ts +2 -2
- package/dist/api/content/ContentManager.d.ts.map +1 -1
- package/dist/api/content/IContentManager.d.ts +2 -2
- package/dist/api/content/IContentManager.d.ts.map +1 -1
- package/dist/api/rendering/IRenderer.d.ts +11 -6
- package/dist/api/rendering/IRenderer.d.ts.map +1 -1
- package/dist/api/rendering/enums.d.ts +5 -5
- package/dist/api/rendering/enums.d.ts.map +1 -1
- package/dist/api/rendering/texture/ITextureDescriptor.d.ts +49 -0
- package/dist/api/rendering/texture/ITextureDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/texture/ITextureFactory.d.ts +2 -2
- package/dist/api/rendering/texture/ITextureFactory.d.ts.map +1 -1
- package/dist/api/rendering/texture/TextureUtilities.d.ts +22 -21
- package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
- package/dist/api/rendering/texture/_export-texture.d.ts +1 -1
- package/dist/api/rendering/texture/_export-texture.d.ts.map +1 -1
- package/dist/core/rendering/ARenderer.d.ts +3 -0
- package/dist/core/rendering/ARenderer.d.ts.map +1 -1
- package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts +14 -0
- package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts.map +1 -0
- package/dist/core/rendering/texture/texture.d.ts +3 -2
- package/dist/core/rendering/texture/texture.d.ts.map +1 -1
- package/dist/index.js +277 -290
- package/dist/webgl/texture/WebGlTexture2D.d.ts +3 -2
- package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTextureFactory.d.ts +2 -9
- package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -1
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts +3 -2
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -1
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +2 -2
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Framework.ts +2 -2
- package/src/api/IFramework.ts +3 -3
- package/src/api/content/ContentManager.ts +9 -7
- package/src/api/content/IContentManager.ts +2 -2
- package/src/api/rendering/IRenderer.ts +12 -6
- package/src/api/rendering/enums.ts +5 -5
- package/src/api/rendering/texture/ITextureDescriptor.ts +57 -0
- package/src/api/rendering/texture/ITextureFactory.ts +2 -2
- package/src/api/rendering/texture/TextureUtilities.ts +43 -61
- package/src/api/rendering/texture/_export-texture.ts +1 -1
- package/src/core/rendering/ARenderer.ts +6 -2
- package/src/core/rendering/texture/TextureDescriptorUtilities.ts +27 -0
- package/src/core/rendering/texture/texture.ts +2 -2
- package/src/main.ts +5 -4
- package/src/webgl/texture/WebGlTexture2D.ts +9 -8
- package/src/webgl/texture/WebGlTextureFactory.ts +50 -64
- package/src/webgl/utilities/WebGlErrorUtilities.ts +3 -2
- package/src/webgpu/texture/WebGpuTexture2D.ts +10 -9
- package/src/webgpu/texture/WebGpuTextureFactory.ts +19 -16
- package/dist/api/rendering/texture/TextureDescriptor.d.ts +0 -42
- package/dist/api/rendering/texture/TextureDescriptor.d.ts.map +0 -1
- package/src/api/rendering/texture/TextureDescriptor.ts +0 -52
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,7 @@ Compared with `main` (0.1.0).
|
|
|
16
16
|
- Materials take a `modelBuffer` owned by the mesh instead of `modelMatrix`, and `renderMesh` takes an `IRenderableMesh`.
|
|
17
17
|
- Render pipelines throw when no model buffer is passed.
|
|
18
18
|
- Requires `ris-ktx2` 0.2.
|
|
19
|
+
- `TextureDescriptor` class is replaced by the `ITextureDescriptor` interface; all fields are optional and factories fill in defaults.
|
|
19
20
|
|
|
20
21
|
### Added
|
|
21
22
|
|
|
@@ -26,11 +27,14 @@ Compared with `main` (0.1.0).
|
|
|
26
27
|
- OBJ/MTL loading through `framework.objLoader`, `ObjParser`, and `content.loadMeshAsync`, `loadUnlitMeshAsync` and `loadBlinnPhongMeshAsync`.
|
|
27
28
|
- `geometryBuilder.create(descriptor)` and the exported `BaseGeometry`.
|
|
28
29
|
- sRGB compressed texture formats (BC1, BC3, BC7, ETC2), with KTX2 loading choosing sRGB automatically.
|
|
30
|
+
- `ColorSpace` enum, the `textureColorSpace` configuration option (default `SRGB`) and `IRenderer.preferredColorSpace`.
|
|
31
|
+
- `TextureUtilities.convertToSrgbVariant`, `convertToLinearVariant` and `isSrgbFormat`.
|
|
29
32
|
- Examples: `unlit_mesh`, `blinn_phong_mesh` and `sprite_batch`.
|
|
30
33
|
|
|
31
34
|
### Changed
|
|
32
35
|
|
|
33
36
|
- `content.loadShaderModule` accepts optional replacement values.
|
|
37
|
+
- Textures without a format, and KTX2 textures, follow the configured color space.
|
|
34
38
|
|
|
35
39
|
### Fixed
|
|
36
40
|
|
package/README.md
CHANGED
|
@@ -103,8 +103,14 @@ const geometry = await framework.content.loadMeshAsync("/assets/cube.obj", Geome
|
|
|
103
103
|
```ts
|
|
104
104
|
const png = await framework.content.loadTexture2DAsync("/assets/test.png");
|
|
105
105
|
const ktx = await framework.content.loadTexture2DAsync("/assets/kodim23.ktx2");
|
|
106
|
+
|
|
107
|
+
// Optional descriptor: every field is optional, missing ones get defaults.
|
|
108
|
+
const desc: ITextureDescriptor = { generateMipmaps: true, textureFormat: TextureFormat.RGBA_8_UNORM };
|
|
109
|
+
const cat = await framework.content.loadTexture2DAsync("/assets/cat.jpg", desc);
|
|
106
110
|
```
|
|
107
111
|
|
|
112
|
+
Textures without a format use `RGBA_8_UNORM_SRGB` when `textureColorSpace` is `SRGB` (the default) and `RGBA_8_UNORM` when it is `LINEAR`.
|
|
113
|
+
|
|
108
114
|
Paths ending in `.ktx2` are loaded through `ris-ktx2`.
|
|
109
115
|
|
|
110
116
|
- **Basis Universal files** are transcoded to the best format the GPU supports, in this order: BC7, ASTC 4×4, BC3, ETC2, PVRTC, and RGBA8 as a last resort.
|
package/dist/api/IFramework.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ import type { IDisposable } from "./core/IDisposable.js";
|
|
|
23
23
|
import type { vec2 } from "gl-matrix";
|
|
24
24
|
import type { TextureSamplerFilteringPreset } from "../core/rendering/enums.js";
|
|
25
25
|
import type { PowerPreferenceType } from "./rendering/PowerPreference.js";
|
|
26
|
-
import type {
|
|
26
|
+
import type { ColorSpace } from "./rendering/enums.js";
|
|
27
27
|
/**
|
|
28
28
|
* The configuration for the framework.
|
|
29
29
|
* @public
|
|
@@ -35,8 +35,8 @@ export declare class IFrameworkConfiguration {
|
|
|
35
35
|
backBufferSize?: vec2;
|
|
36
36
|
/** The texture filtering to configure */
|
|
37
37
|
textureFiltering?: TextureSamplerFilteringPreset;
|
|
38
|
-
/** The texture color space to use by default. By default, it is {@link
|
|
39
|
-
textureColorSpace?:
|
|
38
|
+
/** The texture color space to use by default. By default, it is {@link ColorSpace.SRGB}. */
|
|
39
|
+
textureColorSpace?: ColorSpace;
|
|
40
40
|
/**
|
|
41
41
|
* The HTMLCanvasElement to use for rendering.
|
|
42
42
|
* If null, a new canvas will be created and added to the document body.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IFramework.d.ts","sourceRoot":"","sources":["../../src/api/IFramework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"IFramework.d.ts","sourceRoot":"","sources":["../../src/api/IFramework.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IShaderModule, type IContentManager, type IShaderModuleLoader, type ITexture2D, type IFramework,
|
|
1
|
+
import { type IShaderModule, type IContentManager, type IShaderModuleLoader, type ITexture2D, type IFramework, type ITextureDescriptor, ContentConfig, type IMesh, type IRenderableMesh, type GeometryFormat, type ICamera } from "../index.js";
|
|
2
2
|
import type { IKtx2Texture } from "ris-ktx2";
|
|
3
3
|
/**
|
|
4
4
|
* The content manager.
|
|
@@ -27,7 +27,7 @@ export declare class ContentManager implements IContentManager {
|
|
|
27
27
|
[id: string]: number;
|
|
28
28
|
}): IShaderModule;
|
|
29
29
|
/** @inheritDoc */
|
|
30
|
-
loadTexture2DAsync(path: string, textureDescriptor?:
|
|
30
|
+
loadTexture2DAsync(path: string, textureDescriptor?: ITextureDescriptor, contentConfig?: ContentConfig): Promise<ITexture2D>;
|
|
31
31
|
/** @inheritDoc */
|
|
32
32
|
loadTexture2DFromPixels(width: number, height: number, pixels: ArrayBuffer): ITexture2D;
|
|
33
33
|
/** @inheritDoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/ContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,
|
|
1
|
+
{"version":3,"file":"ContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/ContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EAEvB,aAAa,EAEb,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,OAAO,EAEf,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAI3C;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAU/B,OAAO,CAAC,QAAQ,CAAC,UAAU;aAA8B,kBAAkB,EAAE,mBAAmB;IARnH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IAEzE;;;;OAIG;gBACiC,UAAU,EAAE,UAAU,EAAkB,kBAAkB,EAAE,mBAAmB;IAGnH,kBAAkB;IACL,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiB9F;;;OAGG;IACI,OAAO,IAAI,IAAI;IAQtB,kBAAkB;IACX,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,aAAa;IAI7G,kBAAkB;IACL,kBAAkB,CAAC,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,aAAa,GAC1D,OAAO,CAAC,UAAU,CAAC;IAoCtB,kBAAkB;IACX,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU;IAK9F,kBAAkB;IACL,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAMxF,kBAAkB;IACX,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IASnF,kBAAkB;IACX,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;CAS1F"}
|
|
@@ -4,7 +4,7 @@ import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
|
4
4
|
import type { IShaderModuleLoader } from "../shader/IShaderModuleLoader.js";
|
|
5
5
|
import type { IShaderModule } from "../shader/IShaderModule.js";
|
|
6
6
|
import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
|
|
7
|
-
import {
|
|
7
|
+
import type { ITextureDescriptor } from "../rendering/texture/ITextureDescriptor.js";
|
|
8
8
|
import { ContentConfig } from "./ContentConfig.js";
|
|
9
9
|
import type { IKtx2Texture } from "ris-ktx2";
|
|
10
10
|
import type { IMesh } from "../meshes/IMesh.js";
|
|
@@ -39,7 +39,7 @@ export interface IContentManager {
|
|
|
39
39
|
* @param contentConfig - The content config.
|
|
40
40
|
* @returns The Texture2D.
|
|
41
41
|
*/
|
|
42
|
-
loadTexture2DAsync(path: string, desc?:
|
|
42
|
+
loadTexture2DAsync(path: string, desc?: ITextureDescriptor, contentConfig?: ContentConfig): Promise<ITexture2D>;
|
|
43
43
|
/**
|
|
44
44
|
* Loads a plain mesh (geometry and buffers only, no material or transform) from an OBJ (Wavefront) file,
|
|
45
45
|
* like C# `ContentManager.LoadMesh`. Materials (.mtl) are not loaded.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/IContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"IContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/IContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IAEjD;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3E;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE;QAAE,CAAC,EAAE,EAAC,MAAM,GAAG,MAAM,CAAA;KAAC,GAAG,aAAa,CAAC;IAEpG;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhH;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5E;;;;;;;OAOG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE7E;;;;;;;;OAQG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAEpF"}
|
|
@@ -5,7 +5,7 @@ import { RenderingBackend } from "./RenderingBackend.js";
|
|
|
5
5
|
import { vec2 } from "gl-matrix";
|
|
6
6
|
import type { PowerPreferenceType } from "./PowerPreference.js";
|
|
7
7
|
import type { TextureSamplerFilteringPreset } from "../../core/rendering/enums.js";
|
|
8
|
-
import type {
|
|
8
|
+
import type { ColorSpace } from "./enums.js";
|
|
9
9
|
/**
|
|
10
10
|
* The configuration for the renderer. This is used to initialize the renderer.
|
|
11
11
|
* @internal
|
|
@@ -24,7 +24,7 @@ export interface IRendererConfiguration {
|
|
|
24
24
|
*/
|
|
25
25
|
textureFiltering: TextureSamplerFilteringPreset;
|
|
26
26
|
/** The desired texture color space. */
|
|
27
|
-
textureColorSpace:
|
|
27
|
+
textureColorSpace: ColorSpace;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* The interface for a renderer.
|
|
@@ -36,12 +36,17 @@ export interface IRenderer {
|
|
|
36
36
|
*/
|
|
37
37
|
readonly graphicsDevice: IGraphicsDevice;
|
|
38
38
|
/**
|
|
39
|
-
* The preferred texture format.
|
|
40
|
-
*
|
|
41
|
-
* - {@link TextureFormat.}
|
|
42
|
-
* - {@link TextureFormat.}
|
|
39
|
+
* The preferred texture format, chosen from {@link IRendererConfiguration.textureColorSpace}.
|
|
40
|
+
* Textures that do not specify a texture format are created with it:
|
|
41
|
+
* - {@link TextureFormat.RGBA_8_UNORM_SRGB} when the color space is {@link ColorSpace.SRGB} (the default).
|
|
42
|
+
* - {@link TextureFormat.RGBA_8_UNORM} when the color space is {@link ColorSpace.LINEAR}.
|
|
43
43
|
*/
|
|
44
44
|
readonly preferredTextureFormat: TextureFormat;
|
|
45
|
+
/**
|
|
46
|
+
* The preferred texture color space, taken from {@link IRendererConfiguration.textureColorSpace}.
|
|
47
|
+
* Textures that do not specify a format are treated as being in this color space.
|
|
48
|
+
*/
|
|
49
|
+
readonly preferredColorSpace: ColorSpace;
|
|
45
50
|
/**
|
|
46
51
|
* The preferred depth stencil format.
|
|
47
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRenderer.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"IRenderer.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IAEnC,wCAAwC;IACxC,cAAc,EAAE,IAAI,CAAC;IAErB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IAEf,0GAA0G;IAC1G,eAAe,EAAE,mBAAmB,CAAC;IAErC;;;;OAIG;IACH,gBAAgB,EAAE,6BAA6B,CAAC;IAEhD,uCAAuC;IACvC,iBAAiB,EAAE,UAAU,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEtB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,2BAA2B,EAAE,aAAa,CAAC;IAEpD;;;OAGG;IACH,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC;;;;;;;OAOG;IACH,cAAc,EAAE,IAAI,CAAC;IAErB;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;OAEG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CACzB"}
|
|
@@ -15,11 +15,11 @@ export declare enum Culling {
|
|
|
15
15
|
*/
|
|
16
16
|
Front = 2
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
19
|
-
export declare enum
|
|
20
|
-
/**
|
|
18
|
+
/** The color space. */
|
|
19
|
+
export declare enum ColorSpace {
|
|
20
|
+
/** The linear color space. */
|
|
21
21
|
LINEAR = "LINEAR",
|
|
22
|
-
/**
|
|
23
|
-
SRGB = "
|
|
22
|
+
/** The sRGB color space. */
|
|
23
|
+
SRGB = "SRGB"
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=enums.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/enums.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,OAAO;IACf;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,KAAK,IAAA;CACR;AAED,
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/enums.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,OAAO;IACf;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,KAAK,IAAA;CACR;AAED,uBAAuB;AACvB,oBAAY,UAAU;IAElB,8BAA8B;IAC9B,MAAM,WAAW;IAEjB,4BAA4B;IAC5B,IAAI,SAAS;CAChB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { TextureFormat } from "./TextureFormat.js";
|
|
2
|
+
import type { TextureUsage } from "./TextureUsage.js";
|
|
3
|
+
import type { vec2 } from "gl-matrix";
|
|
4
|
+
/**
|
|
5
|
+
* The texture descriptor. Every field is optional; factories fill in the defaults for missing fields.
|
|
6
|
+
*/
|
|
7
|
+
export interface ITextureDescriptor {
|
|
8
|
+
/**
|
|
9
|
+
* The texture width.
|
|
10
|
+
* By default, it is 0.
|
|
11
|
+
*/
|
|
12
|
+
width?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The texture height.
|
|
15
|
+
* By default, it is 0.
|
|
16
|
+
*/
|
|
17
|
+
height?: number;
|
|
18
|
+
/**
|
|
19
|
+
* The texture format.
|
|
20
|
+
* By default, it is UNDEFINED.
|
|
21
|
+
*/
|
|
22
|
+
textureFormat?: TextureFormat;
|
|
23
|
+
/**
|
|
24
|
+
* The texture usage.
|
|
25
|
+
* By default, it is TEXTURE_BINDING | COPY_DST.
|
|
26
|
+
*/
|
|
27
|
+
textureUsage?: TextureUsage;
|
|
28
|
+
/**
|
|
29
|
+
* The texture label.
|
|
30
|
+
* By default, it is null.
|
|
31
|
+
*/
|
|
32
|
+
label?: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* The data per mip level.
|
|
35
|
+
* By default, it is undefined.
|
|
36
|
+
*/
|
|
37
|
+
data?: Uint8Array[];
|
|
38
|
+
/**
|
|
39
|
+
* Should mipmaps be generated.
|
|
40
|
+
* By default, it is false.
|
|
41
|
+
*/
|
|
42
|
+
generateMipmaps?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The block size of a texture, which must be set for compressed textures.
|
|
45
|
+
* By default, it is undefined.
|
|
46
|
+
*/
|
|
47
|
+
blockSize?: vec2;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=ITextureDescriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITextureDescriptor.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/ITextureDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB"}
|
|
@@ -2,7 +2,7 @@ import { Color } from "../../data/Color.js";
|
|
|
2
2
|
import { TextureUsage } from "./TextureUsage.js";
|
|
3
3
|
import { TextureFormat } from "./TextureFormat.js";
|
|
4
4
|
import type { ITexture2D } from "./ITexture2D.js";
|
|
5
|
-
import {
|
|
5
|
+
import type { ITextureDescriptor } from "./ITextureDescriptor.js";
|
|
6
6
|
import type { IKtx2Texture } from "ris-ktx2";
|
|
7
7
|
/**
|
|
8
8
|
* The texture factory.
|
|
@@ -37,6 +37,6 @@ export interface ITextureFactory {
|
|
|
37
37
|
* @param descriptor - The optional texture descriptor.
|
|
38
38
|
* @returns The 2D texture.
|
|
39
39
|
*/
|
|
40
|
-
createFromKtx2(ktxTexture: IKtx2Texture, descriptor?:
|
|
40
|
+
createFromKtx2(ktxTexture: IKtx2Texture, descriptor?: ITextureDescriptor): ITexture2D;
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=ITextureFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITextureFactory.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/ITextureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"ITextureFactory.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/ITextureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B;;;;;;;;OAQG;IACH,WAAW,CACP,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC7B,YAAY,CAAC,EAAE,KAAK,EACpB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,GAAG,eAAe,EACpD,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,YAAY,EACpB,aAAa,CAAC,EAAE,aAAa,EAC7B,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAE9C;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC;CACzF"}
|
|
@@ -11,27 +11,10 @@ export declare class TextureUtilities {
|
|
|
11
11
|
private static readonly _textureFormatVkFormat;
|
|
12
12
|
private static readonly _mapTextureFormatKtxTranscodeFormat;
|
|
13
13
|
private static readonly _mapKtxTranscodeFormatVkFormat;
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
static isSrgbFormat(format: TextureFormat): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Gets the sRGB variant of a linear format, or the format itself if it has none or is already sRGB.
|
|
21
|
-
* @param format The texture format.
|
|
22
|
-
*/
|
|
23
|
-
static toSrgbFormat(format: TextureFormat): TextureFormat;
|
|
24
|
-
/**
|
|
25
|
-
* Gets the linear variant of an sRGB format, or the format itself.
|
|
26
|
-
* @param format The texture format.
|
|
27
|
-
*/
|
|
28
|
-
static toLinearFormat(format: TextureFormat): TextureFormat;
|
|
29
|
-
/**
|
|
30
|
-
* Gets the block size (width, height) of a format: 1x1 for uncompressed, 4x4 for BC/ETC2, and the ASTC block.
|
|
31
|
-
* Returns null for formats it does not know.
|
|
32
|
-
* @param format The texture format.
|
|
33
|
-
*/
|
|
34
|
-
static getBlockSize(format: TextureFormat): [number, number] | null;
|
|
14
|
+
/** sRGB format → its linear variant. */
|
|
15
|
+
private static readonly _linearVariant;
|
|
16
|
+
/** Every sRGB format. */
|
|
17
|
+
private static readonly _srgbFormats;
|
|
35
18
|
/**
|
|
36
19
|
* Checks if the given texture format is a compressed texture format.
|
|
37
20
|
* @param format - The texture format to check.
|
|
@@ -73,5 +56,23 @@ export declare class TextureUtilities {
|
|
|
73
56
|
* @returns The VkFormat.
|
|
74
57
|
*/
|
|
75
58
|
static convertKtxTranscodeFormatToVkFormat(transcodeFormat: KtxTranscodeFormat): VkFormat;
|
|
59
|
+
/**
|
|
60
|
+
* Maps the linear format to the srgb variant.
|
|
61
|
+
* @param textureFormat The linear format.
|
|
62
|
+
* @return The srgb variant, or the format itself if it is already sRGB or has no sRGB variant (e.g. PVRTC).
|
|
63
|
+
*/
|
|
64
|
+
static convertToSrgbVariant(textureFormat: TextureFormat): TextureFormat;
|
|
65
|
+
/**
|
|
66
|
+
* Maps the srgb format to the linear variant.
|
|
67
|
+
* @param textureFormat The srgb format.
|
|
68
|
+
* @return The linear variant, or the format itself if it is already linear.
|
|
69
|
+
*/
|
|
70
|
+
static convertToLinearVariant(textureFormat: TextureFormat): TextureFormat;
|
|
71
|
+
/**
|
|
72
|
+
* Checks whether the texture format is an sRGB format.
|
|
73
|
+
* @param textureFormat The texture format to check.
|
|
74
|
+
* @return True if srgb texture format.
|
|
75
|
+
*/
|
|
76
|
+
static isSrgbFormat(textureFormat: TextureFormat): boolean;
|
|
76
77
|
}
|
|
77
78
|
//# sourceMappingURL=TextureUtilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAkD/C;IAEF,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAqBlC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAgD7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAsD5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAazD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF
|
|
1
|
+
{"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAkD/C;IAEF,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAqBlC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAgD7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAsD5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAazD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAEpC;IAEF,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiE;IAErG;;;;OAIG;WACW,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvE;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;;;OAOG;WACW,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9F;;;;OAIG;WACW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAQ/E;;;;OAIG;WACW,wCAAwC,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB;IAQxG;;;;OAIG;WACW,mCAAmC,CAAC,eAAe,EAAE,kBAAkB,GAAG,QAAQ;IAQhG;;;;OAIG;WACW,oBAAoB,CAAC,aAAa,EAAE,aAAa,GAAI,aAAa;IAIhF;;;;OAIG;WACW,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAI,aAAa;IAIlF;;;;OAIG;WACW,YAAY,CAAC,aAAa,EAAE,aAAa,GAAI,OAAO;CAGrE"}
|
|
@@ -5,6 +5,6 @@ export * from "./TextureViewDimension.js";
|
|
|
5
5
|
export * from "./TextureFormat.js";
|
|
6
6
|
export * from "./ITextureView.js";
|
|
7
7
|
export * from "./ITextureFactory.js";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./ITextureDescriptor.js";
|
|
9
9
|
export * from "./TextureUtilities.js";
|
|
10
10
|
//# sourceMappingURL=_export-texture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_export-texture.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/_export-texture.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"_export-texture.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/_export-texture.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { ITempRenderer } from "../../api/rendering/renderer-interface.js";
|
|
|
2
2
|
import type { vec2 } from "gl-matrix";
|
|
3
3
|
import type { RenderingLimits } from "../../api/rendering/rendering-limits.js";
|
|
4
4
|
import { Color, type IFramework, type IGraphicsDevice, type IMainRenderTargetRenderPipeline, type IRendererConfiguration, type IRenderPass, type ISwapChain, type ITexture2D, RenderingBackend, TextureFormat } from "../../api/index.js";
|
|
5
|
+
import { ColorSpace } from "../../api/rendering/enums.js";
|
|
5
6
|
export declare abstract class ARenderer implements ITempRenderer {
|
|
6
7
|
protected readonly _framework: IFramework;
|
|
7
8
|
/**
|
|
@@ -32,6 +33,8 @@ export declare abstract class ARenderer implements ITempRenderer {
|
|
|
32
33
|
get limits(): RenderingLimits | null;
|
|
33
34
|
/** @inheritdoc */
|
|
34
35
|
readonly preferredTextureFormat: TextureFormat;
|
|
36
|
+
/** @inheritDoc */
|
|
37
|
+
readonly preferredColorSpace: ColorSpace;
|
|
35
38
|
/** @inheritdoc */
|
|
36
39
|
get preferredDepthStencilFormat(): TextureFormat;
|
|
37
40
|
/** @inheritdoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ARenderer.d.ts","sourceRoot":"","sources":["../../../src/core/rendering/ARenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,2CAA2C,CAAC;AAC7E,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EACH,KAAK,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,+BAA+B,EAAE,KAAK,sBAAsB,EACjE,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,gBAAgB,EAKhB,aAAa,EAEhB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ARenderer.d.ts","sourceRoot":"","sources":["../../../src/core/rendering/ARenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ITextureDescriptor } from "../../../api/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* A texture descriptor with all defaults applied. Only `data` and `blockSize` stay optional.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export type ResolvedTextureDescriptor = Required<Omit<ITextureDescriptor, "data" | "blockSize">> & Pick<ITextureDescriptor, "data" | "blockSize">;
|
|
7
|
+
/**
|
|
8
|
+
* Fills in the defaults for every missing field of a texture descriptor.
|
|
9
|
+
* @param desc The descriptor, possibly partial or missing.
|
|
10
|
+
* @returns A new descriptor with the defaults applied.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveTextureDescriptor(desc?: ITextureDescriptor): ResolvedTextureDescriptor;
|
|
14
|
+
//# sourceMappingURL=TextureDescriptorUtilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextureDescriptorUtilities.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/TextureDescriptorUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,kBAAkB,EAA8B,MAAM,uBAAuB,CAAC;AAE3F;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GACjC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;AAE9G;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,yBAAyB,CAW7F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { type ITexture2D, type ITextureView, State, type
|
|
1
|
+
import { type ITexture2D, type ITextureView, State, type TextureFormat, TextureUsage, TextureViewDescriptor } from "../../../api/index.js";
|
|
2
2
|
import { vec2 } from "gl-matrix";
|
|
3
|
+
import type { ResolvedTextureDescriptor } from "./TextureDescriptorUtilities.js";
|
|
3
4
|
/**
|
|
4
5
|
* The ATexture2D class is an abstract base class that implements the ITexture2D interface. It provides common properties and a constructor for initializing a 2D texture, but it does not implement the actual texture creation and management logic, which must be provided by subclasses that extend this base class.
|
|
5
6
|
*/
|
|
@@ -17,7 +18,7 @@ export declare abstract class ATexture2D implements ITexture2D {
|
|
|
17
18
|
* The constructor for the ATexture2D class.
|
|
18
19
|
* @param descriptor - The texture descriptor.
|
|
19
20
|
*/
|
|
20
|
-
protected constructor(descriptor:
|
|
21
|
+
protected constructor(descriptor: ResolvedTextureDescriptor);
|
|
21
22
|
/** @inheritDoc */
|
|
22
23
|
addOnDisposedListener(event: (sender: ITexture2D) => void): void;
|
|
23
24
|
/** @inheritDoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAAE,KAAK,YAAY,EAClC,KAAK,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAAE,KAAK,YAAY,EAClC,KAAK,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,iCAAiC,CAAC;AAE/E;;GAEG;AACH,8BAAsB,UAAW,YAAW,UAAU;IAElD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAa;IAEnC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAiB;IACxC,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;IAE3B,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,CAAM;IAEjE;;;OAGG;IACH,SAAS,aACL,UAAU,EAAE,yBAAyB;IA4BzC,kBAAkB;IACX,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIvE,kBAAkB;IACX,wBAAwB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAS1E,kBAAkB;IAClB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,kBAAkB;IAClB,SAAgB,kBAAkB,EAAE,YAAY,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,kBAAkB;IAClB,SAAgB,iBAAiB,EAAE,aAAa,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,kBAAkB;IAClB,IAAW,YAAY,IAAI,KAAK,CAE/B;IAED,kBAAkB;IAClB,IAAW,MAAM,IAAI,GAAG,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,kBAAkB;IAClB,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,kBAAkB;IAClB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,kBAAkB;IAClB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,kBAAkB;IAClB,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;OAIG;aACa,UAAU,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,YAAY;IAE5E,kBAAkB;aACF,OAAO,IAAI,IAAI;CAClC"}
|