UNPKG

@awayjs/renderer

Version:
103 lines (102 loc) 3.69 kB
import { __extends } from "tslib"; import { TextureCube } from './TextureCube'; var ImageTextureCube = /** @class */ (function (_super) { __extends(ImageTextureCube, _super); function ImageTextureCube(image) { if (image === void 0) { image = null; } var _this = _super.call(this) || this; _this.setNumImages(1); _this.image = image; return _this; } Object.defineProperty(ImageTextureCube.prototype, "assetType", { /** * * @returns {string} */ get: function () { return ImageTextureCube.assetType; }, enumerable: false, configurable: true }); Object.defineProperty(ImageTextureCube.prototype, "sampler", { /** * * @returns {ImageCube} */ get: function () { return this._samplers[0]; }, set: function (value) { if (this._samplers[0] == value) return; this.setSamplerAt(value, 0); }, enumerable: false, configurable: true }); Object.defineProperty(ImageTextureCube.prototype, "image", { /** * * @returns {ImageCube} */ get: function () { return this._images[0]; }, set: function (value) { if (this._images[0] == value) return; this.setImageAt(value, 0); }, enumerable: false, configurable: true }); ImageTextureCube.assetType = '[texture ImageTextureCube]'; return ImageTextureCube; }(TextureCube)); export { ImageTextureCube }; import { _Shader_TextureBase } from '../base/_Shader_TextureBase'; import { ShaderBase } from '../base/ShaderBase'; /** * * @class away.pool.GL_SingleImageTexture */ var _Shader_ImageTexture = /** @class */ (function (_super) { __extends(_Shader_ImageTexture, _super); function _Shader_ImageTexture() { return _super !== null && _super.apply(this, arguments) || this; } /** * * @param shader * @param regCache * @param targetReg The register in which to store the sampled colour. * @param uvReg The uv coordinate vector with which to sample the texture map. * @returns {string} * @private */ _Shader_ImageTexture.prototype._getFragmentCode = function (targetReg, regCache, sharedReg, inputReg) { var wrap = 'wrap'; var format = ''; var filter = 'linear,miplinear'; this._imageIndex = this._shader.renderMaterial.getImageIndex(this._texture, 0); var textureReg = this.getTextureReg(this._imageIndex, regCache, sharedReg); this._textureIndex = textureReg.index; return 'tex ' + targetReg + ', ' + inputReg + ', ' + textureReg + ' <' + this._shader.renderMaterial.images[this._imageIndex].getType() + ',' + filter + ',' + format + wrap + '>\n'; }; _Shader_ImageTexture.prototype.activate = function () { var sampler = this._shader.renderMaterial.samplers[this._imageIndex]; var stageImage = this._shader.renderMaterial.images[this._imageIndex]; stageImage.activate(this._textureIndex, sampler); }; _Shader_ImageTexture.prototype._setRenderState = function (renderState) { var sampler = renderState.samplers[this._imageIndex]; var stageImage = renderState.images[this._imageIndex]; if (stageImage && sampler) stageImage.activate(this._textureIndex, sampler); }; return _Shader_ImageTexture; }(_Shader_TextureBase)); export { _Shader_ImageTexture }; ShaderBase.registerAbstraction(_Shader_ImageTexture, ImageTextureCube);