@swf2es/context3d 0.1.19 → 0.1.21
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/README.md +120 -27
- package/dist/agal.d.ts +11 -2
- package/dist/agal.d.ts.map +1 -1
- package/dist/agal.js +318 -47
- package/dist/agal.js.map +1 -1
- package/dist/backend.d.ts +50 -3
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +74 -2
- package/dist/backend.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/webgl/back-buffer.d.ts +6 -0
- package/dist/webgl/back-buffer.d.ts.map +1 -0
- package/dist/webgl/back-buffer.js +197 -0
- package/dist/webgl/back-buffer.js.map +1 -0
- package/dist/webgl/buffers.d.ts +2 -2
- package/dist/webgl/buffers.d.ts.map +1 -1
- package/dist/webgl/buffers.js +105 -2
- package/dist/webgl/buffers.js.map +1 -1
- package/dist/webgl/context.d.ts +29 -48
- package/dist/webgl/context.d.ts.map +1 -1
- package/dist/webgl/context.js +227 -364
- package/dist/webgl/context.js.map +1 -1
- package/dist/webgl/programs.d.ts +4 -1
- package/dist/webgl/programs.d.ts.map +1 -1
- package/dist/webgl/programs.js +7 -6
- package/dist/webgl/programs.js.map +1 -1
- package/dist/webgl/readback.d.ts +3 -0
- package/dist/webgl/readback.d.ts.map +1 -0
- package/dist/webgl/readback.js +40 -0
- package/dist/webgl/readback.js.map +1 -0
- package/dist/webgl/targets.d.ts +3 -1
- package/dist/webgl/targets.d.ts.map +1 -1
- package/dist/webgl/targets.js +5 -3
- package/dist/webgl/targets.js.map +1 -1
- package/dist/webgl/textures.d.ts +9 -1
- package/dist/webgl/textures.d.ts.map +1 -1
- package/dist/webgl/textures.js +161 -7
- package/dist/webgl/textures.js.map +1 -1
- package/package.json +1 -1
- package/src/agal.ts +375 -51
- package/src/backend.ts +113 -3
- package/src/errors.ts +27 -1
- package/src/index.ts +12 -1
- package/src/webgl/back-buffer.ts +287 -0
- package/src/webgl/buffers.ts +114 -2
- package/src/webgl/context.ts +291 -489
- package/src/webgl/programs.ts +10 -5
- package/src/webgl/readback.ts +54 -0
- package/src/webgl/targets.ts +4 -2
- package/src/webgl/textures.ts +183 -9
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
|
-
/**
|
|
30
|
-
|
|
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;
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED,eAAO,MAAM,aAAa,YACxB,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,CACD,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,eAAO,MAAM,UAAU,YAAI,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAU,CAAC;AAC7E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,eAAO,MAAM,eAAe,YAC1B,MAAM,EACN,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,eAAe,CACP,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7D,eAAO,MAAM,aAAa,YACxB,MAAM,EACN,KAAK,EACL,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,CAClB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,aAAa,YAAI,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAU,CAAC;AAClG,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,eAAO,MAAM,eAAe,YAC1B,SAAS,EACT,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,CACR,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7D,eAAO,MAAM,YAAY,YAAI,SAAS,EAAE,YAAY,EAAE,WAAW,CAAU,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD
|
|
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
|
-
/**
|
|
62
|
-
|
|
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
|
}
|
package/dist/backend.js.map
CHANGED
|
@@ -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
|
|
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);
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
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
|
-
/**
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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
|
-
/**
|
|
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,
|
|
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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WebGLContext3D } from "./context.js";
|
|
2
|
+
export declare function configureBackBuffer(ctx: WebGLContext3D, width: number, height: number, depth: boolean, antiAlias: number, scale: number): void;
|
|
3
|
+
export declare function unconfigureBackBuffer(ctx: WebGLContext3D): void;
|
|
4
|
+
export declare function resolveBackBuffer(ctx: WebGLContext3D): void;
|
|
5
|
+
export declare function presentBackBuffer(ctx: WebGLContext3D): void;
|
|
6
|
+
//# sourceMappingURL=back-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"back-buffer.d.ts","sourceRoot":"","sources":["../../src/webgl/back-buffer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,IAAI,CAmJN;AAgCD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA8B/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA8B3D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA0B3D"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// The back buffer: its storage, as large as the GPU gives, its multisample resolve and its
|
|
2
|
+
// presentation to the canvas.
|
|
3
|
+
import { MOST_BACK_BUFFER } from "../backend.js";
|
|
4
|
+
import { Context3DError } from "../errors.js";
|
|
5
|
+
import { range } from "./state.js";
|
|
6
|
+
import { selectSamples } from "./targets.js";
|
|
7
|
+
export function configureBackBuffer(ctx, width, height, depth, antiAlias, scale) {
|
|
8
|
+
ctx.alive();
|
|
9
|
+
range(32, width - 32, MOST_BACK_BUFFER);
|
|
10
|
+
range(32, height - 32, MOST_BACK_BUFFER);
|
|
11
|
+
if (ctx.renderTexture) {
|
|
12
|
+
throw new Context3DError("operation", "Context3D experiment: resize while rendering to texture");
|
|
13
|
+
}
|
|
14
|
+
// AIR preserves color, depth and bindings when the request is unchanged.
|
|
15
|
+
// Shadow passes can issue this every frame when returning to the back buffer.
|
|
16
|
+
if (ctx.framebuffer &&
|
|
17
|
+
width === ctx.width &&
|
|
18
|
+
height === ctx.height &&
|
|
19
|
+
depth === (ctx.depthBuffer !== null) &&
|
|
20
|
+
antiAlias === ctx.antiAlias) {
|
|
21
|
+
if (scale !== ctx.scale) {
|
|
22
|
+
ctx.scale = scale;
|
|
23
|
+
showAt(ctx);
|
|
24
|
+
ctx.applyScissor();
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const samples = selectSamples(ctx.gl, antiAlias, depth);
|
|
29
|
+
const gl = ctx.gl;
|
|
30
|
+
const most = storageLimit(ctx);
|
|
31
|
+
const drawnWidth = Math.min(width, most[0]);
|
|
32
|
+
const drawnHeight = Math.min(height, most[1]);
|
|
33
|
+
const texture = gl.createTexture();
|
|
34
|
+
const framebuffer = gl.createFramebuffer();
|
|
35
|
+
const depthBuffer = depth ? gl.createRenderbuffer() : null;
|
|
36
|
+
const resolveFramebuffer = samples ? gl.createFramebuffer() : null;
|
|
37
|
+
const colorBuffer = samples ? gl.createRenderbuffer() : null;
|
|
38
|
+
try {
|
|
39
|
+
if (!texture ||
|
|
40
|
+
!framebuffer ||
|
|
41
|
+
(depth && !depthBuffer) ||
|
|
42
|
+
(samples && (!resolveFramebuffer || !colorBuffer))) {
|
|
43
|
+
throw new Context3DError("operation", "Context3D experiment: cannot allocate back buffer");
|
|
44
|
+
}
|
|
45
|
+
ctx.texturesApplied[0] = 0;
|
|
46
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
47
|
+
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
48
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
49
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
50
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA8, drawnWidth, drawnHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
51
|
+
ctx.bindFramebuffer(gl.FRAMEBUFFER, resolveFramebuffer ?? framebuffer);
|
|
52
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
|
|
53
|
+
if (resolveFramebuffer) {
|
|
54
|
+
if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) !== gl.FRAMEBUFFER_COMPLETE) {
|
|
55
|
+
throw new Context3DError("operation", "Context3D experiment: incomplete resolve buffer");
|
|
56
|
+
}
|
|
57
|
+
ctx.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
58
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, colorBuffer);
|
|
59
|
+
gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.RGBA8, drawnWidth, drawnHeight);
|
|
60
|
+
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorBuffer);
|
|
61
|
+
}
|
|
62
|
+
if (depthBuffer) {
|
|
63
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
|
|
64
|
+
if (samples) {
|
|
65
|
+
gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.DEPTH24_STENCIL8, drawnWidth, drawnHeight);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH24_STENCIL8, drawnWidth, drawnHeight);
|
|
69
|
+
}
|
|
70
|
+
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
|
|
71
|
+
}
|
|
72
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
73
|
+
if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) !== gl.FRAMEBUFFER_COMPLETE) {
|
|
74
|
+
throw new Context3DError("operation", "Context3D experiment: incomplete back buffer");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
gl.deleteTexture(texture);
|
|
79
|
+
gl.deleteFramebuffer(framebuffer);
|
|
80
|
+
gl.deleteFramebuffer(resolveFramebuffer);
|
|
81
|
+
gl.deleteRenderbuffer(depthBuffer);
|
|
82
|
+
gl.deleteRenderbuffer(colorBuffer);
|
|
83
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
84
|
+
ctx.bindFramebuffer(gl.FRAMEBUFFER, ctx.framebuffer);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
gl.deleteTexture(ctx.texture);
|
|
88
|
+
gl.deleteFramebuffer(ctx.framebuffer);
|
|
89
|
+
gl.deleteFramebuffer(ctx.resolveFramebuffer);
|
|
90
|
+
gl.deleteRenderbuffer(ctx.depthBuffer);
|
|
91
|
+
gl.deleteRenderbuffer(ctx.colorBuffer);
|
|
92
|
+
ctx.texture = texture;
|
|
93
|
+
ctx.framebuffer = framebuffer;
|
|
94
|
+
ctx.resolveFramebuffer = resolveFramebuffer;
|
|
95
|
+
ctx.colorBuffer = colorBuffer;
|
|
96
|
+
ctx.depthBuffer = depthBuffer;
|
|
97
|
+
ctx.antiAlias = antiAlias;
|
|
98
|
+
ctx.width = width;
|
|
99
|
+
ctx.height = height;
|
|
100
|
+
ctx.drawnWidth = drawnWidth;
|
|
101
|
+
ctx.drawnHeight = drawnHeight;
|
|
102
|
+
ctx.scale = scale;
|
|
103
|
+
gl.canvas.width = drawnWidth;
|
|
104
|
+
gl.canvas.height = drawnHeight;
|
|
105
|
+
showAt(ctx);
|
|
106
|
+
// Readback's storage waits for a read: a back buffer as large as a 4K screen is 33 MB each.
|
|
107
|
+
ctx.pixels = new Uint8Array(0);
|
|
108
|
+
ctx.topDown = new Uint8Array(0);
|
|
109
|
+
ctx.applyScissor();
|
|
110
|
+
ctx.clear(0, 0, 0, 1);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Shown at the size asked for, in CSS pixels, as an unstyled canvas of that size would be,
|
|
114
|
+
* divided by its scale: a best-resolution back buffer shows its pixels at the screen's.
|
|
115
|
+
*/
|
|
116
|
+
function showAt(ctx) {
|
|
117
|
+
const style = ctx.gl.canvas.style;
|
|
118
|
+
if (!style) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const plain = ctx.scale === 1;
|
|
122
|
+
style.width = plain && ctx.drawnWidth === ctx.width ? "" : `${ctx.width / ctx.scale}px`;
|
|
123
|
+
style.height = plain && ctx.drawnHeight === ctx.height ? "" : `${ctx.height / ctx.scale}px`;
|
|
124
|
+
}
|
|
125
|
+
/** The largest back buffer storage the GPU gives: a texture, a renderbuffer and a viewport. */
|
|
126
|
+
function storageLimit(ctx) {
|
|
127
|
+
if (!ctx.gpuMost) {
|
|
128
|
+
const gl = ctx.gl;
|
|
129
|
+
const viewport = gl.getParameter(gl.MAX_VIEWPORT_DIMS);
|
|
130
|
+
const side = Math.min(gl.getParameter(gl.MAX_TEXTURE_SIZE), gl.getParameter(gl.MAX_RENDERBUFFER_SIZE));
|
|
131
|
+
ctx.gpuMost = Int32Array.of(Math.min(side, viewport[0]), Math.min(side, viewport[1]));
|
|
132
|
+
}
|
|
133
|
+
return ctx.gpuMost;
|
|
134
|
+
}
|
|
135
|
+
export function unconfigureBackBuffer(ctx) {
|
|
136
|
+
ctx.alive();
|
|
137
|
+
if (ctx.renderTexture) {
|
|
138
|
+
throw new Context3DError("operation", "Context3D experiment: resize while rendering to texture");
|
|
139
|
+
}
|
|
140
|
+
const gl = ctx.gl;
|
|
141
|
+
gl.deleteTexture(ctx.texture);
|
|
142
|
+
gl.deleteFramebuffer(ctx.framebuffer);
|
|
143
|
+
gl.deleteFramebuffer(ctx.resolveFramebuffer);
|
|
144
|
+
gl.deleteRenderbuffer(ctx.depthBuffer);
|
|
145
|
+
gl.deleteRenderbuffer(ctx.colorBuffer);
|
|
146
|
+
ctx.drawState.forget();
|
|
147
|
+
ctx.texture = null;
|
|
148
|
+
ctx.framebuffer = null;
|
|
149
|
+
ctx.resolveFramebuffer = null;
|
|
150
|
+
ctx.colorBuffer = null;
|
|
151
|
+
ctx.depthBuffer = null;
|
|
152
|
+
ctx.resolveDirty = false;
|
|
153
|
+
ctx.antiAlias = 0;
|
|
154
|
+
ctx.scale = 1;
|
|
155
|
+
ctx.width = 0;
|
|
156
|
+
ctx.height = 0;
|
|
157
|
+
ctx.drawnWidth = 0;
|
|
158
|
+
ctx.drawnHeight = 0;
|
|
159
|
+
ctx.pixels = new Uint8Array(0);
|
|
160
|
+
ctx.topDown = new Uint8Array(0);
|
|
161
|
+
}
|
|
162
|
+
export function resolveBackBuffer(ctx) {
|
|
163
|
+
if (!ctx.resolveFramebuffer) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const gl = ctx.gl;
|
|
167
|
+
if (ctx.resolveDirty) {
|
|
168
|
+
ctx.bindFramebuffer(gl.READ_FRAMEBUFFER, ctx.framebuffer);
|
|
169
|
+
ctx.bindFramebuffer(gl.DRAW_FRAMEBUFFER, ctx.resolveFramebuffer);
|
|
170
|
+
if (ctx.scissor) {
|
|
171
|
+
gl.disable(gl.SCISSOR_TEST);
|
|
172
|
+
}
|
|
173
|
+
gl.blitFramebuffer(0, 0, ctx.drawnWidth, ctx.drawnHeight, 0, 0, ctx.drawnWidth, ctx.drawnHeight, gl.COLOR_BUFFER_BIT, gl.NEAREST);
|
|
174
|
+
if (ctx.scissor) {
|
|
175
|
+
gl.enable(gl.SCISSOR_TEST);
|
|
176
|
+
}
|
|
177
|
+
ctx.resolveDirty = false;
|
|
178
|
+
}
|
|
179
|
+
ctx.bindFramebuffer(gl.READ_FRAMEBUFFER, ctx.resolveFramebuffer);
|
|
180
|
+
}
|
|
181
|
+
export function presentBackBuffer(ctx) {
|
|
182
|
+
ctx.setRenderTarget(null);
|
|
183
|
+
ctx.target();
|
|
184
|
+
resolveBackBuffer(ctx);
|
|
185
|
+
const gl = ctx.gl;
|
|
186
|
+
ctx.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);
|
|
187
|
+
if (ctx.scissor) {
|
|
188
|
+
gl.disable(gl.SCISSOR_TEST);
|
|
189
|
+
}
|
|
190
|
+
// To the drawing buffer the browser gave, which it may have made smaller than the canvas.
|
|
191
|
+
gl.blitFramebuffer(0, 0, ctx.drawnWidth, ctx.drawnHeight, 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.COLOR_BUFFER_BIT, gl.NEAREST);
|
|
192
|
+
if (ctx.scissor) {
|
|
193
|
+
gl.enable(gl.SCISSOR_TEST);
|
|
194
|
+
}
|
|
195
|
+
gl.flush();
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=back-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"back-buffer.js","sourceRoot":"","sources":["../../src/webgl/back-buffer.ts"],"names":[],"mappings":"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"}
|
package/dist/webgl/buffers.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Buffer3D } from "../backend.js";
|
|
2
|
+
import type { WebGLContext3D } from "./context.js";
|
|
2
3
|
export interface BufferState {
|
|
3
4
|
handle: WebGLBuffer;
|
|
4
5
|
indices: Uint16Array | null;
|
|
@@ -25,6 +26,5 @@ export interface VertexBinding {
|
|
|
25
26
|
checkedFirst: number;
|
|
26
27
|
checkedCount: number;
|
|
27
28
|
}
|
|
28
|
-
export declare function
|
|
29
|
-
export declare function uploadBufferBytes(gl: WebGL2RenderingContext, vao: WebGLVertexArrayObject, buffer: Buffer3D, state: BufferState, data: Uint8Array, offset: number, start: number, amount: number): void;
|
|
29
|
+
export declare function allocateBuffer(ctx: WebGLContext3D, count: number, stride: number, dynamic: boolean): Buffer3D;
|
|
30
30
|
//# sourceMappingURL=buffers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../../src/webgl/buffers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../../src/webgl/buffers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AA8ED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,QAAQ,CAsGV"}
|