mirror of https://github.com/OpenMW/openmw.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.0 KiB
C++
54 lines
1.0 KiB
C++
#ifndef OPENMW_COMPONENTS_SDLUTIL_SDLVIDEOWRAPPER_H
|
|
#define OPENMW_COMPONENTS_SDLUTIL_SDLVIDEOWRAPPER_H
|
|
|
|
#include <osg/ref_ptr>
|
|
|
|
#include <SDL_types.h>
|
|
|
|
#include "vsyncmode.hpp"
|
|
|
|
struct SDL_Window;
|
|
|
|
namespace osgViewer
|
|
{
|
|
class Viewer;
|
|
}
|
|
|
|
namespace Settings
|
|
{
|
|
enum class WindowMode;
|
|
}
|
|
|
|
namespace SDLUtil
|
|
{
|
|
|
|
class VideoWrapper
|
|
{
|
|
public:
|
|
VideoWrapper(SDL_Window* window, osg::ref_ptr<osgViewer::Viewer> viewer);
|
|
~VideoWrapper();
|
|
|
|
void setSyncToVBlank(VSyncMode vsyncMode);
|
|
|
|
void setGammaContrast(float gamma, float contrast);
|
|
|
|
void setVideoMode(int width, int height, Settings::WindowMode windowMode, bool windowBorder);
|
|
|
|
void centerWindow();
|
|
|
|
private:
|
|
SDL_Window* mWindow;
|
|
osg::ref_ptr<osgViewer::Viewer> mViewer;
|
|
|
|
float mGamma;
|
|
float mContrast;
|
|
bool mHasSetGammaContrast;
|
|
|
|
// Store system gamma ramp on window creation. Restore system gamma ramp on exit
|
|
Uint16 mOldSystemGammaRamp[256 * 3];
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|