@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.
Files changed (56) hide show
  1. package/README.md +120 -27
  2. package/dist/agal.d.ts +11 -2
  3. package/dist/agal.d.ts.map +1 -1
  4. package/dist/agal.js +318 -47
  5. package/dist/agal.js.map +1 -1
  6. package/dist/backend.d.ts +50 -3
  7. package/dist/backend.d.ts.map +1 -1
  8. package/dist/backend.js +74 -2
  9. package/dist/backend.js.map +1 -1
  10. package/dist/errors.d.ts +1 -1
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js.map +1 -1
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/webgl/back-buffer.d.ts +6 -0
  18. package/dist/webgl/back-buffer.d.ts.map +1 -0
  19. package/dist/webgl/back-buffer.js +197 -0
  20. package/dist/webgl/back-buffer.js.map +1 -0
  21. package/dist/webgl/buffers.d.ts +2 -2
  22. package/dist/webgl/buffers.d.ts.map +1 -1
  23. package/dist/webgl/buffers.js +105 -2
  24. package/dist/webgl/buffers.js.map +1 -1
  25. package/dist/webgl/context.d.ts +29 -48
  26. package/dist/webgl/context.d.ts.map +1 -1
  27. package/dist/webgl/context.js +227 -364
  28. package/dist/webgl/context.js.map +1 -1
  29. package/dist/webgl/programs.d.ts +4 -1
  30. package/dist/webgl/programs.d.ts.map +1 -1
  31. package/dist/webgl/programs.js +7 -6
  32. package/dist/webgl/programs.js.map +1 -1
  33. package/dist/webgl/readback.d.ts +3 -0
  34. package/dist/webgl/readback.d.ts.map +1 -0
  35. package/dist/webgl/readback.js +40 -0
  36. package/dist/webgl/readback.js.map +1 -0
  37. package/dist/webgl/targets.d.ts +3 -1
  38. package/dist/webgl/targets.d.ts.map +1 -1
  39. package/dist/webgl/targets.js +5 -3
  40. package/dist/webgl/targets.js.map +1 -1
  41. package/dist/webgl/textures.d.ts +9 -1
  42. package/dist/webgl/textures.d.ts.map +1 -1
  43. package/dist/webgl/textures.js +161 -7
  44. package/dist/webgl/textures.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/agal.ts +375 -51
  47. package/src/backend.ts +113 -3
  48. package/src/errors.ts +27 -1
  49. package/src/index.ts +12 -1
  50. package/src/webgl/back-buffer.ts +287 -0
  51. package/src/webgl/buffers.ts +114 -2
  52. package/src/webgl/context.ts +291 -489
  53. package/src/webgl/programs.ts +10 -5
  54. package/src/webgl/readback.ts +54 -0
  55. package/src/webgl/targets.ts +4 -2
  56. package/src/webgl/textures.ts +183 -9
@@ -1,3 +1,4 @@
1
+ import { Context3DError } from "../errors.js";
1
2
  import { range } from "./state.js";
