| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- using UnityEngine;
 
- namespace MPUIKIT {
 
-     public static class MPMaterials {
 
-         private const string MpBasicProceduralShaderName = "MPUI/Basic Procedural Image";
 
-         private static string[] MpShapeKeywords = {"CIRCLE", "TRIANGLE", "RECTANGLE", "NSTAR_POLYGON"};
 
-         private const string MpStrokeKeyword = "STROKE";
 
-         private const string MpOutlineKeyword = "OUTLINED";
 
-         private const string MpOutlinedStrokeKeyword = "OUTLINED_STROKE";
 
-         private static Shader _proceduralShader;
 
-         internal static Shader MPBasicProceduralShader
 
-         {
 
-             get {
 
-                 if (_proceduralShader == null)
 
-                     _proceduralShader = Shader.Find(MpBasicProceduralShaderName);
 
-                 return _proceduralShader;
 
-             }    
 
-         }
 
-         private static Material[] _materialDB = new Material[16];
 
-         internal static ref Material GetMaterial(int shapeIndex, bool stroked, bool outlined) {
 
-             int index = shapeIndex * 4;
 
-             if (stroked && outlined) index += 3;
 
-             else if (outlined) index += 2;
 
-             else if (stroked) index += 1;
 
-             ref Material mat = ref _materialDB[index];
 
-             if (mat != null) return ref mat;
 
-             
 
-             mat = new Material(MPBasicProceduralShader);
 
-             string shapeKeyword = MpShapeKeywords[shapeIndex];
 
-             mat.name = $"Basic Procedural Sprite - {shapeKeyword} {(stroked?MpStrokeKeyword:string.Empty)} {(outlined?MpOutlineKeyword:string.Empty)}";
 
-             mat.EnableKeyword(shapeKeyword);
 
-             if(stroked && outlined) mat.EnableKeyword(MpOutlinedStrokeKeyword);
 
-             else if(stroked) mat.EnableKeyword(MpStrokeKeyword);
 
-             else if(outlined) mat.EnableKeyword(MpOutlineKeyword);
 
-             return ref mat;
 
-         }
 
-     }
 
- }
 
 
  |