CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/libretro/LibretroGLContext.h
Views: 1401
1
#pragma once
2
3
#include "Common/GPU/OpenGL/GLCommon.h"
4
#include "libretro/LibretroGraphicsContext.h"
5
#include "Common/GPU/OpenGL/GLRenderManager.h"
6
7
class LibretroGLContext : public LibretroHWRenderContext {
8
public:
9
LibretroGLContext()
10
#ifdef USING_GLES2
11
: LibretroHWRenderContext(RETRO_HW_CONTEXT_OPENGLES2)
12
#else
13
: LibretroHWRenderContext(RETRO_HW_CONTEXT_OPENGL)
14
#endif
15
{
16
hw_render_.bottom_left_origin = true;
17
}
18
19
bool Init() override;
20
void CreateDrawContext() override;
21
void DestroyDrawContext() override;
22
void SetRenderTarget() override {
23
extern GLuint g_defaultFBO;
24
g_defaultFBO = hw_render_.get_current_framebuffer();
25
}
26
27
void ThreadStart() override { renderManager_->ThreadStart(draw_); }
28
bool ThreadFrame() override { return renderManager_->ThreadFrame(); }
29
void ThreadEnd() override { renderManager_->ThreadEnd(); }
30
void StopThread() override {
31
renderManager_->StopThread();
32
}
33
34
GPUCore GetGPUCore() override { return GPUCORE_GLES; }
35
const char *Ident() override { return "OpenGL"; }
36
37
private:
38
GLRenderManager *renderManager_ = nullptr;
39
bool glewInitDone = false;
40
};
41
42