#pragma once #include "../utils/common.h" #include "../utils/Shader.h" #include "View.h" class FoveatedBlend { public: FoveatedBlend(sptr cam, const std::vector>& layerCams, bool forBaked = false); void run(GLuint glTexs[], glm::vec2 foveaPos, float shift, float globalShift, bool showPerf = false); private: bool _forBaked; sptr _cam; std::vector> _layerCams; sptr _blendShader; GLuint _vertBuf; GLuint _shaderProp_tex; GLuint _shaderProp_innerR; GLuint _shaderProp_outerR; GLuint _shaderProp_shift; GLuint _shaderProp_globalShift; GLuint _shaderProp_frameRes; GLuint _shaderProp_foveaCenter; GLuint _glQuery; GLuint _loc_MVP; };