2015-10-30 18:28:21 -10:00
|
|
|
#include "boo/graphicsdev/glxew.h"
|
2019-08-19 19:08:54 -04:00
|
|
|
#include <logvisor/logvisor.hpp>
|
2015-10-30 18:28:21 -10:00
|
|
|
|
2018-12-07 19:17:51 -10:00
|
|
|
namespace boo {
|
2016-03-04 13:02:18 -10:00
|
|
|
static logvisor::Module Log("boo::GLX");
|
2015-10-30 18:28:21 -10:00
|
|
|
|
2018-12-07 19:17:51 -10:00
|
|
|
void GLXExtensionCheck() {
|
|
|
|
|
if (!GLXEW_SGI_video_sync)
|
2019-07-19 18:22:36 -10:00
|
|
|
Log.report(logvisor::Fatal, fmt("GLX_SGI_video_sync not available"));
|
2018-12-07 19:17:51 -10:00
|
|
|
if (!GLXEW_EXT_swap_control && !GLXEW_MESA_swap_control && !GLXEW_SGI_swap_control)
|
2019-07-19 18:22:36 -10:00
|
|
|
Log.report(logvisor::Fatal, fmt("swap_control not available"));
|
2015-10-30 18:28:21 -10:00
|
|
|
}
|
|
|
|
|
|
2018-12-07 19:17:51 -10:00
|
|
|
void GLXEnableVSync(Display* disp, GLXWindow drawable) {
|
|
|
|
|
if (GLXEW_EXT_swap_control)
|
|
|
|
|
glXSwapIntervalEXT(disp, drawable, 1);
|
|
|
|
|
else if (GLXEW_MESA_swap_control)
|
|
|
|
|
glXSwapIntervalMESA(1);
|
|
|
|
|
else if (GLXEW_SGI_swap_control)
|
|
|
|
|
glXSwapIntervalSGI(1);
|
2015-10-30 18:28:21 -10:00
|
|
|
}
|
|
|
|
|
|
2018-12-07 19:17:51 -10:00
|
|
|
} // namespace boo
|