support depth render targets

This commit is contained in:
Samuliak 2024-07-03 07:40:32 +02:00
parent 1df81c373c
commit 1ba54b44fb
4 changed files with 52 additions and 10 deletions

View file

@ -35,8 +35,8 @@ class RendererMTL final : public Renderer {
MTL::CommandQueue* commandQueue;
// Caches
SurfaceCache<Metal::RenderTarget, 16, true> colorRenderTargetCache;
SurfaceCache<Metal::RenderTarget, 16, true> depthStencilRenderTargetCache;
SurfaceCache<Metal::ColorRenderTarget, 16, true> colorRenderTargetCache;
SurfaceCache<Metal::DepthStencilRenderTarget, 16, true> depthStencilRenderTargetCache;
SurfaceCache<Metal::Texture, 256, true> textureCache;
// Helpers
@ -56,7 +56,7 @@ class RendererMTL final : public Renderer {
}
}
std::optional<Metal::RenderTarget> getColorRenderTarget(u32 addr, PICA::ColorFmt format, u32 width, u32 height, bool createIfnotFound = true);
std::optional<Metal::ColorRenderTarget> getColorRenderTarget(u32 addr, PICA::ColorFmt format, u32 width, u32 height, bool createIfnotFound = true);
MTL::Texture* getTexture(Metal::Texture& tex);
void setupTextureEnvState(MTL::RenderCommandEncoder* encoder);
void bindTexturesToSlots(MTL::RenderCommandEncoder* encoder);