hilo3d
Version:
Hilo3d, a WebGL 3d engine.
1,852 lines (1,808 loc) • 250 kB
TypeScript
export = hilo3d;
export as namespace hilo3d;
declare namespace hilo3d {
type TypedArray =
| Int8Array
| Uint8Array
| Uint8ClampedArray
| Int16Array
| Uint16Array
| Int32Array
| Uint32Array
| Float32Array
| Float64Array;
namespace AnimationStates {
/**
* 状态类型
*/
enum StateType {
TRANSLATE = "Translation",
POSITION = "Translation",
TRANSLATION = "Translation",
SCALE = "Scale",
ROTATE = "Rotation",
ROTATION = "Rotation",
QUATERNION = "Quaternion",
WEIGHTS = "Weights"
}
}
/**
* WebGL, WebGL extensions 枚举值
* @example
* Hilo3d.constants.LINEAR_MIPMAP_NEAREST
*/
namespace constants {
const POSITION: string;
const NORMAL: string;
const DEPTH: GLenum;
const DISTANCE: string;
const ACTIVE_ATTRIBUTES: GLenum;
const ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum;
const ACTIVE_TEXTURE: GLenum;
const ACTIVE_UNIFORMS: GLenum;
const ACTIVE_UNIFORM_MAX_LENGTH: GLenum;
const ALIASED_LINE_WIDTH_RANGE: GLenum;
const ALIASED_POINT_SIZE_RANGE: GLenum;
const ALPHA: GLenum;
const ALPHA_BITS: GLenum;
const ALWAYS: GLenum;
const ARRAY_BUFFER: GLenum;
const ARRAY_BUFFER_BINDING: GLenum;
const ATTACHED_SHADERS: GLenum;
const BACK: GLenum;
const BLEND: GLenum;
const BLEND_COLOR: GLenum;
const BLEND_DST_ALPHA: GLenum;
const BLEND_DST_RGB: GLenum;
const BLEND_EQUATION: GLenum;
const BLEND_EQUATION_ALPHA: GLenum;
const BLEND_EQUATION_RGB: GLenum;
const BLEND_SRC_ALPHA: GLenum;
const BLEND_SRC_RGB: GLenum;
const BLUE_BITS: GLenum;
const BOOL: GLenum;
const BOOL_VEC2: GLenum;
const BOOL_VEC3: GLenum;
const BOOL_VEC4: GLenum;
const BROWSER_DEFAULT_WEBGL: GLenum;
const BUFFER_SIZE: GLenum;
const BUFFER_USAGE: GLenum;
const BYTE: GLenum;
const CCW: GLenum;
const CLAMP_TO_EDGE: GLenum;
const COLOR_ATTACHMENT0: GLenum;
const COLOR_BUFFER_BIT: GLenum;
const COLOR_CLEAR_VALUE: GLenum;
const COLOR_WRITEMASK: GLenum;
const COMPILE_STATUS: GLenum;
const COMPRESSED_TEXTURE_FORMATS: GLenum;
const CONSTANT_ALPHA: GLenum;
const CONSTANT_COLOR: GLenum;
const CONTEXT_LOST_WEBGL: GLenum;
const CULL_FACE: GLenum;
const CULL_FACE_MODE: GLenum;
const CURRENT_PROGRAM: GLenum;
const CURRENT_VERTEX_ATTRIB: GLenum;
const CW: GLenum;
const DECR: GLenum;
const DECR_WRAP: GLenum;
const DELETE_STATUS: GLenum;
const DEPTH_ATTACHMENT: GLenum;
const DEPTH_BITS: GLenum;
const DEPTH_BUFFER_BIT: GLenum;
const DEPTH_CLEAR_VALUE: GLenum;
const DEPTH_COMPONENT: GLenum;
const DEPTH_COMPONENT16: GLenum;
const DEPTH_FUNC: GLenum;
const DEPTH_RANGE: GLenum;
const DEPTH_STENCIL: GLenum;
const DEPTH_STENCIL_ATTACHMENT: GLenum;
const DEPTH_TEST: GLenum;
const DEPTH_WRITEMASK: GLenum;
const DITHER: GLenum;
const DONT_CARE: GLenum;
const DST_ALPHA: GLenum;
const DST_COLOR: GLenum;
const DYNAMIC_DRAW: GLenum;
const ELEMENT_ARRAY_BUFFER: GLenum;
const ELEMENT_ARRAY_BUFFER_BINDING: GLenum;
const EQUAL: GLenum;
const FASTEST: GLenum;
const FLOAT: GLenum;
const FLOAT_MAT2: GLenum;
const FLOAT_MAT3: GLenum;
const FLOAT_MAT4: GLenum;
const FLOAT_VEC2: GLenum;
const FLOAT_VEC3: GLenum;
const FLOAT_VEC4: GLenum;
const FRAGMENT_SHADER: GLenum;
const FRAMEBUFFER: GLenum;
const FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;
const FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;
const FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;
const FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;
const FRAMEBUFFER_BINDING: GLenum;
const FRAMEBUFFER_COMPLETE: GLenum;
const FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;
const FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;
const FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;
const FRAMEBUFFER_UNSUPPORTED: GLenum;
const FRONT: GLenum;
const FRONT_AND_BACK: GLenum;
const FRONT_FACE: GLenum;
const FUNC_ADD: GLenum;
const FUNC_REVERSE_SUBTRACT: GLenum;
const FUNC_SUBTRACT: GLenum;
const GENERATE_MIPMAP_HINT: GLenum;
const GEQUAL: GLenum;
const GREATER: GLenum;
const GREEN_BITS: GLenum;
const HIGH_FLOAT: GLenum;
const HIGH_INT: GLenum;
const INCR: GLenum;
const INCR_WRAP: GLenum;
const INFO_LOG_LENGTH: GLenum;
const INT: GLenum;
const INT_VEC2: GLenum;
const INT_VEC3: GLenum;
const INT_VEC4: GLenum;
const INVALID_ENUM: GLenum;
const INVALID_FRAMEBUFFER_OPERATION: GLenum;
const INVALID_OPERATION: GLenum;
const INVALID_VALUE: GLenum;
const INVERT: GLenum;
const KEEP: GLenum;
const LEQUAL: GLenum;
const LESS: GLenum;
const LINEAR: GLenum;
const LINEAR_MIPMAP_LINEAR: GLenum;
const LINEAR_MIPMAP_NEAREST: GLenum;
const LINES: GLenum;
const LINE_LOOP: GLenum;
const LINE_STRIP: GLenum;
const LINE_WIDTH: GLenum;
const LINK_STATUS: GLenum;
const LOW_FLOAT: GLenum;
const LOW_INT: GLenum;
const LUMINANCE: GLenum;
const LUMINANCE_ALPHA: GLenum;
const MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;
const MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;
const MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;
const MAX_RENDERBUFFER_SIZE: GLenum;
const MAX_TEXTURE_IMAGE_UNITS: GLenum;
const MAX_TEXTURE_SIZE: GLenum;
const MAX_VARYING_VECTORS: GLenum;
const MAX_VERTEX_ATTRIBS: GLenum;
const MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;
const MAX_VERTEX_UNIFORM_VECTORS: GLenum;
const MAX_VIEWPORT_DIMS: GLenum;
const MEDIUM_FLOAT: GLenum;
const MEDIUM_INT: GLenum;
const MIRRORED_REPEAT: GLenum;
const NEAREST: GLenum;
const NEAREST_MIPMAP_LINEAR: GLenum;
const NEAREST_MIPMAP_NEAREST: GLenum;
const NEVER: GLenum;
const NICEST: GLenum;
const NONE: GLenum;
const NOTEQUAL: GLenum;
const NO_ERROR: GLenum;
const NUM_COMPRESSED_TEXTURE_FORMATS: GLenum;
const ONE: GLenum;
const ONE_MINUS_CONSTANT_ALPHA: GLenum;
const ONE_MINUS_CONSTANT_COLOR: GLenum;
const ONE_MINUS_DST_ALPHA: GLenum;
const ONE_MINUS_DST_COLOR: GLenum;
const ONE_MINUS_SRC_ALPHA: GLenum;
const ONE_MINUS_SRC_COLOR: GLenum;
const OUT_OF_MEMORY: GLenum;
const PACK_ALIGNMENT: GLenum;
const POINTS: GLenum;
const POLYGON_OFFSET_FACTOR: GLenum;
const POLYGON_OFFSET_FILL: GLenum;
const POLYGON_OFFSET_UNITS: GLenum;
const RED_BITS: GLenum;
const RENDERBUFFER: GLenum;
const RENDERBUFFER_ALPHA_SIZE: GLenum;
const RENDERBUFFER_BINDING: GLenum;
const RENDERBUFFER_BLUE_SIZE: GLenum;
const RENDERBUFFER_DEPTH_SIZE: GLenum;
const RENDERBUFFER_GREEN_SIZE: GLenum;
const RENDERBUFFER_HEIGHT: GLenum;
const RENDERBUFFER_INTERNAL_FORMAT: GLenum;
const RENDERBUFFER_RED_SIZE: GLenum;
const RENDERBUFFER_STENCIL_SIZE: GLenum;
const RENDERBUFFER_WIDTH: GLenum;
const RENDERER: GLenum;
const REPEAT: GLenum;
const REPLACE: GLenum;
const RGB: GLenum;
const RGB5_A1: GLenum;
const RGB565: GLenum;
const RGBA: GLenum;
const RGBA4: GLenum;
const SAMPLER_2D: GLenum;
const SAMPLER_CUBE: GLenum;
const SAMPLES: GLenum;
const SAMPLE_ALPHA_TO_COVERAGE: GLenum;
const SAMPLE_BUFFERS: GLenum;
const SAMPLE_COVERAGE: GLenum;
const SAMPLE_COVERAGE_INVERT: GLenum;
const SAMPLE_COVERAGE_VALUE: GLenum;
const SCISSOR_BOX: GLenum;
const SCISSOR_TEST: GLenum;
const SHADER_COMPILER: GLenum;
const SHADER_SOURCE_LENGTH: GLenum;
const SHADER_TYPE: GLenum;
const SHADING_LANGUAGE_VERSION: GLenum;
const SHORT: GLenum;
const SRC_ALPHA: GLenum;
const SRC_ALPHA_SATURATE: GLenum;
const SRC_COLOR: GLenum;
const STATIC_DRAW: GLenum;
const STENCIL_ATTACHMENT: GLenum;
const STENCIL_BACK_FAIL: GLenum;
const STENCIL_BACK_FUNC: GLenum;
const STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;
const STENCIL_BACK_PASS_DEPTH_PASS: GLenum;
const STENCIL_BACK_REF: GLenum;
const STENCIL_BACK_VALUE_MASK: GLenum;
const STENCIL_BACK_WRITEMASK: GLenum;
const STENCIL_BITS: GLenum;
const STENCIL_BUFFER_BIT: GLenum;
const STENCIL_CLEAR_VALUE: GLenum;
const STENCIL_FAIL: GLenum;
const STENCIL_FUNC: GLenum;
const STENCIL_INDEX: GLenum;
const STENCIL_INDEX8: GLenum;
const STENCIL_PASS_DEPTH_FAIL: GLenum;
const STENCIL_PASS_DEPTH_PASS: GLenum;
const STENCIL_REF: GLenum;
const STENCIL_TEST: GLenum;
const STENCIL_VALUE_MASK: GLenum;
const STENCIL_WRITEMASK: GLenum;
const STREAM_DRAW: GLenum;
const SUBPIXEL_BITS: GLenum;
const TEXTURE: GLenum;
const TEXTURE0: GLenum;
const TEXTURE1: GLenum;
const TEXTURE2: GLenum;
const TEXTURE3: GLenum;
const TEXTURE4: GLenum;
const TEXTURE5: GLenum;
const TEXTURE6: GLenum;
const TEXTURE7: GLenum;
const TEXTURE8: GLenum;
const TEXTURE9: GLenum;
const TEXTURE10: GLenum;
const TEXTURE11: GLenum;
const TEXTURE12: GLenum;
const TEXTURE13: GLenum;
const TEXTURE14: GLenum;
const TEXTURE15: GLenum;
const TEXTURE16: GLenum;
const TEXTURE17: GLenum;
const TEXTURE18: GLenum;
const TEXTURE19: GLenum;
const TEXTURE20: GLenum;
const TEXTURE21: GLenum;
const TEXTURE22: GLenum;
const TEXTURE23: GLenum;
const TEXTURE24: GLenum;
const TEXTURE25: GLenum;
const TEXTURE26: GLenum;
const TEXTURE27: GLenum;
const TEXTURE28: GLenum;
const TEXTURE29: GLenum;
const TEXTURE30: GLenum;
const TEXTURE31: GLenum;
const TEXTURE_2D: GLenum;
const TEXTURE_BINDING_2D: GLenum;
const TEXTURE_BINDING_CUBE_MAP: GLenum;
const TEXTURE_CUBE_MAP: GLenum;
const TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;
const TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;
const TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;
const TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;
const TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;
const TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;
const TEXTURE_MAG_FILTER: GLenum;
const TEXTURE_MIN_FILTER: GLenum;
const TEXTURE_WRAP_S: GLenum;
const TEXTURE_WRAP_T: GLenum;
const TRIANGLES: GLenum;
const TRIANGLE_FAN: GLenum;
const TRIANGLE_STRIP: GLenum;
const UNPACK_ALIGNMENT: GLenum;
const UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;
const UNPACK_FLIP_Y_WEBGL: GLenum;
const UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;
const UNSIGNED_BYTE: GLenum;
const UNSIGNED_INT: GLenum;
const UNSIGNED_SHORT: GLenum;
const UNSIGNED_SHORT_4_4_4_4: GLenum;
const UNSIGNED_SHORT_5_5_5_1: GLenum;
const UNSIGNED_SHORT_5_6_5: GLenum;
const VALIDATE_STATUS: GLenum;
const VENDOR: GLenum;
const VERSION: GLenum;
const VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;
const VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;
const VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;
const VERTEX_ATTRIB_ARRAY_POINTER: GLenum;
const VERTEX_ATTRIB_ARRAY_SIZE: GLenum;
const VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;
const VERTEX_ATTRIB_ARRAY_TYPE: GLenum;
const VERTEX_SHADER: GLenum;
const VIEWPORT: GLenum;
const ZERO: GLenum;
const READ_BUFFER: GLenum;
const UNPACK_ROW_LENGTH: GLenum;
const UNPACK_SKIP_ROWS: GLenum;
const UNPACK_SKIP_PIXELS: GLenum;
const PACK_ROW_LENGTH: GLenum;
const PACK_SKIP_ROWS: GLenum;
const PACK_SKIP_PIXELS: GLenum;
const TEXTURE_BINDING_3D: GLenum;
const UNPACK_SKIP_IMAGES: GLenum;
const UNPACK_IMAGE_HEIGHT: GLenum;
const MAX_3D_TEXTURE_SIZE: GLenum;
const MAX_ELEMENTS_VERTICES: GLenum;
const MAX_ELEMENTS_INDICES: GLenum;
const MAX_TEXTURE_LOD_BIAS: GLenum;
const MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;
const MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;
const MAX_ARRAY_TEXTURE_LAYERS: GLenum;
const MIN_PROGRAM_TEXEL_OFFSET: GLenum;
const MAX_PROGRAM_TEXEL_OFFSET: GLenum;
const MAX_VARYING_COMPONENTS: GLenum;
const FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;
const RASTERIZER_DISCARD: GLenum;
const VERTEX_ARRAY_BINDING: GLenum;
const MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;
const MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;
const MAX_SERVER_WAIT_TIMEOUT: GLenum;
const MAX_ELEMENT_INDEX: GLenum;
const RED: GLenum;
const RGB8: GLenum;
const RGBA8: GLenum;
const RGB10_A2: GLenum;
const TEXTURE_3D: GLenum;
const TEXTURE_WRAP_R: GLenum;
const TEXTURE_MIN_LOD: GLenum;
const TEXTURE_MAX_LOD: GLenum;
const TEXTURE_BASE_LEVEL: GLenum;
const TEXTURE_MAX_LEVEL: GLenum;
const TEXTURE_COMPARE_MODE: GLenum;
const TEXTURE_COMPARE_FUNC: GLenum;
const SRGB: GLenum;
const SRGB8: GLenum;
const SRGB8_ALPHA8: GLenum;
const COMPARE_REF_TO_TEXTURE: GLenum;
const RGBA32F: GLenum;
const RGB32F: GLenum;
const RGBA16F: GLenum;
const RGB16F: GLenum;
const TEXTURE_2D_ARRAY: GLenum;
const TEXTURE_BINDING_2D_ARRAY: GLenum;
const R11F_G11F_B10F: GLenum;
const RGB9_E5: GLenum;
const RGBA32UI: GLenum;
const RGB32UI: GLenum;
const RGBA16UI: GLenum;
const RGB16UI: GLenum;
const RGBA8UI: GLenum;
const RGB8UI: GLenum;
const RGBA32I: GLenum;
const RGB32I: GLenum;
const RGBA16I: GLenum;
const RGB16I: GLenum;
const RGBA8I: GLenum;
const RGB8I: GLenum;
const RED_INTEGER: GLenum;
const RGB_INTEGER: GLenum;
const RGBA_INTEGER: GLenum;
const R8: GLenum;
const RG8: GLenum;
const R16F: GLenum;
const R32F: GLenum;
const RG16F: GLenum;
const RG32F: GLenum;
const R8I: GLenum;
const R8UI: GLenum;
const R16I: GLenum;
const R16UI: GLenum;
const R32I: GLenum;
const R32UI: GLenum;
const RG8I: GLenum;
const RG8UI: GLenum;
const RG16I: GLenum;
const RG16UI: GLenum;
const RG32I: GLenum;
const RG32UI: GLenum;
const R8_SNORM: GLenum;
const RG8_SNORM: GLenum;
const RGB8_SNORM: GLenum;
const RGBA8_SNORM: GLenum;
const RGB10_A2UI: GLenum;
const TEXTURE_IMMUTABLE_FORMAT: GLenum;
const TEXTURE_IMMUTABLE_LEVELS: GLenum;
const UNSIGNED_INT_2_10_10_10_REV: GLenum;
const UNSIGNED_INT_10F_11F_11F_REV: GLenum;
const UNSIGNED_INT_5_9_9_9_REV: GLenum;
const FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;
const UNSIGNED_INT_24_8: GLenum;
const HALF_FLOAT: GLenum;
const RG: GLenum;
const RG_INTEGER: GLenum;
const INT_2_10_10_10_REV: GLenum;
const URRENT_QUERY: GLenum;
const QUERY_RESULT: GLenum;
const QUERY_RESULT_AVAILABLE: GLenum;
const ANY_SAMPLES_PASSED: GLenum;
const ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;
const MAX_DRAW_BUFFERS: GLenum;
const DRAW_BUFFER0: GLenum;
const DRAW_BUFFER1: GLenum;
const DRAW_BUFFER2: GLenum;
const DRAW_BUFFER3: GLenum;
const DRAW_BUFFER4: GLenum;
const DRAW_BUFFER5: GLenum;
const DRAW_BUFFER6: GLenum;
const DRAW_BUFFER7: GLenum;
const DRAW_BUFFER8: GLenum;
const DRAW_BUFFER9: GLenum;
const DRAW_BUFFER10: GLenum;
const DRAW_BUFFER11: GLenum;
const DRAW_BUFFER12: GLenum;
const DRAW_BUFFER13: GLenum;
const DRAW_BUFFER14: GLenum;
const DRAW_BUFFER15: GLenum;
const MAX_COLOR_ATTACHMENTS: GLenum;
const COLOR_ATTACHMENT1: GLenum;
const COLOR_ATTACHMENT2: GLenum;
const COLOR_ATTACHMENT3: GLenum;
const COLOR_ATTACHMENT4: GLenum;
const COLOR_ATTACHMENT5: GLenum;
const COLOR_ATTACHMENT6: GLenum;
const COLOR_ATTACHMENT7: GLenum;
const COLOR_ATTACHMENT8: GLenum;
const COLOR_ATTACHMENT9: GLenum;
const COLOR_ATTACHMENT10: GLenum;
const COLOR_ATTACHMENT11: GLenum;
const COLOR_ATTACHMENT12: GLenum;
const COLOR_ATTACHMENT13: GLenum;
const COLOR_ATTACHMENT14: GLenum;
const COLOR_ATTACHMENT15: GLenum;
const SAMPLER_3D: GLenum;
const SAMPLER_2D_SHADOW: GLenum;
const SAMPLER_2D_ARRAY: GLenum;
const SAMPLER_2D_ARRAY_SHADOW: GLenum;
const SAMPLER_CUBE_SHADOW: GLenum;
const INT_SAMPLER_2D: GLenum;
const INT_SAMPLER_3D: GLenum;
const INT_SAMPLER_CUBE: GLenum;
const INT_SAMPLER_2D_ARRAY: GLenum;
const UNSIGNED_INT_SAMPLER_2D: GLenum;
const UNSIGNED_INT_SAMPLER_3D: GLenum;
const UNSIGNED_INT_SAMPLER_CUBE: GLenum;
const UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;
const MAX_SAMPLES: GLenum;
const SAMPLER_BINDING: GLenum;
const PIXEL_PACK_BUFFER: GLenum;
const PIXEL_UNPACK_BUFFER: GLenum;
const PIXEL_PACK_BUFFER_BINDING: GLenum;
const PIXEL_UNPACK_BUFFER_BINDING: GLenum;
const COPY_READ_BUFFER: GLenum;
const COPY_WRITE_BUFFER: GLenum;
const COPY_READ_BUFFER_BINDING: GLenum;
const COPY_WRITE_BUFFER_BINDING: GLenum;
const FLOAT_MAT2x3: GLenum;
const FLOAT_MAT2x4: GLenum;
const FLOAT_MAT3x2: GLenum;
const FLOAT_MAT3x4: GLenum;
const FLOAT_MAT4x2: GLenum;
const FLOAT_MAT4x3: GLenum;
const UNSIGNED_INT_VEC2: GLenum;
const UNSIGNED_INT_VEC3: GLenum;
const UNSIGNED_INT_VEC4: GLenum;
const UNSIGNED_NORMALIZED: GLenum;
const SIGNED_NORMALIZED: GLenum;
const VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;
const VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;
const TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;
const MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;
const TRANSFORM_FEEDBACK_VARYINGS: GLenum;
const TRANSFORM_FEEDBACK_BUFFER_START: GLenum;
const TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;
const TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;
const MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;
const MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;
const INTERLEAVED_ATTRIBS: GLenum;
const SEPARATE_ATTRIBS: GLenum;
const TRANSFORM_FEEDBACK_BUFFER: GLenum;
const TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;
const TRANSFORM_FEEDBACK: GLenum;
const TRANSFORM_FEEDBACK_PAUSED: GLenum;
const TRANSFORM_FEEDBACK_ACTIVE: GLenum;
const TRANSFORM_FEEDBACK_BINDING: GLenum;
const FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;
const FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;
const FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;
const FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;
const FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;
const FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;
const FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;
const FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;
const FRAMEBUFFER_DEFAULT: GLenum;
const DEPTH24_STENCIL8: GLenum;
const DRAW_FRAMEBUFFER_BINDING: GLenum;
const READ_FRAMEBUFFER: GLenum;
const DRAW_FRAMEBUFFER: GLenum;
const READ_FRAMEBUFFER_BINDING: GLenum;
const RENDERBUFFER_SAMPLES: GLenum;
const FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;
const FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;
const UNIFORM_BUFFER: GLenum;
const UNIFORM_BUFFER_BINDING: GLenum;
const UNIFORM_BUFFER_START: GLenum;
const UNIFORM_BUFFER_SIZE: GLenum;
const MAX_VERTEX_UNIFORM_BLOCKS: GLenum;
const MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;
const MAX_COMBINED_UNIFORM_BLOCKS: GLenum;
const MAX_UNIFORM_BUFFER_BINDINGS: GLenum;
const MAX_UNIFORM_BLOCK_SIZE: GLenum;
const MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;
const MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;
const UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;
const ACTIVE_UNIFORM_BLOCKS: GLenum;
const UNIFORM_TYPE: GLenum;
const UNIFORM_SIZE: GLenum;
const UNIFORM_BLOCK_INDEX: GLenum;
const UNIFORM_OFFSET: GLenum;
const UNIFORM_ARRAY_STRIDE: GLenum;
const UNIFORM_MATRIX_STRIDE: GLenum;
const UNIFORM_IS_ROW_MAJOR: GLenum;
const UNIFORM_BLOCK_BINDING: GLenum;
const UNIFORM_BLOCK_DATA_SIZE: GLenum;
const UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;
const UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;
const UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;
const UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;
const OBJECT_TYPE: GLenum;
const SYNC_CONDITION: GLenum;
const SYNC_STATUS: GLenum;
const SYNC_FLAGS: GLenum;
const SYNC_FENCE: GLenum;
const SYNC_GPU_COMMANDS_COMPLETE: GLenum;
const UNSIGNALED: GLenum;
const SIGNALED: GLenum;
const ALREADY_SIGNALED: GLenum;
const TIMEOUT_EXPIRED: GLenum;
const CONDITION_SATISFIED: GLenum;
const WAIT_FAILED: GLenum;
const SYNC_FLUSH_COMMANDS_BIT: GLenum;
const COLOR: GLenum;
const STENCIL: GLenum;
const MIN: GLenum;
const MAX: GLenum;
const DEPTH_COMPONENT24: GLenum;
const STREAM_READ: GLenum;
const STREAM_COPY: GLenum;
const STATIC_READ: GLenum;
const STATIC_COPY: GLenum;
const DYNAMIC_READ: GLenum;
const DYNAMIC_COPY: GLenum;
const DEPTH_COMPONENT32F: GLenum;
const DEPTH32F_STENCIL8: GLenum;
const INVALID_INDEX: GLenum;
const TIMEOUT_IGNO: GLenum;
const MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;
/**
* Describes the frequency divisor used for instanced rendering.
*/
const VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum;
/**
* Passed to getParameter to get the vendor string of the graphics driver.
*/
const UNMASKED_VENDOR_WEBGL: GLenum;
/**
* Passed to getParameter to get the renderer string of the graphics driver.
*/
const UNMASKED_RENDERER_WEBGL: GLenum;
/**
* Returns the maximum available anisotropy.
*/
const MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum;
/**
* Passed to texParameter to set the desired maximum anisotropy for a texture.
*/
const TEXTURE_MAX_ANISOTROPY_EXT: GLenum;
/**
* A DXT1-compressed image in an RGB image format.
*/
const COMPRESSED_RGB_S3TC_DXT1_EXT: GLenum;
/**
* A DXT1-compressed image in an RGB image format with a simple on/off alpha value.
*/
const COMPRESSED_RGBA_S3TC_DXT1_EXT: GLenum;
/**
* A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.
*/
const COMPRESSED_RGBA_S3TC_DXT3_EXT: GLenum;
/**
* A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3 compression in how the alpha compression is done.
*/
const COMPRESSED_RGBA_S3TC_DXT5_EXT: GLenum;
/**
* One-channel (red) unsigned format compression.
*/
const COMPRESSED_R11_EAC: GLenum;
/**
* One-channel (red) signed format compression.
*/
const COMPRESSED_SIGNED_R11_EAC: GLenum;
/**
* Two-channel (red and green) unsigned format compression.
*/
const COMPRESSED_RG11_EAC: GLenum;
/**
* Two-channel (red and green) signed format compression.
*/
const COMPRESSED_SIGNED_RG11_EAC: GLenum;
/**
* Compresses RBG8 data with no alpha channel.
*/
const COMPRESSED_RGB8_ETC2: GLenum;
/**
* Compresses RGBA8 data. The RGB part is encoded the same as RGB_ETC2, but the alpha part is encoded separately.
*/
const COMPRESSED_RGBA8_ETC2_EAC: GLenum;
/**
* Compresses sRBG8 data with no alpha channel.
*/
const COMPRESSED_SRGB8_ETC2: GLenum;
/**
* Compresses sRGBA8 data. The sRGB part is encoded the same as SRGB_ETC2, but the alpha part is encoded separately.
*/
const COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum;
/**
* Similar to RGB8_ETC, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.
*/
const COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum;
/**
* Similar to SRGB8_ETC, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.
*/
const COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum;
/**
* RGB compression in 4-bit mode. One block for each 4×4 pixels.
*/
const COMPRESSED_RGB_PVRTC_4BPPV1_IMG: GLenum;
/**
* RGBA compression in 4-bit mode. One block for each 4×4 pixels.
*/
const COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: GLenum;
/**
* RGB compression in 2-bit mode. One block for each 8×4 pixels.
*/
const COMPRESSED_RGB_PVRTC_2BPPV1_IMG: GLenum;
/**
* RGBA compression in 2-bit mode. One block for each 8×4 pixe
*/
const COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: GLenum;
/**
* Compresses 24-bit RGB data with no alpha channel.
*/
const COMPRESSED_RGB_ETC1_WEBGL: GLenum;
const _WEBGL = 35986;
/**
* Compresses RGBA textures using explicit alpha encoding (useful when alpha transitions are sharp).
*/
const COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: GLenum;
/**
* Compresses RGBA textures using interpolated alpha encoding (useful when alpha transitions are gradient).
*/
const COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: GLenum;
/**
* Unsigned integer type for 24-bit depth texture data.
*/
const UNSIGNED_INT_24_8_WEBGL: GLenum;
/**
* Half floating-point type (16-bit).
*/
const HALF_FLOAT_OES: GLenum;
/**
* RGBA 32-bit floating-point color-renderable format.
*/
const RGBA32F_EXT: GLenum;
/**
* RGB 32-bit floating-point color-renderable format.
*/
const RGB32F_EXT: GLenum;
/**
* Returns the type of the color-renderable format of the attachment.
*/
const FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum;
/**
* Unsigned normalized integer type.
*/
const UNSIGNED_NORMALIZED_EXT: GLenum;
/**
* Produces the minimum color components of the source and destination colors.
*/
const MIN_EXT: GLenum;
/**
* Produces the maximum color components of the source and destination colors.
*/
const MAX_EXT: GLenum;
/**
* Unsized sRGB format that leaves the precision up to the driver.
*/
const SRGB_EXT: GLenum;
/**
* Unsized sRGB format with unsized alpha component.
*/
const SRGB_ALPHA_EXT: GLenum;
/**
* Sized (8-bit) sRGB and alpha formats.
*/
const SRGB8_ALPHA8_EXT: GLenum;
/**
* Returns the framebuffer color encoding.
*/
const FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: GLenum;
/**
* Indicates the accuracy of the derivative calculation for the GLSL built-in functions: dFdx, dFdy, and fwidth.
*/
const FRAGMENT_SHADER_DERIVATIVE_HINT_OES: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT0_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT1_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT2_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT3_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT4_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT5_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT6_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT7_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT8_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT9_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT10_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT11_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT12_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT13_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT14_WEBGL: GLenum;
/**
* Framebuffer color attachment point
*/
const COLOR_ATTACHMENT15_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER0_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER1_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER2_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER3_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER4_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER5_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER6_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER7_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER8_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER9_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER10_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER11_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER12_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER13_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER14_WEBGL: GLenum;
/**
* Draw buffer
*/
const DRAW_BUFFER15_WEBGL: GLenum;
/**
* Maximum number of framebuffer color attachment points
*/
const MAX_COLOR_ATTACHMENTS_WEBGL: GLenum;
/**
* Maximum number of draw buffers
*/
const MAX_DRAW_BUFFERS_WEBGL: GLenum;
/**
* The bound vertex array object (VAO).
*/
const VERTEX_ARRAY_BINDING_OES: GLenum;
/**
* The number of bits used to hold the query result for the given target.
*/
const QUERY_COUNTER_BITS_EXT: GLenum;
/**
* The currently active query.
*/
const CURRENT_QUERY_EXT: GLenum;
/**
* The query result.
*/
const QUERY_RESULT_EXT: GLenum;
/**
* A Boolean indicating whether or not a query result is available.
*/
const QUERY_RESULT_AVAILABLE_EXT: GLenum;
/**
* Elapsed time (in nanoseconds).
*/
const TIME_ELAPSED_EXT: GLenum;
/**
* The current time.
*/
const TIMESTAMP_EXT: GLenum;
/**
* A Boolean indicating whether or not the GPU performed any disjoint operation.
*/
const GPU_DISJOINT_EXT: GLenum;
}
/**
* Class是提供类的创建的辅助工具。
* @example
* const Bird = Hilo3d.Class.create({
* Extends: Animal,
* Mixes: EventMixin,
* constructor: function(name){
* this.name = name;
* },
* fly: function(){
* console.log('I am flying');
* },
* Statics: {
* isBird: function(bird){
* return bird instanceof Bird;
* }
* }
* });
*
* const swallow = new Bird('swallow');
* swallow.fly();
* Bird.isBird(swallow);
*/
namespace Class {
/**
* 混入属性或方法。
* @param target - 混入目标对象。
* @param source - 要混入的属性和方法来源。可支持多个来源参数。
* @returns 混入目标对象。
*/
function mix(target: any, ...source: any[]): any;
/**
* 根据参数指定的属性和方法创建类。
* @param params - 要创建的类的相关属性和方法。
* @param [params.Statics] - 指定类的静态属性或方法。
* @param [params.Extends] - 指定要继承的父类。
* @param [params.Mixes] - 指定要混入的成员集合对象
* @param [params.constructor] - 构造函数
* @param params.[value:string] - 其他创建类的成员属性或方法。
*/
function create(params: {
Statics?: any;
Extends?: any;
Mixes?: any;
constructor?: (...params: any[]) => any;
[value:string]: any;
}): void;
}
/**
* 事件对象
* @property type - 事件类型
* @property [detail = null] - 事件数据
*/
interface EventObject {
/**
* 事件类型
*/
type: string;
/**
* 事件数据
*/
detail?: any;
}
/**
* @param e - 事件对象
* @param e.type - 事件类型
* @param e.detail - 事件数据
* @param e.target - 事件触发对象
* @param e.stageX - 鼠标相对 stage 的 x 偏移 ( 仅鼠标事件有效 )
* @param e.stageY - 鼠标相对 stage 的 y 偏移 ( 仅鼠标事件有效 )
* @param e.eventTarget - 触发鼠标事件的对象 ( 仅鼠标事件有效 )
* @param e.eventCurrentTarget - 监听鼠标事件的对象 ( 仅鼠标事件有效 )
* @param e.hitPoint - 鼠标碰撞点 ( 仅鼠标事件有效 )
*/
type EventMixinCallback = (e: {
type: string;
detail: any;
target: any;
stageX: number;
stageY: number;
eventTarget: Node;
eventCurrentTarget: Node;
hitPoint: Vector3;
}) => void;
/**
* 包围盒信息
*/
type Bounds = {
/**
* 包围盒中心的X坐标
*/
x: number;
/**
* 包围盒中心的Y坐标
*/
y: number;
/**
* 包围盒中心的Z坐标
*/
z: number;
/**
* 包围盒的宽度
*/
width: number;
/**
* 包围盒的高度
*/
height: number;
/**
* 包围盒的深度
*/
depth: number;
/**
* X轴的最小值
*/
xMin: number;
/**
* X轴的最大值
*/
xMax: number;
/**
* Y轴的最小值
*/
yMin: number;
/**
* Y轴的最大值
*/
yMax: number;
/**
* Z轴的最小值
*/
zMin: number;
/**
* Z轴的最大值
*/
zMax: number;
};
/**
* 碰撞信息
*/
type raycastInfo = {
/**
* 碰撞的 mesh
*/
mesh: Mesh;
/**
* 碰撞得点
*/
point: Vector3;
};
/**
* Node traverse 回调
* @param node
*/
type NodeTraverseCallback = (node: Node) => any;
/**
* Node getChildByCallback 回调
* @param node
*/
type NodeGetChildByCallback = (node: Node) => boolean;
/**
* @property duration
* @property [delay]
* @property [ease]
* @property [onStart]
* @property [onComplete]
* @property [onUpdate]
* @property [loop = false]
* @property [reverse = false]
* @property [repeat = 0]
*/
interface TweenParams {
duration: number;
delay?: number | string;
ease?: (...params: any[]) => any;
onStart?: (...params: any[]) => any;
onComplete?: (...params: any[]) => any;
onUpdate?: (...params: any[]) => any;
loop?: boolean;
reverse?: boolean;
repeat?: number;
}
/**
* @property EaseIn
* @property EaseOut
* @property EaseInOut
*/
interface TweenEaseObject {
EaseIn: (...params: any[]) => any;
EaseOut: (...params: any[]) => any;
EaseInOut: (...params: any[]) => any;
}
/**
* @property EaseNone
*/
interface TweenEaseNoneObject {
EaseNone: (...params: any[]) => any;
}
/**
* @param attribute
* @param index
* @param offset
*/
type GeometryDataTraverseCallback = (attribute: number | Vector2 | Vector3 | Vector4, index: number, offset: number) => void;
/**
* @param component
* @param index
* @param offset
*/
type GeometryDataTraverseByComponentCallback = (component: number, index: number, offset: number) => void;
/**
* 更新自定义灯光回调
* @param lightManager
* @param camera
*/
type updateCustomInfoCallback = (lightManager: LightManager, camera: Camera) => void;
/**
* 灯光信息接口
* @property uid
*/
interface ILightInfo {
uid: string;
}
/**
* 灯光管理器接口
* @property shadowEnabled
* @property lightInfo
*/
interface ILightManager {
/**
* 重置所有光源信息
*/
reset(): void;
/**
* 更新光源信息
* @param renderer
* @param camera
* @param lights
*/
update(renderer: WebGLRenderer, camera: Camera, lights: Light[]): void;
/**
* 获取渲染配置
* @param [option]
*/
getRenderOption(option?: any): void;
shadowEnabled: boolean;
lightInfo: ILightInfo;
}
/**
* GLTFExtension Handler 接口
*/
interface IGLTFExtensionHandler {
/**
* 解析元素扩展
* @param [extensionData] - 扩展数据
* @param [parser] - parser
* @param [element] - parse的元素,e.g. material, mesh, geometry
* @param [options]
* @returns [result] 一般需要返回原始元素或者替换的新的元素
*/
parse?(extensionData?: any, parser?: GLTFParser, element?: any, options?: any): any;
/**
* 解析全局扩展,在资源加载后执行
* @param [extensionData] - 扩展数据
* @param [parser] - parser
* @param [element] - parse的元素,这里为 null
* @param [options]
*/
parseOnLoad?(extensionData?: any, parser?: GLTFParser, element?: any, options?: any): void;
/**
* 解析全局扩展,在所有元素解析结束后执行
* @param [extensionData] - 扩展数据
* @param [parser] - parser
* @param [element] - parse的元素,这里为加载后的model,{node, scene, meshes, json, cameras, lights, textures, materials}
* @param [options]
*/
parseOnEnd?(extensionData?: any, parser?: GLTFParser, element?: GLTFModel, options?: any): void;
/**
* 初始化全局扩展,在加载前执行,可进行添加需要加载的资源
* @param [gltfLoader]
* @param [parser]
*/
init?(gltfLoader?: GLTFLoader, parser?: GLTFParser): void;
/**
* 获取扩展用到的贴图信息, parser.isLoadAllTextures 为 false 时生效
* @example
* getUsedTextureNameMap(extension, map) {
* if (extension.diffuseTexture) {
* map[extension.diffuseTexture.index] = true;
* }
* }
* @param [extensionData] - 扩展数据
* @param [map] - used texture map
*/
getUsedTextureNameMap?(extensionData?: any, map?: any): void;
}
/**
* GLTFLoader 模型加载完返回的对象格式
*/
type GLTFModel = {
/**
* 原始数据
*/
json: any;
/**
* 模型的根节点
*/
node?: Node;
/**
* 模型的所有Mesh对象数组
*/
meshes?: Mesh[];
/**
* 模型的动画对象数组,没有动画的话为null
*/
anim?: Animation;
/**
* 模型中的所有Camera对象数组
*/
cameras?: Camera[];
/**
* 模型中的所有Light对象数组
*/
lights?: Light[];
/**
* 模型中的所有Texture对象数组
*/
textures?: Texture[];
/**
* 模型中的所有Material对象数组
*/
materials?: BasicMaterial[];
/**
* 模型中的所有Skeleton对象数组
*/
skins?: Skeleton[];
};
/**
* @property key
* @property state - 可选值为:LoadCache.LOADED LoadCache.PENDING LoadCache.FAILED
* @property data
*/
interface ILoadCacheFile {
key: string;
/**
* 可选值为:LoadCache.LOADED LoadCache.PENDING LoadCache.FAILED
*/
state: number;
data: any;
}
/**
* 语义
*/
namespace semantic {
var state: WebGLState;
var camera: Camera;
var lightManager: LightManager;
var fog: Fog;
var gl: WebGLRenderingContext;
/**
* WebGLRenderer
*/
var renderer: WebGLRenderer;
/**
* 初始化
* @param _state
* @param _camera
* @param _lightManager
* @param _fog
*/
function init(_state: WebGLState, _camera: Camera, _lightManager: LightManager, _fog: Fog): void;
/**
* 设置相机
* @param _camera
*/
function setCamera(_camera: Camera): void;
/**
* @param value
* @param textureIndex - programInfo.textureIndex
*/
function handlerColorOrTexture(value: Texture | Color, textureIndex: number): Float32Array | number;
/**
* @param value
* @param textureIndex - programInfo.textureIndex
*/
function handlerTexture(value: Texture, textureIndex: number): number;
/**
* @param target
* @param texture
* @param textureIndex - programInfo.textureIndex
*/
function handlerGLTexture(target: GLenum, texture: WebGLTexture, textureIndex: number): number;
/**
* @param texture
* @returns uv
*/
function handlerUV(texture: Texture): number;
var POSITION: semanticObject;
var NORMAL: semanticObject;
var TANGENT: semanticObject;
var TEXCOORD_0: semanticObject;
var TEXCOORD_1: semanticObject;
var UVMATRIX_0: semanticObject;
var UVMATRIX_1: semanticObject;
var CAMERAFAR: semanticObject;
var CAMERANEAR: semanticObject;
var CAMERATYPE: semanticObject;
var COLOR_0: semanticObject;
var SKININDICES: semanticObject;
var JOINT: semanticObject;
var WEIGHT: semanticObject;
var SKINWEIGHTS: semanticObject;
var RENDERERSIZE: semanticObject;
var LOCAL: semanticObject;
var MODEL: semanticObject;
var VIEW: semanticObject;
var PROJECTION: semanticObject;
var VIEWPROJECTION: semanticObject;
var MODELVIEW: semanticObject;
var MODELVIEWPROJECTION: semanticObject;
var MODELINVERSE: semanticObject;
var VIEWINVERSE: semanticObject;
var VIEWINVERSEINVERSETRANSPOSE: semanticObject;
var PROJECTIONINVERSE: semanticObject;
var MODELVIEWINVERSE: semanticObject;
var MODELVIEWPROJECTIONINVERSE: semanticObject;
var MODELINVERSETRANSPOSE: semanticObject;
var MODELVIEWINVERSETRANSPOSE: semanticObject;
/**
* 还未实现,不要使用
*/
var VIEWPORT: semanticObject;
var JOINTMATRIX: semanticObject;
var JOINTMATRIXTEXTURE: semanticObject;
var JOINTMATRIXTEXTURESIZE: semanticObject;
var NORMALMAPSCALE: semanticObject;
var OCCLUSIONSTRENGTH: semanticObject;
var SHININESS: semanticObject;
var SPECULARENVMATRIX: semanticObject;
var REFLECTIVITY: semanticObject;
var REFRACTRATIO: semanticObject;
var REFRACTIVITY: semanticObject;
var AMBIENTLIGHTSCOLOR: semanticObject;
var DIRECTIONALLIGHTSCOLOR: semanticObject;
var DIRECTIONALLIGHTSINFO: semanticObject;
var DIRECTIONALLIGHTSSHADOWMAP: semanticObject;
var DIRECTIONALLIGHTSSHADOWMAPSIZE: semanticObject;
var DIRECTIONALLIGHTSSHADOWBIAS: semanticObject;
var DIRECTIONALLIGHTSPACEMATRIX: semanticObject;
var POINTLIGHTSPOS: semanticObject;
var POINTLIGHTSCOLOR: semanticObject;
var POINTLIGHTSINFO: semanticObject;
var POINTLIGHTSRANGE: semanticObject;
var POINTLIGHTSSHADOWMAP: semanticObject;
var POINTLIGHTSSHADOWBIAS: semanticObject;
var POINTLIGHTSPACEMATRIX: semanticObject;
var POINTLIGHTCAMERA: semanticObject;
var SPOTLIGHTSPOS: semanticObject;
var SPOTLIGHTSDIR: semanticObject;
var SPOTLIGHTSCOLOR: semanticObject;
var SPOTLIGHTSCUTOFFS: semanticObject;
var SPOTLIGHTSINFO: semanticObject;
var SPOTLIGHTSRANGE: semanticObject;
var SPOTLIGHTSSHADOWMAP: semanticObject;
var SPOTLIGHTSSHADOWMAPSIZE: semanticObject;
var SPOTLIGHTSSHADOWBIAS: semanticObject;
var SPOTLIGHTSPACEMATRIX: semanticObject;
var AREALIGHTSCOLOR: semanticObject;
var AREALIGHTSPOS: semanticObject;
var AREALIGHTSWIDTH: semanticObject;
var AREALIGHTSHEIGHT: semanticObject;
var AREALIGHTSLTCTEXTURE1: semanticObject;
var AREALIGHTSLTCTEXTURE2: semanticObject;
var FOGCOLOR: semanticObject;
var FOGINFO: semanticObject;
var POSITIONDECODEMAT: semanticObject;
var NORMALDECODEMAT: semanticObject;
var UVDECODEMAT: semanticObject;
var BASECOLOR: semanticObject;
/**
* EMISSION FACTOR
*/
var EMISSIONFACTOR: any;
var METALLIC: semanticObject;
var ROUGHNESS: semanticObject;
var DIFFUSEENVMAP: semanticObject;
var DIFFUSEENVINTENSITY: semanticObject;
var BRDFLUT: semanticObject;
var SPECULARENVMAP: semanticObject;
}
/**
* semantic 对象
*/
type semanticObject = {
/**
* 是否依赖 mesh
*/
isDependMesh: boolean;
/**
* 是否不支持 instanced
*/
notSupportInstanced: boolean;
/**
* 获取数据方法
*/
get: (...params: any[]) => any;
};
/**
* 含x, y, z属性的对象
*/
type XYZObject = {
x: number;
y: number;
z: number;
};
namespace math {
/**
* 角度值转弧度值
*/
var DEG2RAD: number;
/**
* 弧度值转角度值
*/
var RAD2DEG: number;
/**
* 生成唯一ID
* @param [prefix = ''] - ID前缀
* @returns ID
*/
function generateUUID(prefix?: string): string;
/**
* 截取
* @param value - 值
* @param min - 最小值
* @param max - 最大值
*/
function clamp(value: number, min: number, max: number): number;
/**
* 角度值转换成弧度值
* @param deg - 角度值
* @returns 弧度值
*/
function degToRad(deg: number): number;
/**
* 弧度值转换成角度值
* @param rad - 弧度值
* @returns 角度值
*/
function radToDeg(rad: number): number;
/**
* 是否是 2 的指数值
* @param value
*/
function isPowerOfTwo(value: number): boolean;
/**
* 最近的 2 的指数值
* @param value
*/
function nearestPowerOfTwo(value: number): number;
/**
* 下一个的 2 的指数值
* @param value
*/
function nextPowerOfTwo(value: number): number;
}
/**
*/
type AttachmentInfo = {
attachmentType: 'TEXTURE' | 'RENDERBUFFER';
framebufferTarget: GLenum;
attachment: GLenum;
samples: number;
target: GLenum;
internalFormat: GLenum;
format: GLenum;
type: GLenum;
minFilter: GLenum;
magFilter: GLenum;
wrapS: GLenum;
wrapT: GLenum;
data: TypedArray;
texture: Texture;
renderbuffer: WebGLRenderbuffer;
};
/**
* @param mesh
*/
type RenderListTraverseCallback = (mesh: Mesh) => void;
/**
* @param meshes
*/
type RenderListInstancedTraverseCallback = (meshes: Mesh[]) => void;
/**
* 顶点对象
*/
type AttributeObject = {
attribute: any;
buffer: WebGLBuffer;
geometryData: GeometryData;
useInstanced: boolean;
};
/**
* WebGL 能力
*/
namespace capabilities {
/**
* 是否是 WebGL2
*/
var isWebGL2: boolean;
/**
* 最大纹理数量
*/
var MAX_TEXTURE_INDEX: number;
/**
* 最高着色器精度, 可以是以下值:highp, mediump, lowp
*/
var MAX_PRECISION: string;
/**
* 最高顶点着色器精度, 可以是以下值:highp, mediump, lowp
*/
var MAX_VERTEX_PRECISION: string;
/**
* 最高片段着色器精度, 可以是以下值:highp, mediump, lowp
*/
var MAX_FRAGMENT_PRECISION: string;
/**
* 顶点浮点数纹理
*/
var VERTEX_TEXTURE_FLOAT: boolean;
/**
* 片段浮点数纹理
*/
var FRAGMENT_TEXTURE_FLOAT: boolean;
/**
* MAX_TEXTURE_MAX_ANISOTROPY
*/
var MAX_TEXTURE_MAX_ANISOTROPY: number;
var MAX_RENDERBUFFER_SIZE: number;
var MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;
var MAX_CUBE_MAP_TEXTURE_SIZE: number;
var MAX_FRAGMENT_UNIFORM_VECTORS: number;
var MAX_TEXTURE_IMAGE_UNITS: number;
var MAX_TEXTURE_SIZE: number;
var MAX_VARYING_VECTORS: number;
var MAX_VERTEX_ATTRIBS: number;
var MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;
var MAX_VERTEX_UNIFORM_VECTORS: number;
/**
* 初始化
* @param gl
*/
function init(gl: WebGLRenderingContext): void;
/**
* 获取 WebGL 能力
* @param name
*/
function get(name: string): number | string;
/**
* 获取最大支持精度
* @param a
* @param b
*/
function getMaxPrecision(a: string, b: string): string;
}
type ANGLEInstancedArrays = any;
type OESVertexArrayObject = any;
type OESTextureFloat = any;
type EXTFragDepth = any;
type WebGLLoseContext = any;
type EXTTextureFilterAnisotropic = any;
type EXT_sRGB = any;
type WEBGLDrawBuffers = any;
/**
* WebGL 扩展管理,默认开启的扩展有:ANGLE_instanced_arrays, OES_vertex_array_object, OES_texture_float, OES_element_index_uint, EXT_shader_texture_lod, EXT_texture_filter_anisotropic, WEBGL_lose_context, WEBGL_draw_buffers
*/
namespace extensions {
/**
* ANGLE_instanced_arrays扩展
*/
var instanced: ANGLEInstancedArrays;
/**
* OES_vertex_array_object扩展
*/
var vao: OESVertexArrayObject;
/**
* WEBGL_draw_buffers扩展
*/
var drawBuffers: WEBGLDrawBuffers;
/**
* OES_texture_float扩展
*/
var texFloat: OESTextureFloat;
/**
* EXT_frag_depth扩展
*/
var fragDepth: EXTFragDepth;
/**
* WEBGL_lose_context扩展
*/
var loseContext: WebGLLoseContext;
/**
* EXT_texture_filter_anisotropic
*/
var textureFilterAnisotropic: EXTTextureFilterAnisotropic;
/**
* EXT_sRGB
*/
var sRGB: EXT_sRGB;
/**
* 初始化
* @param gl
*/
function init(gl: WebGLRenderingContext): void;
/**
* 重置扩展
* @param gl
*/
function reset(gl: WebGLRenderingContext): void;
/**
* 使用扩展
* @param name - 扩展名称
* @param [alias = name] - 别名,默认和 name 相同
*/
function use(name: string, alias?: string): void;
/**
* 获取扩展,如果不支持返回 null,必须在 Renderer 初始化完后用
* @param name - 扩展名称
* @param [alias = name] - 别名,默认和 name 相同
*/
function get(name: string, alias?: string): any | null;
/**
* 禁止扩展
* @param name - 扩展名称
*/
function disable(name: string): void;
/**
* 开启扩展
* @param name - 扩展名称
*/
function enable(name: string): void;
}
/**
*/
type glTypeInfo = {
/**
* 名字,e.g. FLOAT_VEC2
*/
name: string;
/**
* 字节大小
*/
byteSize: number;
/**
* uniform方法名字,e.g. uniform3f
*/
uniformFuncName: string;
/**
* 类型,可以是 Scalar, Vector, Matrix
*/
type: string;
/**
* 数量
*/
size: number;
/**
* gl enum值
*/
glValue: GLenum;
/**
* uniform单个值方法
*/
uniform: (...params: any[]) => any;
/**
* uniform多个值方法
*/
uniformArray: (...params: any[]) => any;
};
namespace glType {
/**
* init
* @param gl
*/
function init(gl: WebGLRenderingContext): void;
/**
* 获取信息
* @param type
*/
function get(type: GLenum): glTypeInfo;
}
/**
* 打印所有 gl 资源
* @returns gl资源数量字符串
*/
function logGLResource(): string;
/**
* WebGL支持检测
*/
namespace WebGLSupport {
/**
* 是否支持 WebGL
*/
function get(): boolean;
}
/**
* 浏览器特性集合
*/
namespace browser {
/**
* 是否是iphone
*/
const iphone: boolean;
/**
* 是否是ipad
*/
const ipad: boolean;
/**
* 是否是ipod
*/
const ipod: boolean;
/**
* 是否是ios
*/
const ios: boolean;
/**
* 是否是android
*/
const android: boolean;
/**
* 是否是webkit
*/
const webkit: boolean;
/**
* 是否是chrome
*/
const chrome: boolean;
/**
* 是否是safari
*/
const safari: boolean;
/**
* 是否是firefox
*/
const firefox: boolean;
/**
* 是否是ie
*/
const ie: boolean;
/**
* 是否是opera
*/
const opera: boolean;
/**
* 是否支持触碰事件。
*/
const supportTouch: boolean;
/**
* 是否支持canvas元素。
*/
const supportCanvas: boolean;
/**
* 是否支持本地存储localStorage。
*/
const supportStorage: boolean;
/**
* 是否支持检测设备方向orientation。
*/
const supportOrientation: boolean;
/**
* 是否支持检测加速度devicemotion。
*/
const supportDeviceMotion: boolean;
/**
* 浏览器厂商CSS前缀的js值。比如:webkit。
*/
const jsVendor: string;
/**
* 浏览器厂商CSS前缀的css值。比如:-webkit-。
*/
const cssVendor: string;
/**
* 是