CalcMySky  v0.3.1
shaders.hpp
1 #ifndef INCLUDE_ONCE_2BE961E4_6CF8_4E2F_B5E5_DE8EEEE510F9
2 #define INCLUDE_ONCE_2BE961E4_6CF8_4E2F_B5E5_DE8EEEE510F9
3 
4 #include <memory>
5 #include <QOpenGLShader>
6 #include <glm/glm.hpp>
7 #include "../common/util.hpp"
8 
9 DEFINE_EXPLICIT_BOOL(IgnoreCache);
10 QString getShaderSrc(QString const& fileName, IgnoreCache ignoreCache=IgnoreCache{false});
11 DEFINE_EXPLICIT_BOOL(UseGeomShader);
12 std::unique_ptr<QOpenGLShaderProgram> compileShaderProgram(QString const& mainSrcFileName,
13  const char* description,
14  UseGeomShader useGeomShader=UseGeomShader{false},
15  std::vector<std::pair<QString, QString>>* sourcesToSave=nullptr);
16 void initConstHeader(glm::vec4 const& wavelengths);
17 QString makeScattererDensityFunctionsSrc();
18 QString makeTransmittanceComputeFunctionsSrc(glm::vec4 const& wavelengths);
19 QString makeTotalScatteringCoefSrc();
20 QString makePhaseFunctionsSrc();
21 #endif