Colour bars/Display: Difference between revisions
Content added Content deleted
(→{{header|BASIC}}: add AmigaBASIC version) |
(Rust) |
||
Line 1,738: | Line 1,738: | ||
end |
end |
||
</lang> |
</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}}== |
=={{header|Scala}}== |