@swf2es/context3d 0.0.0-stage → 0.1.1
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/LICENSE +202 -0
- package/README.md +219 -2
- package/dist/agal.d.ts +23 -0
- package/dist/agal.d.ts.map +1 -0
- package/dist/agal.js +410 -0
- package/dist/agal.js.map +1 -0
- package/dist/backend.d.ts +122 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +63 -0
- package/dist/backend.js.map +1 -0
- package/dist/device/index.d.ts +3 -0
- package/dist/device/index.d.ts.map +1 -0
- package/dist/device/index.js +6 -0
- package/dist/device/index.js.map +1 -0
- package/dist/device/programs.d.ts +13 -0
- package/dist/device/programs.d.ts.map +1 -0
- package/dist/device/programs.js +59 -0
- package/dist/device/programs.js.map +1 -0
- package/dist/device/state.d.ts +53 -0
- package/dist/device/state.d.ts.map +1 -0
- package/dist/device/state.js +196 -0
- package/dist/device/state.js.map +1 -0
- package/dist/dxt.d.ts +22 -0
- package/dist/dxt.d.ts.map +1 -0
- package/dist/dxt.js +304 -0
- package/dist/dxt.js.map +1 -0
- package/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +8 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/webgl/buffers.d.ts +27 -0
- package/dist/webgl/buffers.d.ts.map +1 -0
- package/dist/webgl/buffers.js +53 -0
- package/dist/webgl/buffers.js.map +1 -0
- package/dist/webgl/context.d.ts +123 -0
- package/dist/webgl/context.d.ts.map +1 -0
- package/dist/webgl/context.js +1368 -0
- package/dist/webgl/context.js.map +1 -0
- package/dist/webgl/index.d.ts +3 -0
- package/dist/webgl/index.d.ts.map +1 -0
- package/dist/webgl/index.js +2 -0
- package/dist/webgl/index.js.map +1 -0
- package/dist/webgl/limits.d.ts +23 -0
- package/dist/webgl/limits.d.ts.map +1 -0
- package/dist/webgl/limits.js +35 -0
- package/dist/webgl/limits.js.map +1 -0
- package/dist/webgl/programs.d.ts +22 -0
- package/dist/webgl/programs.d.ts.map +1 -0
- package/dist/webgl/programs.js +110 -0
- package/dist/webgl/programs.js.map +1 -0
- package/dist/webgl/state.d.ts +42 -0
- package/dist/webgl/state.d.ts.map +1 -0
- package/dist/webgl/state.js +55 -0
- package/dist/webgl/state.js.map +1 -0
- package/dist/webgl/targets.d.ts +20 -0
- package/dist/webgl/targets.d.ts.map +1 -0
- package/dist/webgl/targets.js +138 -0
- package/dist/webgl/targets.js.map +1 -0
- package/dist/webgl/textures.d.ts +28 -0
- package/dist/webgl/textures.d.ts.map +1 -0
- package/dist/webgl/textures.js +119 -0
- package/dist/webgl/textures.js.map +1 -0
- package/dist/webgl/validation.d.ts +4 -0
- package/dist/webgl/validation.d.ts.map +1 -0
- package/dist/webgl/validation.js +52 -0
- package/dist/webgl/validation.js.map +1 -0
- package/package.json +37 -3
- package/src/agal.ts +496 -0
- package/src/backend.ts +210 -0
- package/src/device/index.ts +5 -0
- package/src/device/programs.ts +66 -0
- package/src/device/state.ts +214 -0
- package/src/dxt.ts +349 -0
- package/src/errors.ts +68 -0
- package/src/index.ts +35 -0
- package/src/webgl/buffers.ts +102 -0
- package/src/webgl/context.ts +1803 -0
- package/src/webgl/index.ts +2 -0
- package/src/webgl/limits.ts +61 -0
- package/src/webgl/programs.ts +145 -0
- package/src/webgl/state.ts +65 -0
- package/src/webgl/targets.ts +229 -0
- package/src/webgl/textures.ts +200 -0
- package/src/webgl/validation.ts +72 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Context3DError } from "../errors.js";
|
|
2
|
+
import type { BufferState, VertexBinding } from "./buffers.js";
|
|
3
|
+
|
|
4
|
+
export function validateIndices(index: BufferState, first: number, count: number): number {
|
|
5
|
+
if (
|
|
6
|
+
index.checkedVersion === index.version &&
|
|
7
|
+
index.checkedFirst === first &&
|
|
8
|
+
index.checkedCount === count
|
|
9
|
+
) {
|
|
10
|
+
return index.maximum;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const values = index.indices;
|
|
14
|
+
if (!values) {
|
|
15
|
+
throw new Context3DError("indexBuffer", "Context3D draw needs an index buffer");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const end = first + count;
|
|
19
|
+
let maximum = -1;
|
|
20
|
+
for (let i = first; i < end; i++) {
|
|
21
|
+
if (index.prefix < end && !index.uploaded[i]) {
|
|
22
|
+
throw new Context3DError("indexData", "Context3D index not uploaded");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
maximum = Math.max(maximum, values[i]);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
index.checkedVersion = index.version;
|
|
29
|
+
index.checkedFirst = first;
|
|
30
|
+
index.checkedCount = count;
|
|
31
|
+
index.maximum = maximum;
|
|
32
|
+
|
|
33
|
+
return maximum;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function validateVertices(
|
|
37
|
+
vertex: BufferState,
|
|
38
|
+
index: BufferState,
|
|
39
|
+
binding: VertexBinding,
|
|
40
|
+
first: number,
|
|
41
|
+
count: number,
|
|
42
|
+
maximum: number,
|
|
43
|
+
): void {
|
|
44
|
+
if (maximum < vertex.prefix) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (maximum >= vertex.uploaded.length) {
|
|
48
|
+
throw new Context3DError("vertexData", "Context3D vertex outside its buffer");
|
|
49
|
+
}
|
|
50
|
+
if (
|
|
51
|
+
binding.checkedIndex === index &&
|
|
52
|
+
binding.checkedIndexVersion === index.version &&
|
|
53
|
+
binding.checkedVertexVersion === vertex.version &&
|
|
54
|
+
binding.checkedFirst === first &&
|
|
55
|
+
binding.checkedCount === count
|
|
56
|
+
) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const values = index.indices as Uint16Array;
|
|
61
|
+
for (let i = first; i < first + count; i++) {
|
|
62
|
+
if (!vertex.uploaded[values[i]]) {
|
|
63
|
+
throw new Context3DError("vertexStream", "Context3D vertex not uploaded");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
binding.checkedIndex = index;
|
|
68
|
+
binding.checkedIndexVersion = index.version;
|
|
69
|
+
binding.checkedVertexVersion = vertex.version;
|
|
70
|
+
binding.checkedFirst = first;
|
|
71
|
+
binding.checkedCount = count;
|
|
72
|
+
}
|