File tree 4 files changed +22
-0
lines changed 4 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -523,6 +523,8 @@ impl crate::CommandEncoder for super::CommandEncoder {
523
523
. any ( |at| match at. target . view . inner {
524
524
#[ cfg( webgl) ]
525
525
super :: TextureInner :: ExternalFramebuffer { .. } => true ,
526
+ #[ cfg( native) ]
527
+ super :: TextureInner :: ExternalNativeFramebuffer { .. } => true ,
526
528
_ => false ,
527
529
} ) ;
528
530
Original file line number Diff line number Diff line change @@ -969,6 +969,8 @@ impl crate::Device for super::Device {
969
969
}
970
970
#[ cfg( webgl) ]
971
971
super :: TextureInner :: ExternalFramebuffer { .. } => { }
972
+ #[ cfg( native) ]
973
+ super :: TextureInner :: ExternalNativeFramebuffer { .. } => { }
972
974
}
973
975
}
974
976
Original file line number Diff line number Diff line change @@ -366,9 +366,21 @@ pub enum TextureInner {
366
366
target : BindTarget ,
367
367
} ,
368
368
#[ cfg( webgl) ]
369
+ /// Render to a `WebGLFramebuffer`
370
+ ///
371
+ /// This is a web feature
369
372
ExternalFramebuffer {
370
373
inner : web_sys:: WebGlFramebuffer ,
371
374
} ,
375
+ #[ cfg( native) ]
376
+ /// Render to a `glow::NativeFramebuffer`
377
+ /// Useful when the framebuffer to draw to
378
+ /// has a non-zero framebuffer ID
379
+ ///
380
+ /// This is a native feature
381
+ ExternalNativeFramebuffer {
382
+ inner : glow:: NativeFramebuffer ,
383
+ } ,
372
384
}
373
385
374
386
#[ cfg( send_sync) ]
@@ -385,6 +397,8 @@ impl TextureInner {
385
397
Self :: Texture { raw, target } => ( raw, target) ,
386
398
#[ cfg( webgl) ]
387
399
Self :: ExternalFramebuffer { .. } => panic ! ( "Unexpected external framebuffer" ) ,
400
+ #[ cfg( native) ]
401
+ Self :: ExternalNativeFramebuffer { .. } => panic ! ( "unexpected external framebuffer" ) ,
388
402
}
389
403
}
390
404
}
Original file line number Diff line number Diff line change @@ -158,6 +158,10 @@ impl super::Queue {
158
158
super :: TextureInner :: ExternalFramebuffer { ref inner } => unsafe {
159
159
gl. bind_external_framebuffer ( glow:: FRAMEBUFFER , inner) ;
160
160
} ,
161
+ #[ cfg( native) ]
162
+ super :: TextureInner :: ExternalNativeFramebuffer { ref inner } => unsafe {
163
+ gl. bind_framebuffer ( glow:: FRAMEBUFFER , Some ( * inner) ) ;
164
+ } ,
161
165
}
162
166
}
163
167
You can’t perform that action at this time.
0 commit comments