Cemu/src/Cafe/HW/Latte/Renderer/Metal/MetalOutputShaderCache.h
SamoZ256 26e40a4bce
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
Add Metal backend (#1287)
2025-12-06 17:14:25 +01:00

21 lines
593 B
C++

#pragma once
#include "Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h"
constexpr uint8 METAL_SHADER_TYPE_COUNT = 6;
constexpr uint8 METAL_OUTPUT_SHADER_CACHE_SIZE = 2 * METAL_SHADER_TYPE_COUNT;
class MetalOutputShaderCache
{
public:
MetalOutputShaderCache(class MetalRenderer* metalRenderer) : m_mtlr{metalRenderer} {}
~MetalOutputShaderCache();
MTL::RenderPipelineState* GetPipeline(RendererOutputShader* shader, uint8 shaderIndex, bool usesSRGB);
private:
class MetalRenderer* m_mtlr;
MTL::RenderPipelineState* m_cache[METAL_OUTPUT_SHADER_CACHE_SIZE] = {nullptr};
};