/*FILE HEADER**************************************************************
 *
 *  File name		: $Id$
 *  RCS Revision Number	: $Revision: 1.1 $
 *  Last Modified	: $Date: 94/10/28 09:23:34 $
 *  CSCI name		: Real-Time Graphics System - Applications Interface
 *  CSC name		: All functions
 *  Notes:
 *      This file contains code used to debug and test the SVME-770 RTGS.
 *      This code is provided as an example of how to call the RTGS functions
 *      from a host application.
 *  History		:
 *      Created 94/01/17 by Jeff Sanderson
 *
 *END FILE HEADER*********************************************************/

#include "dy4std.h"
#include "es.h"
#include "css.h"

#include "rtgs_ai.h"
#include "video.h"
#include "colours.h"

#include "test.h"


void test_setppop( void );
/*-----------------------------------------------------------------------*/

int bitmap[] = {
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xFf0000fF, 0xFf0000fF, 0xFf0000fF, 0xFf0000fF,
    0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F, 0xF0f00f0F,
    0xF00ff00F, 0xF00ff00F, 0xF00ff00F, 0xF00ff00F,
    0xF001800F, 0xF001800F, 0xF001800F, 0xF001800F,
    0xF002400F, 0xF002400F, 0xF002400F, 0xF002400F,
    0xF004200F, 0xF004200F, 0xF004200F, 0xF004200F,
    0xF008100F, 0xF008100F, 0xF008100F, 0xF008100F,
    0xF010080F, 0xF010080F, 0xF010080F, 0xF010080F,
    0xF020040F, 0xF020040F, 0xF020040F, 0xF020040F,
    0xF040020F, 0xF040020F, 0xF040020F, 0xF040020F,
    0xF080010F, 0xF080010F, 0xF080010F, 0xF080010F,
    0xF100008F, 0xF100008F, 0xF100008F, 0xF100008F,
    0xF200004F, 0xF200004F, 0xF200004F, 0xF200004F,
    0xF400002F, 0xF400002F, 0xF400002F, 0xF400002F,
    0xF800001F, 0xF800001F, 0xF800001F, 0xF800001F,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,

};


void test_setppop( void )
{
    int *gcc_buff;
    int i;
    int x, y;

    init( "Pixel processing operation test" );
    

    gcc_buff = ( int * )Gcc_malloc( sizeof( bitmap ), 0 );
    malloc_check( gcc_buff );
    
    Copy_bitmap_to_gcc( ( char * )bitmap, ( char * )gcc_buff, sizeof( bitmap ));
    
    x = 0;
    y = 0;

    Set_foreground_colour( RED );
    Set_background_colour( BLUE );

    Set_transparency_mode( TRANSPARENT );    
    for( i = 0; i < 21 ; i++ )
    {
        Printf("drawing bitmap with transp ON, ppop = %d\n", i );
	Set_pixel_processing_operation( i );
	Bitblt_bit_expand(( int * )( gcc_buff ), x, y, 128, 128, 128 );
        x += 128;
        if( x >= RES_X)
        {
            x = 0;
            y += 128;
        }
        Key_wait();
    }

    x = 0;
    y += 128;

    Set_transparency_mode( OPAQUE );    
    for( i = 0; i < 21 ; i++ )
    {
        Printf("drawing bitmap with transp OFF, ppop = %d\n", i );
	Set_pixel_processing_operation( i );
	Bitblt_bit_expand(( int * )( gcc_buff ), x, y, 128, 128, 128 );
        x += 128;
        if( x >= RES_X)
        {
            x = 0;
            y += 128;
        }
        Key_wait();
    }
}

