2020-01-27 21:20:45 +00:00
|
|
|
#pragma once
|
|
|
|
|
2021-08-20 10:04:07 -04:00
|
|
|
#include "bitmap/Bitmap.h"
|
|
|
|
#include "opengl/OpenGlDef.h"
|
|
|
|
#include "opengl/Program.h"
|
|
|
|
#include "opengl/Shader.h"
|
|
|
|
#include "opengl/Resource.h"
|
2020-01-27 21:20:45 +00:00
|
|
|
|
|
|
|
class QWindow;
|
|
|
|
class QOpenGLContext;
|
|
|
|
|
|
|
|
class CGSH_OpenGLFramedebugger
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CGSH_OpenGLFramedebugger(QWindow*);
|
|
|
|
virtual ~CGSH_OpenGLFramedebugger() = default;
|
|
|
|
|
|
|
|
void InitializeImpl();
|
2020-02-02 19:46:03 +00:00
|
|
|
void PrepareFramedebugger();
|
|
|
|
|
2020-01-27 21:20:45 +00:00
|
|
|
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;
|
|
|
|
};
|