@swf2es/context3d 0.1.18 → 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
@@ -1,5 +1,17 @@
1
1
  import type { ProgramType } from "./agal.js";
2
2
  import type { DxtEncoder } from "./dxt.js";
3
+ /**
4
+ * The widest and tallest back buffer configure() takes: Flash Player 32's and AIR 51's
5
+ * maxBackBufferWidth and maxBackBufferHeight on a desktop GPU, in every profile. A GPU that
6
+ * allows less still takes it, and draws it smaller (WebGLContext3D).
7
+ */
8
+ export declare const MOST_BACK_BUFFER = 16384;
9
+ /**
10
+ * A length in stage pixels at `scale` of the screen's to them, as AIR draws a back buffer
11
+ * configured for best resolution and its scissor rectangle: rounded half to even, as the
12
+ * FPU rounds by default (AIR 51 on Windows at 144 DPI: 33 to 50, 47 to 70).
13
+ */
14
+ export declare function screenPixels(length: number, scale: number): number;
3
15
  export declare const COMPARE_MODES: readonly ["always", "never", "less", "lessEqual", "equal", "notEqual", "greaterEqual", "greater"];
4
16
  export type CompareMode = (typeof COMPARE_MODES)[number];
5
17
  export declare const CULL_FACES: readonly ["none", "back", "front", "frontAndBack"];
