gtk.css - Как добавить расплывчатый фоновый эффект?

Как добавить расплывчатый стеклянный эффект в темы? (CSS3 поддерживает гауссову размытость с blur(1px); на многих браузерах)

Когда я отбрасываю непрозрачность, я получаю результат как это:

Terminal Background & Panel without blur effect

Но я хочу эффект размытия как это:

Finder Panel with blur effect

Кроме того, для понимания эффекта размытия:

enter image description here

Спасибо!

5
задан 25 January 2017 в 06:33

1 ответ

Мне тоже недавно стало интересно, и из того, что я понимаю, я не верю, что gtkcss поддерживает фильтры в данный момент.

Метод, который я нашел, состоял в том, чтобы добавить эффект шейдера к действующему объекту беспорядка (бормотанию) через шейдер glsl.

Мне удалось заставить его работать с хорошим эффектом размытия, примером, над которым я работал, было расширение GNOME под названием blyr .

Мой файл и код glsl для моего проекта можно найти здесь , для справки.

И вы можете вызвать glsl в коде и применить его к актеру с чем-то вроде

    var shaderEffectVer = new Clutter.ShaderEffect(Clutter.ShaderType.FRAGMENT_SHADER);
    var wallpaper_actor = new GtkClutter.Actor ();

    shaderEffectVer.set_shader_source("shader.glsl"));
    shaderEffectVer.set_uniform_value("dir", 1.0);
    shaderEffectVer.set_uniform_value("width", g_width);
    shaderEffectVer.set_uniform_value("height", g_height);
    shaderEffectVer.set_uniform_value("radius", 10.0);
    shaderEffectVer.set_uniform_value("brightness", 0.98);
    wallpaper_actor.add_effect_with_name("blur",shaderEffectVer);

Надежда, которая поможет вам

0
ответ дан 23 November 2019 в 10:55

Другие вопросы по тегам:

Похожие вопросы: