protected void DoRenderPreview(Object[] subAssets)
{
if ((this.m_PreviewUtility.m_RenderTexture.width > 0) && (this.m_PreviewUtility.m_RenderTexture.height > 0))
{
Color color;
List<ProceduralMaterial> list = new List<ProceduralMaterial>();
foreach (Object obj2 in subAssets)
{
if (obj2 is ProceduralMaterial)
{
list.Add(obj2 as ProceduralMaterial);
}
}
int num2 = 1;
int num3 = 1;
while ((num3 * num3) < list.Count)
{
num3++;
}
num2 = Mathf.CeilToInt(((float) list.Count) / ((float) num3));
this.m_PreviewUtility.m_Camera.transform.position = (Vector3) ((-Vector3.forward * 5f) * num3);
this.m_PreviewUtility.m_Camera.transform.rotation = Quaternion.identity;
this.m_PreviewUtility.m_Camera.farClipPlane = (5 * num3) + 5f;
this.m_PreviewUtility.m_Camera.nearClipPlane = (5 * num3) - 3f;
if (this.lightMode == 0)
{
this.m_PreviewUtility.m_Light[0].intensity = 1f;
this.m_PreviewUtility.m_Light[0].transform.rotation = Quaternion.Euler(30f, 30f, 0f);
this.m_PreviewUtility.m_Light[1].intensity = 0f;
color = new Color(0.2f, 0.2f, 0.2f, 0f);
}
else
{
this.m_PreviewUtility.m_Light[0].intensity = 1f;
this.m_PreviewUtility.m_Light[0].transform.rotation = Quaternion.Euler(50f, 50f, 0f);
this.m_PreviewUtility.m_Light[1].intensity = 1f;
color = new Color(0.2f, 0.2f, 0.2f, 0f);
}
InternalEditorUtility.SetCustomLighting(this.m_PreviewUtility.m_Light, color);
for (int i = 0; i < list.Count; i++)
{
ProceduralMaterial mat = list[i];
Vector3 pos = new Vector3((i % num3) - ((num3 - 1) * 0.5f), (-i / num3) + ((num2 - 1) * 0.5f), 0f);
pos = (Vector3) (pos * ((Mathf.Tan((this.m_PreviewUtility.m_Camera.fieldOfView * 0.5f) * 0.01745329f) * 5f) * 2f));
this.m_PreviewUtility.DrawMesh(s_Meshes[this.selectedMesh], pos, Quaternion.Euler(this.previewDir.y, 0f, 0f) * Quaternion.Euler(0f, this.previewDir.x, 0f), mat, 0);
}
bool fog = RenderSettings.fog;
Unsupported.SetRenderSettingsUseFogNoDirty(false);
this.m_PreviewUtility.m_Camera.Render();
Unsupported.SetRenderSettingsUseFogNoDirty(fog);
InternalEditorUtility.RemoveCustomLighting();
}
}