UNPKG

@awayjs/graphics

Version:
77 lines (76 loc) 3.24 kB
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 };