mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-06 00:55:50 +00:00
Use OS X cursor workaround for GL_VENDOR ATI and add an environment variable for control
This commit is contained in:
parent
481c440698
commit
3b24bb9a5e
@ -3,6 +3,7 @@
|
||||
#include <cassert>
|
||||
#include <stdexcept>
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
#include <SDL_mouse.h>
|
||||
#include <SDL_endian.h>
|
||||
@ -81,6 +82,8 @@ namespace
|
||||
|
||||
osg::ref_ptr<osg::Image> decompress (osg::ref_ptr<osg::Image> source, float rotDegrees)
|
||||
{
|
||||
// TODO: use software decompression once S3TC patent expires
|
||||
|
||||
int width = source->s();
|
||||
int height = source->t();
|
||||
|
||||
@ -130,9 +133,13 @@ namespace
|
||||
osg::ref_ptr<osg::Geometry> geom;
|
||||
|
||||
#if defined(__APPLE__)
|
||||
// Extra flip needed on Intel graphics OS X systems due to a driver bug
|
||||
// Extra flip needed on OS X systems due to a driver bug
|
||||
const char* envval = getenv("OPENMW_CURSOR_WORKAROUND");
|
||||
bool workaround = !envval || envval == std::string("1");
|
||||
std::string vendorString = (const char*)glGetString(GL_VENDOR);
|
||||
if (vendorString.find("Intel") != std::string::npos)
|
||||
if (!envval)
|
||||
workaround = vendorString.find("Intel") != std::string::npos || vendorString.find("ATI") != std::string::npos || vendorString.find("AMD") != std::string::npos;
|
||||
if (workaround)
|
||||
geom = osg::createTexturedQuadGeometry(osg::Vec3(-1,1,0), osg::Vec3(2,0,0), osg::Vec3(0,-2,0));
|
||||
else
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user