mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-06 05:01:53 +00:00
Handles barely work now, mostly no crashes
This commit is contained in:
@@ -212,6 +212,9 @@ public class Effect : Asset
|
||||
{
|
||||
Debug.Profiler.ProfileRendererFunction!();
|
||||
|
||||
if (texture == null)
|
||||
return;
|
||||
|
||||
[Inline]InternalSetTexture(name, texture.GetViewBinding());
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ public class Material : Asset
|
||||
|
||||
private uint8[] _rawVariables ~ delete _;
|
||||
|
||||
private Dictionary<String, TextureViewBinding> _textures = new .();
|
||||
private Dictionary<String, Texture> _textures = new .();
|
||||
|
||||
private Dictionary<String, (uint32 Offset, BufferVariable Variable)> _variables = new .() ~ delete _;
|
||||
|
||||
@@ -26,12 +26,14 @@ public class Material : Asset
|
||||
|
||||
// TODO: get variables from effect
|
||||
|
||||
// Get texture slots from effect
|
||||
for(let (name, entry) in _effect.Textures)
|
||||
{
|
||||
var texture = entry.BoundTexture;
|
||||
texture.AddRef();
|
||||
// TODO: Do we want to be able to define textures in the shader?
|
||||
/*var texture = entry.BoundTexture;
|
||||
texture.AddRef();*/
|
||||
|
||||
_textures.Add(name, texture);
|
||||
_textures.Add(name, null);
|
||||
}
|
||||
|
||||
InitRawData();
|
||||
@@ -41,7 +43,7 @@ public class Material : Asset
|
||||
{
|
||||
for(let (name, texture) in _textures)
|
||||
{
|
||||
texture.Release();
|
||||
texture?.ReleaseRef();
|
||||
}
|
||||
|
||||
delete _textures;
|
||||
@@ -92,9 +94,9 @@ public class Material : Asset
|
||||
{
|
||||
if(_textures.TryGetValue(name, var entry))
|
||||
{
|
||||
entry.Release();
|
||||
_textures[name] = texture.GetViewBinding();
|
||||
//texture?.AddRef();
|
||||
entry?.ReleaseRef();
|
||||
_textures[name] = texture;
|
||||
texture?.AddRef();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace GlitchyEngine.Renderer
|
||||
{
|
||||
public struct MeshComponent// : IDisposableComponent
|
||||
{
|
||||
public AssetHandle<GeometryBinding> Mesh {get; set mut;}
|
||||
public AssetHandle<GeometryBinding> Mesh {get; set mut;} = .Invalid;
|
||||
/*
|
||||
private GeometryBinding _mesh;
|
||||
public AssetHandle<GeometryBinding> Mesh
|
||||
|
||||
@@ -469,6 +469,9 @@ namespace GlitchyEngine.Renderer
|
||||
{
|
||||
Debug.Profiler.ProfileRendererFunction!();
|
||||
|
||||
if (geometry == null || material == null)
|
||||
return;
|
||||
|
||||
_queue.Add(SubmittedMesh(geometry, material, transform, entity.[Friend]Index));
|
||||
}
|
||||
|
||||
|
||||
@@ -876,9 +876,9 @@ namespace GlitchyEngine.Renderer
|
||||
public static void DrawSprite(Matrix transform, SpriterRendererComponent* spriteRenderer, uint32 entityId)
|
||||
{
|
||||
if (spriteRenderer.IsCircle)
|
||||
DrawCircle(transform, spriteRenderer.Sprite ?? s_whiteTexture, spriteRenderer.Color, 1.0f, spriteRenderer.UvTransform, entityId);
|
||||
DrawCircle(transform, spriteRenderer.Sprite.Get() ?? s_whiteTexture, spriteRenderer.Color, 1.0f, spriteRenderer.UvTransform, entityId);
|
||||
else
|
||||
DrawQuad(transform, spriteRenderer.Sprite ?? s_whiteTexture, spriteRenderer.Color, spriteRenderer.UvTransform, entityId);
|
||||
DrawQuad(transform, spriteRenderer.Sprite.Get() ?? s_whiteTexture, spriteRenderer.Color, spriteRenderer.UvTransform, entityId);
|
||||
}
|
||||
|
||||
// Textured quad pivot
|
||||
|
||||
Reference in New Issue
Block a user