mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-29 18:45:58 +01:00
Added blur_passes config
This commit is contained in:
parent
25299b80bb
commit
91a6c53197
3 changed files with 9 additions and 2 deletions
|
@ -30,6 +30,9 @@ decoration {
|
||||||
rounding=10
|
rounding=10
|
||||||
blur=1
|
blur=1
|
||||||
blur_size=8 # minimum 2
|
blur_size=8 # minimum 2
|
||||||
|
blur_passes=1 # minimum 1, more passes = more resource intensive.
|
||||||
|
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 30-ish) will produce artifacts.
|
||||||
|
# if you want heavy blur, you need to up the blur_passes.
|
||||||
}
|
}
|
||||||
|
|
||||||
animations {
|
animations {
|
||||||
|
|
|
@ -25,6 +25,7 @@ CConfigManager::CConfigManager() {
|
||||||
configValues["decoration:rounding"].intValue = 1;
|
configValues["decoration:rounding"].intValue = 1;
|
||||||
configValues["decoration:blur"].intValue = 1;
|
configValues["decoration:blur"].intValue = 1;
|
||||||
configValues["decoration:blur_size"].intValue = 8;
|
configValues["decoration:blur_size"].intValue = 8;
|
||||||
|
configValues["decoration:blur_passes"].intValue = 1;
|
||||||
|
|
||||||
configValues["dwindle:pseudotile"].intValue = 0;
|
configValues["dwindle:pseudotile"].intValue = 0;
|
||||||
|
|
||||||
|
|
|
@ -324,6 +324,7 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, float matrix[9]
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
wlr_matrix_transpose(glMatrix, glMatrix);
|
||||||
|
|
||||||
const auto RADIUS = g_pConfigManager->getInt("decoration:blur_size") + 2;
|
const auto RADIUS = g_pConfigManager->getInt("decoration:blur_size") + 2;
|
||||||
|
const auto BLURPASSES = g_pConfigManager->getInt("decoration:blur_passes");
|
||||||
const auto PFRAMEBUFFER = &m_mMonitorFramebuffers[m_RenderData.pMonitor];
|
const auto PFRAMEBUFFER = &m_mMonitorFramebuffers[m_RenderData.pMonitor];
|
||||||
|
|
||||||
auto drawWithShader = [&](CShader* pShader) {
|
auto drawWithShader = [&](CShader* pShader) {
|
||||||
|
@ -352,8 +353,10 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, float matrix[9]
|
||||||
glDisableVertexAttribArray(pShader->texAttrib);
|
glDisableVertexAttribArray(pShader->texAttrib);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < BLURPASSES; ++i) {
|
||||||
drawWithShader(&m_shBLUR1); // horizontal pass
|
drawWithShader(&m_shBLUR1); // horizontal pass
|
||||||
drawWithShader(&m_shBLUR2); // vertical pass
|
drawWithShader(&m_shBLUR2); // vertical pass
|
||||||
|
}
|
||||||
|
|
||||||
glBindTexture(tex.m_iTarget, 0);
|
glBindTexture(tex.m_iTarget, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue