public void SetSDFData(UIForiaData data, StructList <Matrix4x4> matrices) { Array.Copy(matrices.array, 0, transformData, 0, matrices.size); Array.Copy(data.colors.array, 0, colorData, 0, data.colors.size); Array.Copy(data.objectData0.array, 0, objectData, 0, data.objectData0.size); Array.Copy(data.clipRects.array, 0, clipRects, 0, data.clipRects.size); matBlock.SetMatrixArray(s_TransformDataKey, transformData); matBlock.SetVectorArray(s_ColorDataKey, colorData); matBlock.SetVectorArray(s_ObjectDataKey, objectData); matBlock.SetVectorArray(s_ClipRectKey, clipRects); matBlock.SetFloat(s_DPIScaleKey, 1f / Application.dpiScaleFactor); if (data.mainTexture != null) { material.SetTexture(s_MainTextureKey, data.mainTexture); } if (data.clipTexture != null) { material.SetTexture(s_ClipTextureKey, data.clipTexture); } if (data.fontData.fontAsset != null) { FontData fontData = data.fontData; matBlock.SetVector(s_FontDataScales, new Vector4(fontData.gradientScale, fontData.scaleRatioA, fontData.scaleRatioB, fontData.scaleRatioC)); matBlock.SetVector(s_FontTextureSize, new Vector4(fontData.textureWidth, fontData.textureHeight, 0, 0)); matBlock.SetTexture(s_FontTexture, fontData.fontAsset.atlas); } }
public static void Release(ref UIForiaData data) { if (data == null || !data.isActive) { return; } data.isActive = false; data.Clear(); s_Pool.Add(data); data = null; }
public static UIForiaData Get() { UIForiaData retn = null; if (s_Pool.size > 0) { retn = s_Pool.RemoveLast(); } else { retn = new UIForiaData(); } retn.isActive = true; return(retn); }