mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-26 07:45:33 +01:00
839df31347
This branch is the final step of fully supporting both OpenGL and OpenGL ES in the same binary. This of course only applies to EGL and won't work for GLX/AGL/WGL since they don't really support GL ES. The changes here actually aren't too terrible, basically change every #ifdef USE_GLES to a runtime check. This adds a DetectMode() function to the EGL context backend. EGL will iterate through each of the configs and check for GL, GLES3_KHR, and GLES2 bits After that it'll change the mode from _DETECT to whichever one is the best supported. After that point we'll just create a context with the mode that was detected
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
// Copyright 2013 Dolphin Emulator Project
|
|
// Licensed under GPLv2
|
|
// Refer to the license.txt file included.
|
|
|
|
#ifndef _GLINTERFACEBASE_H_
|
|
#define _GLINTERFACEBASE_H_
|
|
enum GLInterfaceMode {
|
|
MODE_DETECT = 0,
|
|
MODE_OPENGL,
|
|
MODE_OPENGLES2,
|
|
MODE_OPENGLES3,
|
|
};
|
|
|
|
class cInterfaceBase
|
|
{
|
|
protected:
|
|
// Window dimensions.
|
|
u32 s_backbuffer_width;
|
|
u32 s_backbuffer_height;
|
|
|
|
u32 s_opengl_mode;
|
|
public:
|
|
virtual void Swap() {}
|
|
virtual void UpdateFPSDisplay(const char *Text) {}
|
|
virtual void SetMode(u32 mode) { s_opengl_mode = GLInterfaceMode::MODE_OPENGL; }
|
|
virtual u32 GetMode() { return s_opengl_mode; }
|
|
virtual void* GetProcAddress(std::string name) { return NULL; }
|
|
virtual bool Create(void *&window_handle) { return true; }
|
|
virtual bool MakeCurrent() { return true; }
|
|
virtual bool ClearCurrent() { return true; }
|
|
virtual void Shutdown() {}
|
|
|
|
virtual void SwapInterval(int Interval) { }
|
|
virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
|
|
virtual u32 GetBackBufferHeight() { return s_backbuffer_height; }
|
|
virtual void SetBackBufferDimensions(u32 W, u32 H) {s_backbuffer_width = W; s_backbuffer_height = H; }
|
|
virtual void Update() { }
|
|
virtual bool PeekMessages() { return false; }
|
|
};
|
|
#endif
|