qzdoom/src/posix/sdl/gl_sysfb.h
2018-06-29 17:50:19 +03:00

50 lines
988 B
C++

#ifndef __POSIX_SDL_GL_SYSFB_H__
#define __POSIX_SDL_GL_SYSFB_H__
#include <SDL.h>
#include "v_video.h"
class SystemGLFrameBuffer : public DFrameBuffer
{
typedef DFrameBuffer Super;
public:
// this must have the same parameters as the Windows version, even if they are not used!
SystemGLFrameBuffer (void *hMonitor, bool fullscreen);
~SystemGLFrameBuffer ();
void ForceBuffering (bool force);
bool IsFullscreen ();
virtual void SetVSync( bool vsync );
void SwapBuffers();
friend class SDLGLVideo;
int GetClientWidth() override;
int GetClientHeight() override;
void ToggleFullscreen(bool yes) override;
SDL_Window *GetSDLWindow() { return Screen; }
protected:
void SetGammaTable(uint16_t *tbl);
void ResetGammaTable();
SystemGLFrameBuffer () {}
uint8_t GammaTable[3][256];
bool UpdatePending;
SDL_Window *Screen;
SDL_GLContext GLContext;
void UpdateColors ();
Uint16 m_origGamma[3][256];
bool m_supportsGamma;
};
#endif // __POSIX_SDL_GL_SYSFB_H__