@@ -14,9 +26,40 @@ export declare const SAMPLER_FILTERS: readonly ["nearest", "linear", "anisotropi
14
26
  export type SamplerFilter = (typeof SAMPLER_FILTERS)[number];
15
27
  export declare const SAMPLER_MIPS: readonly ["mipnone", "mipnearest", "miplinear"];
16
28
  export type SamplerMip = (typeof SAMPLER_MIPS)[number];
17
- /** The texture formats a backend stores: BGRA, and S3TC's DXT1 and DXT5 as Flash calls them. */
18
- 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"];
19
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;
20
63
  export declare const VERTEX_FORMATS: readonly ["float1", "float2", "float3", "float4", "bytes4"];
21
64
  export type VertexFormat = (typeof VERTEX_FORMATS)[number];
22
65
  export declare class VertexOffsetError extends Error {
@@ -26,7 +69,7 @@ export declare class ScissorBoundsError extends Error {
26
69
  export declare class SamplerBiasError extends Error {
27
70
  }
28
71
  export declare class TextureBindingError extends Error {
29
- readonly reason: "unused" | "conflicting" | "missing" | "unuploaded" | "mipmaps" | "dimension" | "wrap" | "rectangleMip" | "feedback" | "format";
72
+ readonly reason: "unused" | "conflicting" | "missing" | "unuploaded" | "mipmaps" | "dimension" | "wrap" | "rectangleMip" | "feedback" | "format" | "streaming";
30
73
  /** The sampler it names, where it names one. */
31
74
  readonly sampler: number;
32
75
  constructor(reason: TextureBindingError["reason"], sampler?: number);
@@ -40,6 +83,10 @@ export interface Buffer3D {
40
83
  dispose(): void;
41
84
  }
42
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;
43
90
  upload(vertex: Uint8Array, fragment: Uint8Array): void;
44
91
  dispose(): void;
45
92
  }
@@ -49,6 +96,11 @@ export interface Texture3D {
49
96
  readonly levels: number;
50
97
  readonly cube: boolean;
51
98
  readonly rectangle: boolean;
99
+ /**
100
+ * createTexture's streamingLevels: the levels from it to the smallest are enough to draw it
101
+ * with mip filtering, from the finest of them uploaded, as AIR draws a texture still loading.
102
+ */
103
+ readonly streaming: number;
52
104
  /** What samplers must read it as; a compressed texture also takes pixels, as AIR's do. */
53
105
  readonly format: TextureFormat;
54
106
  /** Top-down premultiplied ARGB pixels, copied before returning.
@@ -71,6 +123,11 @@ export interface Context3DLifecycle {
71
123
  /** Loss callbacks are asynchronous. Keep the lost surface until remove(), including
72
124
  * its restoration listener; remove() must detach both listeners before releasing it. */
73
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;
74
131
  create(slot: number, lifecycle: Context3DLifecycle): Context3D;
75
132
  place(slot: number, x: number, y: number, visible: boolean): void;
76
133
  remove(slot: number): void;
@@ -84,9 +141,18 @@ export interface Context3D {
84
141
  * format (TextureBindingError "format"): AIR checks from SWF 17 on.
85
142
  */
86
143
  samplerFormats: boolean;
144
+ /** The profile it was made for: what its programs, textures and targets may be. */
145
+ profile: Profile;
87
146
  /** Optional acceleration for pixels uploaded to compressed textures. */
88
147
  setDxtEncoder?(encoder: DxtEncoder): void;
89
- configure(width: number, height: number, depth?: boolean, antiAlias?: number): void;
148
+ /**
149
+ * Width and height from 32 to MOST_BACK_BUFFER, in the back buffer's pixels. `scale` is
150
+ * those to a CSS pixel where it shows, and to a scissor rectangle's unit: a back buffer
151
+ * configured for best resolution has the stage's contentsScaleFactor, any other 1.
152
+ */
153
+ configure(width: number, height: number, depth?: boolean, antiAlias?: number, scale?: number): void;
154
+ /** No back buffer, width and height 0, as a size configureBackBuffer refuses leaves AIR's. */
155
+ unconfigure(): void;
90
156
  clear(red: number, green: number, blue: number, alpha: number, depth?: number, mask?: number, stencil?: number): void;
91
157
  setStencilActions(face: CullFace, compare: CompareMode, pass: StencilAction, depthFail: StencilAction, stencilFail: StencilAction): void;
92
158
  setStencilReference(reference: number, readMask: number, writeMask: number): void;
@@ -96,12 +162,19 @@ export interface Context3D {
96
162
  setColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
97
163
  /** Null disables clipping; coordinates are in top-down target pixels. */
98
164
  setScissor(x: number | null, y?: number, width?: number, height?: number): void;
99
- createBuffer(count: number, stride: number): Buffer3D;
165
+ /** `stride` 32-bit values a vertex, or 0 for 16-bit indices; `dynamic` for data uploaded often. */
166
+ createBuffer(count: number, stride: number, dynamic?: boolean): Buffer3D;
100
167
  createProgram(): Program3D;
101
- createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat): Texture3D;
102
- createRectangleTexture(width: number, height: number): Texture3D;
168
+ /** `streaming` from 0 to the texture's levels less one. */
169
+ createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat, streaming?: number): Texture3D;
170
+ createRectangleTexture(width: number, height: number, format?: TextureFormat): Texture3D;
103
171
  /** Level-zero target; face selects a cube surface. Null resumes the back buffer. */
104
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;
105
178
  setSampler(index: number, wrap: SamplerWrap, filter: SamplerFilter, mip: SamplerMip): void;
106
179
  setTexture(index: number, texture: Texture3D | null): void;
107
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
@@ -1,3 +1,20 @@
1
+ /**
2
+ * The widest and tallest back buffer configure() takes: Flash Player 32's and AIR 51's
3
+ * maxBackBufferWidth and maxBackBufferHeight on a desktop GPU, in every profile. A GPU that
4
+ * allows less still takes it, and draws it smaller (WebGLContext3D).
5
+ */
6
+ export const MOST_BACK_BUFFER = 16384;
7
+ /**
8
+ * A length in stage pixels at `scale` of the screen's to them, as AIR draws a back buffer
9
+ * configured for best resolution and its scissor rectangle: rounded half to even, as the
10
+ * FPU rounds by default (AIR 51 on Windows at 144 DPI: 33 to 50, 47 to 70).
11
+ */
12
+ export function screenPixels(length, scale) {
13
+ const exact = length * scale;
14
+ const floor = Math.floor(exact);
15
+ const rest = exact - floor;
16
+ return rest > 0.5 || (rest === 0.5 && floor % 2 !== 0) ? floor + 1 : floor;
17
+ }
1
18
  export const COMPARE_MODES = [
2
19
  "always",
3
20
  "never",
@@ -41,8 +58,80 @@ export const SAMPLER_FILTERS = [
41
58
  "anisotropic16x",
42
59
  ];
43
60
  export const SAMPLER_MIPS = ["mipnone", "mipnearest", "miplinear"];
44
- /** The texture formats a backend stores: BGRA, and S3TC's DXT1 and DXT5 as Flash calls them. */
45
- 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;
46
135
  export const VERTEX_FORMATS = ["float1", "float2", "float3", "float4", "bytes4"];
47
136
  export class VertexOffsetError extends Error {
48
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAGA,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,CAUF;IAEb,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, type Program3D, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_WRAPS, SamplerBiasError, type SamplerFilter, type SamplerMip, type SamplerWrap, ScissorBoundsError, STENCIL_ACTIONS, type Stage3DHost, type StencilAction, 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,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,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, SAMPLER_FILTERS, SAMPLER_MIPS, SAMPLER_WRAPS, SamplerBiasError, ScissorBoundsError, STENCIL_ACTIONS, 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,EAGV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,gBAAgB,EAIhB,kBAAkB,EAClB,eAAe,EAGf,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. */
@@ -8,8 +8,16 @@ export declare class WebGLContext3D implements Context3D {
8
8
  private readonly drawState;
9
9
  width: number;
10
10
  height: number;
11
+ /**
12
+ * The back buffer's storage: its size, or less where the GPU allows less. The SWF still
13
+ * sees the size it asked for, drawn at this one and stretched to it when presented.
14
+ */
15
+ private drawnWidth;
16
+ private drawnHeight;
17
+ private gpuMost;
11
18
  disposed: boolean;
12
19
  samplerFormats: boolean;
20
+ profile: Profile;
13
21
  private readonly buffers;
14
22
  private vertexBuffers;
15
23
  private bufferBytes;
@@ -28,6 +36,13 @@ export declare class WebGLContext3D implements Context3D {
28
36
  private renderTexture;
29
37
  private renderDepth;
30
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;
31
46
  private readonly textureSlots;
32
47
  private textureMask;
33
48
  private readonly samplers;
@@ -47,6 +62,8 @@ export declare class WebGLContext3D implements Context3D {
47
62
  private resolveDirty;
48
63
  private depthBuffer;
49
64
  private antiAlias;
65
+ /** The back buffer's pixels to a CSS pixel and to a scissor rectangle's unit. */
66
+ private scale;
50
67
  private depthWrite;
51
68
  private depthCompare;
52
69
  private blendEnabled;
@@ -80,7 +97,15 @@ export declare class WebGLContext3D implements Context3D {
80
97
  private target;
81
98
  /** Temporary attachments and separate READ/DRAW bindings bypass the hot target cache. */
82
99
  private bindFramebuffer;
83
- configure(width: number, height: number, depth?: boolean, antiAlias?: number): void;
100
+ configure(width: number, height: number, depth?: boolean, antiAlias?: number, scale?: number): void;
101
+ /**
102
+ * Shown at the size asked for, in CSS pixels, as an unstyled canvas of that size would be,
103
+ * divided by its scale: a best-resolution back buffer shows its pixels at the screen's.
104
+ */
105
+ private showAt;
106
+ /** The largest back buffer storage the GPU gives: a texture, a renderbuffer and a viewport. */
107
+ private storageLimit;
108
+ unconfigure(): void;
84
109
  clear(red: number, green: number, blue: number, alpha: number, depth?: number, mask?: number, stencil?: number): void;
85
110
  setStencilActions(face: CullFace, compare: CompareMode, pass: StencilAction, depthFail: StencilAction, stencilFail: StencilAction): void;
86
111
  private stencilFace;
@@ -92,12 +117,12 @@ export declare class WebGLContext3D implements Context3D {
92
117
  private applyScissor;
93
118
  setBlend(source: BlendFactor, destination: BlendFactor): void;
94
119
  setCulling(face: CullFace): void;
95
- createBuffer(count: number, stride: number): Buffer3D;
120
+ createBuffer(count: number, stride: number, dynamic?: boolean): Buffer3D;
96
121
  private buffer;
97
122
  createProgram(): Program3D;
98
123
  private program;
99
- createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat): Texture3D;
100
- createRectangleTexture(width: number, height: number): Texture3D;
124
+ createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat, streaming?: number): Texture3D;
125
+ createRectangleTexture(width: number, height: number, format?: TextureFormat): Texture3D;
101
126
  /** GL's internal format for a compressed texture's S3TC, or 0 where the context takes none. */
102
127
  private s3tcFormat;
103
128
  /**
@@ -116,6 +141,19 @@ export declare class WebGLContext3D implements Context3D {
116
141
  setRenderTarget(texture: Texture3D | null, depth?: boolean, face?: number, antiAlias?: number): void;
117
142
  private changedTarget;
118
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;
119
157
  setTexture(index: number, texture: Texture3D | null): void;
120
158
  setSampler(index: number, wrap: SamplerWrap, filter: SamplerFilter, mip: SamplerMip): void;
121
159
  private setSamplerState;
@@ -124,6 +162,13 @@ export declare class WebGLContext3D implements Context3D {
124
162
  setVertex(index: number, buffer: Buffer3D | null, offset: number, format: VertexFormat): void;
125
163
  setConstants(stage: ProgramType, first: number, values: ArrayLike<number>, count: number): void;
126
164
  draw(indices: Buffer3D, first: number, triangles: number): void;
165
+ /**
166
+ * The level a streaming texture is drawn from, as AIR 51 draws one: with mip filtering, the
167
+ * finest whose levels down to the smallest are uploaded on every face, which must reach its
168
+ * streaming level (#3700 before); without, its level 0 alone (#3713), as a texture that
169
+ * does not stream.
170
+ */
171
+ private streamingBase;
127
172
  private uniforms;
128
173
  private resolve;
129
174
  read(width?: number, height?: number): Uint8Array;
@@ -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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"}