33 float4 color_override(0.0f, 0.0f, 0.0f, 0.0f);
36 if (
state.is_viewport_image_render && !
state.draw_background) {
38 color_override[3] = 1.0f;
40 else if (
state.is_space_image()) {
43 else if (
state.is_space_node()) {
47 else if (!
state.draw_background) {
80 bg_ps_.framebuffer_set(&framebuffer_ref_);
82 if ((
state.clipping_plane_count != 0) && (
state.rv3d) && (
state.rv3d->clipbb)) {
86 bg_ps_.shader_set(res.shaders->background_clip_bound.get());
87 bg_ps_.push_constant(
"ucolor", res.theme.colors.clipping_border);
88 bg_ps_.push_constant(
"boundbox", bbox.
data(), 8);
89 bg_ps_.draw(res.shapes.cube_solid.get());
92 bg_ps_.state_set(pass_state);
93 bg_ps_.shader_set(res.shaders->background_fill.get());
96 bg_ps_.bind_texture(
"color_buffer", &res.color_render_tx);
97 bg_ps_.bind_texture(
"depth_buffer", &res.depth_tx);
98 bg_ps_.push_constant(
"color_override", color_override);
99 bg_ps_.push_constant(
"bg_type", background_type);
100 bg_ps_.push_constant(
"vignette_enabled",
false);
103 if (
state.vignette_enabled) {
104 const float vignette_aperture =
state.v3d ?
state.v3d->vignette_aperture : 1.0f;
105 const float vignette_falloff = 0.15f;
107 bg_vignette_ps_.init();
108 bg_vignette_ps_.framebuffer_set(&framebuffer_ref_);
111 bg_vignette_ps_.shader_set(res.shaders->background_fill.get());
114 bg_vignette_ps_.bind_texture(
"color_buffer", &res.color_render_tx);
115 bg_vignette_ps_.bind_texture(
"depth_buffer", &res.depth_tx);
116 bg_vignette_ps_.push_constant(
"color_override", color_override);
117 bg_vignette_ps_.push_constant(
"bg_type", background_type);
118 bg_vignette_ps_.push_constant(
"vignette_enabled",
true);
119 bg_vignette_ps_.push_constant(
"vignette_aperture", vignette_aperture);
120 bg_vignette_ps_.push_constant(
"vignette_falloff", vignette_falloff);