summaryrefslogtreecommitdiff
path: root/chapter31/docs/examples/Graphics.smp
blob: 7ba5c6e7925a8e1590393a75bece64215cb8b3c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Optional graphics smoke test: pixels are drawn entirely in Simple.
// Pass any argument for a short, self-closing test; otherwise close or press Esc.
val main = { u8[~][] args ->
    if( sys.gfx.open("Simple pixels",320,240) != sys.gfx.OK ) return 1;
    val pixels = new u32[320*240];
    for( int y=0; y<240; y++ )
        for( int x=0; x<320; x++ )
            pixels[y*320+x] = (x*255/319 << 16) | (y*255/239 << 8) | 64;
    int result = sys.gfx.present(pixels);
    int frames = 0;
    while( result == sys.gfx.OK ) {
        result = sys.gfx.poll(true);
        if( args# > 1 && ++frames == 5 ) break;
    }
    sys.gfx.close();
    return result == sys.gfx.ERROR ? 1 : 0;
};