@awayjs/graphics
Version:
AwayJS graphics classes
77 lines (76 loc) • 3.24 kB
JavaScript
import { ImageUtils } from '@awayjs/stage';
var MaterialManager = /** @class */ (function () {
function MaterialManager() {
}
MaterialManager.getMaterialForColor = function (style) {
// if (color == 0) {
// color = 0x000001;
// }
// if (color == 0xFF8100) {
// alpha = 1;
// }
if (!MaterialManager.materialClass) {
throw ('no materialClass registered on MaterialManager!');
}
var newmat;
if (MaterialManager._useTextureAtlasForColors) {
if (MaterialManager._colorMaterial)
return MaterialManager._colorMaterial;
newmat = MaterialManager._colorMaterial = new MaterialManager.materialClass(ImageUtils.getDefaultImage2D());
newmat.animateUVs = true;
}
else {
var color = style.color;
var alpha = style.alpha;
var colorstr = color + '_' + Math.round(alpha * 100).toString();
if (MaterialManager._colorMaterials[colorstr])
return MaterialManager._colorMaterials[colorstr];
newmat = MaterialManager._colorMaterials[colorstr] = new MaterialManager.materialClass(color, alpha);
}
newmat.alphaBlending = true;
newmat.useColorTransform = true;
newmat.bothSides = true;
return newmat;
};
MaterialManager.getMaterialForGradient = function (gradient) {
if (!MaterialManager.materialClass) {
throw ('no materialClass registered on MaterialManager!');
}
var lookupstr = gradient.type.toString();
if (MaterialManager._textureMaterials[lookupstr])
return MaterialManager._textureMaterials[lookupstr];
var newmat = MaterialManager._textureMaterials[lookupstr] = new MaterialManager.materialClass(ImageUtils.getDefaultImage2D());
newmat.useColorTransform = true;
newmat.alphaBlending = true;
newmat.bothSides = true;
newmat.animateUVs = true;
return newmat;
};
MaterialManager.getMaterialForBitmap = function (transform) {
if (transform === void 0) { transform = false; }
if (!MaterialManager.materialClass) {
throw ('no materialClass registered on MaterialManager!');
}
var newmat;
if (transform) {
if (MaterialManager._bitmapMaterialTransform)
return MaterialManager._bitmapMaterialTransform;
newmat = MaterialManager._bitmapMaterialTransform = new MaterialManager.materialClass(ImageUtils.getDefaultImage2D());
newmat.animateUVs = true;
}
else {
if (MaterialManager._bitmapMaterial)
return MaterialManager._bitmapMaterial;
newmat = MaterialManager._bitmapMaterial = new MaterialManager.materialClass(ImageUtils.getDefaultImage2D());
}
newmat.alphaBlending = true;
newmat.useColorTransform = true;
newmat.bothSides = true;
return newmat;
};
MaterialManager._colorMaterials = {};
MaterialManager._textureMaterials = {};
MaterialManager._useTextureAtlasForColors = true;
return MaterialManager;
}());
export { MaterialManager };