From 2562ca6c3fe6ef328e0926c9cbcd6bb52abb328f Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Tue, 25 Sep 2018 19:55:30 -0300 Subject: Fix multiple rendertargets (#427) * Simplify render target bindings * Implement multiple viewports * Pack glViewportIndexed calls into a single glViewportArray * Use ARB_viewport_array when available * Cache framebuffer attachments * Use get accessors in OGLExtension * Address feedback --- Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs | 37 ++++++----------------------- 1 file changed, 7 insertions(+), 30 deletions(-) (limited to 'Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs') diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs index 5ad42298..11daeb59 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLExtension.cs @@ -1,40 +1,17 @@ using OpenTK.Graphics.OpenGL; +using System; namespace Ryujinx.Graphics.Gal.OpenGL { static class OGLExtension { - private static bool Initialized = false; + private static Lazy s_EnhancedLayouts = new Lazy(() => HasExtension("GL_ARB_enhanced_layouts")); + private static Lazy s_TextureMirrorClamp = new Lazy(() => HasExtension("GL_EXT_texture_mirror_clamp")); + private static Lazy s_ViewportArray = new Lazy(() => HasExtension("GL_ARB_viewport_array")); - private static bool EnhancedLayouts; - - private static bool TextureMirrorClamp; - - public static bool HasEnhancedLayouts() - { - EnsureInitialized(); - - return EnhancedLayouts; - } - - public static bool HasTextureMirrorClamp() - { - EnsureInitialized(); - - return TextureMirrorClamp; - } - - private static void EnsureInitialized() - { - if (Initialized) - { - return; - } - - EnhancedLayouts = HasExtension("GL_ARB_enhanced_layouts"); - - TextureMirrorClamp = HasExtension("GL_EXT_texture_mirror_clamp"); - } + public static bool EnhancedLayouts => s_EnhancedLayouts.Value; + public static bool TextureMirrorClamp => s_TextureMirrorClamp.Value; + public static bool ViewportArray => s_ViewportArray.Value; private static bool HasExtension(string Name) { -- cgit v1.2.3