added input system

This commit is contained in:
2026-01-17 18:01:48 +01:00
parent 6d90c91209
commit cf5602417b
21 changed files with 120171 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
#pragma once
#include <unordered_map>
#include "interfaces/IShader.hpp"
#include "Types.hpp"
namespace TSE
{
class ShaderRegistry
{
private:
inline static std::unordered_map<string, IShader*> registeredShaders = {};
public:
inline static void SetShader(string& name, IShader* shader)
{
registeredShaders[name] = shader;
};
inline static IShader* GetShader(string& name)
{
return registeredShaders.at(name);
};
inline static void RemoveShader(string& name)
{
registeredShaders.erase(name);
};
inline static int GetShaderCount()
{
return registeredShaders.size();
}
inline static IShader* GetShaderAt(int i)
{
auto it = registeredShaders.begin();
for (int j = 0; j < i; j++)
{
it++;
}
return it->second;
}
inline static string GetNameAt(int i)
{
auto it = registeredShaders.begin();
for (int j = 0; j < i; j++)
{
it++;
}
return it->first;
}
};
} // namespace TSE