21 PLDLLIMPEXP_DRIVER const char* plD_DEVICE_INFO_mem =
"mem:User-supplied memory device:-1:mem:46:mem\n";
26 void plD_line_mem(
PLStream *,
short,
short,
short,
short );
36 #define MAX( a, b ) ( ( a > b ) ? a : b )
37 #define ABS( a ) ( ( a < 0 ) ? -a : a )
39 #define MAX_INTENSITY 255
43 #ifndef ENABLE_DYNDRIVERS
44 pdt->
pl_MenuStr =
"User-supplied memory device";
75 plexit(
"Must call plsmem first to set user plotting area!" );
80 plexit(
"The mem driver does not support alpha values! Use plsmem!" );
92 #define sign( a ) ( ( a < 0 ) ? -1 : ( ( a == 0 ) ? 0 : 1 ) )
95 plD_line_mem(
PLStream *
pls,
short x1a,
short y1a,
short x2a,
short y2a )
99 int x1 = x1a, y1 = y1a, x2 = x2a, y2 = y2a;
100 PLINT x1b, y1b, x2b, y2b;
101 PLFLT length, fx, fy, dx, dy;
102 unsigned char *mem = (
unsigned char *)
pls->
dev;
108 y1 = ym - ( y1 - 0 );
109 y2 = ym - ( y2 - 0 );
111 x1b = x1, x2b = x2, y1b = y1, y2b = y2;
112 length = (
PLFLT) sqrt( (
double)
113 ( ( x2b - x1b ) * ( x2b - x1b ) + ( y2b - y1b ) * ( y2b - y1b ) ) );
117 dx = ( x2 - x1 ) / length;
118 dy = ( y2 - y1 ) / length;
130 for ( i = 1; i <= (int) length; i++ )
145 for ( i = 0; i < npts - 1; i++ )
146 plD_line_mem(
pls, xa[i], ya[i], xa[i + 1], ya[i + 1] );