version 1.3.0
new QGLViewSettings structure for all view parameters API for load/save it, automatic sync with ViewEditor some clean
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#include "mouse_controller.h"
|
||||
#include "openglwindow.h"
|
||||
#include "qglengine_core_export.h"
|
||||
#include "qglview_settings.h"
|
||||
#include "renderer.h"
|
||||
|
||||
#include <QElapsedTimer>
|
||||
@@ -43,7 +44,6 @@ class QGLENGINE_CORE_EXPORT QGLView
|
||||
Q_PROPERTY(float gamma READ gamma WRITE setGamma)
|
||||
Q_PROPERTY(bool autoExposure READ autoExposure WRITE setAutoExposure)
|
||||
Q_PROPERTY(QColor fogColor READ fogColor WRITE setFogColor)
|
||||
Q_PROPERTY(bool fogEnabled READ isFogEnabled WRITE setFogEnabled)
|
||||
Q_PROPERTY(float fogDensity READ fogDensity WRITE setFogDensity)
|
||||
Q_PROPERTY(float fogDecay READ fogDecay WRITE setFogDecay)
|
||||
Q_PROPERTY(int renderMode READ renderMode WRITE setRenderMode)
|
||||
@@ -86,35 +86,33 @@ public:
|
||||
void stop();
|
||||
void start(float freq = 0.);
|
||||
|
||||
float lineWidth() const { return lineWidth_; }
|
||||
float lineWidth() const { return settings.lineWidth; }
|
||||
float FOV() const { return camera()->FOV(); }
|
||||
float depthStart() const { return camera()->depthStart(); }
|
||||
float currentFPS() const { return fps_; }
|
||||
float gamma() const { return renderer_.gamma_; }
|
||||
bool autoExposure() const { return renderer_.tone_proc.enabled; }
|
||||
float gamma() const { return settings.gamma; }
|
||||
bool autoExposure() const { return settings.autoExposure; }
|
||||
int maxAnisotropicLevel() const { return max_anisotropic; }
|
||||
QString environmentMapFile() const { return renderer_.tex_env.fileHDR(); }
|
||||
bool FXAA() const { return FXAA_; }
|
||||
void setFXAA(bool on) { FXAA_ = on; }
|
||||
bool FXAA() const { return settings.FXAA; }
|
||||
void setFXAA(bool on) { settings.FXAA = on; }
|
||||
|
||||
QColor fogColor() const { return fogColor_; }
|
||||
float fogDensity() const { return fogDensity_; }
|
||||
float fogDecay() const { return fogDecay_; }
|
||||
bool isFogEnabled() const { return fogEnabled_; }
|
||||
bool isLightEnabled() const { return lightEnabled_; }
|
||||
QColor fogColor() const { return settings.fogColor; }
|
||||
float fogDensity() const { return settings.fogDensity; }
|
||||
float fogDecay() const { return settings.fogDecay; }
|
||||
bool isGrabMouseEnabled() const { return mouse.isGrabMouseEnabled(); }
|
||||
bool isMouseRotateEnabled() const { return mouse.isMouseRotateEnabled(); }
|
||||
bool isMouseSelectionEnabled() const { return mouse.isMouseSelectionEnabled(); }
|
||||
bool isCameraOrbit() const { return mouse.isCameraOrbit(); }
|
||||
bool isHoverHaloEnabled() const { return hoverHalo_; }
|
||||
QColor hoverHaloColor() const { return hoverHaloColor_; }
|
||||
float hoverHaloFillAlpha() const { return hoverHaloFill_; }
|
||||
bool isSelectionHaloEnabled() const { return selectionHalo_; }
|
||||
QColor selectionHaloColor() const { return selectionHaloColor_; }
|
||||
float selectionHaloFillAlpha() const { return selectionHaloFill_; }
|
||||
bool isHoverHaloEnabled() const { return settings.hoverHalo; }
|
||||
QColor hoverHaloColor() const { return settings.hoverHaloColor; }
|
||||
float hoverHaloFillAlpha() const { return settings.hoverHaloFill; }
|
||||
bool isSelectionHaloEnabled() const { return settings.selectionHalo; }
|
||||
QColor selectionHaloColor() const { return settings.selectionHaloColor; }
|
||||
float selectionHaloFillAlpha() const { return settings.selectionHaloFill; }
|
||||
|
||||
int renderMode() const { return (int)render_mode; }
|
||||
void setRenderMode(int mode) { render_mode = (RenderMode)mode; }
|
||||
int renderMode() const { return settings.render_mode; }
|
||||
void setRenderMode(int mode) { settings.render_mode = mode; }
|
||||
|
||||
bool isServiceMode() const { return renderer_.edit_mode; }
|
||||
void setServiceMode(bool yes) { renderer_.edit_mode = yes; }
|
||||
@@ -164,27 +162,30 @@ public:
|
||||
void setGrabFormats(QFlags<Renderer::GrabFormat> f) { grab_formats = f; }
|
||||
QImage getImage() const { return renderer_.getImage(); }
|
||||
QVector<QVector4D> getImageF() const { return renderer_.getImageF(); }
|
||||
void setGrabImageMipmap(int level);
|
||||
void setGrabImageFMipmap(int level);
|
||||
void setGrabImageMipmap(int level) { renderer_.grab_mipmap = level; }
|
||||
void setGrabImageFMipmap(int level) { renderer_.grab_mipmap_f = level; }
|
||||
|
||||
void setShadowMapSize(QSize sz);
|
||||
void setShadowMapSize(QSize sz) { shadow_map_size = sz; }
|
||||
void setTextureMapSize(QSize sz);
|
||||
QSize shadowMapSize() const;
|
||||
QSize textureMapSize() const;
|
||||
QSize shadowMapSize() const { return shadow_map_size; }
|
||||
QSize textureMapSize() const { return renderer_.maps_size; }
|
||||
|
||||
void setFramebufferSize(QSize sz) { framebuffer_size = sz; }
|
||||
void resetFramebufferSize() { framebuffer_size = QSize(); }
|
||||
QSize framebufferSize() const { return framebuffer_size; }
|
||||
QSize actualFramebufferSize() const;
|
||||
|
||||
int softShadowsSamples() const { return soft_shadows_samples; }
|
||||
void setSoftShadowsSamples(int s) { soft_shadows_samples = s; }
|
||||
float softShadowsQuality() const { return soft_shadows_quality; }
|
||||
void setSoftShadowsQuality(float s) { soft_shadows_quality = s; }
|
||||
bool softShadows() const { return soft_shadows; }
|
||||
void setSoftShadows(bool on) { soft_shadows = on; }
|
||||
bool shadows() const { return shadows_; }
|
||||
void setShadows(bool on) { shadows_ = on; }
|
||||
int softShadowsSamples() const { return settings.soft_shadows_samples; }
|
||||
void setSoftShadowsSamples(int s) { settings.soft_shadows_samples = s; }
|
||||
float softShadowsQuality() const { return settings.soft_shadows_quality; }
|
||||
void setSoftShadowsQuality(float s) { settings.soft_shadows_quality = s; }
|
||||
bool softShadows() const { return settings.soft_shadows; }
|
||||
void setSoftShadows(bool on) { settings.soft_shadows = on; }
|
||||
bool shadows() const { return settings.shadows; }
|
||||
void setShadows(bool on) { settings.shadows = on; }
|
||||
|
||||
QByteArray saveSetting() const;
|
||||
void loadSetting(QByteArray data);
|
||||
|
||||
GLfloat aspect, iaspect;
|
||||
Renderer renderer_;
|
||||
@@ -218,51 +219,45 @@ private:
|
||||
MouseController mouse;
|
||||
QMenu context_menu;
|
||||
QSet<int> keys_;
|
||||
QColor fogColor_, hoverHaloColor_, selectionHaloColor_;
|
||||
QElapsedTimer time;
|
||||
GLint max_anisotropic, max_texture_chanels;
|
||||
RenderMode render_mode;
|
||||
GLint max_anisotropic = 1, max_texture_chanels = 8;
|
||||
QFlags<Renderer::GrabFormat> grab_formats;
|
||||
QSize prev_size, shadow_map_size, framebuffer_size;
|
||||
float lineWidth_, soft_shadows_quality;
|
||||
float fps_, fps_tm, fogDensity_, fogDecay_;
|
||||
float hoverHaloFill_, selectionHaloFill_, m_motionBlurFactor;
|
||||
int timer, fps_cnt, sh_id_loc, soft_shadows_samples;
|
||||
bool fogEnabled_, lightEnabled_, FXAA_;
|
||||
bool shaders_supported, shaders_bind;
|
||||
bool hoverHalo_, selectionHalo_;
|
||||
bool is_init, shadows_, soft_shadows;
|
||||
QGLViewSettings settings;
|
||||
float fps_ = 0.f, fps_tm = 0.f;
|
||||
float m_motionBlurFactor = 1.f;
|
||||
int timer = 0, fps_cnt = 0, sh_id_loc = 0;
|
||||
bool shaders_bind = false;
|
||||
bool is_init = false;
|
||||
|
||||
private slots:
|
||||
void __destroyed();
|
||||
void __objectDeleted(ObjectBase * o);
|
||||
|
||||
public slots:
|
||||
void setLineWidth(const float & arg) { lineWidth_ = arg; }
|
||||
void setLineWidth(const float & arg) { settings.lineWidth = arg; }
|
||||
void setFOV(const float & arg) { camera()->setFOV(arg); }
|
||||
void setDepthStart(const float & arg) { camera()->setDepthStart(arg); }
|
||||
void setGamma(const float & arg) { renderer_.gamma_ = arg; }
|
||||
void setAutoExposure(bool arg) { renderer_.tone_proc.enabled = arg; }
|
||||
void setGamma(const float & arg) { settings.gamma = arg; }
|
||||
void setAutoExposure(bool arg) { settings.autoExposure = arg; }
|
||||
void setEnvironmentMapFile(QString file) {
|
||||
renderer_.tex_env.setFileHDR(file);
|
||||
renderer_.recreateMaterialThumbnails(true);
|
||||
}
|
||||
void setFogColor(const QColor & arg) { fogColor_ = arg; }
|
||||
void setFogDensity(const float & arg) { fogDensity_ = arg; }
|
||||
void setFogDecay(const float & arg) { fogDecay_ = arg; }
|
||||
void setFogEnabled(const bool & arg) { fogEnabled_ = arg; }
|
||||
void setLightEnabled(const bool & arg) { lightEnabled_ = arg; }
|
||||
void setFogColor(const QColor & arg) { settings.fogColor = arg; }
|
||||
void setFogDensity(const float & arg) { settings.fogDensity = arg; }
|
||||
void setFogDecay(const float & arg) { settings.fogDecay = arg; }
|
||||
void setGrabMouseEnabled(const bool & arg) { mouse.setGrabMouseEnabled(arg); }
|
||||
void setMouseRotateEnabled(const bool & arg) { mouse.setMouseRotateEnabled(arg); }
|
||||
void setMouseSelectionEnabled(const bool & arg) { mouse.setMouseSelectionEnabled(arg); }
|
||||
void setCustomMouseMove(const bool & arg) { mouse.setCustomMouseMove(arg); }
|
||||
void setCameraOrbit(const bool & arg) { mouse.setCameraOrbit(arg); }
|
||||
void setHoverHaloEnabled(const bool & arg) { hoverHalo_ = arg; }
|
||||
void setHoverHaloColor(const QColor & arg) { hoverHaloColor_ = arg; }
|
||||
void setHoverHaloFillAlpha(const float & arg) { hoverHaloFill_ = arg; }
|
||||
void setSelectionHaloEnabled(const bool & arg) { selectionHalo_ = arg; }
|
||||
void setSelectionHaloColor(const QColor & arg) { selectionHaloColor_ = arg; }
|
||||
void setSelectionHaloFillAlpha(const float & arg) { selectionHaloFill_ = arg; }
|
||||
void setHoverHaloEnabled(const bool & arg) { settings.hoverHalo = arg; }
|
||||
void setHoverHaloColor(const QColor & arg) { settings.hoverHaloColor = arg; }
|
||||
void setHoverHaloFillAlpha(const float & arg) { settings.hoverHaloFill = arg; }
|
||||
void setSelectionHaloEnabled(const bool & arg) { settings.selectionHalo = arg; }
|
||||
void setSelectionHaloColor(const QColor & arg) { settings.selectionHaloColor = arg; }
|
||||
void setSelectionHaloFillAlpha(const float & arg) { settings.selectionHaloFill = arg; }
|
||||
|
||||
void reloadShaders() { renderer_.reloadShaders(); }
|
||||
|
||||
@@ -287,6 +282,7 @@ signals:
|
||||
void materialsChanged();
|
||||
void materialThumbnailCreated(Material *);
|
||||
void doubleClick();
|
||||
void settingsLoaded();
|
||||
};
|
||||
|
||||
#endif // QGLVIEW_H
|
||||
|
||||
Reference in New Issue
Block a user