Better asset processor selection, process subassets

This commit is contained in:
Simon Lübeß
2024-06-13 15:44:27 +02:00
parent 36e98311c6
commit cd434d64f9
22 changed files with 356 additions and 292 deletions
+16 -1
View File
@@ -1091,7 +1091,22 @@ namespace GlitchyEngine.Renderer
public static void DrawSprite(Matrix transform, SpriteRendererComponent* spriteRenderer, uint32 entityId)
{
DrawQuad(transform, spriteRenderer.Sprite.Get() ?? s_whiteTexture, spriteRenderer.Color, spriteRenderer.UvTransform, entityId);
Asset asset = Content.GetAsset(spriteRenderer.Sprite);
Texture2D spriteTexture = null;
float4 uvTransform = spriteRenderer.UvTransform;
if (Texture2D texture = asset as Texture2D)
{
spriteTexture = texture;
}
else if (Sprite sprite = asset as Sprite)
{
spriteTexture = Content.GetAsset<Texture2D>(sprite.TextureHandle);
uvTransform = sprite.TextureCoordinates;
}
DrawQuad(transform, spriteTexture ?? s_whiteTexture, spriteRenderer.Color, uvTransform, entityId);
}
public static void DrawCircle(Matrix transform, CircleRendererComponent* spriteRenderer, uint32 entityId)
+20
View File
@@ -0,0 +1,20 @@
using GlitchyEngine.Content;
using GlitchyEngine.Math;
namespace GlitchyEngine.Renderer;
class Sprite : Asset
{
private AssetHandle _textureHandle;
private float4 _textureCoordinates;
public AssetHandle TextureHandle => _textureHandle;
public float4 TextureCoordinates => _textureCoordinates;
public this(AssetHandle textureHandle, float4 textureCoordinates)
{
_textureHandle = textureHandle;
_textureCoordinates = textureCoordinates;
}
}