mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-11-09 01:10:34 +00:00
dd530e80b1
Added Base_Hook::get_lib_name to track what renderer is hooked for overlay. Objects used to detect renderer type are now also used to hook the rendering functions. So we don't have to build another device. Updated VTables for DX12.
45 lines
988 B
C++
45 lines
988 B
C++
#ifndef __INCLUDED_OPENGL_HOOK_H__
|
|
#define __INCLUDED_OPENGL_HOOK_H__
|
|
|
|
#include "Base_Hook.h"
|
|
#ifndef NO_OVERLAY
|
|
|
|
class OpenGL_Hook : public Base_Hook
|
|
{
|
|
public:
|
|
static constexpr const char *DLL_NAME = "opengl32.dll";
|
|
|
|
using wglSwapBuffers_t = BOOL(WINAPI*)(HDC);
|
|
//using wglMakeCurrent_t = BOOL(WINAPI*)(HDC, HGLRC);
|
|
|
|
private:
|
|
static OpenGL_Hook* _inst;
|
|
|
|
// Variables
|
|
bool initialized;
|
|
|
|
// Functions
|
|
OpenGL_Hook();
|
|
virtual ~OpenGL_Hook();
|
|
|
|
void resetRenderState();
|
|
void prepareForOverlay(HDC hDC);
|
|
|
|
// Hook to render functions
|
|
static BOOL WINAPI MywglSwapBuffers(HDC hDC);
|
|
|
|
wglSwapBuffers_t wglSwapBuffers;
|
|
|
|
// Hook functions so we know we use OGL
|
|
//static BOOL WINAPI MywglMakeCurrent(HDC hDC, HGLRC hGLRC);
|
|
|
|
//wglMakeCurrent_t wglMakeCurrent;
|
|
|
|
public:
|
|
bool start_hook();
|
|
static OpenGL_Hook* Inst();
|
|
virtual const char* get_lib_name() const;
|
|
};
|
|
|
|
#endif//NO_OVERLAY
|
|
#endif//__INCLUDED_OPENGL_HOOK_H__
|