1213 lines
56 KiB
JavaScript

'use strict';
/**
* enums
*/
const enums = {
// buffer usage
USAGE_STATIC: 35044, // gl.STATIC_DRAW
USAGE_DYNAMIC: 35048, // gl.DYNAMIC_DRAW
USAGE_STREAM: 35040, // gl.STREAM_DRAW
// index buffer format
INDEX_FMT_UINT8: 5121, // gl.UNSIGNED_BYTE
INDEX_FMT_UINT16: 5123, // gl.UNSIGNED_SHORT
INDEX_FMT_UINT32: 5125, // gl.UNSIGNED_INT (OES_element_index_uint)
// vertex attribute semantic
ATTR_POSITION: 'a_position',
ATTR_NORMAL: 'a_normal',
ATTR_TANGENT: 'a_tangent',
ATTR_BITANGENT: 'a_bitangent',
ATTR_WEIGHTS: 'a_weights',
ATTR_JOINTS: 'a_joints',
ATTR_COLOR: 'a_color',
ATTR_COLOR0: 'a_color0',
ATTR_COLOR1: 'a_color1',
ATTR_UV: 'a_uv',
ATTR_UV0: 'a_uv0',
ATTR_UV1: 'a_uv1',
ATTR_UV2: 'a_uv2',
ATTR_UV3: 'a_uv3',
ATTR_UV4: 'a_uv4',
ATTR_UV5: 'a_uv5',
ATTR_UV6: 'a_uv6',
ATTR_UV7: 'a_uv7',
// vertex attribute type
ATTR_TYPE_INT8: 5120, // gl.BYTE
ATTR_TYPE_UINT8: 5121, // gl.UNSIGNED_BYTE
ATTR_TYPE_INT16: 5122, // gl.SHORT
ATTR_TYPE_UINT16: 5123, // gl.UNSIGNED_SHORT
ATTR_TYPE_INT32: 5124, // gl.INT
ATTR_TYPE_UINT32: 5125, // gl.UNSIGNED_INT
ATTR_TYPE_FLOAT32: 5126, // gl.FLOAT
// texture filter
FILTER_NEAREST: 0,
FILTER_LINEAR: 1,
// texture wrap mode
WRAP_REPEAT: 10497, // gl.REPEAT
WRAP_CLAMP: 33071, // gl.CLAMP_TO_EDGE
WRAP_MIRROR: 33648, // gl.MIRRORED_REPEAT
// texture format
// compress formats
TEXTURE_FMT_RGB_DXT1: 0,
TEXTURE_FMT_RGBA_DXT1: 1,
TEXTURE_FMT_RGBA_DXT3: 2,
TEXTURE_FMT_RGBA_DXT5: 3,
TEXTURE_FMT_RGB_ETC1: 4,
TEXTURE_FMT_RGB_PVRTC_2BPPV1: 5,
TEXTURE_FMT_RGBA_PVRTC_2BPPV1: 6,
TEXTURE_FMT_RGB_PVRTC_4BPPV1: 7,
TEXTURE_FMT_RGBA_PVRTC_4BPPV1: 8,
// normal formats
TEXTURE_FMT_A8: 9,
TEXTURE_FMT_L8: 10,
TEXTURE_FMT_L8_A8: 11,
TEXTURE_FMT_R5_G6_B5: 12,
TEXTURE_FMT_R5_G5_B5_A1: 13,
TEXTURE_FMT_R4_G4_B4_A4: 14,
TEXTURE_FMT_RGB8: 15,
TEXTURE_FMT_RGBA8: 16,
TEXTURE_FMT_RGB16F: 17,
TEXTURE_FMT_RGBA16F: 18,
TEXTURE_FMT_RGB32F: 19,
TEXTURE_FMT_RGBA32F: 20,
TEXTURE_FMT_R32F: 21,
TEXTURE_FMT_111110F: 22,
TEXTURE_FMT_SRGB: 23,
TEXTURE_FMT_SRGBA: 24,
// depth formats
TEXTURE_FMT_D16: 25,
TEXTURE_FMT_D32: 26,
TEXTURE_FMT_D24S8: 27,
// etc2 format
TEXTURE_FMT_RGB_ETC2: 28,
TEXTURE_FMT_RGBA_ETC2: 29,
// astc format (Adaptive Scalable Texture Compression)
TEXTURE_FMT_RGBA_ASTC_4X4: 30,
TEXTURE_FMT_RGBA_ASTC_5X4: 31,
TEXTURE_FMT_RGBA_ASTC_5X5: 32,
TEXTURE_FMT_RGBA_ASTC_6X5: 33,
TEXTURE_FMT_RGBA_ASTC_6X6: 34,
TEXTURE_FMT_RGBA_ASTC_8X5: 35,
TEXTURE_FMT_RGBA_ASTC_8X6: 36,
TEXTURE_FMT_RGBA_ASTC_8X8: 37,
TEXTURE_FMT_RGBA_ASTC_10X5: 38,
TEXTURE_FMT_RGBA_ASTC_10X6: 39,
TEXTURE_FMT_RGBA_ASTC_10X8: 40,
TEXTURE_FMT_RGBA_ASTC_10X10: 41,
TEXTURE_FMT_RGBA_ASTC_12X10: 42,
TEXTURE_FMT_RGBA_ASTC_12X12: 43,
// astc format (Adaptive Scalable Texture Compression) SRGB
TEXTURE_FMT_SRGBA_ASTC_4X4: 44,
TEXTURE_FMT_SRGBA_ASTC_5X4: 45,
TEXTURE_FMT_SRGBA_ASTC_5X5: 46,
TEXTURE_FMT_SRGBA_ASTC_6X5: 47,
TEXTURE_FMT_SRGBA_ASTC_6X6: 48,
TEXTURE_FMT_SRGBA_ASTC_8X5: 49,
TEXTURE_FMT_SRGBA_ASTC_8X6: 50,
TEXTURE_FMT_SRGBA_ASTC_8X8: 51,
TEXTURE_FMT_SRGBA_ASTC_10X5: 52,
TEXTURE_FMT_SRGBA_ASTC_10X6: 53,
TEXTURE_FMT_SRGBA_ASTC_10X8: 54,
TEXTURE_FMT_SRGBA_ASTC_10X10: 55,
TEXTURE_FMT_SRGBA_ASTC_12X10: 56,
TEXTURE_FMT_SRGBA_ASTC_12X12: 57,
// depth and stencil function
DS_FUNC_NEVER: 512, // gl.NEVER
DS_FUNC_LESS: 513, // gl.LESS
DS_FUNC_EQUAL: 514, // gl.EQUAL
DS_FUNC_LEQUAL: 515, // gl.LEQUAL
DS_FUNC_GREATER: 516, // gl.GREATER
DS_FUNC_NOTEQUAL: 517, // gl.NOTEQUAL
DS_FUNC_GEQUAL: 518, // gl.GEQUAL
DS_FUNC_ALWAYS: 519, // gl.ALWAYS
// render-buffer format
RB_FMT_RGBA4: 32854, // gl.RGBA4
RB_FMT_RGB5_A1: 32855, // gl.RGB5_A1
RB_FMT_RGB565: 36194, // gl.RGB565
RB_FMT_D16: 33189, // gl.DEPTH_COMPONENT16
RB_FMT_S8: 36168, // gl.STENCIL_INDEX8
RB_FMT_D24S8: 34041, // gl.DEPTH_STENCIL
// blend-equation
BLEND_FUNC_ADD: 32774, // gl.FUNC_ADD
BLEND_FUNC_SUBTRACT: 32778, // gl.FUNC_SUBTRACT
BLEND_FUNC_REVERSE_SUBTRACT: 32779, // gl.FUNC_REVERSE_SUBTRACT
// blend
BLEND_ZERO: 0, // gl.ZERO
BLEND_ONE: 1, // gl.ONE
BLEND_SRC_COLOR: 768, // gl.SRC_COLOR
BLEND_ONE_MINUS_SRC_COLOR: 769, // gl.ONE_MINUS_SRC_COLOR
BLEND_DST_COLOR: 774, // gl.DST_COLOR
BLEND_ONE_MINUS_DST_COLOR: 775, // gl.ONE_MINUS_DST_COLOR
BLEND_SRC_ALPHA: 770, // gl.SRC_ALPHA
BLEND_ONE_MINUS_SRC_ALPHA: 771, // gl.ONE_MINUS_SRC_ALPHA
BLEND_DST_ALPHA: 772, // gl.DST_ALPHA
BLEND_ONE_MINUS_DST_ALPHA: 773, // gl.ONE_MINUS_DST_ALPHA
BLEND_CONSTANT_COLOR: 32769, // gl.CONSTANT_COLOR
BLEND_ONE_MINUS_CONSTANT_COLOR: 32770, // gl.ONE_MINUS_CONSTANT_COLOR
BLEND_CONSTANT_ALPHA: 32771, // gl.CONSTANT_ALPHA
BLEND_ONE_MINUS_CONSTANT_ALPHA: 32772, // gl.ONE_MINUS_CONSTANT_ALPHA
BLEND_SRC_ALPHA_SATURATE: 776, // gl.SRC_ALPHA_SATURATE
// stencil operation
STENCIL_DISABLE: 0, // disable stencil
STENCIL_ENABLE: 1, // enable stencil
STENCIL_INHERIT: 2, // inherit stencil states
STENCIL_OP_KEEP: 7680, // gl.KEEP
STENCIL_OP_ZERO: 0, // gl.ZERO
STENCIL_OP_REPLACE: 7681, // gl.REPLACE
STENCIL_OP_INCR: 7682, // gl.INCR
STENCIL_OP_INCR_WRAP: 34055, // gl.INCR_WRAP
STENCIL_OP_DECR: 7683, // gl.DECR
STENCIL_OP_DECR_WRAP: 34056, // gl.DECR_WRAP
STENCIL_OP_INVERT: 5386, // gl.INVERT
// cull
CULL_NONE: 0,
CULL_FRONT: 1028,
CULL_BACK: 1029,
CULL_FRONT_AND_BACK: 1032,
// primitive type
PT_POINTS: 0, // gl.POINTS
PT_LINES: 1, // gl.LINES
PT_LINE_LOOP: 2, // gl.LINE_LOOP
PT_LINE_STRIP: 3, // gl.LINE_STRIP
PT_TRIANGLES: 4, // gl.TRIANGLES
PT_TRIANGLE_STRIP: 5, // gl.TRIANGLE_STRIP
PT_TRIANGLE_FAN: 6, // gl.TRIANGLE_FAN
};
let RenderQueue = {
OPAQUE: 0,
TRANSPARENT: 1,
OVERLAY: 2
};
/**
* JS Implementation of MurmurHash2
*
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
* @see http://github.com/garycourt/murmurhash-js
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
* @see http://sites.google.com/site/murmurhash/
*
* @param {string} str ASCII only
* @param {number} seed Positive integer only
* @return {number} 32-bit positive integer hash
*/
function murmurhash2_32_gc(str, seed) {
var
l = str.length,
h = seed ^ l,
i = 0,
k;
while (l >= 4) {
k =
((str.charCodeAt(i) & 0xff)) |
((str.charCodeAt(++i) & 0xff) << 8) |
((str.charCodeAt(++i) & 0xff) << 16) |
((str.charCodeAt(++i) & 0xff) << 24);
k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));
k ^= k >>> 24;
k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));
h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;
l -= 4;
++i;
}
switch (l) {
case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
case 1: h ^= (str.charCodeAt(i) & 0xff);
h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
}
h ^= h >>> 13;
h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
h ^= h >>> 15;
return h >>> 0;
}
// Extensions
var WebGLEXT;
(function (WebGLEXT) {
WebGLEXT[WebGLEXT["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
WebGLEXT[WebGLEXT["COMPRESSED_RGB_PVRTC_4BPPV1_IMG"] = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
WebGLEXT[WebGLEXT["COMPRESSED_RGB_PVRTC_2BPPV1_IMG"] = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
WebGLEXT[WebGLEXT["COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"] = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
WebGLEXT[WebGLEXT["COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"] = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
WebGLEXT[WebGLEXT["COMPRESSED_RGB_ETC1_WEBGL"] = 36196] = "COMPRESSED_RGB_ETC1_WEBGL";
})(WebGLEXT || (WebGLEXT = {}));
var GFXObjectType;
(function (GFXObjectType) {
GFXObjectType[GFXObjectType["UNKNOWN"] = 0] = "UNKNOWN";
GFXObjectType[GFXObjectType["BUFFER"] = 1] = "BUFFER";
GFXObjectType[GFXObjectType["TEXTURE"] = 2] = "TEXTURE";
GFXObjectType[GFXObjectType["TEXTURE_VIEW"] = 3] = "TEXTURE_VIEW";
GFXObjectType[GFXObjectType["RENDER_PASS"] = 4] = "RENDER_PASS";
GFXObjectType[GFXObjectType["FRAMEBUFFER"] = 5] = "FRAMEBUFFER";
GFXObjectType[GFXObjectType["SAMPLER"] = 6] = "SAMPLER";
GFXObjectType[GFXObjectType["SHADER"] = 7] = "SHADER";
GFXObjectType[GFXObjectType["PIPELINE_LAYOUT"] = 8] = "PIPELINE_LAYOUT";
GFXObjectType[GFXObjectType["PIPELINE_STATE"] = 9] = "PIPELINE_STATE";
GFXObjectType[GFXObjectType["BINDING_LAYOUT"] = 10] = "BINDING_LAYOUT";
GFXObjectType[GFXObjectType["INPUT_ASSEMBLER"] = 11] = "INPUT_ASSEMBLER";
GFXObjectType[GFXObjectType["COMMAND_ALLOCATOR"] = 12] = "COMMAND_ALLOCATOR";
GFXObjectType[GFXObjectType["COMMAND_BUFFER"] = 13] = "COMMAND_BUFFER";
GFXObjectType[GFXObjectType["QUEUE"] = 14] = "QUEUE";
GFXObjectType[GFXObjectType["WINDOW"] = 15] = "WINDOW";
})(GFXObjectType || (GFXObjectType = {}));
var GFXStatus;
(function (GFXStatus) {
GFXStatus[GFXStatus["UNREADY"] = 0] = "UNREADY";
GFXStatus[GFXStatus["FAILED"] = 1] = "FAILED";
GFXStatus[GFXStatus["SUCCESS"] = 2] = "SUCCESS";
})(GFXStatus || (GFXStatus = {}));
var GFXObject = /** @class */ (function () {
function GFXObject(gfxType) {
this._gfxType = GFXObjectType.UNKNOWN;
this._status = GFXStatus.UNREADY;
this._gfxType = gfxType;
}
Object.defineProperty(GFXObject.prototype, "gfxType", {
get: function () {
return this._gfxType;
},
enumerable: true,
configurable: true
});
Object.defineProperty(GFXObject.prototype, "status", {
get: function () {
return this._status;
},
enumerable: true,
configurable: true
});
return GFXObject;
}());
var GFXAttributeName;
(function (GFXAttributeName) {
GFXAttributeName["ATTR_POSITION"] = "a_position";
GFXAttributeName["ATTR_NORMAL"] = "a_normal";
GFXAttributeName["ATTR_TANGENT"] = "a_tangent";
GFXAttributeName["ATTR_BITANGENT"] = "a_bitangent";
GFXAttributeName["ATTR_WEIGHTS"] = "a_weights";
GFXAttributeName["ATTR_JOINTS"] = "a_joints";
GFXAttributeName["ATTR_COLOR"] = "a_color";
GFXAttributeName["ATTR_COLOR1"] = "a_color1";
GFXAttributeName["ATTR_COLOR2"] = "a_color2";
GFXAttributeName["ATTR_TEX_COORD"] = "a_texCoord";
GFXAttributeName["ATTR_TEX_COORD1"] = "a_texCoord1";
GFXAttributeName["ATTR_TEX_COORD2"] = "a_texCoord2";
GFXAttributeName["ATTR_TEX_COORD3"] = "a_texCoord3";
GFXAttributeName["ATTR_TEX_COORD4"] = "a_texCoord4";
GFXAttributeName["ATTR_TEX_COORD5"] = "a_texCoord5";
GFXAttributeName["ATTR_TEX_COORD6"] = "a_texCoord6";
GFXAttributeName["ATTR_TEX_COORD7"] = "a_texCoord7";
GFXAttributeName["ATTR_TEX_COORD8"] = "a_texCoord8";
})(GFXAttributeName || (GFXAttributeName = {}));
var GFXType;
(function (GFXType) {
GFXType[GFXType["UNKNOWN"] = 0] = "UNKNOWN";
GFXType[GFXType["BOOL"] = 1] = "BOOL";
GFXType[GFXType["BOOL2"] = 2] = "BOOL2";
GFXType[GFXType["BOOL3"] = 3] = "BOOL3";
GFXType[GFXType["BOOL4"] = 4] = "BOOL4";
GFXType[GFXType["INT"] = 5] = "INT";
GFXType[GFXType["INT2"] = 6] = "INT2";
GFXType[GFXType["INT3"] = 7] = "INT3";
GFXType[GFXType["INT4"] = 8] = "INT4";
GFXType[GFXType["UINT"] = 9] = "UINT";
GFXType[GFXType["UINT2"] = 10] = "UINT2";
GFXType[GFXType["UINT3"] = 11] = "UINT3";
GFXType[GFXType["UINT4"] = 12] = "UINT4";
GFXType[GFXType["FLOAT"] = 13] = "FLOAT";
GFXType[GFXType["FLOAT2"] = 14] = "FLOAT2";
GFXType[GFXType["FLOAT3"] = 15] = "FLOAT3";
GFXType[GFXType["FLOAT4"] = 16] = "FLOAT4";
GFXType[GFXType["COLOR4"] = 17] = "COLOR4";
GFXType[GFXType["MAT2"] = 18] = "MAT2";
GFXType[GFXType["MAT2X3"] = 19] = "MAT2X3";
GFXType[GFXType["MAT2X4"] = 20] = "MAT2X4";
GFXType[GFXType["MAT3X2"] = 21] = "MAT3X2";
GFXType[GFXType["MAT3"] = 22] = "MAT3";
GFXType[GFXType["MAT3X4"] = 23] = "MAT3X4";
GFXType[GFXType["MAT4X2"] = 24] = "MAT4X2";
GFXType[GFXType["MAT4X3"] = 25] = "MAT4X3";
GFXType[GFXType["MAT4"] = 26] = "MAT4";
GFXType[GFXType["SAMPLER1D"] = 27] = "SAMPLER1D";
GFXType[GFXType["SAMPLER1D_ARRAY"] = 28] = "SAMPLER1D_ARRAY";
GFXType[GFXType["SAMPLER2D"] = 29] = "SAMPLER2D";
GFXType[GFXType["SAMPLER2D_ARRAY"] = 30] = "SAMPLER2D_ARRAY";
GFXType[GFXType["SAMPLER3D"] = 31] = "SAMPLER3D";
GFXType[GFXType["SAMPLER_CUBE"] = 32] = "SAMPLER_CUBE";
GFXType[GFXType["COUNT"] = 33] = "COUNT";
})(GFXType || (GFXType = {}));
var GFXFormat;
(function (GFXFormat) {
GFXFormat[GFXFormat["UNKNOWN"] = 0] = "UNKNOWN";
GFXFormat[GFXFormat["A8"] = 1] = "A8";
GFXFormat[GFXFormat["L8"] = 2] = "L8";
GFXFormat[GFXFormat["LA8"] = 3] = "LA8";
GFXFormat[GFXFormat["R8"] = 4] = "R8";
GFXFormat[GFXFormat["R8SN"] = 5] = "R8SN";
GFXFormat[GFXFormat["R8UI"] = 6] = "R8UI";
GFXFormat[GFXFormat["R8I"] = 7] = "R8I";
GFXFormat[GFXFormat["R16F"] = 8] = "R16F";
GFXFormat[GFXFormat["R16UI"] = 9] = "R16UI";
GFXFormat[GFXFormat["R16I"] = 10] = "R16I";
GFXFormat[GFXFormat["R32F"] = 11] = "R32F";
GFXFormat[GFXFormat["R32UI"] = 12] = "R32UI";
GFXFormat[GFXFormat["R32I"] = 13] = "R32I";
GFXFormat[GFXFormat["RG8"] = 14] = "RG8";
GFXFormat[GFXFormat["RG8SN"] = 15] = "RG8SN";
GFXFormat[GFXFormat["RG8UI"] = 16] = "RG8UI";
GFXFormat[GFXFormat["RG8I"] = 17] = "RG8I";
GFXFormat[GFXFormat["RG16F"] = 18] = "RG16F";
GFXFormat[GFXFormat["RG16UI"] = 19] = "RG16UI";
GFXFormat[GFXFormat["RG16I"] = 20] = "RG16I";
GFXFormat[GFXFormat["RG32F"] = 21] = "RG32F";
GFXFormat[GFXFormat["RG32UI"] = 22] = "RG32UI";
GFXFormat[GFXFormat["RG32I"] = 23] = "RG32I";
GFXFormat[GFXFormat["RGB8"] = 24] = "RGB8";
GFXFormat[GFXFormat["SRGB8"] = 25] = "SRGB8";
GFXFormat[GFXFormat["RGB8SN"] = 26] = "RGB8SN";
GFXFormat[GFXFormat["RGB8UI"] = 27] = "RGB8UI";
GFXFormat[GFXFormat["RGB8I"] = 28] = "RGB8I";
GFXFormat[GFXFormat["RGB16F"] = 29] = "RGB16F";
GFXFormat[GFXFormat["RGB16UI"] = 30] = "RGB16UI";
GFXFormat[GFXFormat["RGB16I"] = 31] = "RGB16I";
GFXFormat[GFXFormat["RGB32F"] = 32] = "RGB32F";
GFXFormat[GFXFormat["RGB32UI"] = 33] = "RGB32UI";
GFXFormat[GFXFormat["RGB32I"] = 34] = "RGB32I";
GFXFormat[GFXFormat["RGBA8"] = 35] = "RGBA8";
GFXFormat[GFXFormat["SRGB8_A8"] = 36] = "SRGB8_A8";
GFXFormat[GFXFormat["RGBA8SN"] = 37] = "RGBA8SN";
GFXFormat[GFXFormat["RGBA8UI"] = 38] = "RGBA8UI";
GFXFormat[GFXFormat["RGBA8I"] = 39] = "RGBA8I";
GFXFormat[GFXFormat["RGBA16F"] = 40] = "RGBA16F";
GFXFormat[GFXFormat["RGBA16UI"] = 41] = "RGBA16UI";
GFXFormat[GFXFormat["RGBA16I"] = 42] = "RGBA16I";
GFXFormat[GFXFormat["RGBA32F"] = 43] = "RGBA32F";
GFXFormat[GFXFormat["RGBA32UI"] = 44] = "RGBA32UI";
GFXFormat[GFXFormat["RGBA32I"] = 45] = "RGBA32I";
// Special Format
GFXFormat[GFXFormat["R5G6B5"] = 46] = "R5G6B5";
GFXFormat[GFXFormat["R11G11B10F"] = 47] = "R11G11B10F";
GFXFormat[GFXFormat["RGB5A1"] = 48] = "RGB5A1";
GFXFormat[GFXFormat["RGBA4"] = 49] = "RGBA4";
GFXFormat[GFXFormat["RGB10A2"] = 50] = "RGB10A2";
GFXFormat[GFXFormat["RGB10A2UI"] = 51] = "RGB10A2UI";
GFXFormat[GFXFormat["RGB9E5"] = 52] = "RGB9E5";
// Depth-Stencil Format
GFXFormat[GFXFormat["D16"] = 53] = "D16";
GFXFormat[GFXFormat["D16S8"] = 54] = "D16S8";
GFXFormat[GFXFormat["D24"] = 55] = "D24";
GFXFormat[GFXFormat["D24S8"] = 56] = "D24S8";
GFXFormat[GFXFormat["D32F"] = 57] = "D32F";
GFXFormat[GFXFormat["D32F_S8"] = 58] = "D32F_S8";
// Compressed Format
// Block Compression Format, DDS (DirectDraw Surface)
// DXT1: 3 channels (5:6:5), 1/8 origianl size, with 0 or 1 bit of alpha
GFXFormat[GFXFormat["BC1"] = 59] = "BC1";
GFXFormat[GFXFormat["BC1_ALPHA"] = 60] = "BC1_ALPHA";
GFXFormat[GFXFormat["BC1_SRGB"] = 61] = "BC1_SRGB";
GFXFormat[GFXFormat["BC1_SRGB_ALPHA"] = 62] = "BC1_SRGB_ALPHA";
// DXT3: 4 channels (5:6:5), 1/4 origianl size, with 4 bits of alpha
GFXFormat[GFXFormat["BC2"] = 63] = "BC2";
GFXFormat[GFXFormat["BC2_SRGB"] = 64] = "BC2_SRGB";
// DXT5: 4 channels (5:6:5), 1/4 origianl size, with 8 bits of alpha
GFXFormat[GFXFormat["BC3"] = 65] = "BC3";
GFXFormat[GFXFormat["BC3_SRGB"] = 66] = "BC3_SRGB";
// 1 channel (8), 1/4 origianl size
GFXFormat[GFXFormat["BC4"] = 67] = "BC4";
GFXFormat[GFXFormat["BC4_SNORM"] = 68] = "BC4_SNORM";
// 2 channels (8:8), 1/2 origianl size
GFXFormat[GFXFormat["BC5"] = 69] = "BC5";
GFXFormat[GFXFormat["BC5_SNORM"] = 70] = "BC5_SNORM";
// 3 channels (16:16:16), half-floating point, 1/6 origianl size
// UF16: unsigned float, 5 exponent bits + 11 mantissa bits
// SF16: signed float, 1 signed bit + 5 exponent bits + 10 mantissa bits
GFXFormat[GFXFormat["BC6H_UF16"] = 71] = "BC6H_UF16";
GFXFormat[GFXFormat["BC6H_SF16"] = 72] = "BC6H_SF16";
// 4 channels (4~7 bits per channel) with 0 to 8 bits of alpha, 1/3 original size
GFXFormat[GFXFormat["BC7"] = 73] = "BC7";
GFXFormat[GFXFormat["BC7_SRGB"] = 74] = "BC7_SRGB";
// Ericsson Texture Compression Format
GFXFormat[GFXFormat["ETC_RGB8"] = 75] = "ETC_RGB8";
GFXFormat[GFXFormat["ETC2_RGB8"] = 76] = "ETC2_RGB8";
GFXFormat[GFXFormat["ETC2_SRGB8"] = 77] = "ETC2_SRGB8";
GFXFormat[GFXFormat["ETC2_RGB8_A1"] = 78] = "ETC2_RGB8_A1";
GFXFormat[GFXFormat["ETC2_SRGB8_A1"] = 79] = "ETC2_SRGB8_A1";
GFXFormat[GFXFormat["ETC2_RGBA8"] = 80] = "ETC2_RGBA8";
GFXFormat[GFXFormat["ETC2_SRGB8_A8"] = 81] = "ETC2_SRGB8_A8";
GFXFormat[GFXFormat["EAC_R11"] = 82] = "EAC_R11";
GFXFormat[GFXFormat["EAC_R11SN"] = 83] = "EAC_R11SN";
GFXFormat[GFXFormat["EAC_RG11"] = 84] = "EAC_RG11";
GFXFormat[GFXFormat["EAC_RG11SN"] = 85] = "EAC_RG11SN";
// PVRTC (PowerVR)
GFXFormat[GFXFormat["PVRTC_RGB2"] = 86] = "PVRTC_RGB2";
GFXFormat[GFXFormat["PVRTC_RGBA2"] = 87] = "PVRTC_RGBA2";
GFXFormat[GFXFormat["PVRTC_RGB4"] = 88] = "PVRTC_RGB4";
GFXFormat[GFXFormat["PVRTC_RGBA4"] = 89] = "PVRTC_RGBA4";
GFXFormat[GFXFormat["PVRTC2_2BPP"] = 90] = "PVRTC2_2BPP";
GFXFormat[GFXFormat["PVRTC2_4BPP"] = 91] = "PVRTC2_4BPP";
// ASTC (Adaptive Scalable Texture Compression)
GFXFormat[GFXFormat["ASTC_RGBA_4x4"] = 92] = "ASTC_RGBA_4x4";
GFXFormat[GFXFormat["ASTC_RGBA_5x4"] = 92] = "ASTC_RGBA_5x4";
GFXFormat[GFXFormat["ASTC_RGBA_5x5"] = 92] = "ASTC_RGBA_5x5";
GFXFormat[GFXFormat["ASTC_RGBA_6x5"] = 92] = "ASTC_RGBA_6x5";
GFXFormat[GFXFormat["ASTC_RGBA_6x6"] = 92] = "ASTC_RGBA_6x6";
GFXFormat[GFXFormat["ASTC_RGBA_8x5"] = 92] = "ASTC_RGBA_8x5";
GFXFormat[GFXFormat["ASTC_RGBA_8x6"] = 92] = "ASTC_RGBA_8x6";
GFXFormat[GFXFormat["ASTC_RGBA_8x8"] = 92] = "ASTC_RGBA_8x8";
GFXFormat[GFXFormat["ASTC_RGBA_10x5"] = 92] = "ASTC_RGBA_10x5";
GFXFormat[GFXFormat["ASTC_RGBA_10x6"] = 92] = "ASTC_RGBA_10x6";
GFXFormat[GFXFormat["ASTC_RGBA_10x8"] = 92] = "ASTC_RGBA_10x8";
GFXFormat[GFXFormat["ASTC_RGBA_10x10"] = 92] = "ASTC_RGBA_10x10";
GFXFormat[GFXFormat["ASTC_RGBA_12x10"] = 92] = "ASTC_RGBA_12x10";
GFXFormat[GFXFormat["ASTC_RGBA_12x12"] = 92] = "ASTC_RGBA_12x12";
// ASTC (Adaptive Scalable Texture Compression) SRGB
GFXFormat[GFXFormat["ASTC_SRGBA_4x4"] = 92] = "ASTC_SRGBA_4x4";
GFXFormat[GFXFormat["ASTC_SRGBA_5x4"] = 92] = "ASTC_SRGBA_5x4";
GFXFormat[GFXFormat["ASTC_SRGBA_5x5"] = 92] = "ASTC_SRGBA_5x5";
GFXFormat[GFXFormat["ASTC_SRGBA_6x5"] = 92] = "ASTC_SRGBA_6x5";
GFXFormat[GFXFormat["ASTC_SRGBA_6x6"] = 92] = "ASTC_SRGBA_6x6";
GFXFormat[GFXFormat["ASTC_SRGBA_8x5"] = 92] = "ASTC_SRGBA_8x5";
GFXFormat[GFXFormat["ASTC_SRGBA_8x6"] = 92] = "ASTC_SRGBA_8x6";
GFXFormat[GFXFormat["ASTC_SRGBA_8x8"] = 92] = "ASTC_SRGBA_8x8";
GFXFormat[GFXFormat["ASTC_SRGBA_10x5"] = 92] = "ASTC_SRGBA_10x5";
GFXFormat[GFXFormat["ASTC_SRGBA_10x6"] = 92] = "ASTC_SRGBA_10x6";
GFXFormat[GFXFormat["ASTC_SRGBA_10x8"] = 92] = "ASTC_SRGBA_10x8";
GFXFormat[GFXFormat["ASTC_SRGBA_10x10"] = 92] = "ASTC_SRGBA_10x10";
GFXFormat[GFXFormat["ASTC_SRGBA_12x10"] = 92] = "ASTC_SRGBA_12x10";
GFXFormat[GFXFormat["ASTC_SRGBA_12x12"] = 92] = "ASTC_SRGBA_12x12";
})(GFXFormat || (GFXFormat = {}));
var GFXBufferUsageBit;
(function (GFXBufferUsageBit) {
GFXBufferUsageBit[GFXBufferUsageBit["NONE"] = 0] = "NONE";
GFXBufferUsageBit[GFXBufferUsageBit["TRANSFER_SRC"] = 1] = "TRANSFER_SRC";
GFXBufferUsageBit[GFXBufferUsageBit["TRANSFER_DST"] = 2] = "TRANSFER_DST";
GFXBufferUsageBit[GFXBufferUsageBit["INDEX"] = 4] = "INDEX";
GFXBufferUsageBit[GFXBufferUsageBit["VERTEX"] = 8] = "VERTEX";
GFXBufferUsageBit[GFXBufferUsageBit["UNIFORM"] = 16] = "UNIFORM";
GFXBufferUsageBit[GFXBufferUsageBit["STORAGE"] = 32] = "STORAGE";
GFXBufferUsageBit[GFXBufferUsageBit["INDIRECT"] = 64] = "INDIRECT";
})(GFXBufferUsageBit || (GFXBufferUsageBit = {}));
var GFXMemoryUsageBit;
(function (GFXMemoryUsageBit) {
GFXMemoryUsageBit[GFXMemoryUsageBit["NONE"] = 0] = "NONE";
GFXMemoryUsageBit[GFXMemoryUsageBit["DEVICE"] = 1] = "DEVICE";
GFXMemoryUsageBit[GFXMemoryUsageBit["HOST"] = 2] = "HOST";
})(GFXMemoryUsageBit || (GFXMemoryUsageBit = {}));
var GFXBufferAccessBit;
(function (GFXBufferAccessBit) {
GFXBufferAccessBit[GFXBufferAccessBit["NONE"] = 0] = "NONE";
GFXBufferAccessBit[GFXBufferAccessBit["READ"] = 1] = "READ";
GFXBufferAccessBit[GFXBufferAccessBit["WRITE"] = 2] = "WRITE";
})(GFXBufferAccessBit || (GFXBufferAccessBit = {}));
var GFXPrimitiveMode;
(function (GFXPrimitiveMode) {
GFXPrimitiveMode[GFXPrimitiveMode["POINT_LIST"] = 0] = "POINT_LIST";
GFXPrimitiveMode[GFXPrimitiveMode["LINE_LIST"] = 1] = "LINE_LIST";
GFXPrimitiveMode[GFXPrimitiveMode["LINE_STRIP"] = 2] = "LINE_STRIP";
GFXPrimitiveMode[GFXPrimitiveMode["LINE_LOOP"] = 3] = "LINE_LOOP";
GFXPrimitiveMode[GFXPrimitiveMode["LINE_LIST_ADJACENCY"] = 4] = "LINE_LIST_ADJACENCY";
GFXPrimitiveMode[GFXPrimitiveMode["LINE_STRIP_ADJACENCY"] = 5] = "LINE_STRIP_ADJACENCY";
GFXPrimitiveMode[GFXPrimitiveMode["ISO_LINE_LIST"] = 6] = "ISO_LINE_LIST";
// raycast detectable:
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_LIST"] = 7] = "TRIANGLE_LIST";
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_STRIP"] = 8] = "TRIANGLE_STRIP";
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_FAN"] = 9] = "TRIANGLE_FAN";
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_LIST_ADJACENCY"] = 10] = "TRIANGLE_LIST_ADJACENCY";
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_STRIP_ADJACENCY"] = 11] = "TRIANGLE_STRIP_ADJACENCY";
GFXPrimitiveMode[GFXPrimitiveMode["TRIANGLE_PATCH_ADJACENCY"] = 12] = "TRIANGLE_PATCH_ADJACENCY";
GFXPrimitiveMode[GFXPrimitiveMode["QUAD_PATCH_LIST"] = 13] = "QUAD_PATCH_LIST";
})(GFXPrimitiveMode || (GFXPrimitiveMode = {}));
var GFXPolygonMode;
(function (GFXPolygonMode) {
GFXPolygonMode[GFXPolygonMode["FILL"] = 0] = "FILL";
GFXPolygonMode[GFXPolygonMode["POINT"] = 1] = "POINT";
GFXPolygonMode[GFXPolygonMode["LINE"] = 2] = "LINE";
})(GFXPolygonMode || (GFXPolygonMode = {}));
var GFXShadeModel;
(function (GFXShadeModel) {
GFXShadeModel[GFXShadeModel["GOURAND"] = 0] = "GOURAND";
GFXShadeModel[GFXShadeModel["FLAT"] = 1] = "FLAT";
})(GFXShadeModel || (GFXShadeModel = {}));
var GFXCullMode;
(function (GFXCullMode) {
GFXCullMode[GFXCullMode["NONE"] = 0] = "NONE";
GFXCullMode[GFXCullMode["FRONT"] = 1] = "FRONT";
GFXCullMode[GFXCullMode["BACK"] = 2] = "BACK";
})(GFXCullMode || (GFXCullMode = {}));
var GFXComparisonFunc;
(function (GFXComparisonFunc) {
GFXComparisonFunc[GFXComparisonFunc["NEVER"] = 0] = "NEVER";
GFXComparisonFunc[GFXComparisonFunc["LESS"] = 1] = "LESS";
GFXComparisonFunc[GFXComparisonFunc["EQUAL"] = 2] = "EQUAL";
GFXComparisonFunc[GFXComparisonFunc["LESS_EQUAL"] = 3] = "LESS_EQUAL";
GFXComparisonFunc[GFXComparisonFunc["GREATER"] = 4] = "GREATER";
GFXComparisonFunc[GFXComparisonFunc["NOT_EQUAL"] = 5] = "NOT_EQUAL";
GFXComparisonFunc[GFXComparisonFunc["GREATER_EQUAL"] = 6] = "GREATER_EQUAL";
GFXComparisonFunc[GFXComparisonFunc["ALWAYS"] = 7] = "ALWAYS";
})(GFXComparisonFunc || (GFXComparisonFunc = {}));
var GFXStencilOp;
(function (GFXStencilOp) {
GFXStencilOp[GFXStencilOp["ZERO"] = 0] = "ZERO";
GFXStencilOp[GFXStencilOp["KEEP"] = 1] = "KEEP";
GFXStencilOp[GFXStencilOp["REPLACE"] = 2] = "REPLACE";
GFXStencilOp[GFXStencilOp["INCR"] = 3] = "INCR";
GFXStencilOp[GFXStencilOp["DECR"] = 4] = "DECR";
GFXStencilOp[GFXStencilOp["INVERT"] = 5] = "INVERT";
GFXStencilOp[GFXStencilOp["INCR_WRAP"] = 6] = "INCR_WRAP";
GFXStencilOp[GFXStencilOp["DECR_WRAP"] = 7] = "DECR_WRAP";
})(GFXStencilOp || (GFXStencilOp = {}));
var GFXBlendOp;
(function (GFXBlendOp) {
GFXBlendOp[GFXBlendOp["ADD"] = 0] = "ADD";
GFXBlendOp[GFXBlendOp["SUB"] = 1] = "SUB";
GFXBlendOp[GFXBlendOp["REV_SUB"] = 2] = "REV_SUB";
GFXBlendOp[GFXBlendOp["MIN"] = 3] = "MIN";
GFXBlendOp[GFXBlendOp["MAX"] = 4] = "MAX";
})(GFXBlendOp || (GFXBlendOp = {}));
var GFXBlendFactor;
(function (GFXBlendFactor) {
GFXBlendFactor[GFXBlendFactor["ZERO"] = 0] = "ZERO";
GFXBlendFactor[GFXBlendFactor["ONE"] = 1] = "ONE";
GFXBlendFactor[GFXBlendFactor["SRC_ALPHA"] = 2] = "SRC_ALPHA";
GFXBlendFactor[GFXBlendFactor["DST_ALPHA"] = 3] = "DST_ALPHA";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_SRC_ALPHA"] = 4] = "ONE_MINUS_SRC_ALPHA";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_DST_ALPHA"] = 5] = "ONE_MINUS_DST_ALPHA";
GFXBlendFactor[GFXBlendFactor["SRC_COLOR"] = 6] = "SRC_COLOR";
GFXBlendFactor[GFXBlendFactor["DST_COLOR"] = 7] = "DST_COLOR";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_SRC_COLOR"] = 8] = "ONE_MINUS_SRC_COLOR";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_DST_COLOR"] = 9] = "ONE_MINUS_DST_COLOR";
GFXBlendFactor[GFXBlendFactor["SRC_ALPHA_SATURATE"] = 10] = "SRC_ALPHA_SATURATE";
GFXBlendFactor[GFXBlendFactor["CONSTANT_COLOR"] = 11] = "CONSTANT_COLOR";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_CONSTANT_COLOR"] = 12] = "ONE_MINUS_CONSTANT_COLOR";
GFXBlendFactor[GFXBlendFactor["CONSTANT_ALPHA"] = 13] = "CONSTANT_ALPHA";
GFXBlendFactor[GFXBlendFactor["ONE_MINUS_CONSTANT_ALPHA"] = 14] = "ONE_MINUS_CONSTANT_ALPHA";
})(GFXBlendFactor || (GFXBlendFactor = {}));
var GFXColorMask;
(function (GFXColorMask) {
GFXColorMask[GFXColorMask["NONE"] = 0] = "NONE";
GFXColorMask[GFXColorMask["R"] = 1] = "R";
GFXColorMask[GFXColorMask["G"] = 2] = "G";
GFXColorMask[GFXColorMask["B"] = 4] = "B";
GFXColorMask[GFXColorMask["A"] = 8] = "A";
GFXColorMask[GFXColorMask["ALL"] = 15] = "ALL";
})(GFXColorMask || (GFXColorMask = {}));
var GFXFilter;
(function (GFXFilter) {
GFXFilter[GFXFilter["NONE"] = 0] = "NONE";
GFXFilter[GFXFilter["POINT"] = 1] = "POINT";
GFXFilter[GFXFilter["LINEAR"] = 2] = "LINEAR";
GFXFilter[GFXFilter["ANISOTROPIC"] = 3] = "ANISOTROPIC";
})(GFXFilter || (GFXFilter = {}));
var GFXAddress;
(function (GFXAddress) {
GFXAddress[GFXAddress["WRAP"] = 0] = "WRAP";
GFXAddress[GFXAddress["MIRROR"] = 1] = "MIRROR";
GFXAddress[GFXAddress["CLAMP"] = 2] = "CLAMP";
GFXAddress[GFXAddress["BORDER"] = 3] = "BORDER";
})(GFXAddress || (GFXAddress = {}));
var GFXTextureType;
(function (GFXTextureType) {
GFXTextureType[GFXTextureType["TEX1D"] = 0] = "TEX1D";
GFXTextureType[GFXTextureType["TEX2D"] = 1] = "TEX2D";
GFXTextureType[GFXTextureType["TEX3D"] = 2] = "TEX3D";
})(GFXTextureType || (GFXTextureType = {}));
var GFXTextureUsageBit;
(function (GFXTextureUsageBit) {
GFXTextureUsageBit[GFXTextureUsageBit["NONE"] = 0] = "NONE";
GFXTextureUsageBit[GFXTextureUsageBit["TRANSFER_SRC"] = 1] = "TRANSFER_SRC";
GFXTextureUsageBit[GFXTextureUsageBit["TRANSFER_DST"] = 2] = "TRANSFER_DST";
GFXTextureUsageBit[GFXTextureUsageBit["SAMPLED"] = 4] = "SAMPLED";
GFXTextureUsageBit[GFXTextureUsageBit["STORAGE"] = 8] = "STORAGE";
GFXTextureUsageBit[GFXTextureUsageBit["COLOR_ATTACHMENT"] = 16] = "COLOR_ATTACHMENT";
GFXTextureUsageBit[GFXTextureUsageBit["DEPTH_STENCIL_ATTACHMENT"] = 32] = "DEPTH_STENCIL_ATTACHMENT";
GFXTextureUsageBit[GFXTextureUsageBit["TRANSIENT_ATTACHMENT"] = 64] = "TRANSIENT_ATTACHMENT";
GFXTextureUsageBit[GFXTextureUsageBit["INPUT_ATTACHMENT"] = 128] = "INPUT_ATTACHMENT";
})(GFXTextureUsageBit || (GFXTextureUsageBit = {}));
var GFXSampleCount;
(function (GFXSampleCount) {
GFXSampleCount[GFXSampleCount["X1"] = 0] = "X1";
GFXSampleCount[GFXSampleCount["X2"] = 1] = "X2";
GFXSampleCount[GFXSampleCount["X4"] = 2] = "X4";
GFXSampleCount[GFXSampleCount["X8"] = 3] = "X8";
GFXSampleCount[GFXSampleCount["X16"] = 4] = "X16";
GFXSampleCount[GFXSampleCount["X32"] = 5] = "X32";
GFXSampleCount[GFXSampleCount["X64"] = 6] = "X64";
})(GFXSampleCount || (GFXSampleCount = {}));
var GFXTextureFlagBit;
(function (GFXTextureFlagBit) {
GFXTextureFlagBit[GFXTextureFlagBit["NONE"] = 0] = "NONE";
GFXTextureFlagBit[GFXTextureFlagBit["GEN_MIPMAP"] = 1] = "GEN_MIPMAP";
GFXTextureFlagBit[GFXTextureFlagBit["CUBEMAP"] = 2] = "CUBEMAP";
GFXTextureFlagBit[GFXTextureFlagBit["BAKUP_BUFFER"] = 4] = "BAKUP_BUFFER";
})(GFXTextureFlagBit || (GFXTextureFlagBit = {}));
var GFXTextureViewType;
(function (GFXTextureViewType) {
GFXTextureViewType[GFXTextureViewType["TV1D"] = 0] = "TV1D";
GFXTextureViewType[GFXTextureViewType["TV2D"] = 1] = "TV2D";
GFXTextureViewType[GFXTextureViewType["TV3D"] = 2] = "TV3D";
GFXTextureViewType[GFXTextureViewType["CUBE"] = 3] = "CUBE";
GFXTextureViewType[GFXTextureViewType["TV1D_ARRAY"] = 4] = "TV1D_ARRAY";
GFXTextureViewType[GFXTextureViewType["TV2D_ARRAY"] = 5] = "TV2D_ARRAY";
})(GFXTextureViewType || (GFXTextureViewType = {}));
var GFXShaderType;
(function (GFXShaderType) {
GFXShaderType[GFXShaderType["VERTEX"] = 0] = "VERTEX";
GFXShaderType[GFXShaderType["HULL"] = 1] = "HULL";
GFXShaderType[GFXShaderType["DOMAIN"] = 2] = "DOMAIN";
GFXShaderType[GFXShaderType["GEOMETRY"] = 3] = "GEOMETRY";
GFXShaderType[GFXShaderType["FRAGMENT"] = 4] = "FRAGMENT";
GFXShaderType[GFXShaderType["COMPUTE"] = 5] = "COMPUTE";
GFXShaderType[GFXShaderType["COUNT"] = 6] = "COUNT";
})(GFXShaderType || (GFXShaderType = {}));
var GFXBindingType;
(function (GFXBindingType) {
GFXBindingType[GFXBindingType["UNKNOWN"] = 0] = "UNKNOWN";
GFXBindingType[GFXBindingType["UNIFORM_BUFFER"] = 1] = "UNIFORM_BUFFER";
GFXBindingType[GFXBindingType["SAMPLER"] = 2] = "SAMPLER";
GFXBindingType[GFXBindingType["STORAGE_BUFFER"] = 3] = "STORAGE_BUFFER";
})(GFXBindingType || (GFXBindingType = {}));
var GFXCommandBufferType;
(function (GFXCommandBufferType) {
GFXCommandBufferType[GFXCommandBufferType["PRIMARY"] = 0] = "PRIMARY";
GFXCommandBufferType[GFXCommandBufferType["SECONDARY"] = 1] = "SECONDARY";
})(GFXCommandBufferType || (GFXCommandBufferType = {}));
// Enumeration all possible values of operations to be performed on initially Loading a Framebuffer Object.
var GFXLoadOp;
(function (GFXLoadOp) {
GFXLoadOp[GFXLoadOp["LOAD"] = 0] = "LOAD";
GFXLoadOp[GFXLoadOp["CLEAR"] = 1] = "CLEAR";
GFXLoadOp[GFXLoadOp["DISCARD"] = 2] = "DISCARD";
})(GFXLoadOp || (GFXLoadOp = {}));
// Enumerates all possible values of operations to be performed when Storing to a Framebuffer Object.
var GFXStoreOp;
(function (GFXStoreOp) {
GFXStoreOp[GFXStoreOp["STORE"] = 0] = "STORE";
GFXStoreOp[GFXStoreOp["DISCARD"] = 1] = "DISCARD";
})(GFXStoreOp || (GFXStoreOp = {}));
var GFXTextureLayout;
(function (GFXTextureLayout) {
GFXTextureLayout[GFXTextureLayout["UNDEFINED"] = 0] = "UNDEFINED";
GFXTextureLayout[GFXTextureLayout["GENERAL"] = 1] = "GENERAL";
GFXTextureLayout[GFXTextureLayout["COLOR_ATTACHMENT_OPTIMAL"] = 2] = "COLOR_ATTACHMENT_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["DEPTH_STENCIL_ATTACHMENT_OPTIMAL"] = 3] = "DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["DEPTH_STENCIL_READONLY_OPTIMAL"] = 4] = "DEPTH_STENCIL_READONLY_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["SHADER_READONLY_OPTIMAL"] = 5] = "SHADER_READONLY_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["TRANSFER_SRC_OPTIMAL"] = 6] = "TRANSFER_SRC_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["TRANSFER_DST_OPTIMAL"] = 7] = "TRANSFER_DST_OPTIMAL";
GFXTextureLayout[GFXTextureLayout["PREINITIALIZED"] = 8] = "PREINITIALIZED";
GFXTextureLayout[GFXTextureLayout["PRESENT_SRC"] = 9] = "PRESENT_SRC";
})(GFXTextureLayout || (GFXTextureLayout = {}));
var GFXPipelineBindPoint;
(function (GFXPipelineBindPoint) {
GFXPipelineBindPoint[GFXPipelineBindPoint["GRAPHICS"] = 0] = "GRAPHICS";
GFXPipelineBindPoint[GFXPipelineBindPoint["COMPUTE"] = 1] = "COMPUTE";
GFXPipelineBindPoint[GFXPipelineBindPoint["RAY_TRACING"] = 2] = "RAY_TRACING";
})(GFXPipelineBindPoint || (GFXPipelineBindPoint = {}));
var GFXDynamicState;
(function (GFXDynamicState) {
GFXDynamicState[GFXDynamicState["VIEWPORT"] = 0] = "VIEWPORT";
GFXDynamicState[GFXDynamicState["SCISSOR"] = 1] = "SCISSOR";
GFXDynamicState[GFXDynamicState["LINE_WIDTH"] = 2] = "LINE_WIDTH";
GFXDynamicState[GFXDynamicState["DEPTH_BIAS"] = 3] = "DEPTH_BIAS";
GFXDynamicState[GFXDynamicState["BLEND_CONSTANTS"] = 4] = "BLEND_CONSTANTS";
GFXDynamicState[GFXDynamicState["DEPTH_BOUNDS"] = 5] = "DEPTH_BOUNDS";
GFXDynamicState[GFXDynamicState["STENCIL_WRITE_MASK"] = 6] = "STENCIL_WRITE_MASK";
GFXDynamicState[GFXDynamicState["STENCIL_COMPARE_MASK"] = 7] = "STENCIL_COMPARE_MASK";
})(GFXDynamicState || (GFXDynamicState = {}));
var GFXStencilFace;
(function (GFXStencilFace) {
GFXStencilFace[GFXStencilFace["FRONT"] = 0] = "FRONT";
GFXStencilFace[GFXStencilFace["BACK"] = 1] = "BACK";
GFXStencilFace[GFXStencilFace["ALL"] = 2] = "ALL";
})(GFXStencilFace || (GFXStencilFace = {}));
var GFXQueueType;
(function (GFXQueueType) {
GFXQueueType[GFXQueueType["GRAPHICS"] = 0] = "GRAPHICS";
GFXQueueType[GFXQueueType["COMPUTE"] = 1] = "COMPUTE";
GFXQueueType[GFXQueueType["TRANSFER"] = 2] = "TRANSFER";
})(GFXQueueType || (GFXQueueType = {}));
var GFXClearFlag;
(function (GFXClearFlag) {
GFXClearFlag[GFXClearFlag["NONE"] = 0] = "NONE";
GFXClearFlag[GFXClearFlag["COLOR"] = 1] = "COLOR";
GFXClearFlag[GFXClearFlag["DEPTH"] = 2] = "DEPTH";
GFXClearFlag[GFXClearFlag["STENCIL"] = 4] = "STENCIL";
GFXClearFlag[GFXClearFlag["DEPTH_STENCIL"] = 6] = "DEPTH_STENCIL";
GFXClearFlag[GFXClearFlag["ALL"] = 7] = "ALL";
})(GFXClearFlag || (GFXClearFlag = {}));
function GFXGetTypeSize(type) {
switch (type) {
case GFXType.BOOL:
case GFXType.INT:
case GFXType.UINT:
case GFXType.FLOAT: return 4;
case GFXType.BOOL2:
case GFXType.INT2:
case GFXType.UINT2:
case GFXType.FLOAT2: return 8;
case GFXType.BOOL3:
case GFXType.INT3:
case GFXType.UINT3:
case GFXType.FLOAT3: return 12;
case GFXType.BOOL4:
case GFXType.INT4:
case GFXType.UINT4:
case GFXType.FLOAT4:
case GFXType.MAT2: return 16;
case GFXType.MAT2X3: return 24;
case GFXType.MAT2X4: return 32;
case GFXType.MAT3X2: return 24;
case GFXType.MAT3: return 36;
case GFXType.MAT3X4: return 48;
case GFXType.MAT4X2: return 32;
case GFXType.MAT4X2: return 32;
case GFXType.MAT4: return 64;
case GFXType.SAMPLER1D:
case GFXType.SAMPLER1D_ARRAY:
case GFXType.SAMPLER2D:
case GFXType.SAMPLER2D_ARRAY:
case GFXType.SAMPLER3D:
case GFXType.SAMPLER_CUBE: return 4;
default: {
return 0;
}
}
}
// import { GFXBuffer } from '../gfx/buffer';
var RenderPassStage;
(function (RenderPassStage) {
RenderPassStage[RenderPassStage["DEFAULT"] = 100] = "DEFAULT";
})(RenderPassStage || (RenderPassStage = {}));
var RenderPriority;
(function (RenderPriority) {
RenderPriority[RenderPriority["MIN"] = 0] = "MIN";
RenderPriority[RenderPriority["MAX"] = 255] = "MAX";
RenderPriority[RenderPriority["DEFAULT"] = 128] = "DEFAULT";
})(RenderPriority || (RenderPriority = {}));
var MAX_BINDING_SUPPORTED = 24; // from WebGL 2 spec
var UniformBinding;
(function (UniformBinding) {
// UBOs
UniformBinding[UniformBinding["UBO_GLOBAL"] = MAX_BINDING_SUPPORTED - 1] = "UBO_GLOBAL";
UniformBinding[UniformBinding["UBO_SHADOW"] = MAX_BINDING_SUPPORTED - 2] = "UBO_SHADOW";
UniformBinding[UniformBinding["UBO_LOCAL"] = MAX_BINDING_SUPPORTED - 3] = "UBO_LOCAL";
UniformBinding[UniformBinding["UBO_FORWARD_LIGHTS"] = MAX_BINDING_SUPPORTED - 4] = "UBO_FORWARD_LIGHTS";
UniformBinding[UniformBinding["UBO_SKINNING"] = MAX_BINDING_SUPPORTED - 5] = "UBO_SKINNING";
UniformBinding[UniformBinding["UBO_SKINNING_TEXTURE"] = MAX_BINDING_SUPPORTED - 6] = "UBO_SKINNING_TEXTURE";
UniformBinding[UniformBinding["UBO_UI"] = MAX_BINDING_SUPPORTED - 7] = "UBO_UI";
// samplers
UniformBinding[UniformBinding["SAMPLER_JOINTS"] = MAX_BINDING_SUPPORTED + 1] = "SAMPLER_JOINTS";
UniformBinding[UniformBinding["SAMPLER_ENVIRONMENT"] = MAX_BINDING_SUPPORTED + 2] = "SAMPLER_ENVIRONMENT";
// rooms left for custom bindings
// effect importer prepares bindings according to this
UniformBinding[UniformBinding["CUSTUM_UBO_BINDING_END_POINT"] = MAX_BINDING_SUPPORTED - 7] = "CUSTUM_UBO_BINDING_END_POINT";
UniformBinding[UniformBinding["CUSTOM_SAMPLER_BINDING_START_POINT"] = MAX_BINDING_SUPPORTED + 6] = "CUSTOM_SAMPLER_BINDING_START_POINT";
})(UniformBinding || (UniformBinding = {}));
// export class UBOGlobal {
// public static TIME_OFFSET: number = 0;
// public static SCREEN_SIZE_OFFSET: number = UBOGlobal.TIME_OFFSET + 4;
// public static SCREEN_SCALE_OFFSET: number = UBOGlobal.SCREEN_SIZE_OFFSET + 4;
// public static NATIVE_SIZE_OFFSET: number = UBOGlobal.SCREEN_SCALE_OFFSET + 4;
// public static MAT_VIEW_OFFSET: number = UBOGlobal.NATIVE_SIZE_OFFSET + 4;
// public static MAT_VIEW_INV_OFFSET: number = UBOGlobal.MAT_VIEW_OFFSET + 16;
// public static MAT_PROJ_OFFSET: number = UBOGlobal.MAT_VIEW_INV_OFFSET + 16;
// public static MAT_PROJ_INV_OFFSET: number = UBOGlobal.MAT_PROJ_OFFSET + 16;
// public static MAT_VIEW_PROJ_OFFSET: number = UBOGlobal.MAT_PROJ_INV_OFFSET + 16;
// public static MAT_VIEW_PROJ_INV_OFFSET: number = UBOGlobal.MAT_VIEW_PROJ_OFFSET + 16;
// public static CAMERA_POS_OFFSET: number = UBOGlobal.MAT_VIEW_PROJ_INV_OFFSET + 16;
// public static EXPOSURE_OFFSET: number = UBOGlobal.CAMERA_POS_OFFSET + 4;
// public static MAIN_LIT_DIR_OFFSET: number = UBOGlobal.EXPOSURE_OFFSET + 4;
// public static MAIN_LIT_COLOR_OFFSET: number = UBOGlobal.MAIN_LIT_DIR_OFFSET + 4;
// public static AMBIENT_SKY_OFFSET: number = UBOGlobal.MAIN_LIT_COLOR_OFFSET + 4;
// public static AMBIENT_GROUND_OFFSET: number = UBOGlobal.AMBIENT_SKY_OFFSET + 4;
// public static COUNT: number = UBOGlobal.AMBIENT_GROUND_OFFSET + 4;
// public static SIZE: number = UBOGlobal.COUNT * 4;
// public static BLOCK: GFXUniformBlock = {
// binding: UniformBinding.UBO_GLOBAL, name: 'CCGlobal', members: [
// { name: 'cc_time', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_screenSize', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_screenScale', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_nativeSize', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_matView', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matViewInv', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matProj', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matProjInv', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matViewProj', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matViewProjInv', type: GFXType.MAT4, count: 1 },
// { name: 'cc_cameraPos', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_exposure', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_mainLitDir', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_mainLitColor', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_ambientSky', type: GFXType.FLOAT4, count: 1 },
// { name: 'cc_ambientGround', type: GFXType.FLOAT4, count: 1 },
// ],
// };
// public view: Float32Array = new Float32Array(UBOGlobal.COUNT);
// }
// export class UBOShadow {
// public static MAT_LIGHT_PLANE_PROJ_OFFSET: number = 0;
// public static SHADOW_COLOR_OFFSET: number = UBOShadow.MAT_LIGHT_PLANE_PROJ_OFFSET + 16;
// public static COUNT: number = UBOShadow.SHADOW_COLOR_OFFSET + 4;
// public static SIZE: number = UBOShadow.COUNT * 4;
// public static BLOCK: GFXUniformBlock = {
// binding: UniformBinding.UBO_SHADOW, name: 'CCShadow', members: [
// { name: 'cc_matLightPlaneProj', type: GFXType.MAT4, count: 1 },
// { name: 'cc_shadowColor', type: GFXType.FLOAT4, count: 1 },
// ],
// };
// public view: Float32Array = new Float32Array(UBOShadow.COUNT);
// }
// export const localBindingsDesc: Map<string, IInternalBindingDesc> = new Map<string, IInternalBindingDesc>();
// export class UBOLocal {
// public static MAT_WORLD_OFFSET: number = 0;
// public static MAT_WORLD_IT_OFFSET: number = UBOLocal.MAT_WORLD_OFFSET + 16;
// public static COUNT: number = UBOLocal.MAT_WORLD_IT_OFFSET + 16;
// public static SIZE: number = UBOLocal.COUNT * 4;
// public static BLOCK: GFXUniformBlock = {
// binding: UniformBinding.UBO_LOCAL, name: 'CCLocal', members: [
// { name: 'cc_matWorld', type: GFXType.MAT4, count: 1 },
// { name: 'cc_matWorldIT', type: GFXType.MAT4, count: 1 },
// ],
// };
// public view: Float32Array = new Float32Array(UBOLocal.COUNT);
// }
// localBindingsDesc.set(UBOLocal.BLOCK.name, {
// type: GFXBindingType.UNIFORM_BUFFER,
// blockInfo: UBOLocal.BLOCK,
// });
// export class UBOForwardLight {
// public static MAX_SPHERE_LIGHTS = 2;
// public static MAX_SPOT_LIGHTS = 2;
// public static SPHERE_LIGHT_POS_OFFSET: number = 0;
// public static SPHERE_LIGHT_SIZE_RANGE_OFFSET: number = UBOForwardLight.SPHERE_LIGHT_POS_OFFSET + UBOForwardLight.MAX_SPHERE_LIGHTS * 4;
// public static SPHERE_LIGHT_COLOR_OFFSET: number = UBOForwardLight.SPHERE_LIGHT_SIZE_RANGE_OFFSET + UBOForwardLight.MAX_SPHERE_LIGHTS * 4;
// public static SPOT_LIGHT_POS_OFFSET: number = UBOForwardLight.SPHERE_LIGHT_COLOR_OFFSET + UBOForwardLight.MAX_SPOT_LIGHTS * 4;
// public static SPOT_LIGHT_SIZE_RANGE_ANGLE_OFFSET: number = UBOForwardLight.SPOT_LIGHT_POS_OFFSET + UBOForwardLight.MAX_SPOT_LIGHTS * 4;
// public static SPOT_LIGHT_DIR_OFFSET: number = UBOForwardLight.SPOT_LIGHT_SIZE_RANGE_ANGLE_OFFSET + UBOForwardLight.MAX_SPOT_LIGHTS * 4;
// public static SPOT_LIGHT_COLOR_OFFSET: number = UBOForwardLight.SPOT_LIGHT_DIR_OFFSET + UBOForwardLight.MAX_SPOT_LIGHTS * 4;
// public static COUNT: number = UBOForwardLight.SPOT_LIGHT_COLOR_OFFSET + UBOForwardLight.MAX_SPOT_LIGHTS * 4;
// public static SIZE: number = UBOForwardLight.COUNT * 4;
// public static BLOCK: GFXUniformBlock = {
// binding: UniformBinding.UBO_FORWARD_LIGHTS, name: 'CCForwardLight', members: [
// { name: 'cc_sphereLitPos', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPHERE_LIGHTS },
// { name: 'cc_sphereLitSizeRange', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPHERE_LIGHTS },
// { name: 'cc_sphereLitColor', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPHERE_LIGHTS },
// { name: 'cc_spotLitPos', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPOT_LIGHTS },
// { name: 'cc_spotLitSizeRangeAngle', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPOT_LIGHTS },
// { name: 'cc_spotLitDir', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPOT_LIGHTS },
// { name: 'cc_spotLitColor', type: GFXType.FLOAT4, count: UBOForwardLight.MAX_SPOT_LIGHTS },
// ],
// };
// public view: Float32Array = new Float32Array(UBOForwardLight.COUNT);
// }
// localBindingsDesc.set(UBOForwardLight.BLOCK.name, {
// type: GFXBindingType.UNIFORM_BUFFER,
// blockInfo: UBOForwardLight.BLOCK,
// });
// export class UBOSkinning {
// public static MAT_JOINT_OFFSET: number = 0;
// public static JOINTS_TEXTURE_SIZE_OFFSET: number = UBOSkinning.MAT_JOINT_OFFSET + 128 * 16;
// public static COUNT: number = UBOSkinning.JOINTS_TEXTURE_SIZE_OFFSET + 4;
// public static SIZE: number = UBOSkinning.COUNT * 4;
// public static BLOCK: GFXUniformBlock = {
// binding: UniformBinding.UBO_SKINNING, name: 'CCSkinning', members: [
// { name: 'cc_matJoint', type: GFXType.MAT4, count: 128 },
// { name: 'cc_jointsTextureSize', type: GFXType.FLOAT4, count: 1 },
// ],
// };
// }
// localBindingsDesc.set(UBOSkinning.BLOCK.name, {
// type: GFXBindingType.UNIFORM_BUFFER,
// blockInfo: UBOSkinning.BLOCK,
// });
// export const UNIFORM_JOINTS_TEXTURE: GFXUniformSampler = {
// binding: UniformBinding.SAMPLER_JOINTS, name: 'cc_jointsTexture', type: GFXType.SAMPLER2D, count: 1,
// };
// localBindingsDesc.set(UNIFORM_JOINTS_TEXTURE.name, {
// type: GFXBindingType.SAMPLER,
// samplerInfo: UNIFORM_JOINTS_TEXTURE,
// });
// export interface IInternalBindingDesc {
// type: GFXBindingType;
// blockInfo?: GFXUniformBlock;
// samplerInfo?: GFXUniformSampler;
// }
// export interface IInternalBindingInst extends IInternalBindingDesc {
// buffer?: GFXBuffer;
// sampler?: GFXSampler;
// textureView?: GFXTextureView;
// }
// this file is used for offline effect building.
var _a, _b;
var SamplerInfoIndex;
(function (SamplerInfoIndex) {
SamplerInfoIndex[SamplerInfoIndex["minFilter"] = 0] = "minFilter";
SamplerInfoIndex[SamplerInfoIndex["magFilter"] = 1] = "magFilter";
SamplerInfoIndex[SamplerInfoIndex["mipFilter"] = 2] = "mipFilter";
SamplerInfoIndex[SamplerInfoIndex["addressU"] = 3] = "addressU";
SamplerInfoIndex[SamplerInfoIndex["addressV"] = 4] = "addressV";
SamplerInfoIndex[SamplerInfoIndex["addressW"] = 5] = "addressW";
SamplerInfoIndex[SamplerInfoIndex["maxAnisotropy"] = 6] = "maxAnisotropy";
SamplerInfoIndex[SamplerInfoIndex["cmpFunc"] = 7] = "cmpFunc";
SamplerInfoIndex[SamplerInfoIndex["minLOD"] = 8] = "minLOD";
SamplerInfoIndex[SamplerInfoIndex["maxLOD"] = 9] = "maxLOD";
SamplerInfoIndex[SamplerInfoIndex["mipLODBias"] = 10] = "mipLODBias";
SamplerInfoIndex[SamplerInfoIndex["borderColor"] = 11] = "borderColor";
SamplerInfoIndex[SamplerInfoIndex["total"] = 15] = "total";
})(SamplerInfoIndex || (SamplerInfoIndex = {}));
var typeMap = {};
typeMap[typeMap['bool'] = GFXType.BOOL] = 'bool';
typeMap[typeMap['int'] = GFXType.INT] = 'int';
typeMap[typeMap['ivec2'] = GFXType.INT2] = 'ivec2invTypeParams';
typeMap[typeMap['ivec3'] = GFXType.INT3] = 'ivec3';
typeMap[typeMap['ivec4'] = GFXType.INT4] = 'ivec4';
typeMap[typeMap['float'] = GFXType.FLOAT] = 'float';
typeMap[typeMap['vec2'] = GFXType.FLOAT2] = 'vec2';
typeMap[typeMap['vec3'] = GFXType.FLOAT3] = 'vec3';
typeMap[typeMap['vec4'] = GFXType.FLOAT4] = 'vec4';
typeMap[typeMap['mat2'] = GFXType.MAT2] = 'mat2';
typeMap[typeMap['mat3'] = GFXType.MAT3] = 'mat3';
typeMap[typeMap['mat4'] = GFXType.MAT4] = 'mat4';
typeMap[typeMap['sampler2D'] = GFXType.SAMPLER2D] = 'sampler2D';
typeMap[typeMap['samplerCube'] = GFXType.SAMPLER_CUBE] = 'samplerCube';
var sizeMap = (_a = {},
_a[GFXType.BOOL] = 4,
_a[GFXType.INT] = 4,
_a[GFXType.INT2] = 8,
_a[GFXType.INT3] = 12,
_a[GFXType.INT4] = 16,
_a[GFXType.FLOAT] = 4,
_a[GFXType.FLOAT2] = 8,
_a[GFXType.FLOAT3] = 12,
_a[GFXType.FLOAT4] = 16,
_a[GFXType.MAT2] = 16,
_a[GFXType.MAT3] = 36,
_a[GFXType.MAT4] = 64,
_a[GFXType.SAMPLER2D] = 4,
_a[GFXType.SAMPLER_CUBE] = 4,
_a);
var formatMap = (_b = {},
_b[GFXType.BOOL] = GFXFormat.R32I,
_b[GFXType.INT] = GFXFormat.R32I,
_b[GFXType.INT2] = GFXFormat.RG32I,
_b[GFXType.INT3] = GFXFormat.RGB32I,
_b[GFXType.INT4] = GFXFormat.RGBA32I,
_b[GFXType.FLOAT] = GFXFormat.R32F,
_b[GFXType.FLOAT2] = GFXFormat.RG32F,
_b[GFXType.FLOAT3] = GFXFormat.RGB32F,
_b[GFXType.FLOAT4] = GFXFormat.RGBA32F,
_b);
// const passParams = {
// // color mask
// NONE: gfx.GFXColorMask.NONE,
// R: gfx.GFXColorMask.R,
// G: gfx.GFXColorMask.G,
// B: gfx.GFXColorMask.B,
// A: gfx.GFXColorMask.A,
// RG: gfx.GFXColorMask.R | gfx.GFXColorMask.G,
// RB: gfx.GFXColorMask.R | gfx.GFXColorMask.B,
// RA: gfx.GFXColorMask.R | gfx.GFXColorMask.A,
// GB: gfx.GFXColorMask.G | gfx.GFXColorMask.B,
// GA: gfx.GFXColorMask.G | gfx.GFXColorMask.A,
// BA: gfx.GFXColorMask.B | gfx.GFXColorMask.A,
// RGB: gfx.GFXColorMask.R | gfx.GFXColorMask.G | gfx.GFXColorMask.B,
// RGA: gfx.GFXColorMask.R | gfx.GFXColorMask.G | gfx.GFXColorMask.A,
// RBA: gfx.GFXColorMask.R | gfx.GFXColorMask.B | gfx.GFXColorMask.A,
// GBA: gfx.GFXColorMask.G | gfx.GFXColorMask.B | gfx.GFXColorMask.A,
// ALL: gfx.GFXColorMask.ALL,
// // blend operation
// ADD: gfx.GFXBlendOp.ADD,
// SUB: gfx.GFXBlendOp.SUB,
// REV_SUB: gfx.GFXBlendOp.REV_SUB,
// MIN: gfx.GFXBlendOp.MIN,
// MAX: gfx.GFXBlendOp.MAX,
// // blend factor
// ZERO: gfx.GFXBlendFactor.ZERO,
// ONE: gfx.GFXBlendFactor.ONE,
// SRC_ALPHA: gfx.GFXBlendFactor.SRC_ALPHA,
// DST_ALPHA: gfx.GFXBlendFactor.DST_ALPHA,
// ONE_MINUS_SRC_ALPHA: gfx.GFXBlendFactor.ONE_MINUS_SRC_ALPHA,
// ONE_MINUS_DST_ALPHA: gfx.GFXBlendFactor.ONE_MINUS_DST_ALPHA,
// SRC_COLOR: gfx.GFXBlendFactor.SRC_COLOR,
// DST_COLOR: gfx.GFXBlendFactor.DST_COLOR,
// ONE_MINUS_SRC_COLOR: gfx.GFXBlendFactor.ONE_MINUS_SRC_COLOR,
// ONE_MINUS_DST_COLOR: gfx.GFXBlendFactor.ONE_MINUS_DST_COLOR,
// SRC_ALPHA_SATURATE: gfx.GFXBlendFactor.SRC_ALPHA_SATURATE,
// CONSTANT_COLOR: gfx.GFXBlendFactor.CONSTANT_COLOR,
// ONE_MINUS_CONSTANT_COLOR: gfx.GFXBlendFactor.ONE_MINUS_CONSTANT_COLOR,
// CONSTANT_ALPHA: gfx.GFXBlendFactor.CONSTANT_ALPHA,
// ONE_MINUS_CONSTANT_ALPHA: gfx.GFXBlendFactor.ONE_MINUS_CONSTANT_ALPHA,
// // stencil operation
// // ZERO: GFXStencilOp.ZERO, // duplicate, safely removed because enum value is(and always will be) the same
// KEEP: gfx.GFXStencilOp.KEEP,
// REPLACE: gfx.GFXStencilOp.REPLACE,
// INCR: gfx.GFXStencilOp.INCR,
// DECR: gfx.GFXStencilOp.DECR,
// INVERT: gfx.GFXStencilOp.INVERT,
// INCR_WRAP: gfx.GFXStencilOp.INCR_WRAP,
// DECR_WRAP: gfx.GFXStencilOp.DECR_WRAP,
// // comparison function
// NEVER: gfx.GFXComparisonFunc.NEVER,
// LESS: gfx.GFXComparisonFunc.LESS,
// EQUAL: gfx.GFXComparisonFunc.EQUAL,
// LESS_EQUAL: gfx.GFXComparisonFunc.LESS_EQUAL,
// GREATER: gfx.GFXComparisonFunc.GREATER,
// NOT_EQUAL: gfx.GFXComparisonFunc.NOT_EQUAL,
// GREATER_EQUAL: gfx.GFXComparisonFunc.GREATER_EQUAL,
// ALWAYS: gfx.GFXComparisonFunc.ALWAYS,
// // cull mode
// // NONE: GFXCullMode.NONE, // duplicate, safely removed because enum value is(and always will be) the same
// FRONT: gfx.GFXCullMode.FRONT,
// BACK: gfx.GFXCullMode.BACK,
// // shade mode
// GOURAND: gfx.GFXShadeModel.GOURAND,
// FLAT: gfx.GFXShadeModel.FLAT,
// // polygon mode
// FILL: gfx.GFXPolygonMode.FILL,
// LINE: gfx.GFXPolygonMode.LINE,
// POINT: gfx.GFXPolygonMode.POINT,
// // primitive mode
// POINT_LIST: gfx.GFXPrimitiveMode.POINT_LIST,
// LINE_LIST: gfx.GFXPrimitiveMode.LINE_LIST,
// LINE_STRIP: gfx.GFXPrimitiveMode.LINE_STRIP,
// LINE_LOOP: gfx.GFXPrimitiveMode.LINE_LOOP,
// TRIANGLE_LIST: gfx.GFXPrimitiveMode.TRIANGLE_LIST,
// TRIANGLE_STRIP: gfx.GFXPrimitiveMode.TRIANGLE_STRIP,
// TRIANGLE_FAN: gfx.GFXPrimitiveMode.TRIANGLE_FAN,
// LINE_LIST_ADJACENCY: gfx.GFXPrimitiveMode.LINE_LIST_ADJACENCY,
// LINE_STRIP_ADJACENCY: gfx.GFXPrimitiveMode.LINE_STRIP_ADJACENCY,
// TRIANGLE_LIST_ADJACENCY: gfx.GFXPrimitiveMode.TRIANGLE_LIST_ADJACENCY,
// TRIANGLE_STRIP_ADJACENCY: gfx.GFXPrimitiveMode.TRIANGLE_STRIP_ADJACENCY,
// TRIANGLE_PATCH_ADJACENCY: gfx.GFXPrimitiveMode.TRIANGLE_PATCH_ADJACENCY,
// QUAD_PATCH_LIST: gfx.GFXPrimitiveMode.QUAD_PATCH_LIST,
// ISO_LINE_LIST: gfx.GFXPrimitiveMode.ISO_LINE_LIST,
// // POINT: gfx.GFXFilter.POINT, // duplicate, safely removed because enum value is(and always will be) the same
// LINEAR: gfx.GFXFilter.LINEAR,
// ANISOTROPIC: gfx.GFXFilter.ANISOTROPIC,
// WRAP: gfx.GFXAddress.WRAP,
// MIRROR: gfx.GFXAddress.MIRROR,
// CLAMP: gfx.GFXAddress.CLAMP,
// BORDER: gfx.GFXAddress.BORDER,
// VIEWPORT: gfx.GFXDynamicState.VIEWPORT,
// SCISSOR: gfx.GFXDynamicState.SCISSOR,
// LINE_WIDTH: gfx.GFXDynamicState.LINE_WIDTH,
// DEPTH_BIAS: gfx.GFXDynamicState.DEPTH_BIAS,
// BLEND_CONSTANTS: gfx.GFXDynamicState.BLEND_CONSTANTS,
// DEPTH_BOUNDS: gfx.GFXDynamicState.DEPTH_BOUNDS,
// STENCIL_WRITE_MASK: gfx.GFXDynamicState.STENCIL_WRITE_MASK,
// STENCIL_COMPARE_MASK: gfx.GFXDynamicState.STENCIL_COMPARE_MASK,
// TRUE: true,
// FALSE: false
// };
var passParams = {
BACK: enums.CULL_BACK,
FRONT: enums.CULL_FRONT,
NONE: enums.CULL_NONE,
ADD: enums.BLEND_FUNC_ADD,
SUB: enums.BLEND_FUNC_SUBTRACT,
REV_SUB: enums.BLEND_FUNC_REVERSE_SUBTRACT,
ZERO: enums.BLEND_ZERO,
ONE: enums.BLEND_ONE,
SRC_COLOR: enums.BLEND_SRC_COLOR,
ONE_MINUS_SRC_COLOR: enums.BLEND_ONE_MINUS_SRC_COLOR,
DST_COLOR: enums.BLEND_DST_COLOR,
ONE_MINUS_DST_COLOR: enums.BLEND_ONE_MINUS_DST_COLOR,
SRC_ALPHA: enums.BLEND_SRC_ALPHA,
ONE_MINUS_SRC_ALPHA: enums.BLEND_ONE_MINUS_SRC_ALPHA,
DST_ALPHA: enums.BLEND_DST_ALPHA,
ONE_MINUS_DST_ALPHA: enums.BLEND_ONE_MINUS_DST_ALPHA,
CONSTANT_COLOR: enums.BLEND_CONSTANT_COLOR,
ONE_MINUS_CONSTANT_COLOR: enums.BLEND_ONE_MINUS_CONSTANT_COLOR,
CONSTANT_ALPHA: enums.BLEND_CONSTANT_ALPHA,
ONE_MINUS_CONSTANT_ALPHA: enums.BLEND_ONE_MINUS_CONSTANT_ALPHA,
SRC_ALPHA_SATURATE: enums.BLEND_SRC_ALPHA_SATURATE,
NEVER: enums.DS_FUNC_NEVER,
LESS: enums.DS_FUNC_LESS,
EQUAL: enums.DS_FUNC_EQUAL,
LEQUAL: enums.DS_FUNC_LEQUAL,
GREATER: enums.DS_FUNC_GREATER,
NOTEQUAL: enums.DS_FUNC_NOTEQUAL,
GEQUAL: enums.DS_FUNC_GEQUAL,
ALWAYS: enums.DS_FUNC_ALWAYS,
KEEP: enums.STENCIL_OP_KEEP,
REPLACE: enums.STENCIL_OP_REPLACE,
INCR: enums.STENCIL_OP_INCR,
INCR_WRAP: enums.STENCIL_OP_INCR_WRAP,
DECR: enums.STENCIL_OP_DECR,
DECR_WRAP: enums.STENCIL_OP_DECR_WRAP,
INVERT: enums.STENCIL_OP_INVERT
};
Object.assign(passParams, RenderPassStage);
// for structural type checking
// an 'any' key will check against all elements defined in that object
// a key start with '$' means its essential, and can't be undefined
var effectStructure = {
$techniques: [
{
$passes: [
{
depthStencilState: {},
rasterizerState: {},
blendState: { targets: [{}] },
properties: { any: { sampler: {}, inspector: {} } }
}
]
}
]
};
var mappings = {
murmurhash2_32_gc: murmurhash2_32_gc,
SamplerInfoIndex: SamplerInfoIndex,
effectStructure: effectStructure,
typeMap: typeMap,
sizeMap: sizeMap,
formatMap: formatMap,
passParams: passParams,
RenderQueue: RenderQueue,
RenderPriority: RenderPriority,
GFXGetTypeSize: GFXGetTypeSize,
UniformBinding: UniformBinding
};
module.exports = mappings;