@swf2es/context3d 0.1.19 → 0.1.20

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/backend.d.ts CHANGED
@@ -26,9 +26,40 @@ export declare const SAMPLER_FILTERS: readonly ["nearest", "linear", "anisotropi
26
26
  export type SamplerFilter = (typeof SAMPLER_FILTERS)[number];
27
27
  export declare const SAMPLER_MIPS: readonly ["mipnone", "mipnearest", "miplinear"];
28
28
  export type SamplerMip = (typeof SAMPLER_MIPS)[number];
29
- /** The texture formats a backend stores: BGRA, and S3TC's DXT1 and DXT5 as Flash calls them. */
30
- export declare const TEXTURE_FORMATS: readonly ["bgra", "compressed", "compressedAlpha"];
29
+ /**
30
+ * The texture formats a backend stores: BGRA, S3TC's DXT1 and DXT5 as Flash calls them,
31
+ * 16-bit 5:6:5 colour and 4:4:4:4 colour with alpha, and RGBA in half floats.
32
+ */
33
+ export declare const TEXTURE_FORMATS: readonly ["bgra", "compressed", "compressedAlpha", "bgrPacked565", "bgraPacked4444", "rgbaHalfFloat"];
31
34
  export type TextureFormat = (typeof TEXTURE_FORMATS)[number];
35
+ /** Bytes a texel of each uncompressed format takes, as its byte uploads give it. */
36
+ export declare const TEXEL_BYTES: Partial<Record<TextureFormat, number>>;
37
+ /** Whether a format holds S3TC blocks, which no draw renders into. */
38
+ export declare function compressedFormat(format: TextureFormat): boolean;
39
+ /** Stage3D's profiles, from what the least GPU does to the most. */
40
+ export declare const PROFILES: readonly ["baselineConstrained", "baseline", "baselineExtended", "standardConstrained", "standard", "standardExtended"];
41
+ export type Profile = (typeof PROFILES)[number];
42
+ /** What a profile allows, as AIR 51 grants it on a desktop GPU (docs/architecture/rendering.md). */
43
+ export interface ProfileLimits {
44
+ /** The newest AGAL version its programs may be. */
45
+ readonly agal: number;
46
+ /** The widest and tallest Texture. */
47
+ readonly textureSize: number;
48
+ /** The widest and tallest RectangleTexture, 0 where the profile has none. */
49
+ readonly rectangleSize: number;
50
+ /** Whether it creates rgbaHalfFloat textures. */
51
+ readonly halfFloat: boolean;
52
+ /** How many textures a draw renders into at once. */
53
+ readonly colorOutputs: number;
54
+ }
55
+ export declare function profileLimits(profile: Profile): ProfileLimits;
56
+ /** Cube faces are at most this wide in every profile. */
57
+ export declare const MOST_CUBE = 1024;
58
+ /** Sampler, vertex attribute and constant registers a context holds in every profile. */
59
+ export declare const SAMPLER_SLOTS = 16;
60
+ export declare const VERTEX_SLOTS = 16;
61
+ export declare const VERTEX_CONSTANTS = 250;
62
+ export declare const FRAGMENT_CONSTANTS = 200;
32
63
  export declare const VERTEX_FORMATS: readonly ["float1", "float2", "float3", "float4", "bytes4"];
33
64
  export type VertexFormat = (typeof VERTEX_FORMATS)[number];
34
65
  export declare class VertexOffsetError extends Error {
@@ -52,6 +83,10 @@ export interface Buffer3D {
52
83
  dispose(): void;
53
84
  }
54
85
  export interface Program3D {
86
+ /** The colour outputs its fragment program writes, 1 to 4; 1 before an upload. */
87
+ readonly outputs: number;
88
+ /** The vertex attributes it reads, a bit each; 0 before an upload. */
89
+ readonly attributes: number;
55
90
  upload(vertex: Uint8Array, fragment: Uint8Array): void;
56
91
  dispose(): void;
57
92
  }
@@ -88,6 +123,11 @@ export interface Context3DLifecycle {
88
123
  /** Loss callbacks are asynchronous. Keep the lost surface until remove(), including
89
124
  * its restoration listener; remove() must detach both listeners before releasing it. */
90
125
  export interface Stage3DHost {
126
+ /**
127
+ * What a request waits for before create(): a host that loads its backend at the first
128
+ * request gives the load, null once loaded. A rejection makes the context unavailable (#3702).
129
+ */
130
+ ready?(): Promise<unknown> | null;
91
131
  create(slot: number, lifecycle: Context3DLifecycle): Context3D;
92
132
  place(slot: number, x: number, y: number, visible: boolean): void;
93
133
  remove(slot: number): void;
@@ -101,6 +141,8 @@ export interface Context3D {
101
141
  * format (TextureBindingError "format"): AIR checks from SWF 17 on.
102
142
  */
103
143
  samplerFormats: boolean;
144
+ /** The profile it was made for: what its programs, textures and targets may be. */
145
+ profile: Profile;
104
146
  /** Optional acceleration for pixels uploaded to compressed textures. */
105
147
  setDxtEncoder?(encoder: DxtEncoder): void;
106
148
  /**
@@ -125,9 +167,14 @@ export interface Context3D {
125
167
  createProgram(): Program3D;
126
168
  /** `streaming` from 0 to the texture's levels less one. */
127
169
  createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat, streaming?: number): Texture3D;
128
- createRectangleTexture(width: number, height: number): Texture3D;
170
+ createRectangleTexture(width: number, height: number, format?: TextureFormat): Texture3D;
129
171
  /** Level-zero target; face selects a cube surface. Null resumes the back buffer. */
130
172
  setRenderTarget(texture: Texture3D | null, depth?: boolean, face?: number, antiAlias?: number): void;
173
+ /**
174
+ * Colour output `index`, 1 to 3, draws into `texture` (`face` of a cube) beside
175
+ * setRenderTarget's; null stops it. The texture's size and format are the target's.
176
+ */
177
+ setColorOutput(index: number, texture: Texture3D | null, face?: number): void;
131
178
  setSampler(index: number, wrap: SamplerWrap, filter: SamplerFilter, mip: SamplerMip): void;
132
179
  setTexture(index: number, texture: Texture3D | null): void;
133
180
  setProgram(program: Program3D): void;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/backend.js CHANGED
@@ -58,8 +58,80 @@ export const SAMPLER_FILTERS = [
58
58
  "anisotropic16x",
59
59
  ];
60
60
  export const SAMPLER_MIPS = ["mipnone", "mipnearest", "miplinear"];
61
- /** The texture formats a backend stores: BGRA, and S3TC's DXT1 and DXT5 as Flash calls them. */
62
- export const TEXTURE_FORMATS = ["bgra", "compressed", "compressedAlpha"];
61
+ /**
62
+ * The texture formats a backend stores: BGRA, S3TC's DXT1 and DXT5 as Flash calls them,
63
+ * 16-bit 5:6:5 colour and 4:4:4:4 colour with alpha, and RGBA in half floats.
64
+ */
65
+ export const TEXTURE_FORMATS = [
66
+ "bgra",
67
+ "compressed",
68
+ "compressedAlpha",
69
+ "bgrPacked565",
70
+ "bgraPacked4444",
71
+ "rgbaHalfFloat",
72
+ ];
73
+ /** Bytes a texel of each uncompressed format takes, as its byte uploads give it. */
74
+ export const TEXEL_BYTES = {
75
+ bgra: 4,
76
+ bgrPacked565: 2,
77
+ bgraPacked4444: 2,
78
+ rgbaHalfFloat: 8,
79
+ };
80
+ /** Whether a format holds S3TC blocks, which no draw renders into. */
81
+ export function compressedFormat(format) {
82
+ return format === "compressed" || format === "compressedAlpha";
83
+ }
84
+ /** Stage3D's profiles, from what the least GPU does to the most. */
85
+ export const PROFILES = [
86
+ "baselineConstrained",
87
+ "baseline",
88
+ "baselineExtended",
89
+ "standardConstrained",
90
+ "standard",
91
+ "standardExtended",
92
+ ];
93
+ const LIMITS = {
94
+ baselineConstrained: {
95
+ agal: 1,
96
+ textureSize: 2048,
97
+ rectangleSize: 0,
98
+ halfFloat: false,
99
+ colorOutputs: 1,
100
+ },
101
+ baseline: { agal: 1, textureSize: 2048, rectangleSize: 2048, halfFloat: false, colorOutputs: 1 },
102
+ baselineExtended: {
103
+ agal: 1,
104
+ textureSize: 4096,
105
+ rectangleSize: 4096,
106
+ halfFloat: false,
107
+ colorOutputs: 1,
108
+ },
109
+ standardConstrained: {
110
+ agal: 2,
111
+ textureSize: 4096,
112
+ rectangleSize: 4096,
113
+ halfFloat: true,
114
+ colorOutputs: 1,
115
+ },
116
+ standard: { agal: 2, textureSize: 4096, rectangleSize: 4096, halfFloat: true, colorOutputs: 4 },
117
+ standardExtended: {
118
+ agal: 3,
119
+ textureSize: 4096,
120
+ rectangleSize: 4096,
121
+ halfFloat: true,
122
+ colorOutputs: 4,
123
+ },
124
+ };
125
+ export function profileLimits(profile) {
126
+ return LIMITS[profile];
127
+ }
128
+ /** Cube faces are at most this wide in every profile. */
129
+ export const MOST_CUBE = 1024;
130
+ /** Sampler, vertex attribute and constant registers a context holds in every profile. */
131
+ export const SAMPLER_SLOTS = 16;
132
+ export const VERTEX_SLOTS = 16;
133
+ export const VERTEX_CONSTANTS = 250;
134
+ export const FRAGMENT_CONSTANTS = 200;
63
135
  export const VERTEX_FORMATS = ["float1", "float2", "float3", "float4", "bytes4"];
64
136
  export class VertexOffsetError extends Error {
65
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,KAAa;IACxD,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IAE3B,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ;IACR,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,UAAU;IACV,cAAc;IACd,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,MAAM;IACN,KAAK;IACL,mBAAmB;IACnB,mBAAmB;IACnB,QAAQ;IACR,eAAe;IACf,eAAe;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM;IACN,KAAK;IACL,aAAa;IACb,qBAAqB;IACrB,aAAa;IACb,qBAAqB;IACrB,kBAAkB;IAClB,0BAA0B;IAC1B,kBAAkB;IAClB,0BAA0B;CAClB,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAU,CAAC;AAElG,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS;IACT,QAAQ;IACR,eAAe;IACf,eAAe;IACf,eAAe;IACf,gBAAgB;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAU,CAAC;AAG5E,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAU,CAAC;AAGlF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG1F,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,MAAM,CAWC;IAEhB,gDAAgD;IACvC,OAAO,CAAS;IAEzB,YAAY,MAAqC,EAAE,OAAO,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Backend failures stay independent of the API that exposes them to content. */
2
- export type Context3DErrorReason = "disposed" | "backBuffer" | "limit" | "bufferAllocation" | "textureAllocation" | "nativeShader" | "program" | "indexBuffer" | "indexData" | "vertexBinding" | "vertexStream" | "vertexData" | "drawRange" | "triangleCount" | "textureSize" | "compressedSize" | "textureShape" | "texturePowerOfTwo" | "textureUpload" | "range" | "operation" | "unsupported" | "agalLength" | "agalMagic" | "agalVersion" | "agalStageMarker" | "agalVertexStage" | "agalFragmentStage" | "agalStage" | "agalTokens" | "agalOpcode" | "agalUnusedSource" | "agalAttributeStage" | "agalAttributeWrite" | "agalAttributeIndex" | "agalConstantWrite" | "agalConstantIndex" | "agalTemporaryIndex" | "agalTemporaryRead" | "agalTemporaryComponent" | "agalOutputRead" | "agalOutputIndex" | "agalVertexOutput" | "agalFragmentOutput" | "agalColorMask" | "agalVaryingIndex" | "agalVaryingRead" | "agalVaryingWrite" | "agalVaryingMissing" | "agalVaryingPartial" | "agalRegister" | "agalIndirect" | "agalSourceEncoding" | "agalDiscard" | "agalMask" | "agalReserved" | "agalSampler";
2
+ export type Context3DErrorReason = "disposed" | "backBuffer" | "limit" | "bufferAllocation" | "textureAllocation" | "nativeShader" | "program" | "indexBuffer" | "indexData" | "vertexBinding" | "vertexStream" | "vertexData" | "drawRange" | "triangleCount" | "textureSize" | "compressedSize" | "textureShape" | "texturePowerOfTwo" | "textureUpload" | "range" | "operation" | "unsupported" | "agalLength" | "agalMagic" | "agalVersion" | "agalStageMarker" | "agalVertexStage" | "agalFragmentStage" | "agalStage" | "agalTokens" | "agalOpcode" | "agalUnusedSource" | "agalAttributeStage" | "agalAttributeWrite" | "agalAttributeIndex" | "agalConstantWrite" | "agalConstantIndex" | "agalTemporaryIndex" | "agalTemporaryRead" | "agalTemporaryComponent" | "agalOutputRead" | "agalOutputIndex" | "agalVertexOutput" | "agalFragmentOutput" | "agalColorMask" | "agalVaryingIndex" | "agalVaryingRead" | "agalVaryingWrite" | "agalVaryingMissing" | "agalVaryingPartial" | "agalRegister" | "agalIndirect" | "agalSourceEncoding" | "agalDiscard" | "agalMask" | "agalReserved" | "agalSampler" | "agalProfileVersion" | "agalOpcodeRange" | "agalOpcodeVersion" | "agalFragmentOnly" | "agalSamplerStage" | "agalElse" | "agalEndIf" | "agalEmptyBranch" | "agalConditionDestination" | "agalScalar" | "agalNesting" | "agalConditionOutput" | "agalConditionTexture" | "agalDepthStage" | "agalDepthIndex" | "agalDepthMask" | "agalInstanceStage" | "agalOutputTwice" | "agalOutputSlots" | "agalConditionDerivative" | "agalConstants" | "agalNativeLength" | "agalSamplerIndex" | "agalSamplerDimension" | "agalSamplerMip" | "agalSamplerFilter";
3
3
  export declare class Context3DError extends Error {
4
4
  readonly reason: Context3DErrorReason;
5
5
  constructor(reason: Context3DErrorReason, message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,YAAY,GACZ,OAAO,GACP,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,SAAS,GACT,aAAa,GACb,WAAW,GACX,eAAe,GACf,cAAc,GACd,YAAY,GACZ,WAAW,GACX,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,OAAO,GACP,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,aAAa,GACb,UAAU,GACV,cAAc,GACd,aAAa,CAAC;AAElB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC,YAAY,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAGxD;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,YAAY,GACZ,OAAO,GACP,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,SAAS,GACT,aAAa,GACb,WAAW,GACX,eAAe,GACf,cAAc,GACd,YAAY,GACZ,WAAW,GACX,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,OAAO,GACP,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,aAAa,GACb,UAAU,GACV,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,0BAA0B,GAC1B,YAAY,GACZ,aAAa,GACb,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,yBAAyB,GACzB,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC,YAAY,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAGxD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA4DA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,MAAM,CAAuB;IAEtC,YAAY,MAA4B,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAsFA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,MAAM,CAAuB;IAEtC,YAAY,MAA4B,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- /** Experimental renderer contracts and AGAL v1 translation, without browser dependencies. */
1
+ /** Stage3D's renderer contracts and AGAL translation, without browser dependencies. */
2
2
  export { type ProgramType, type SamplerSource, type ShaderSource, translate } from "./agal.js";
3
- export { BLEND_FACTORS, type BlendFactor, type Buffer3D, COMPARE_MODES, type CompareMode, type Context3D, type Context3DLifecycle, CULL_FACES, type CullFace, MOST_BACK_BUFFER, type Program3D, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_WRAPS, SamplerBiasError, type SamplerFilter, type SamplerMip, type SamplerWrap, ScissorBoundsError, STENCIL_ACTIONS, type Stage3DHost, type StencilAction, screenPixels, TEXTURE_FORMATS, type Texture3D, TextureBindingError, type TextureFormat, VERTEX_FORMATS, type VertexFormat, VertexOffsetError, } from "./backend.js";
3
+ export { BLEND_FACTORS, type BlendFactor, type Buffer3D, COMPARE_MODES, type CompareMode, type Context3D, type Context3DLifecycle, CULL_FACES, type CullFace, compressedFormat, FRAGMENT_CONSTANTS, MOST_BACK_BUFFER, MOST_CUBE, PROFILES, type Profile, type ProfileLimits, type Program3D, profileLimits, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_SLOTS, SAMPLER_WRAPS, SamplerBiasError, type SamplerFilter, type SamplerMip, type SamplerWrap, ScissorBoundsError, STENCIL_ACTIONS, type Stage3DHost, type StencilAction, screenPixels, TEXEL_BYTES, TEXTURE_FORMATS, type Texture3D, TextureBindingError, type TextureFormat, VERTEX_CONSTANTS, VERTEX_FORMATS, VERTEX_SLOTS, type VertexFormat, VertexOffsetError, } from "./backend.js";
4
4
  export { blockBytes, type DxtEncoder, decodeDxt, encodeDxt } from "./dxt.js";
5
5
  export { Context3DError, type Context3DErrorReason } from "./errors.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,QAAQ,EACb,gBAAgB,EAChB,KAAK,SAAS,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,kBAAkB,EAClB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,YAAY,EACZ,eAAe,EACf,KAAK,SAAS,EACd,mBAAmB,EACnB,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,YAAY,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,QAAQ,EACb,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,kBAAkB,EAClB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,KAAK,SAAS,EACd,mBAAmB,EACnB,KAAK,aAAa,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,KAAK,YAAY,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- /** Experimental renderer contracts and AGAL v1 translation, without browser dependencies. */
1
+ /** Stage3D's renderer contracts and AGAL translation, without browser dependencies. */
2
2
  export { translate } from "./agal.js";
3
- export { BLEND_FACTORS, COMPARE_MODES, CULL_FACES, MOST_BACK_BUFFER, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_WRAPS, SamplerBiasError, ScissorBoundsError, STENCIL_ACTIONS, screenPixels, TEXTURE_FORMATS, TextureBindingError, VERTEX_FORMATS, VertexOffsetError, } from "./backend.js";
3
+ export { BLEND_FACTORS, COMPARE_MODES, CULL_FACES, compressedFormat, FRAGMENT_CONSTANTS, MOST_BACK_BUFFER, MOST_CUBE, PROFILES, profileLimits, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_SLOTS, SAMPLER_WRAPS, SamplerBiasError, ScissorBoundsError, STENCIL_ACTIONS, screenPixels, TEXEL_BYTES, TEXTURE_FORMATS, TextureBindingError, VERTEX_CONSTANTS, VERTEX_FORMATS, VERTEX_SLOTS, VertexOffsetError, } from "./backend.js";
4
4
  export { blockBytes, decodeDxt, encodeDxt } from "./dxt.js";
5
5
  export { Context3DError } from "./errors.js";
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAA2D,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EACL,aAAa,EAGb,aAAa,EAIb,UAAU,EAEV,gBAAgB,EAEhB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,gBAAgB,EAIhB,kBAAkB,EAClB,eAAe,EAGf,YAAY,EACZ,eAAe,EAEf,mBAAmB,EAEnB,cAAc,EAEd,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAmB,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,EAA2D,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EACL,aAAa,EAGb,aAAa,EAIb,UAAU,EAEV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAIR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAIhB,kBAAkB,EAClB,eAAe,EAGf,YAAY,EACZ,WAAW,EACX,eAAe,EAEf,mBAAmB,EAEnB,gBAAgB,EAChB,cAAc,EACd,YAAY,EAEZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAmB,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { ProgramType } from "../agal.js";
2
- import { type BlendFactor, type Buffer3D, type CompareMode, type Context3D, type CullFace, type Program3D, type SamplerFilter, type SamplerMip, type SamplerWrap, type StencilAction, type Texture3D, type TextureFormat, type VertexFormat } from "../backend.js";
1
+ import { type ProgramType } from "../agal.js";
2
+ import { type BlendFactor, type Buffer3D, type CompareMode, type Context3D, type CullFace, type Profile, type Program3D, type SamplerFilter, type SamplerMip, type SamplerWrap, type StencilAction, type Texture3D, type TextureFormat, type VertexFormat } from "../backend.js";
3
3
  import { type DxtEncoder } from "../dxt.js";
4
4
  import { type WebGLContext3DLimits } from "./limits.js";
5
5
  /** An owned WebGL2 context, deliberately independent of the 2D renderer. */
@@ -17,6 +17,7 @@ export declare class WebGLContext3D implements Context3D {
17
17
  private gpuMost;
18
18
  disposed: boolean;
19
19
  samplerFormats: boolean;
20
+ profile: Profile;
20
21
  private readonly buffers;
21
22
  private vertexBuffers;
22
23
  private bufferBytes;
@@ -35,6 +36,13 @@ export declare class WebGLContext3D implements Context3D {
35
36
  private renderTexture;
36
37
  private renderDepth;
37
38
  private renderFace;
39
+ /** Colour outputs 1 to 3, drawn into with renderTexture, and their cube faces. */
40
+ private readonly outputs;
41
+ private readonly outputFaces;
42
+ private outputsChanged;
43
+ /** Whether any of outputs is bound, so that a draw alone into its target looks at none. */
44
+ private outputsBound;
45
+ private floatTargets;
38
46
  private readonly textureSlots;
39
47
  private textureMask;
40
48
  private readonly samplers;
@@ -114,7 +122,7 @@ export declare class WebGLContext3D implements Context3D {
114
122
  createProgram(): Program3D;
115
123
  private program;
116
124
  createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat, streaming?: number): Texture3D;
117
- createRectangleTexture(width: number, height: number): Texture3D;
125
+ createRectangleTexture(width: number, height: number, format?: TextureFormat): Texture3D;
118
126
  /** GL's internal format for a compressed texture's S3TC, or 0 where the context takes none. */
119
127
  private s3tcFormat;
120
128
  /**
@@ -133,6 +141,19 @@ export declare class WebGLContext3D implements Context3D {
133
141
  setRenderTarget(texture: Texture3D | null, depth?: boolean, face?: number, antiAlias?: number): void;
134
142
  private changedTarget;
135
143
  private finishTarget;
144
+ /** A texture drawn into made whole again: resolved, and its mips regenerated. */
145
+ private finishTexture;
146
+ /** Half floats are drawn into where the GPU's WebGL renders float colour, as every desktop one does. */
147
+ private renderFormat;
148
+ setColorOutput(index: number, texture: Texture3D | null, face?: number): void;
149
+ /**
150
+ * The current target's framebuffer with the extra colour outputs attached, or without
151
+ * them: its draws write every output bound, and a program's unwritten ones are refused
152
+ * before they draw.
153
+ */
154
+ private attachOutputs;
155
+ /** The extra colour outputs bound, a bit each from output 1. */
156
+ private outputMask;
136
157
  setTexture(index: number, texture: Texture3D | null): void;
137
158
  setSampler(index: number, wrap: SamplerWrap, filter: SamplerFilter, mip: SamplerMip): void;
138
159
  private setSamplerState;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/webgl/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/webgl/context.ts"],"names":[],"mappings":"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"}