Files
video-shader-toys/apps/RenderCadenceCompositor/render/SimpleMotionRenderer.h
2026-05-12 18:41:48 +10:00

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;
};