bool FramebufferManager::Initialize() { if (!CreateEFBRenderPasses()) { PanicAlert("Failed to create EFB render pass"); return false; } if (!CreateEFBFramebuffer()) { PanicAlert("Failed to create EFB textures"); return false; } if (!CompileConversionShaders()) { PanicAlert("Failed to compile EFB shaders"); return false; } if (!CreateReadbackRenderPasses()) { PanicAlert("Failed to create readback render passes"); return false; } if (!CompileReadbackShaders()) { PanicAlert("Failed to compile readback shaders"); return false; } if (!CreateReadbackTextures()) { PanicAlert("Failed to create readback textures"); return false; } if (!CreateReadbackFramebuffer()) { PanicAlert("Failed to create readback framebuffer"); return false; } CreatePokeVertexFormat(); if (!CreatePokeVertexBuffer()) { PanicAlert("Failed to create poke vertex buffer"); return false; } if (!CompilePokeShaders()) { PanicAlert("Failed to compile poke shaders"); return false; } return true; }
void FramebufferManager::RecompileShaders() { DestroyConversionShaders(); if (!CompileConversionShaders()) PanicAlert("Failed to compile EFB shaders"); DestroyReadbackShaders(); if (!CompileReadbackShaders()) PanicAlert("Failed to compile readback shaders"); }