update libs

This commit is contained in:
Kirill Chikalin
2025-02-13 17:48:12 +03:00
parent e17e7c2786
commit 275dc598c7
816 changed files with 22479 additions and 10792 deletions

View File

@@ -0,0 +1,96 @@
using UnityEngine;
namespace AssetStoreTools.Previews.Utility
{
internal static class GraphicsUtility
{
public static Texture2D GetTextureFromCamera(Camera camera, int desiredWidth, int desiredHeight, int desiredDepth)
{
var texture = new Texture2D(desiredWidth, desiredHeight);
var originalRenderTexture = RenderTexture.active;
var renderTexture = RenderTexture.GetTemporary(desiredWidth, desiredHeight, desiredDepth);
var cameraInitiallyEnabled = camera.enabled;
try
{
if (cameraInitiallyEnabled)
camera.enabled = false;
camera.targetTexture = renderTexture;
camera.Render();
RenderTexture.active = renderTexture;
texture.ReadPixels(new Rect(0, 0, texture.width, texture.height), 0, 0);
texture.Apply();
}
finally
{
camera.targetTexture = null;
RenderTexture.active = originalRenderTexture;
RenderTexture.ReleaseTemporary(renderTexture);
camera.enabled = cameraInitiallyEnabled;
}
return texture;
}
public static Texture2D ResizeTexture(Texture2D source, int desiredWidth, int desiredHeight)
{
var texture = new Texture2D(desiredWidth, desiredHeight);
var originalRenderTexture = RenderTexture.active;
var renderTexture = RenderTexture.GetTemporary(desiredWidth, desiredHeight, 32);
try
{
RenderTexture.active = renderTexture;
Graphics.Blit(source, renderTexture);
texture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
texture.Apply();
}
finally
{
RenderTexture.active = originalRenderTexture;
RenderTexture.ReleaseTemporary(renderTexture);
}
return texture;
}
public static Texture2D ResizeTextureNormalMap(Texture2D source, int desiredWidth, int desiredHeight)
{
var texture = new Texture2D(desiredWidth, desiredHeight);
var originalRenderTexture = RenderTexture.active;
var renderTexture = RenderTexture.GetTemporary(desiredWidth, desiredHeight, 32, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);
try
{
RenderTexture.active = renderTexture;
Graphics.Blit(source, renderTexture);
texture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
for (int i = 0; i < texture.width; i++)
{
for (int j = 0; j < texture.height; j++)
{
var color = texture.GetPixel(i, j);
color.b = color.r;
color.r = color.a;
color.a = 1;
texture.SetPixel(i, j, color);
}
}
texture.Apply();
}
finally
{
RenderTexture.active = originalRenderTexture;
RenderTexture.ReleaseTemporary(renderTexture);
}
return texture;
}
}
}