home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
gnu
/
gemlib27.lzh
/
GEMLIB27
/
VDIRAS.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-30
|
2KB
|
117 lines
/*
* Vdi raster funcs library interface
*
* vro_cpyfm copy raster opaque
* vrt_cpyfm copy raster transparent
* vr_trnfm transform form
* v_get_pixel get pix
*
* ++jrb bammi@cadence.com
* modified: mj -- ntomczak@vm.ucs.ualberta.ca
*/
#include "common.h"
#ifdef __DEF_ALL__
#define L_vro_cpyf
#define L_vrt_cpyf
#define L_vr_trnfm
#define L_v_get_pi
#endif /* __DEF_ALL__ */
#ifdef L_vro_cpyf
/* vro_cpyfm copy raster opaque
* returns void
*/
void vro_cpyfm(int handle, int mode, int pxyarray[],
void *src, void *dst)
{
#ifdef __MSHORT__ /* we have 16 bit ints, just change vdi params */
_vdiparams[2] = (void *) &pxyarray[0];
#else /* 32 bit ints - let's copy */
register short i;
for(i = 0; i < 8; i++)
_ptsin[i] = pxyarray[i];
#endif
_intin[0] = mode;
*((void **)(&_contrl[7])) = src;
*((void **)(&_contrl[9])) = dst;
__vdi__(VDI_CONTRL_ENCODE(109, 4, 1, 0), handle);
#ifdef __MSHORT__
_vdiparams[2] = (void *)&_ptsin[0]; /* restore vdi parameters */
#endif
}
#endif /* L_vro_cpyf */
#ifdef L_vrt_cpyf
/* vrt_cpyfm copy raster transparent
* returns void
*/
void vrt_cpyfm(int handle, int mode, int pxyarray[],
void *src, void *dst, int color[])
{
#ifdef __MSHORT__ /* we have 16 bit ints, just change vdi params */
_vdiparams[2] = (void *) &pxyarray[0];
#else /* 32 bit ints - let's copy */
register short i;
for(i = 0; i < 8; i++)
_ptsin[i] = pxyarray[i];
#endif
_intin[0] = mode;
_intin[1] = color[0];
_intin[2] = color[1];
*((void **)(&_contrl[7])) = src;
*((void **)(&_contrl[9])) = dst;
__vdi__(VDI_CONTRL_ENCODE(121, 4, 3, 0), handle);
#ifdef __MSHORT__
_vdiparams[2] = (void *)&_ptsin[0]; /* restore vdi parameters */
#endif
}
#endif /* L_vrt_cpyf */
#ifdef L_vr_trnfm
/* vr_trnfm transform form
* returns void
*/
void vr_trnfm(int handle, void *src, void *dst)
{
*((void **)(&_contrl[7])) = src;
*((void **)(&_contrl[9])) = dst;
__vdi__(VDI_CONTRL_ENCODE(110, 0, 0, 0), handle);
}
#endif /* L_vr_trnfm */
#ifdef L_v_get_pi
/* v_get_pixel get pix
* returns void (results in args)
*/
void v_get_pixel( int handle, int x, int y, int *pel, int *index)
{
_ptsin[0] = x;
_ptsin[1] = y;
__vdi__(VDI_CONTRL_ENCODE(105, 1, 0, 0), handle);
*pel = _intout[0];
*index = _intout[1];
}
#endif /* L_v_get_pi */
/* -eof- */