module window;

import des.app;
import des.util.logsys;

import camera;
import draw;

class MainWindow : DesWindow
{
protected:
    MCamera cam;
    Sphere obj;

    override void prepare()
    {
        cam = new MCamera;

        obj = newEMM!Sphere( 1, 12, 12 );

        connect( draw, { obj.draw( cam ); } );
        connect( key, &keyControl );
        connect( mouse, &(cam.mouseReaction) );

        connect( event.resized, (ivec2 sz)
        { cam.ratio = cast(float)sz.w / sz.h; } );
    }

    void keyControl( in KeyboardEvent ke )
    { if( ke.scan == ke.Scan.ESCAPE ) app.quit(); }

public:
    this() { super( "example", ivec2(800,600), false ); }
}