@awayjs/renderer
Version:
Renderer for AwayJS
95 lines (94 loc) • 3.3 kB
JavaScript
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].getImageType() + ',' + filter + ',' + format + wrap + '>\n';
};
_Shader_ImageTexture.prototype._setRenderState = function (renderState) {
renderState.images[this._imageIndex].activate(this._textureIndex, renderState.samplers[this._imageIndex]);
};
return _Shader_ImageTexture;
}(_Shader_TextureBase));
export { _Shader_ImageTexture };
ShaderBase.registerAbstraction(_Shader_ImageTexture, ImageTextureCube);