mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-22 19:35:30 +00:00
32 lines
998 B
C#
32 lines
998 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace PckStudio.Rendering.Shader
|
|
{
|
|
public sealed class ShaderLibrary : IDisposable
|
|
{
|
|
private readonly Dictionary<string, ShaderProgram> _shaderStorage = new Dictionary<string, ShaderProgram>();
|
|
|
|
public void AddShader(string name, ShaderProgram shader) => _shaderStorage.Add(name, shader);
|
|
|
|
public bool HasShader(string name) => _shaderStorage.TryGetValue(name, out _);
|
|
|
|
public bool HasShader(string name, out ShaderProgram shader) => _shaderStorage.TryGetValue(name, out shader);
|
|
|
|
public ShaderProgram GetShader(string name) => _shaderStorage[name];
|
|
|
|
public void RemoveShader(string name) => _shaderStorage.Remove(name);
|
|
|
|
public void Dispose()
|
|
{
|
|
foreach (ShaderProgram shader in _shaderStorage.Values)
|
|
{
|
|
shader.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|