6 #define HW_WRITE_LOCK() HW_LOCK()
9 #ifndef HW_WRITE_UNLOCK
10 #define HW_WRITE_UNLOCK() HW_UNLOCK()
14 #define HW_READ_LOCK() HW_LOCK()
17 #ifndef HW_READ_UNLOCK
18 #define HW_READ_UNLOCK() HW_UNLOCK()
21 #ifndef HW_READ_CLIPLOOP
22 #define HW_READ_CLIPLOOP() HW_CLIPLOOP()
25 #ifndef HW_WRITE_CLIPLOOP
26 #define HW_WRITE_CLIPLOOP() HW_CLIPLOOP()
30 static void TAG(WriteRGBASpan
)( const GLcontext
*ctx
,
31 GLuint n
, GLint x
, GLint y
,
32 const GLubyte rgba
[][4],
33 const GLubyte mask
[] )
46 CLIPSPAN(x
,y
,n
,x1
,n1
,i
);
48 if (DBG
) fprintf(stderr
, "WriteRGBASpan %d..%d (x1 %d)\n",
49 (int)i
, (int)n1
, (int)x1
);
53 for (;n1
>0;i
++,x1
++,n1
--)
56 rgba
[i
][0], rgba
[i
][1],
57 rgba
[i
][2], rgba
[i
][3] );
61 for (;n1
>0;i
++,x1
++,n1
--)
63 rgba
[i
][0], rgba
[i
][1],
64 rgba
[i
][2], rgba
[i
][3] );
72 static void TAG(WriteRGBSpan
)( const GLcontext
*ctx
,
73 GLuint n
, GLint x
, GLint y
,
74 const GLubyte rgb
[][3],
75 const GLubyte mask
[] )
88 CLIPSPAN(x
,y
,n
,x1
,n1
,i
);
90 if (DBG
) fprintf(stderr
, "WriteRGBSpan %d..%d (x1 %d)\n",
91 (int)i
, (int)n1
, (int)x1
);
95 for (;n1
>0;i
++,x1
++,n1
--)
97 WRITE_RGBA( x1
, y
, rgb
[i
][0], rgb
[i
][1], rgb
[i
][2], 255 );
101 for (;n1
>0;i
++,x1
++,n1
--)
102 WRITE_RGBA( x1
, y
, rgb
[i
][0], rgb
[i
][1], rgb
[i
][2], 255 );
110 static void TAG(WriteRGBAPixels
)( const GLcontext
*ctx
,
114 const GLubyte rgba
[][4],
115 const GLubyte mask
[] )
122 if (DBG
) fprintf(stderr
, "WriteRGBAPixels\n");
129 const int fy
= Y_FLIP(y
[i
]);
130 if (CLIPPIXEL(x
[i
],fy
))
131 WRITE_RGBA( x
[i
], fy
,
132 rgba
[i
][0], rgba
[i
][1],
133 rgba
[i
][2], rgba
[i
][3] );
143 static void TAG(WriteMonoRGBASpan
)( const GLcontext
*ctx
,
144 GLuint n
, GLint x
, GLint y
,
145 const GLchan color
[4],
146 const GLubyte mask
[] )
153 INIT_MONO_PIXEL(p
, color
);
157 if (DBG
) fprintf(stderr
, "WriteMonoRGBASpan\n");
162 CLIPSPAN(x
,y
,n
,x1
,n1
,i
);
163 for (;n1
>0;i
++,x1
++,n1
--)
165 WRITE_PIXEL( x1
, y
, p
);
173 static void TAG(WriteMonoRGBAPixels
)( const GLcontext
*ctx
,
175 const GLint x
[], const GLint y
[],
176 const GLchan color
[],
177 const GLubyte mask
[] )
183 INIT_MONO_PIXEL(p
, color
);
185 if (DBG
) fprintf(stderr
, "WriteMonoRGBAPixels\n");
191 int fy
= Y_FLIP(y
[i
]);
192 if (CLIPPIXEL( x
[i
], fy
))
193 WRITE_PIXEL( x
[i
], fy
, p
);
202 static void TAG(ReadRGBASpan
)( const GLcontext
*ctx
,
203 GLuint n
, GLint x
, GLint y
,
213 if (DBG
) fprintf(stderr
, "ReadRGBASpan\n");
218 CLIPSPAN(x
,y
,n
,x1
,n1
,i
);
219 for (;n1
>0;i
++,x1
++,n1
--)
220 READ_RGBA( rgba
[i
], x1
, y
);
228 static void TAG(ReadRGBAPixels
)( const GLcontext
*ctx
,
229 GLuint n
, const GLint x
[], const GLint y
[],
230 GLubyte rgba
[][4], const GLubyte mask
[] )
237 if (DBG
) fprintf(stderr
, "ReadRGBAPixels\n");
243 int fy
= Y_FLIP( y
[i
] );
244 if (CLIPPIXEL( x
[i
], fy
))
245 READ_RGBA( rgba
[i
], x
[i
], fy
);