mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 14:05: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
|
||||
blur=1
|
||||
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 {
|
||||
|
|
|
@ -25,6 +25,7 @@ CConfigManager::CConfigManager() {
|
|||
configValues["decoration:rounding"].intValue = 1;
|
||||
configValues["decoration:blur"].intValue = 1;
|
||||
configValues["decoration:blur_size"].intValue = 8;
|
||||
configValues["decoration:blur_passes"].intValue = 1;
|
||||
|
||||
configValues["dwindle:pseudotile"].intValue = 0;
|
||||
|
||||
|
|
|
@ -324,6 +324,7 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, float matrix[9]
|
|||
wlr_matrix_transpose(glMatrix, glMatrix);
|
||||
|
||||
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];
|
||||
|
||||
auto drawWithShader = [&](CShader* pShader) {
|
||||
|
@ -352,8 +353,10 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, float matrix[9]
|
|||
glDisableVertexAttribArray(pShader->texAttrib);
|
||||
};
|
||||
|
||||
drawWithShader(&m_shBLUR1); // horizontal pass
|
||||
drawWithShader(&m_shBLUR2); // vertical pass
|
||||
for (int i = 0; i < BLURPASSES; ++i) {
|
||||
drawWithShader(&m_shBLUR1); // horizontal pass
|
||||
drawWithShader(&m_shBLUR2); // vertical pass
|
||||
}
|
||||
|
||||
glBindTexture(tex.m_iTarget, 0);
|
||||
|
||||
|
|
Loading…
Reference in a new issue