1#![cfg_attr(any(target_arch = "riscv32", target_arch = "riscv64"), no_std)]
2
3use common::{VideoFrameGenerator, HEIGHT, WIDTH};
4use corevm_guest::{video_mode, yield_video_frame, VideoFrameFormat, VideoMode};
5use corevm_video_test_common as common;
6
7corevm_guest::min_stack_size!(2 * 4096 + common::MAX_FRAME_LEN.next_multiple_of(4096));
8
9#[polkavm_derive::polkavm_export]
11pub extern "C" fn main() -> u64 {
12 video_mode(&VideoMode {
13 width: WIDTH as u32,
14 height: HEIGHT as u32,
15 refresh_rate: 30,
16 format: VideoFrameFormat::Rgb888Indexed8,
17 });
18 let mut gen = VideoFrameGenerator::new();
19 loop {
20 let frame = gen.generate();
21 yield_video_frame(frame);
22 }
23}
24
25#[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))]
26#[panic_handler]
27fn panic(info: &core::panic::PanicInfo) -> ! {
28 corevm_guest::panic(info)
29}