cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 3.18 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=require("./Texture.js"),e=require("./core/glenum.js"),i=require("./core/util.js"),r=require("./math/util.js"),a=require("./core/vendor.js"),h=r.default.isPowerOfTwo,n=["px","nx","py","ny","pz","nz"],s=t.default.extend((function(){return{image:{px:null,nx:null,py:null,ny:null,pz:null,nz:null},pixels:{px:null,nx:null,py:null,ny:null,pz:null,nz:null},mipmaps:[]}}),{textureType:"textureCube",update:function(t){var i=t.gl;i.bindTexture(i.TEXTURE_CUBE_MAP,this._cache.get("webgl_texture")),this.updateCommon(t);var r=this.format,a=this.type;i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_S,this.getAvailableWrapS()),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_T,this.getAvailableWrapT()),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAG_FILTER,this.getAvailableMagFilter()),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MIN_FILTER,this.getAvailableMinFilter());var h=t.getGLExtension("EXT_texture_filter_anisotropic");(h&&this.anisotropic>1&&i.texParameterf(i.TEXTURE_CUBE_MAP,h.TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropic),36193===a)&&(t.getGLExtension("OES_texture_half_float")||(a=e.default.FLOAT));if(this.mipmaps.length)for(var n=this.width,s=this.height,u=0;u<this.mipmaps.length;u++){var l=this.mipmaps[u];this._updateTextureData(i,l,u,n,s,r,a),n/=2,s/=2}else this._updateTextureData(i,this,0,this.width,this.height,r,a),!this.NPOT&&this.useMipmap&&i.generateMipmap(i.TEXTURE_CUBE_MAP);i.bindTexture(i.TEXTURE_CUBE_MAP,null)},_updateTextureData:function(t,e,i,r,a,h,s){for(var u=0;u<6;u++){var l=n[u],g=e.image&&e.image[l];g?t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+u,i,h,h,s,g):t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+u,i,h,r,a,0,h,s,e.pixels&&e.pixels[l])}},generateMipmap:function(t){var e=t.gl;this.useMipmap&&!this.NPOT&&(e.bindTexture(e.TEXTURE_CUBE_MAP,this._cache.get("webgl_texture")),e.generateMipmap(e.TEXTURE_CUBE_MAP))},bind:function(t){t.gl.bindTexture(t.gl.TEXTURE_CUBE_MAP,this.getWebGLTexture(t))},unbind:function(t){t.gl.bindTexture(t.gl.TEXTURE_CUBE_MAP,null)},isPowerOfTwo:function(){return this.image.px?h(this.image.px.width)&&h(this.image.px.height):h(this.width)&&h(this.height)},isRenderable:function(){return this.image.px?u(this.image.px)&&u(this.image.nx)&&u(this.image.py)&&u(this.image.ny)&&u(this.image.pz)&&u(this.image.nz):!(!this.width||!this.height)},load:function(t,e){var r=0,h=this;return i.default.each(t,(function(t,i){var n=a.default.createImage();e&&(n.crossOrigin=e),n.onload=function(){0===--r&&(h.dirty(),h.trigger("success",h))},n.onerror=function(){r--},r++,n.src=t,h.image[i]=n})),this}});function u(t){return t.width>0&&t.height>0}Object.defineProperty(s.prototype,"width",{get:function(){return this.image&&this.image.px?this.image.px.width:this._width},set:function(t){this.image&&this.image.px||(this._width!==t&&this.dirty(),this._width=t)}}),Object.defineProperty(s.prototype,"height",{get:function(){return this.image&&this.image.px?this.image.px.height:this._height},set:function(t){this.image&&this.image.px||(this._height!==t&&this.dirty(),this._height=t)}});var l=s;exports.default=l;