mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 17:41:12 +02:00
Explicitly emit dirty for AO/Debug
This commit is contained in:
parent
46c937325e
commit
e73902899b
4 changed files with 26 additions and 58 deletions
|
@ -33,44 +33,6 @@
|
||||||
#include "ssao_makeHorizontalBlur_frag.h"
|
#include "ssao_makeHorizontalBlur_frag.h"
|
||||||
#include "ssao_makeVerticalBlur_frag.h"
|
#include "ssao_makeVerticalBlur_frag.h"
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setRadius(float newRadius) {
|
|
||||||
radius = std::max(0.01f, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setObscuranceLevel(float level) {
|
|
||||||
level = std::max(0.01f, level);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setFalloffBias(float bias) {
|
|
||||||
bias = std::max(0.0f, std::min(bias, 0.2f));
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setEdgeSharpness(float sharpness) {
|
|
||||||
sharpness = std::max(0.0f, (float)sharpness);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setBlurDeviation(float deviation) {
|
|
||||||
deviation = std::max(0.0f, deviation);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setNumSpiralTurns(float numTurns) {
|
|
||||||
numTurns = std::max(0.0f, (float)numTurns);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setNumSamples(int numSamples) {
|
|
||||||
numSamples = std::max(1.0f, (float) numSamples);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setResolutionLevel(int level) {
|
|
||||||
const int MAX_RESOLUTION_LEVEL = 4;
|
|
||||||
level = std::max(0, std::min(level, MAX_RESOLUTION_LEVEL));
|
|
||||||
}
|
|
||||||
|
|
||||||
void AmbientOcclusionEffectConfig::setBlurRadius(int radius) {
|
|
||||||
const int MAX_BLUR_RADIUS = 6;
|
|
||||||
radius = std::max(0, std::min(MAX_BLUR_RADIUS, radius));
|
|
||||||
}
|
|
||||||
|
|
||||||
class GaussianDistribution {
|
class GaussianDistribution {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
|
@ -22,28 +22,31 @@ public:
|
||||||
AmbientOcclusionEffectConfig() : render::Job::Config(false) {}
|
AmbientOcclusionEffectConfig() : render::Job::Config(false) {}
|
||||||
|
|
||||||
Q_PROPERTY(bool enabled MEMBER enabled NOTIFY dirty)
|
Q_PROPERTY(bool enabled MEMBER enabled NOTIFY dirty)
|
||||||
Q_PROPERTY(float radius MEMBER radius WRITE setRadius NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float obscuranceLevel MEMBER obscuranceLevel WRITE setObscuranceLevel NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float falloffBias MEMBER falloffBias WRITE setFalloffBias NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float edgeSharpness MEMBER edgeSharpness WRITE setEdgeSharpness NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float blurDeviation MEMBER blurDeviation WRITE setBlurDeviation NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float numSpiralTurns MEMBER numSpiralTurns WRITE setNumSpiralTurns NOTIFY dirty)
|
|
||||||
Q_PROPERTY(int numSamples MEMBER numSamples WRITE setNumSamples NOTIFY dirty)
|
|
||||||
Q_PROPERTY(int resolutionLevel MEMBER resolutionLevel WRITE setResolutionLevel NOTIFY dirty)
|
|
||||||
Q_PROPERTY(int blurRadius MEMBER blurRadius WRITE setBlurRadius NOTIFY dirty)
|
|
||||||
Q_PROPERTY(bool ditheringEnabled MEMBER ditheringEnabled NOTIFY dirty)
|
Q_PROPERTY(bool ditheringEnabled MEMBER ditheringEnabled NOTIFY dirty)
|
||||||
Q_PROPERTY(bool borderingEnabled MEMBER borderingEnabled NOTIFY dirty)
|
Q_PROPERTY(bool borderingEnabled MEMBER borderingEnabled NOTIFY dirty)
|
||||||
|
Q_PROPERTY(float radius MEMBER radius WRITE setRadius)
|
||||||
|
Q_PROPERTY(float obscuranceLevel MEMBER obscuranceLevel WRITE setObscuranceLevel)
|
||||||
|
Q_PROPERTY(float falloffBias MEMBER falloffBias WRITE setFalloffBias)
|
||||||
|
Q_PROPERTY(float edgeSharpness MEMBER edgeSharpness WRITE setEdgeSharpness)
|
||||||
|
Q_PROPERTY(float blurDeviation MEMBER blurDeviation WRITE setBlurDeviation)
|
||||||
|
Q_PROPERTY(float numSpiralTurns MEMBER numSpiralTurns WRITE setNumSpiralTurns)
|
||||||
|
Q_PROPERTY(int numSamples MEMBER numSamples WRITE setNumSamples)
|
||||||
|
Q_PROPERTY(int resolutionLevel MEMBER resolutionLevel WRITE setResolutionLevel)
|
||||||
|
Q_PROPERTY(int blurRadius MEMBER blurRadius WRITE setBlurRadius)
|
||||||
Q_PROPERTY(double gpuTime READ getGpuTime)
|
Q_PROPERTY(double gpuTime READ getGpuTime)
|
||||||
|
|
||||||
void setRadius(float radius);
|
const int MAX_RESOLUTION_LEVEL = 4;
|
||||||
void setObscuranceLevel(float obscuranceLevel);
|
const int MAX_BLUR_RADIUS = 6;
|
||||||
void setFalloffBias(float falloffBias);
|
|
||||||
void setEdgeSharpness(float edgeSharpness);
|
void setRadius(float newRadius) { radius = std::max(0.01f, newRadius); emit dirty(); }
|
||||||
void setBlurDeviation(float blurDeviation);
|
void setObscuranceLevel(float level) { obscuranceLevel = std::max(0.01f, level); emit dirty(); }
|
||||||
void setNumSpiralTurns(float numSpiralTurns);
|
void setFalloffBias(float bias) { falloffBias = std::max(0.0f, std::min(bias, 0.2f)); emit dirty(); }
|
||||||
void setNumSamples(int numSamples);
|
void setEdgeSharpness(float sharpness) { edgeSharpness = std::max(0.0f, (float)sharpness); emit dirty(); }
|
||||||
void setResolutionLevel(int resolutionLevel);
|
void setBlurDeviation(float deviation) { blurDeviation = std::max(0.0f, deviation); emit dirty(); }
|
||||||
void setBlurRadius(int blurRadius);
|
void setNumSpiralTurns(float turns) { numSpiralTurns = std::max(0.0f, (float)turns); emit dirty(); }
|
||||||
|
void setNumSamples(int samples) { numSamples = std::max(1.0f, (float)samples); emit dirty(); }
|
||||||
|
void setResolutionLevel(int level) { resolutionLevel = std::max(0, std::min(level, MAX_RESOLUTION_LEVEL)); emit dirty(); }
|
||||||
|
void setBlurRadius(int radius) { blurRadius = std::max(0, std::min(MAX_BLUR_RADIUS, radius)); emit dirty(); }
|
||||||
double getGpuTime() { return gpuTime; }
|
double getGpuTime() { return gpuTime; }
|
||||||
|
|
||||||
float radius{ 0.5f };
|
float radius{ 0.5f };
|
||||||
|
|
|
@ -28,11 +28,14 @@
|
||||||
using namespace render;
|
using namespace render;
|
||||||
|
|
||||||
void DebugDeferredBufferConfig::setMode(int newMode) {
|
void DebugDeferredBufferConfig::setMode(int newMode) {
|
||||||
if (newMode > (int)DebugDeferredBuffer::Custom || newMode < 0) {
|
if (newMode == mode) {
|
||||||
|
return;
|
||||||
|
} else if (newMode > (int)DebugDeferredBuffer::Custom || newMode < 0) {
|
||||||
mode = (int)DebugDeferredBuffer::Custom;
|
mode = (int)DebugDeferredBuffer::Custom;
|
||||||
} else {
|
} else {
|
||||||
mode = newMode;
|
mode = newMode;
|
||||||
}
|
}
|
||||||
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Slots {
|
enum Slots {
|
||||||
|
|
|
@ -22,7 +22,7 @@ public:
|
||||||
DebugDeferredBufferConfig() : render::Job::Config(false) {}
|
DebugDeferredBufferConfig() : render::Job::Config(false) {}
|
||||||
|
|
||||||
Q_PROPERTY(bool enabled MEMBER enabled)
|
Q_PROPERTY(bool enabled MEMBER enabled)
|
||||||
Q_PROPERTY(int mode MEMBER mode WRITE setMode NOTIFY dirty)
|
Q_PROPERTY(int mode MEMBER mode WRITE setMode)
|
||||||
Q_PROPERTY(glm::vec4 size MEMBER size NOTIFY dirty)
|
Q_PROPERTY(glm::vec4 size MEMBER size NOTIFY dirty)
|
||||||
void setMode(int newMode);
|
void setMode(int newMode);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue