Colour bars/Display: Difference between revisions

Rust
(→‎{{header|BASIC}}: add AmigaBASIC version)
(Rust)
Line 1,738:
end
</lang>
 
=={{header|Rust}}==
{{libheader|winit}}
{{libheader|pixels}}
renders into a borderless fullscreen window on the primary display. press ESC to close
<lang rust>use pixels::{Pixels, SurfaceTexture}; // 0.2.0
use winit::event::*; // 0.24.0
use winit::event_loop::{ControlFlow, EventLoop};
use winit::window::{Fullscreen, WindowBuilder};
 
fn main() {
let event_loop = EventLoop::new();
let window = WindowBuilder::new()
.with_title("Colour Bars")
.with_decorations(false)
.with_fullscreen(Some(Fullscreen::Borderless(None)))
.build(&event_loop).unwrap();
let size = window.inner_size();
let texture = SurfaceTexture::new(size.width, size.height, &window);
let mut image_buffer = Pixels::new(8, 1, texture).unwrap();
let frame = image_buffer.get_frame();
frame.copy_from_slice(&[
0x00, 0x00, 0x00, 0xFF, // black
0xFF, 0x00, 0x00, 0xFF, // red
0x00, 0xFF, 0x00, 0xFF, // green
0x00, 0x00, 0xFF, 0xFF, // blue
0xFF, 0x00, 0xFF, 0xFF, // magenta
0x00, 0xFF, 0xFF, 0xFF, // cyan
0xFF, 0xFF, 0x00, 0xFF, // yellow
0xFF, 0xFF, 0xFF, 0xFF, // white
]);
 
image_buffer.render().unwrap();
 
event_loop.run(move |ev, _, flow| {
match ev {
Event::WindowEvent {
event: WindowEvent::KeyboardInput { input, .. }, ..
} => {
if input.virtual_keycode == Some(VirtualKeyCode::Escape) {
*flow = ControlFlow::Exit;
}
}
Event::RedrawRequested(_) | Event::WindowEvent {
event: WindowEvent::Focused(true), ..
} => {
image_buffer.render().unwrap();
}
_ => {}
}
});
}</lang>
 
=={{header|Scala}}==
Anonymous user