UNPKG

3.76 kBJavaScriptView Raw
1import { TYPES, FORMATS } from '@pixi/constants';
2
3function mapTypeAndFormatToInternalFormat(gl) {
4 let table;
5 if ("WebGL2RenderingContext" in globalThis && gl instanceof globalThis.WebGL2RenderingContext) {
6 table = {
7 [TYPES.UNSIGNED_BYTE]: {
8 [FORMATS.RGBA]: gl.RGBA8,
9 [FORMATS.RGB]: gl.RGB8,
10 [FORMATS.RG]: gl.RG8,
11 [FORMATS.RED]: gl.R8,
12 [FORMATS.RGBA_INTEGER]: gl.RGBA8UI,
13 [FORMATS.RGB_INTEGER]: gl.RGB8UI,
14 [FORMATS.RG_INTEGER]: gl.RG8UI,
15 [FORMATS.RED_INTEGER]: gl.R8UI,
16 [FORMATS.ALPHA]: gl.ALPHA,
17 [FORMATS.LUMINANCE]: gl.LUMINANCE,
18 [FORMATS.LUMINANCE_ALPHA]: gl.LUMINANCE_ALPHA
19 },
20 [TYPES.BYTE]: {
21 [FORMATS.RGBA]: gl.RGBA8_SNORM,
22 [FORMATS.RGB]: gl.RGB8_SNORM,
23 [FORMATS.RG]: gl.RG8_SNORM,
24 [FORMATS.RED]: gl.R8_SNORM,
25 [FORMATS.RGBA_INTEGER]: gl.RGBA8I,
26 [FORMATS.RGB_INTEGER]: gl.RGB8I,
27 [FORMATS.RG_INTEGER]: gl.RG8I,
28 [FORMATS.RED_INTEGER]: gl.R8I
29 },
30 [TYPES.UNSIGNED_SHORT]: {
31 [FORMATS.RGBA_INTEGER]: gl.RGBA16UI,
32 [FORMATS.RGB_INTEGER]: gl.RGB16UI,
33 [FORMATS.RG_INTEGER]: gl.RG16UI,
34 [FORMATS.RED_INTEGER]: gl.R16UI,
35 [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT16
36 },
37 [TYPES.SHORT]: {
38 [FORMATS.RGBA_INTEGER]: gl.RGBA16I,
39 [FORMATS.RGB_INTEGER]: gl.RGB16I,
40 [FORMATS.RG_INTEGER]: gl.RG16I,
41 [FORMATS.RED_INTEGER]: gl.R16I
42 },
43 [TYPES.UNSIGNED_INT]: {
44 [FORMATS.RGBA_INTEGER]: gl.RGBA32UI,
45 [FORMATS.RGB_INTEGER]: gl.RGB32UI,
46 [FORMATS.RG_INTEGER]: gl.RG32UI,
47 [FORMATS.RED_INTEGER]: gl.R32UI,
48 [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT24
49 },
50 [TYPES.INT]: {
51 [FORMATS.RGBA_INTEGER]: gl.RGBA32I,
52 [FORMATS.RGB_INTEGER]: gl.RGB32I,
53 [FORMATS.RG_INTEGER]: gl.RG32I,
54 [FORMATS.RED_INTEGER]: gl.R32I
55 },
56 [TYPES.FLOAT]: {
57 [FORMATS.RGBA]: gl.RGBA32F,
58 [FORMATS.RGB]: gl.RGB32F,
59 [FORMATS.RG]: gl.RG32F,
60 [FORMATS.RED]: gl.R32F,
61 [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT32F
62 },
63 [TYPES.HALF_FLOAT]: {
64 [FORMATS.RGBA]: gl.RGBA16F,
65 [FORMATS.RGB]: gl.RGB16F,
66 [FORMATS.RG]: gl.RG16F,
67 [FORMATS.RED]: gl.R16F
68 },
69 [TYPES.UNSIGNED_SHORT_5_6_5]: {
70 [FORMATS.RGB]: gl.RGB565
71 },
72 [TYPES.UNSIGNED_SHORT_4_4_4_4]: {
73 [FORMATS.RGBA]: gl.RGBA4
74 },
75 [TYPES.UNSIGNED_SHORT_5_5_5_1]: {
76 [FORMATS.RGBA]: gl.RGB5_A1
77 },
78 [TYPES.UNSIGNED_INT_2_10_10_10_REV]: {
79 [FORMATS.RGBA]: gl.RGB10_A2,
80 [FORMATS.RGBA_INTEGER]: gl.RGB10_A2UI
81 },
82 [TYPES.UNSIGNED_INT_10F_11F_11F_REV]: {
83 [FORMATS.RGB]: gl.R11F_G11F_B10F
84 },
85 [TYPES.UNSIGNED_INT_5_9_9_9_REV]: {
86 [FORMATS.RGB]: gl.RGB9_E5
87 },
88 [TYPES.UNSIGNED_INT_24_8]: {
89 [FORMATS.DEPTH_STENCIL]: gl.DEPTH24_STENCIL8
90 },
91 [TYPES.FLOAT_32_UNSIGNED_INT_24_8_REV]: {
92 [FORMATS.DEPTH_STENCIL]: gl.DEPTH32F_STENCIL8
93 }
94 };
95 } else {
96 table = {
97 [TYPES.UNSIGNED_BYTE]: {
98 [FORMATS.RGBA]: gl.RGBA,
99 [FORMATS.RGB]: gl.RGB,
100 [FORMATS.ALPHA]: gl.ALPHA,
101 [FORMATS.LUMINANCE]: gl.LUMINANCE,
102 [FORMATS.LUMINANCE_ALPHA]: gl.LUMINANCE_ALPHA
103 },
104 [TYPES.UNSIGNED_SHORT_5_6_5]: {
105 [FORMATS.RGB]: gl.RGB
106 },
107 [TYPES.UNSIGNED_SHORT_4_4_4_4]: {
108 [FORMATS.RGBA]: gl.RGBA
109 },
110 [TYPES.UNSIGNED_SHORT_5_5_5_1]: {
111 [FORMATS.RGBA]: gl.RGBA
112 }
113 };
114 }
115 return table;
116}
117
118export { mapTypeAndFormatToInternalFormat };
119//# sourceMappingURL=mapTypeAndFormatToInternalFormat.mjs.map