/*
//  ### ****      
//  ###***** Level One's L3 Blitter Demo
//  #####*** Author: appriv0tor 2006
//  #### *** 
*/

#include <lowlevellib.h>

llgfx_id background=0;
llgfx_id logo=0;
llgfx_id sprite=0;

#define MAX_DEMOS 1

void blitdemo_001()
{
    //BLIT Test start
    llgfx_BLIT(0,sprite,0,0,0,BLIT_DST_CENTERED);
}

int os_main(int argc, char **argv, char **envp )
{
    int xpos =0;
    int ypos =0;

    /************************************************************************/
    /* Bildchirm Modus Setzen                                               */
    /* Für PDA und GP2X nur 320x240x16 verwenden                            */
    /* Für DX5 beliebige Wert möglich                                       */
    /************************************************************************/
    llgfx_SetDisplayMode(200,160,32,0,0);
    
    /************************************************************************/
    /* Grafik Resourcen laden                                               */
    /* Ladepfad ab der Lokation des Game Exe files.                         */    
    /************************************************************************/
    
    background  = llgfx_LoadGfx("background.png");
    logo        = llgfx_LoadGfx("one03.png",LLGFX_COLORKEY);
    sprite      = llgfx_LoadGfx("test_spr1.png");
    
    int blitdemo = 0;
    /* 
     * Frameloop: Für die Blitter demo
     *            wird mit dem TILE Blitter der Hintergrund befüllt
     *            dann logo bzw sprite geblittet
     */
    llirq_ResetTime();
    while(osmain_endgame==false){
        float delta = llirq_GetDeltaTime();

        llgfx_TILE_BLIT(0,background,xpos++,ypos++);

        switch(blitdemo){
        case 0: blitdemo_001(); break; //BLIT_DST_CENTERED
        }

        //Ende Taste abfragen
        llgfx_Printf("Blitdemo_00%d\nB=next\nA=quit",blitdemo);
        if( Justdown(llinput_Keys[LLINPUT_KEY_A]) ){
            osmain_endgame = true;
        }
        if( Justdown(llinput_Keys[LLINPUT_KEY_B]) ){
            blitdemo++;
            if(blitdemo >= MAX_DEMOS)
                blitdemo = 0;
        }
        
        //Frameloop Zeichnen ist fertig, Backbuffer anzeigen
        llgfx_FlipScreen(0);
        llsound_Update(delta);
        llinput_Update();
        llirq_Sleep(10);
    }
    return 0;
}