require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_RASTER_H_)) {
    eval 'sub _RASTER_H_ () {1;}' unless defined(&_RASTER_H_);
    require 'machine/endian.ph';
    if((defined(&BYTE_ORDER) ? &BYTE_ORDER : 0) == (defined(&BIG_ENDIAN) ? &BIG_ENDIAN : 0)) {
	eval 'sub MSBYTE_FIRST () {1;}' unless defined(&MSBYTE_FIRST);
	eval 'sub MSBIT_FIRST () {1;}' unless defined(&MSBIT_FIRST);
    }
    undef(&COLORFONT_CACHE) if defined(&COLORFONT_CACHE);
    unless(defined(&ARGS)) {
	if((defined(&__STDC__) ? &__STDC__ : 0)) {
	    eval 'sub ARGS {
	        local($alist) = @_;
    		eval q($alist);
	    }' unless defined(&ARGS);
	} else {
	    eval 'sub ARGS {
	        local($alist) = @_;
    		eval q(());
	    }' unless defined(&ARGS);
	}
    }
    if(defined(&COLORFONT_CACHE)) {
    }
    eval 'sub RASFONT_FIXEDWIDTH () {0x1;}' unless defined(&RASFONT_FIXEDWIDTH);
    eval 'sub RASFONT_NOVERTICALMOVEMENT () {0x2;}' unless defined(&RASFONT_NOVERTICALMOVEMENT);
    if(defined(&COLORFONT_CACHE)) {
    }
    eval 'sub RAS_NOT {
        local($op) = @_;
	    eval q(( 0xf & ( ~ ($op) ) ));
    }' unless defined(&RAS_NOT);
    eval 'sub RAS_CLEAR () {0x;}' unless defined(&RAS_CLEAR);
    eval 'sub RAS_NOTOR () {0x1;}' unless defined(&RAS_NOTOR);
    eval 'sub RAS_NOTSRC_AND_DST () {0x2;}' unless defined(&RAS_NOTSRC_AND_DST);
    eval 'sub RAS_INVERTSRC () {0x3;}' unless defined(&RAS_INVERTSRC);
    eval 'sub RAS_SRC_AND_NOTDST () {0x4;}' unless defined(&RAS_SRC_AND_NOTDST);
    eval 'sub RAS_INVERT () {0x5;}' unless defined(&RAS_INVERT);
    eval 'sub RAS_XOR () {0x6;}' unless defined(&RAS_XOR);
    eval 'sub RAS_NOTAND () {0x7;}' unless defined(&RAS_NOTAND);
    eval 'sub RAS_AND () {0x8;}' unless defined(&RAS_AND);
    eval 'sub RAS_NOTXOR () {0x9;}' unless defined(&RAS_NOTXOR);
    eval 'sub RAS_DST () {0xa;}' unless defined(&RAS_DST);
    eval 'sub RAS_NOTSRC_OR_DST () {0xb;}' unless defined(&RAS_NOTSRC_OR_DST);
    eval 'sub RAS_SRC () {0xc;}' unless defined(&RAS_SRC);
    eval 'sub RAS_SRC_OR_NOTDST () {0xd;}' unless defined(&RAS_SRC_OR_NOTDST);
    eval 'sub RAS_OR () {0xe;}' unless defined(&RAS_OR);
    eval 'sub RAS_SET () {0xf;}' unless defined(&RAS_SET);
    eval 'sub RAS_COLOR {
        local($color) = @_;
	    eval q(( ( ($color) & 0xff ) << 4));
    }' unless defined(&RAS_COLOR);
    eval 'sub RAS_GETOP {
        local($op) = @_;
	    eval q(( ($op) & 0xf ));
    }' unless defined(&RAS_GETOP);
    eval 'sub RAS_GETCOLOR {
        local($op) = @_;
	    eval q(( ( ($op) >> 4) & 0xff ));
    }' unless defined(&RAS_GETCOLOR);
    eval 'sub RAS_ADDR {
        local( $r, $x, $y ) = @_;
	    eval q(( ( &r)-> &pixels + ( &y) * ( &r)->\'linelongs\' + ($x) * ( &r)-> &depth / 32));
    }' unless defined(&RAS_ADDR);
}
1;
