1 /* 2 3 Copyright (C) 2015-2018 Night Dive Studios, LLC. 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 */ 19 /* 20 * $Source: r:/prj/lib/src/2d/RCS/general.h $ 21 * $Revision: 1.51 $ 22 * $Author: kevin $ 23 * $Date: 1994/11/12 02:19:47 $ 24 * 25 * Prototypes for general purpose 2d functions. 26 * 27 * This file is part of the 2d library. 28 * 29 * $Log: general.h $ 30 * Revision 1.51 1994/11/12 02:19:47 kevin 31 * Added interrupt crunchy pixel setting declarations. 32 * 33 * Revision 1.50 1994/10/25 15:11:36 kevin 34 * Added rsd blitters. 35 * 36 * Revision 1.49 1994/08/16 15:30:55 kevin 37 * Added more temp functions. 38 * 39 * Revision 1.48 1994/07/29 12:02:15 kevin 40 * added per_map function. 41 * 42 * Revision 1.47 1994/07/18 17:05:49 kevin 43 * Moved temp_ functions from flat8.h to general.h. 44 * 45 * Revision 1.46 1994/07/04 01:35:59 kevin 46 * Added per_umap declaration. 47 * 48 * 49 * Revision 1.45 1994/06/20 22:19:31 kevin 50 * Added temp_wall_umap. 51 * 52 * Revision 1.44 1994/05/24 23:53:22 kevin 53 * gen_tluc8_clut_lin_umap yay! 54 * 55 * Revision 1.43 1994/04/09 07:22:30 lmfeeney 56 * added routines for scaled strings 57 * 58 * Revision 1.42 1994/03/15 06:08:10 kevin 59 * Added clut_bitmap procedures. 60 * 61 * Revision 1.41 1994/02/14 20:38:37 baf 62 * Added dummy parameter to cpoly and spoly routines, for uniformity needed by 3D. 63 * 64 * Revision 1.40 1994/01/17 22:13:18 baf 65 * Redid tluc8 spolys (again). 66 * 67 * Revision 1.39 1993/12/30 11:04:29 baf 68 * non/span solid filled polygons 69 * 70 * Revision 1.38 1993/12/28 22:04:37 baf 71 * Added solid RSD stuff 72 * 73 * Revision 1.37 1993/12/28 19:33:26 kevin 74 * Added unpack and chain versions of rsd bitmap functions. 75 * 76 * Revision 1.36 1993/12/06 13:08:48 kevin 77 * Added declarations for rsd8 versions of texture mappers. 78 * 79 * Revision 1.35 1993/12/04 17:31:23 kevin 80 * Added gen_clut_per_[u]map declarations; 81 * Fixed gen_lit_per_map declaration; 82 * 83 * Revision 1.34 1993/12/02 14:35:26 baf 84 * Added generic tluc8 scaled bitmaps 85 * 86 * Revision 1.33 1993/12/01 21:18:36 baf 87 * Added some tluc8 stuff. 88 * 89 * Revision 1.32 1993/11/24 01:50:13 kevin 90 * Added declarations for wall and floor texture mapping primitives. 91 * 92 * Revision 1.31 1993/10/26 02:10:15 kevin 93 * Added prototypes for rsd bitmap scaling and clut-scaling primitives. 94 * 95 * Revision 1.30 1993/10/20 15:20:43 kaboom 96 * Updated prototypes for spoly routines. 97 * 98 * Revision 1.29 1993/10/19 09:56:05 kaboom 99 * Updated names of polygon routines. 100 * 101 * Revision 1.28 1993/10/06 13:30:28 kevin 102 * added clut versions of horizontal flip and linear mapping routines. 103 * 104 * Revision 1.27 1993/10/02 01:18:21 kaboom 105 * Updated names and arguments of linear and perspective mappers. 106 * 107 * Revision 1.26 1993/09/02 20:05:23 kaboom 108 * Added prototypes for flat 24 pixel, bitmap and linmap routines. 109 * 110 * Revision 1.25 1993/08/19 21:51:09 jaemz 111 * Added bitmap scale clut and voxel functions 112 * 113 * Revision 1.24 1993/08/10 19:07:11 kaboom 114 * Added prototypes for gen_lit_{u}tmap(). 115 * 116 * Revision 1.23 1993/07/20 16:24:52 jaemz 117 * Added interp2 and filterw2 118 * 119 * Revision 1.22 1993/06/22 19:58:41 spaz 120 * Added prototypes for goroud-shaded lines: 121 * gen_fix_usline, sline, ucline, and cline. 122 * 123 * Revision 1.21 1993/06/14 14:09:55 kaboom 124 * Added prototypes for new lin_{u}map and lin_lit_lin_{u}map routines. 125 * 126 * Revision 1.20 1993/06/06 15:12:21 kaboom 127 * Added prototypes for gen_hflip_flat8_{u}bitmap. 128 * 129 * Revision 1.19 1993/06/03 15:12:20 kaboom 130 * Moved prototypes for span functions to another file. 131 * 132 * Revision 1.18 1993/06/01 13:49:32 kaboom 133 * Added prototypes for lighting perspective tmappers. 134 * 135 * Revision 1.17 1993/05/03 13:50:48 kaboom 136 * Removed the declarations for obsolete span rendering routines. 137 * 138 * Revision 1.16 1993/04/08 18:56:04 kaboom 139 * Added prototypes for gen_uchar() and gen_char(). 140 * 141 * Revision 1.15 1993/04/01 21:51:42 kaboom 142 * Added full arguments to polygon shader & tmap prototypes. 143 * 144 * Revision 1.14 1993/03/29 18:30:59 kaboom 145 * Removed prototypes for concave polygons. 146 * 147 * Revision 1.13 1993/02/24 11:04:09 kaboom 148 * Added prototypes for new span routines. 149 * 150 * Revision 1.12 1993/02/04 17:30:23 kaboom 151 * Added prototypes for gen_xxx_cpoly() functions. 152 * 153 * Revision 1.11 1993/01/22 19:51:17 kaboom 154 * Filled in args to gen_int_tmap() macro. 155 * 156 * Revision 1.10 1993/01/15 21:44:43 kaboom 157 * Added prototypes for stencilled lr drawing routines. 158 * 159 * Revision 1.9 1992/12/30 15:14:50 kaboom 160 * Added parameters for polygon and span rendering functions. 161 * 162 * Revision 1.8 1992/12/14 18:15:58 kaboom 163 * Added prototype for gen_clear(). 164 * 165 * Revision 1.7 1992/12/11 14:13:47 kaboom 166 * Added prototypes for gen_get_flat8_[u]bitmap. 167 * 168 * Revision 1.6 1992/12/10 11:21:22 kaboom 169 * Added prototypes for unclipped versions of span functions. 170 * 171 * Revision 1.5 1992/11/19 02:37:06 kaboom 172 * Added prototypes for unclipped versions of gen_scale_bitmap as well as 173 * gen_roll_bitmap. 174 * 175 * Revision 1.4 1992/11/12 13:50:11 kaboom 176 * Inserted arguments into prototypes for completed functions. Added prototypes 177 * for monochrome and rsd8 bitmap routines. 178 * 179 * Revision 1.3 1992/10/21 16:04:32 kaboom 180 * Changed protoypes to match new naming for integer & fixed point functions. 181 * 182 * Revision 1.2 1992/10/13 12:18:20 kaboom 183 * Added prototypes for fixed-point and integer versions of most 2d 184 * functions. 185 * 186 * Revision 1.1 1992/10/10 12:00:00 kaboom 187 * Initial revision. 188 */ 189 190 #ifndef __GENERAL_H 191 #define __GENERAL_H 192 #include "plytyp.h" /* must fix */ 193 194 /* the general-purpose driver has no entries for the following standard 195 functions: set_pixel, set_upixel, get_pixel, and get_upixel. These 196 functions must be defined; they are the minimal components of a driver. */ 197 198 extern int gen_set_pixel(long color, short x, short y); 199 extern int gen_set_pixel_interrupt(long color, short x, short y); 200 extern void gen_fill_upixel(long color, short x, short y); 201 extern int gen_fill_pixel(long color, short x, short y); 202 203 extern void gen_clear (long color); 204 205 extern void gen_upoint (short x, short y); 206 extern int gen_point (short x, short y); 207 extern void gen_uhline (short x0, short y0, short x1); 208 extern int gen_hline (short x0, short y0, short x1); 209 extern void gen_uvline (short x0, short y0, short y1); 210 extern int gen_vline (short x0, short y0, short y1); 211 extern void gen_urect (short left, short top, short right, short bot); 212 extern int gen_rect (short left, short top, short right, short bot); 213 extern void gen_ubox (short left, short top, short right, short bot); 214 extern int gen_box (short left, short top, short right, short bot); 215 216 extern void gen_fix_uline (fix x0, fix y0, fix x1, fix y1); 217 extern int gen_fix_line (fix x0, fix y0, fix x1, fix y1); 218 extern void gen_fix_usline(fix x0, fix y0, fix i0, fix x1, fix y1, fix i1); 219 extern int gen_fix_sline(fix x0, fix y0, fix i0, fix x1, fix y1, fix i1); 220 extern void gen_fix_ucline(fix x0, fix y0, grs_rgb c0, fix x1, fix y1, grs_rgb c1); 221 extern int gen_fix_cline(fix x0, fix y0, grs_rgb c0, fix x1, fix y1, grs_rgb c1); 222 extern void gen_upoly (long c, int n, grs_vertex **vpl); 223 extern int gen_poly (long c, int n, grs_vertex **vpl); 224 extern void gen_uspoly(long c, int n, grs_vertex **vpl); 225 extern int gen_spoly(long c, int n, grs_vertex **vpl); 226 extern void gen_tluc8_upoly (long c, int n, grs_vertex **vpl); 227 extern int gen_tluc8_poly (long c, int n, grs_vertex **vpl); 228 extern void gen_tluc8_uspoly (long c, int n, grs_vertex **vpl); 229 extern int gen_tluc8_spoly (long c, int n, grs_vertex **vpl); 230 231 extern void gen_ucpoly(long c, int n, grs_vertex **vpl); 232 extern int gen_cpoly(long c, int n, grs_vertex **vpl); 233 234 extern int gen_fix_cpoly (int n, fix *vlist, grs_rgb *c); 235 extern void gen_vox_rect(fix x[4],fix y[4],fix dz[3],int near_ver,grs_bitmap *col,grs_bitmap *ht,int dotw,int doth); 236 extern void gen_vox_poly(fix x[4],fix y[4],fix dz[3],int near_ver,grs_bitmap *col,grs_bitmap *ht); 237 extern void gen_vox_cpoly(fix x[4],fix y[4],fix dz[3],int near_ver,grs_bitmap *col,grs_bitmap *ht); 238 extern void gen_interp2_ubitmap(grs_bitmap *bm); 239 extern void gen_filter2_ubitmap(grs_bitmap *bm); 240 extern void gen_scale_ubitmap 241 (grs_bitmap *bm, short x, short y, short w, short h); 242 extern int gen_scale_bitmap 243 (grs_bitmap *bm, short x, short y, short w, short h); 244 extern void gen_rsd8_scale_ubitmap 245 (grs_bitmap *bm, short x, short y, short w, short h); 246 extern int gen_rsd8_scale_bitmap 247 (grs_bitmap *bm, short x, short y, short w, short h); 248 extern void unpack_rsd8_scale_ubitmap 249 (grs_bitmap *bm, short x, short y, short w, short h); 250 extern int unpack_rsd8_scale_bitmap 251 (grs_bitmap *bm, short x, short y, short w, short h); 252 extern void gen_tluc8_scale_ubitmap 253 (grs_bitmap *bm, short x, short y, short w, short h); 254 // extern gen_tluc8_scale_bitmap 255 // (grs_bitmap *bm, short x, short y, short w, short h); 256 257 extern void gen_rsd8_clut_scale_ubitmap 258 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 259 extern int gen_rsd8_clut_scale_bitmap 260 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 261 extern void gen_rsd8_scale_solid_ubitmap 262 (grs_bitmap *bm, short x, short y, short w, short h, int c); 263 extern int gen_rsd8_scale_solid_bitmap 264 (grs_bitmap *bm, short x, short y, short w, short h, int c); 265 extern void unpack_rsd8_clut_scale_ubitmap 266 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 267 extern int unpack_rsd8_clut_scale_bitmap 268 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 269 extern void gen_clut_scale_ubitmap 270 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 271 extern void gen_clut_scale_bitmap 272 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 273 274 extern void gen_roll_ubitmap 275 (grs_bitmap *bm, fix angle, short x, short y); 276 extern void gen_roll_bitmap (); 277 278 extern void gen_flat8_wall_umap 279 (grs_bitmap *bm, int n, fix **vpl); 280 extern void gen_flat8_lit_wall_umap 281 (grs_bitmap *bm, int n, fix **vpl); 282 283 extern void gen_flat8_floor_umap 284 (grs_bitmap *bm, int n, fix **vpl); 285 extern void gen_flat8_lit_floor_umap 286 (grs_bitmap *bm, int n, fix **vpl); 287 288 extern void temp_point(short x, short y); 289 extern void temp_upoint(short x, short y); 290 291 extern void temp_flat8_ubitmap (grs_bitmap *bm, int x, int y); 292 extern void temp_flat8_bitmap (grs_bitmap *bm, int x, int y); 293 294 extern void temp_flat8_mask_bitmap (grs_bitmap *bm, int x, int y, grs_stencil *sten); 295 extern void temp_flat8_clut_ubitmap (grs_bitmap *bm, int x, int y, uchar *cl); 296 extern void temp_rsd8_bitmap (grs_bitmap *bm, int x, int y); 297 extern void temp_rsd8_ubitmap (grs_bitmap *bm, int x, int y); 298 299 extern void temp_tluc8_ubitmap (grs_bitmap *bm, int x, int y); 300 301 extern int temp_poly (long c, int n, grs_vertex **vpl); 302 extern void temp_upoly (long c, int n, grs_vertex **vpl); 303 extern int temp_spoly (long c, int n, grs_vertex **vpl); 304 extern void temp_uspoly (long c, int n, grs_vertex **vpl); 305 extern int temp_cpoly (long c, int n, grs_vertex **vpl); 306 extern void temp_ucpoly (long c, int n, grs_vertex **vpl); 307 extern int temp_tpoly (long c, int n, grs_vertex **vpl); 308 extern void temp_utpoly (long c, int n, grs_vertex **vpl); 309 extern int temp_stpoly (long c, int n, grs_vertex **vpl); 310 extern void temp_ustpoly (long c, int n, grs_vertex **vpl); 311 312 313 extern void temp_lin_umap 314 (grs_bitmap *bm, int n, grs_vertex **vpl); 315 extern void temp_lin_map 316 (grs_bitmap *bm, int n, grs_vertex **vpl); 317 extern void temp_lit_lin_umap 318 (grs_bitmap *bm, int n, grs_vertex **vpl); 319 extern void temp_lit_lin_map 320 (grs_bitmap *bm, int n, grs_vertex **vpl); 321 extern void temp_clut_lin_umap 322 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 323 extern void temp_clut_lin_map 324 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 325 326 extern void temp_wall_umap 327 (grs_bitmap *bm, int n, grs_vertex **vpl); 328 extern void temp_lit_wall_umap 329 (grs_bitmap *bm, int n, grs_vertex **vpl); 330 extern void temp_clut_wall_umap 331 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 332 333 extern void temp_floor_umap 334 (grs_bitmap *bm, int n, grs_vertex **vpl); 335 extern void temp_lit_floor_umap 336 (grs_bitmap *bm, int n, grs_vertex **vpl); 337 extern void temp_clut_floor_umap 338 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 339 340 extern void temp_per_umap 341 (grs_bitmap *bm, int n, grs_vertex **vpl); 342 extern void temp_per_map 343 (grs_bitmap *bm, int n, grs_vertex **vpl); 344 extern void temp_lit_per_umap 345 (grs_bitmap *bm, int n, grs_vertex **vpl); 346 extern void temp_clut_per_umap 347 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 348 extern void temp_clut_per_map 349 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 350 351 extern void temp_scale_umap 352 (grs_bitmap *bm, short x, short y, short w, short h); 353 extern int temp_scale_map 354 (grs_bitmap *bm, short x, short y, short w, short h); 355 extern void temp_clut_scale_umap 356 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 357 extern int temp_clut_scale_map 358 (grs_bitmap *bm, short x, short y, short w, short h, uchar *cl); 359 360 extern void gen_per_umap 361 (grs_bitmap *bm, int n, grs_vertex **vpl); 362 extern int gen_per_map 363 (grs_bitmap *bm, int n, grs_vertex **vpl); 364 extern void gen_lit_per_umap 365 (grs_bitmap *bm, int n, grs_vertex **vpl); 366 extern int gen_lit_per_map 367 (grs_bitmap *bm, int n, grs_vertex **vpl); 368 extern void gen_clut_per_umap 369 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 370 extern int gen_clut_per_map 371 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 372 extern void gen_solid_per_umap 373 (grs_bitmap *bm, int n, grs_vertex **vpl, int c); 374 extern int gen_solid_per_map 375 (grs_bitmap *bm, int n, grs_vertex **vpl, int c); 376 377 extern void gen_rsd8_per_umap 378 (grs_bitmap *bm, int n, grs_vertex **vpl); 379 extern int gen_rsd8_per_map 380 (grs_bitmap *bm, int n, grs_vertex **vpl); 381 extern void gen_rsd8_lit_per_umap 382 (grs_bitmap *bm, int n, grs_vertex **vpl); 383 extern int gen_rsd8_lit_per_map 384 (grs_bitmap *bm, int n, grs_vertex **vpl); 385 extern void gen_rsd8_clut_per_umap 386 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 387 extern int gen_rsd8_clut_per_map 388 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 389 390 extern void gen_lin_lit_utmap 391 (int n, fix *vlist, grs_bitmap *bm, fix *m, fix *l); 392 extern int gen_lin_lit_tmap 393 (int n, fix *vlist, grs_bitmap *bm, fix *m, fix *l); 394 extern void gen_bilin_lit_utmap 395 (int n, fix *vlist, grs_bitmap *bm, fix *m, fix *l); 396 extern int gen_bilin_lit_tmap 397 (int n, fix *vlist, grs_bitmap *bm, fix *m, fix *l); 398 399 extern void gen_flat8_lin_umap 400 (grs_bitmap *bm, int n, grs_vertex **vpl); 401 extern int gen_flat8_lin_map 402 (grs_bitmap *bm, int n, grs_vertex **vpl); 403 extern void gen_flat24_lin_umap 404 (grs_bitmap *bm, int n, grs_vertex **vpl); 405 extern int gen_flat24_lin_map 406 (grs_bitmap *bm, int n, grs_vertex **vpl); 407 extern void gen_rsd8_lin_umap 408 (grs_bitmap *bm, int n, grs_vertex **vpl); 409 extern int gen_rsd8_lin_map 410 (grs_bitmap *bm, int n, grs_vertex **vpl); 411 extern void gen_tluc8_lin_umap 412 (grs_bitmap *bm, int n, grs_vertex **vpl); 413 extern int gen_tluc8_lin_map 414 (grs_bitmap *bm, int n, grs_vertex **vpl); 415 416 extern void gen_lit_lin_umap 417 (int n, grs_bitmap *bm, grs_vertex **vpl); 418 extern int gen_lit_lin_map 419 (int n, grs_bitmap *bm, grs_vertex **vpl); 420 421 extern void gen_clut_lin_umap 422 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 423 extern int gen_clut_lin_map 424 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 425 extern void gen_tluc8_clut_lin_umap 426 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 427 extern void gen_flat8_solid_lin_umap 428 (grs_bitmap *bm, int n, grs_vertex **vpl, int c); 429 extern int gen_flat8_solid_lin_map 430 (grs_bitmap *bm, int n, grs_vertex **vpl, int c); 431 432 extern void gen_rsd8_lit_lin_umap 433 (int n, grs_bitmap *bm, grs_vertex **vpl); 434 extern int gen_rsd8_lit_lin_map 435 (int n, grs_bitmap *bm, grs_vertex **vpl); 436 437 extern void gen_rsd8_clut_lin_umap 438 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 439 extern int gen_rsd8_clut_lin_map 440 (grs_bitmap *bm, int n, grs_vertex **vpl, uchar *cl); 441 442 extern void gen_int_ucircle (short x, short y, short r); 443 extern int gen_int_circle (short x0, short y0, short r); 444 extern void gen_fix_ucircle (void); 445 extern void gen_fix_circle (void); 446 extern void gen_int_udisk (short x0, short y0, short r); 447 extern void gen_int_disk (short x0, short y0, short r); 448 extern void gen_fix_udisk (void); 449 extern void gen_fix_disk (void); 450 extern void gen_int_urod (void); 451 extern void gen_int_rod (void); 452 extern void gen_fix_urod (void); 453 extern void gen_fix_rod (void); 454 455 extern void gen_rsd8_solid_ubitmap (grs_bitmap *bm, short x, short y, int c); 456 extern int gen_rsd8_solid_bitmap (grs_bitmap *bm, short x, short y, int c); 457 458 /* bitmap drawing functions. */ 459 extern void gen_mono_ubitmap (grs_bitmap *bm, short x, short y); 460 extern int gen_mono_bitmap (grs_bitmap *bm, short x, short y); 461 extern void gen_flat8_ubitmap (grs_bitmap *bm, short x, short y); 462 extern int gen_flat8_bitmap (grs_bitmap *bm, short x, short y); 463 extern void gen_flat24_ubitmap (grs_bitmap *bm, short x0, short y0); 464 extern int gen_flat24_bitmap (grs_bitmap *bm, short x0, short y0); 465 extern void gri_gen_rsd8_ubitmap (grs_bitmap *bm, short x, short y); 466 extern int gri_gen_rsd8_bitmap (grs_bitmap *bm, short x, short y); 467 extern void unpack_rsd8_ubitmap (grs_bitmap *bm, short x, short y); 468 extern int unpack_rsd8_bitmap (grs_bitmap *bm, short x, short y); 469 extern void gen_tluc8_ubitmap (grs_bitmap *bm, short x, short y); 470 extern int gen_tluc8_bitmap (grs_bitmap *bm, short x, short y); 471 472 /* clut bitmap drawing functions. */ 473 extern void gen_flat8_clut_ubitmap (grs_bitmap *bm, short x, short y, uchar *clut); 474 extern int gen_flat8_clut_bitmap (grs_bitmap *bm, short x, short y, uchar *clut); 475 extern void unpack_rsd8_clut_ubitmap (grs_bitmap *bm, short x, short y, uchar *clut); 476 extern int unpack_rsd8_clut_bitmap (grs_bitmap *bm, short x, short y, uchar *clut); 477 478 /* bitmap get functions. */ 479 extern void gen_get_flat8_ubitmap (grs_bitmap *bm, short x, short y); 480 extern int gen_get_flat8_bitmap (grs_bitmap *bm, short x, short y); 481 482 /* bitmap horizontal flip routines. */ 483 extern void gen_hflip_flat8_ubitmap (grs_bitmap *bm, short x, short y); 484 extern int gen_hflip_flat8_bitmap (grs_bitmap *bm, short x, short y); 485 486 /* bitmap color lookup table horizontal flip routines. */ 487 extern void gen_clut_hflip_flat8_ubitmap (grs_bitmap *bm, short x, short y, uchar *cl); 488 extern int gen_clut_hflip_flat8_bitmap (grs_bitmap *bm, short x, short y, uchar *cl); 489 490 extern void gen_font_ustring (grs_font *f, char *s, short x, short y); 491 extern int gen_font_string (grs_font *f, char *s, short x, short y); 492 493 extern void gen_font_scale_ustring (grs_font *f, char *s, short x, short y, short w, short h); 494 extern int gen_font_scale_string (grs_font *f, char *s, short x, short y, short w, short h); 495 496 extern void gen_font_uchar (grs_font *f, char c, short x, short y); 497 extern int gen_font_char (grs_font *f, char c, short x, short y); 498 499 //extern void gen_opaque_ubitmap (grs_bitmap *bm, short x, short y); 500 501 #endif /* !__GENERAL_H */ 502