[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]

    {
    =================================================================

    FILENAME  : PIXFADIN.PAS

    AUTHOR    : SCOTT "Lieutenant Kojak" TUNSTALL

    CREATION  : 24TH NOVEMBER 1996
    DATE

    PURPOSE   : To demonstrate the fast blit functions of KOJAKVGA 3.

    NOTES     :

    I saw this 16 x 10 pixel "fade-in" first at College and thought
    "ooh! Ain't that smart" (well, I'd never seen a SVGA PC before;
    I'd come from Amiga-Land, 32 colours etc. etc.)

    As a programming exercise I reproduced the effect with my
    KOJAKVGA unit. Hope you like it.

    What YOU do is:

    o Specify the name of the PCX file to fade in (can be up to 320 x
      200 in size) as the command line parameter.

    o Gasp with amazement as the PCX fades into your view.
      (That was sarcasm)

    o Press CTRL+ALT+DEL to rid yourself of the misery.

    DISCLAIMER :

    Use this at your own risk. If you really must.
    This program works just dandy on my PC.

    -----------------------------------------------------------------
    }

    Uses KOJAKVGA,crt;

    const BLOCK_WIDTH = 16;      { 320 MOD BLOCK_WIDTH must always be 0 }
          BLOCK_HEIGHT = 20;     { 200 MOD BLOCK_HEIGHT must always be 0 }

    Var TempBitmap : pointer;
        TempPal    : PaletteType;
        xc,yc      : word;
        Count      : word;

    Begin
         TempBitmap:=New64KBitmap;
         UseBitmap(TempBitmap);
         Cls;
         LoadPCX(ParamStr(1),TempPal);

         InitVGAMode;
         UsePalette(TempPal);

         Randomize;

         Repeat
               xc:=random(320 div BLOCK_WIDTH);
               yc:=random(200 div BLOCK_HEIGHT);

               { Syntax for CopyAreaToBitmap is:
                 CopyAreaToBitmap(x1,y1,x2,y2,DestPtr,DestX,DestY)
               }

               CopyAreaToBitmap(xc*BLOCK_WIDTH,yc*BLOCK_HEIGHT,
               (xc*BLOCK_WIDTH)+(BLOCK_WIDTH-1),
               (yc*BLOCK_HEIGHT)+(BLOCK_HEIGHT-1),
               ptr($a000,0),xc*BLOCK_WIDTH,yc*BLOCK_HEIGHT);

               Delay(40);
         Until keypressed;

         FreeBitmap(TempBitmap);
    End.

[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]