@@ -12,7 +12,7 @@ use bevy_render::{
12
12
render_phase:: { DrawFunctions , RenderPhase , SetItemPipeline } ,
13
13
render_resource:: * ,
14
14
texture:: BevyDefault ,
15
- view:: Msaa ,
15
+ view:: { ExtractedView , Msaa , ViewTarget } ,
16
16
} ;
17
17
use bevy_sprite:: * ;
18
18
use bevy_utils:: FloatOrd ;
@@ -47,6 +47,12 @@ impl SpecializedMeshPipeline for GizmoLinePipeline {
47
47
Mesh :: ATTRIBUTE_COLOR . at_shader_location ( 1 ) ,
48
48
] ) ?;
49
49
50
+ let format = if key. contains ( Mesh2dPipelineKey :: HDR ) {
51
+ ViewTarget :: TEXTURE_FORMAT_HDR
52
+ } else {
53
+ TextureFormat :: bevy_default ( )
54
+ } ;
55
+
50
56
Ok ( RenderPipelineDescriptor {
51
57
vertex : VertexState {
52
58
shader : self . shader . clone_weak ( ) ,
@@ -59,7 +65,7 @@ impl SpecializedMeshPipeline for GizmoLinePipeline {
59
65
shader_defs : vec ! [ ] ,
60
66
entry_point : "fragment" . into ( ) ,
61
67
targets : vec ! [ Some ( ColorTargetState {
62
- format: TextureFormat :: bevy_default ( ) ,
68
+ format,
63
69
blend: Some ( BlendState :: ALPHA_BLENDING ) ,
64
70
write_mask: ColorWrites :: ALL ,
65
71
} ) ] ,
@@ -97,11 +103,12 @@ pub(crate) fn queue_gizmos_2d(
97
103
gpu_meshes : Res < RenderAssets < Mesh > > ,
98
104
msaa : Res < Msaa > ,
99
105
mesh_handles : Query < ( Entity , & Mesh2dHandle ) , With < GizmoMesh > > ,
100
- mut views : Query < & mut RenderPhase < Transparent2d > > ,
106
+ mut views : Query < ( & ExtractedView , & mut RenderPhase < Transparent2d > ) > ,
101
107
) {
102
108
let draw_function = draw_functions. read ( ) . get_id :: < DrawGizmoLines > ( ) . unwrap ( ) ;
103
109
let key = Mesh2dPipelineKey :: from_msaa_samples ( msaa. samples ( ) ) ;
104
- for mut phase in & mut views {
110
+ for ( view, mut phase) in & mut views {
111
+ let key = key | Mesh2dPipelineKey :: from_hdr ( view. hdr ) ;
105
112
for ( entity, mesh_handle) in & mesh_handles {
106
113
let Some ( mesh) = gpu_meshes. get ( & mesh_handle. 0 ) else { continue ; } ;
107
114
0 commit comments