32 lines
708 B
C++
32 lines
708 B
C++
#pragma once
|
|
|
|
#include "GLExtensions.h"
|
|
|
|
#include <cstdint>
|
|
|
|
class SimpleMotionRenderer
|
|
{
|
|
public:
|
|
SimpleMotionRenderer() = default;
|
|
|
|
bool InitializeGl(unsigned width, unsigned height);
|
|
void RenderFrame(uint64_t frameIndex);
|
|
void RenderTexture(GLuint texture);
|
|
void ShutdownGl();
|
|
|
|
unsigned Width() const { return mWidth; }
|
|
unsigned Height() const { return mHeight; }
|
|
|
|
private:
|
|
bool EnsureTextureProgram();
|
|
void DestroyTextureProgram();
|
|
static bool CompileShader(GLenum shaderType, const char* source, GLuint& shader);
|
|
|
|
unsigned mWidth = 0;
|
|
unsigned mHeight = 0;
|
|
GLuint mTextureProgram = 0;
|
|
GLuint mTextureVertexShader = 0;
|
|
GLuint mTextureFragmentShader = 0;
|
|
GLuint mTextureVertexArray = 0;
|
|
};
|