CalcMySky  v0.3.1
TextureAverageComputer.hpp
1 #ifndef INCLUDE_ONCE_386B7A49_CC0D_40CF_AC50_73493DF4B289
2 #define INCLUDE_ONCE_386B7A49_CC0D_40CF_AC50_73493DF4B289
3 
4 #include <memory>
5 #include <glm/glm.hpp>
6 #include <QOpenGLContext>
7 #include <QOpenGLShaderProgram>
8 
9 class QOpenGLFunctions_3_3_Core;
11 {
12  QOpenGLFunctions_3_3_Core& gl;
13  std::unique_ptr<QOpenGLShaderProgram> blitTexProgram;
14  GLuint potFBO = 0;
15  GLuint potTex = 0;
16  GLuint vbo = 0, vao = 0;
17  GLint npotWidth, npotHeight;
18  static inline bool inited = false;
19  static inline bool workaroundNeeded = false;
20 
21  void init(GLuint unusedTextureUnitNum);
22  glm::vec4 getTextureAverageSimple(GLuint texture, int width, int height, GLuint unusedTextureUnitNum);
23  glm::vec4 getTextureAverageWithWorkaround(GLuint texture, GLuint unusedTextureUnitNum);
24 public:
25  glm::vec4 getTextureAverage(GLuint texture, GLuint unusedTextureUnitNum);
26  TextureAverageComputer(QOpenGLFunctions_3_3_Core&, int texW, int texH,
27  GLenum internalFormat, GLuint unusedTextureUnitNum);
29 };
30 
31 #endif
Definition: TextureAverageComputer.hpp:10