2
3
  function uploaded(state, start, amount) {
3
4
  if (amount === 0) {
@@ -10,7 +11,7 @@ function uploaded(state, start, amount) {
10
11
  state.prefix++;
11
12
  }
12
13
  }
13
- export function uploadBuffer(gl, vao, buffer, state, values, start, amount) {
14
+ function uploadBuffer(gl, vao, buffer, state, values, start, amount) {
14
15
  const { count, stride } = buffer;
15
16
  const target = stride === 0 ? gl.ELEMENT_ARRAY_BUFFER : gl.ARRAY_BUFFER;
16
17
  const handle = state.handle;
@@ -27,7 +28,7 @@ export function uploadBuffer(gl, vao, buffer, state, values, start, amount) {
27
28
  gl.bindBuffer(target, handle);
28
29
  gl.bufferSubData(target, start * size * (stride === 0 ? 2 : 4), data);
29
30
  }
30
- export function uploadBufferBytes(gl, vao, buffer, state, data, offset, start, amount) {
31
+ function uploadBufferBytes(gl, vao, buffer, state, data, offset, start, amount) {
31
32
  const { count, stride } = buffer;
32
33
  const target = stride === 0 ? gl.ELEMENT_ARRAY_BUFFER : gl.ARRAY_BUFFER;
33
34
  const handle = state.handle;
@@ -51,4 +52,106 @@ export function uploadBufferBytes(gl, vao, buffer, state, data, offset, start, a
51
52
  gl.bindBuffer(target, handle);
52
53
  gl.bufferSubData(target, start * bytesPerEntry, data, offset, length);
53
54
  }
55
+ export function allocateBuffer(ctx, count, stride, dynamic) {
56
+ ctx.alive();
57
+ range(1, count - 1, stride === 0 ? 524287 : 65535);
58
+ range(0, stride, 64);
59
+ const countLimit = stride === 0 ? ctx.limits.maxIndexBuffers : ctx.limits.maxVertexBuffers;
60
+ const used = stride === 0 ? ctx.buffers.size - ctx.vertexBuffers : ctx.vertexBuffers;
61
+ if (ctx.buffers.size >= ctx.limits.maxBuffers || used >= countLimit) {
62
+ throw new Context3DError("limit", "Context3D experiment: buffer limit");
63
+ }
64
+ const bytes = count * (stride === 0 ? 2 : stride * 4);
65
+ const usedBytes = stride === 0 ? ctx.bufferBytes - ctx.vertexBufferBytes : ctx.vertexBufferBytes;
66
+ const byteLimit = stride === 0 ? ctx.limits.maxIndexBufferBytes : ctx.limits.maxVertexBufferBytes;
67
+ if (ctx.bufferBytes + bytes > ctx.limits.maxBufferBytes || usedBytes + bytes > byteLimit) {
68
+ throw new Context3DError("limit", "Context3D experiment: buffer memory limit");
69
+ }
70
+ const gl = ctx.gl;
71
+ const handle = gl.createBuffer();
72
+ if (!handle) {
73
+ throw new Context3DError("bufferAllocation", "Context3D experiment: cannot allocate buffer");
74
+ }
75
+ const target = stride === 0 ? gl.ELEMENT_ARRAY_BUFFER : gl.ARRAY_BUFFER;
76
+ if (stride === 0) {
77
+ ctx.indexBuffer = null;
78
+ }
79
+ gl.bindVertexArray(ctx.vao);
80
+ gl.bindBuffer(target, handle);
81
+ gl.bufferData(target, bytes, dynamic ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW);
82
+ const state = {
83
+ handle,
84
+ indices: stride === 0 ? new Uint16Array(count) : null,
85
+ uploaded: new Uint8Array(count),
86
+ prefix: 0,
87
+ version: 0,
88
+ checkedVersion: -1,
89
+ checkedFirst: 0,
90
+ checkedCount: 0,
91
+ maximum: -1,
92
+ ranges: null,
93
+ };
94
+ const buffer = {
95
+ count,
96
+ stride,
97
+ upload: (values, start, amount) => {
98
+ ctx.alive();
99
+ ctx.buffer(buffer);
100
+ try {
101
+ uploadBuffer(gl, ctx.vao, buffer, state, values, start, amount);
102
+ }
103
+ finally {
104
+ // Source getters can draw before the upload replaces the VAO's index binding.
105
+ if (stride === 0) {
106
+ ctx.indexBuffer = null;
107
+ }
108
+ }
109
+ },
110
+ uploadBytes: (data, offset, start, amount) => {
111
+ ctx.alive();
112
+ ctx.buffer(buffer);
113
+ try {
114
+ uploadBufferBytes(gl, ctx.vao, buffer, state, data, offset, start, amount);
115
+ }
116
+ finally {
117
+ if (stride === 0) {
118
+ ctx.indexBuffer = null;
119
+ }
120
+ }
121
+ },
122
+ dispose: () => {
123
+ if (!ctx.buffers.delete(buffer)) {
124
+ return;
125
+ }
126
+ if (ctx.indexBuffer === handle) {
127
+ ctx.indexBuffer = null;
128
+ }
129
+ gl.deleteBuffer(handle);
130
+ ctx.bufferBytes -= bytes;
131
+ if (stride !== 0) {
132
+ ctx.vertexBuffers--;
133
+ ctx.vertexBufferBytes -= bytes;
134
+ }
135
+ state.indices = null;
136
+ state.ranges = null;
137
+ state.uploaded = new Uint8Array(0);
138
+ for (let i = 0; i < ctx.vertices.length; i++) {
139
+ const binding = ctx.vertices[i];
140
+ if (binding?.buffer === buffer) {
141
+ ctx.vertices[i] = null;
142
+ }
143
+ else if (binding?.checkedIndex === state) {
144
+ binding.checkedIndex = null;
145
+ }
146
+ }
147
+ },
148
+ };
149
+ ctx.buffers.set(buffer, state);
150
+ if (stride !== 0) {
151
+ ctx.vertexBuffers++;
152
+ ctx.vertexBufferBytes += bytes;
153
+ }
154
+ ctx.bufferBytes += bytes;
155
+ return buffer;
156
+ }
54
157
  //# sourceMappingURL=buffers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffers.js","sourceRoot":"","sources":["../../src/webgl/buffers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffers.js","sourceRoot":"","sources":["../../src/webgl/buffers.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,19 @@
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
- /** An owned WebGL2 context, deliberately independent of the 2D renderer. */
5
+ /**
6
+ * An owned WebGL2 context, deliberately independent of the 2D renderer. Its members that are
7
+ * neither private nor Context3D's are for back-buffer.ts, buffers.ts and readback.ts, which
8
+ * hold parts of it as functions over it.
9
+ */
6
10
  export declare class WebGLContext3D implements Context3D {
7
11
  readonly gl: WebGL2RenderingContext;
8
- private readonly drawState;
9
12
  width: number;
10
13
  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;
18
14
  disposed: boolean;
19
15
  samplerFormats: boolean;
20
- private readonly buffers;
21
- private vertexBuffers;
22
- private bufferBytes;
23
- private vertexBufferBytes;
16
+ profile: Profile;
24
17
  private readonly programs;
25
18
  private readonly textures;
26
19
  private readonly textureCounts;
@@ -32,9 +25,15 @@ export declare class WebGLContext3D implements Context3D {
32
25
  private copy2D;
33
26
  private copyCube;
34
27
  private readonly targetSamples;
35
- private renderTexture;
36
28
  private renderDepth;
37
29
  private renderFace;
30
+ /** Colour outputs 1 to 3, drawn into with renderTexture, and their cube faces. */
31
+ private readonly outputs;
32
+ private readonly outputFaces;
33
+ private outputsChanged;
34
+ /** Whether any of outputs is bound, so that a draw alone into its target looks at none. */
35
+ private outputsBound;
36
+ private floatTargets;
38
37
  private readonly textureSlots;
39
38
  private textureMask;
40
39
  private readonly samplers;
@@ -42,20 +41,8 @@ export declare class WebGLContext3D implements Context3D {
42
41
  private anisotropy;
43
42
  private s3tc;
44
43
  private maxAnisotropy;
45
- private readonly vertices;
46
44
  private enabledAttributes;
47
- private indexBuffer;
48
- private readonly texturesApplied;
49
45
  private selected;
50
- private framebuffer;
51
- private texture;
52
- private resolveFramebuffer;
53
- private colorBuffer;
54
- private resolveDirty;
55
- private depthBuffer;
56
- private antiAlias;
57
- /** The back buffer's pixels to a CSS pixel and to a scissor rectangle's unit. */
58
- private scale;
59
46
  private depthWrite;
60
47
  private depthCompare;
61
48
  private blendEnabled;
@@ -69,7 +56,6 @@ export declare class WebGLContext3D implements Context3D {
69
56
  private stencilReference;
70
57
  private stencilRead;
71
58
  private stencilWrite;
72
- private scissor;
73
59
  private scissorLeft;
74
60
  private scissorTop;
75
61
  private scissorRight;
@@ -77,26 +63,11 @@ export declare class WebGLContext3D implements Context3D {
77
63
  private scissorOutside;
78
64
  private readonly vertexConstants;
79
65
  private readonly fragmentConstants;
80
- private pixels;
81
- private topDown;
82
- private readonly vao;
83
- private readonly limits;
84
66
  private dxtEncoder;
85
67
  /** The host's whole-level encoder; a refusal retains the TypeScript path. */
86
68
  setDxtEncoder(encoder: DxtEncoder): void;
87
69
  constructor(gl: WebGL2RenderingContext, limits?: Partial<WebGLContext3DLimits>);
88
- private alive;
89
- private target;
90
- /** Temporary attachments and separate READ/DRAW bindings bypass the hot target cache. */
91
- private bindFramebuffer;
92
70
  configure(width: number, height: number, depth?: boolean, antiAlias?: number, scale?: number): void;
93
- /**
94
- * Shown at the size asked for, in CSS pixels, as an unstyled canvas of that size would be,
95
- * divided by its scale: a best-resolution back buffer shows its pixels at the screen's.
96
- */
97
- private showAt;
98
- /** The largest back buffer storage the GPU gives: a texture, a renderbuffer and a viewport. */
99
- private storageLimit;
100
71
  unconfigure(): void;
101
72
  clear(red: number, green: number, blue: number, alpha: number, depth?: number, mask?: number, stencil?: number): void;
102
73
  setStencilActions(face: CullFace, compare: CompareMode, pass: StencilAction, depthFail: StencilAction, stencilFail: StencilAction): void;
@@ -106,15 +77,13 @@ export declare class WebGLContext3D implements Context3D {
106
77
  private applyColorMask;
107
78
  setDepth(write: boolean, compare: CompareMode): void;
108
79
  setScissor(x: number | null, y?: number, width?: number, height?: number): void;
109
- private applyScissor;
110
80
  setBlend(source: BlendFactor, destination: BlendFactor): void;
111
81
  setCulling(face: CullFace): void;
112
82
  createBuffer(count: number, stride: number, dynamic?: boolean): Buffer3D;
113
- private buffer;
114
83
  createProgram(): Program3D;
115
84
  private program;
116
85
  createTexture(width: number, height: number, cube?: boolean, format?: TextureFormat, streaming?: number): Texture3D;
117
- createRectangleTexture(width: number, height: number): Texture3D;
86
+ createRectangleTexture(width: number, height: number, format?: TextureFormat): Texture3D;
118
87
  /** GL's internal format for a compressed texture's S3TC, or 0 where the context takes none. */
119
88
  private s3tcFormat;
120
89
  /**
@@ -133,6 +102,19 @@ export declare class WebGLContext3D implements Context3D {
133
102
  setRenderTarget(texture: Texture3D | null, depth?: boolean, face?: number, antiAlias?: number): void;
134
103
  private changedTarget;
135
104
  private finishTarget;
105
+ /** A texture drawn into made whole again: resolved, and its mips regenerated. */
106
+ private finishTexture;
107
+ /** Half floats are drawn into where the GPU's WebGL renders float colour, as every desktop one does. */
108
+ private renderFormat;
109
+ setColorOutput(index: number, texture: Texture3D | null, face?: number): void;
110
+ /**
111
+ * The current target's framebuffer with the extra colour outputs attached, or without
112
+ * them: its draws write every output bound, and a program's unwritten ones are refused
113
+ * before they draw.
114
+ */
115
+ private attachOutputs;
116
+ /** The extra colour outputs bound, a bit each from output 1. */
117
+ private outputMask;
136
118
  setTexture(index: number, texture: Texture3D | null): void;
137
119
  setSampler(index: number, wrap: SamplerWrap, filter: SamplerFilter, mip: SamplerMip): void;
138
120
  private setSamplerState;
@@ -149,7 +131,6 @@ export declare class WebGLContext3D implements Context3D {
149
131
  */
150
132
  private streamingBase;
151
133
  private uniforms;
152
- private resolve;
153
134
  read(width?: number, height?: number): Uint8Array;
154
135
  present(): void;
155
136
  dispose(): void;
@@ -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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"}