X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fext_framebuffer_multisample.cpp;h=7be2f6d35ebe8e4f184f74880249b548976ab7d2;hb=6afbace895a7bbcf216ab8e48280ea0303ab5892;hp=22b00a9edf0086abfc57aa2fd47cd081c2578e4a;hpb=7f888de83aa5398fafaa7661547ee80395377b5c;p=libs%2Fgl.git diff --git a/source/ext_framebuffer_multisample.cpp b/source/ext_framebuffer_multisample.cpp index 22b00a9e..7be2f6d3 100644 --- a/source/ext_framebuffer_multisample.cpp +++ b/source/ext_framebuffer_multisample.cpp @@ -1,15 +1,26 @@ -#include "extension.h" #include "ext_framebuffer_multisample.h" namespace Msp { namespace GL { -PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT=0; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample = 0; -void init_ext_framebuffer_multisample() +Extension::SupportLevel init_ext_framebuffer_multisample() { - glRenderbufferStorageMultisampleEXT=reinterpret_cast(get_proc_address("glRenderbufferStorageMultisampleEXT")); + if(is_version_at_least(3, 0) || is_supported("GL_ARB_framebuffer_object")) + { + glRenderbufferStorageMultisample = reinterpret_cast(get_proc_address("glRenderbufferStorageMultisample")); + return Extension::CORE; + } + if(is_supported("GL_EXT_framebuffer_multisample")) + { + glRenderbufferStorageMultisample = reinterpret_cast(get_proc_address("glRenderbufferStorageMultisampleEXT")); + return Extension::EXTENSION; + } + return Extension::UNSUPPORTED; } +Extension EXT_framebuffer_multisample("GL_EXT_framebuffer_multisample", init_ext_framebuffer_multisample); + } // namespace GL } // namespace Msp