Play-/Source/ui_qt/DebugSupport/FrameDebugger/GSH_OpenGLQt_Framedebugger.h
2021-08-20 10:04:07 -04:00

58 lines
1.7 KiB
C++

#pragma once
#include "bitmap/Bitmap.h"
#include "opengl/OpenGlDef.h"
#include "opengl/Program.h"
#include "opengl/Shader.h"
#include "opengl/Resource.h"
class QWindow;
class QOpenGLContext;
class CGSH_OpenGLFramedebugger
{
public:
CGSH_OpenGLFramedebugger(QWindow*);
virtual ~CGSH_OpenGLFramedebugger() = default;
void InitializeImpl();
void PrepareFramedebugger();
void ReleaseImpl();
void PresentBackbuffer();
void Begin();
void DrawCheckerboard(float*);
void DrawPixelBuffer(float*, float*, float, float, float);
void LoadTextureFromBitmap(const Framework::CBitmap&);
private:
QWindow* m_renderWindow = nullptr;
QOpenGLContext* m_context = nullptr;
Framework::OpenGl::CBuffer m_vertexBufferFramedebugger;
Framework::OpenGl::ProgramPtr m_checkerboardProgram;
Framework::OpenGl::ProgramPtr m_pixelBufferViewProgram;
Framework::OpenGl::CVertexArray m_vertexArray;
GLint m_checkerboardScreenSizeUniform = -1;
GLint m_pixelBufferViewScreenSizeUniform = -1;
GLint m_pixelBufferViewBufferSizeUniform = -1;
GLint m_pixelBufferViewPanOffsetUniform = -1;
GLint m_pixelBufferViewZoomFactorUniform = -1;
GLint m_pixelBufferViewtextureUniform = -1;
Framework::OpenGl::CVertexArray GenerateVertexArray();
Framework::OpenGl::CBuffer GenerateVertexBuffer();
Framework::OpenGl::ProgramPtr GenerateCheckerboardProgram();
Framework::OpenGl::CShader GenerateCheckerboardVertexShader();
Framework::OpenGl::CShader GenerateCheckerboardFragmentShader();
Framework::OpenGl::ProgramPtr GeneratePixelBufferViewProgram();
Framework::OpenGl::CShader GeneratePixelBufferViewVertexShader();
Framework::OpenGl::CShader GeneratePixelBufferViewFragmentShader();
GLuint m_activeTexture;
};