small refactoring

This commit is contained in:
2021-05-31 12:47:46 +03:00
parent 5eaa20202b
commit a9f7408e71
44 changed files with 86 additions and 595 deletions

View File

@@ -22,6 +22,7 @@
#include "glcamera.h"
#include "glshaders.h"
class GLRendererBase: public QObject , protected QOpenGLExtraFunctions
{
friend class QGLView;
@@ -35,21 +36,10 @@ public:
RenderingParameters();
void prepare();
void setUniform(QOpenGLShaderProgram * prog);
int pass;
int light_pass;
bool light;
bool fog;
bool textures;
bool prev_light;
bool prev_fog;
GLuint prev_tex[32];
void * shaders;
QMatrix4x4 view_matrix, view_matrix_i, prev_view_matrix;
QMatrix4x4 proj_matrix, proj_matrix_i, prev_proj_matrix;
QMatrix4x4 view_matrix, view_matrix_i;
QMatrix4x4 proj_matrix, proj_matrix_i;
QMatrix4x4 viewproj_matrix, viewproj_matrix_i;
QMatrix3x3 normal_matrix;
QMatrix4x4 cam_offset_matrix;
QOpenGLShaderProgram * cur_shader;
};
RenderingParameters rp;
@@ -57,24 +47,18 @@ public:
protected:
virtual void setupLight(const Light & l, int inpass_index, int gl_index);
virtual void setupAmbientLight(const QColor & a, bool first_pass);
virtual void setupShadersLights(int lights_count);
virtual void setupShadersLights(int lights_count) {}
virtual void setupTextures(ObjectBase & object, GLRendererBase::RenderingParameters & rp, bool first_object = false);
virtual void setupShadersTextures(ObjectBase & object, GLRendererBase::RenderingParameters & rp) {}
virtual void reloadShaders() {}
virtual void init(int width, int height) {}
virtual void resize(int width, int height) {}
void setupLights(int pass, int lights_per_pass);
inline void applyFilteringParameters();
void renderObjects(int pass, int light_pass, void * shaders = 0, bool textures = true, bool light = true, bool fog = true);
void renderSingleObject(ObjectBase & o, RenderingParameters & rpl);
void renderShadow(Light * l, QOpenGLShaderProgram * prog = 0, QMatrix4x4 mat = QMatrix4x4());
void renderSingleShadow(ObjectBase & o, RenderingParameters & rpl);
QGLView * view;
QImage white_image, violent_image;
GLuint white_image_id, violent_image_id;
};
#endif // GLRENDERERBASE_H