-#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<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC>(get_proc_address("glRenderbufferStorageMultisampleEXT"));
+ if(is_version_at_least(3, 0) || is_supported("GL_ARB_framebuffer_object"))
+ {
+ glRenderbufferStorageMultisample = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC>(get_proc_address("glRenderbufferStorageMultisample"));
+ return Extension::CORE;
+ }
+ if(is_supported("GL_EXT_framebuffer_multisample"))
+ {
+ glRenderbufferStorageMultisample = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC>(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