libtonc
|
Functions | |
u32 | schr4c_get_pixel (const TSurface *src, int x, int y) |
Get the pixel value of src at (x, y). | |
void | schr4c_plot (const TSurface *dst, int x, int y, u32 clr) |
Plot a single pixel on a 4bpp tiled surface. | |
void | schr4c_hline (const TSurface *dst, int x1, int y, int x2, u32 clr) |
Draw a horizontal line on a 4bpp tiled surface. | |
void | schr4c_vline (const TSurface *dst, int x, int y1, int y2, u32 clr) |
Draw a vertical line on a 4bpp tiled surface. | |
void | schr4c_line (const TSurface *dst, int x1, int y1, int x2, int y2, u32 clr) |
Draw a line on a 4bpp tiled surface. | |
void | schr4c_rect (const TSurface *dst, int left, int top, int right, int bottom, u32 clr) |
Render a rectangle on a 4bpp tiled canvas. | |
void | schr4c_frame (const TSurface *dst, int left, int top, int right, int bottom, u32 clr) |
Draw a rectangle on a 4bpp tiled surface. | |
void | schr4c_blit (const TSurface *dst, int dstX, int dstY, uint width, uint height, const TSurface *src, int srcX, int srcY) |
Blitter for 4bpp tiled surfaces. Copies a rectangle from one surface to another. | |
void | schr4c_floodfill (const TSurface *dst, int x, int y, u32 clr) |
Floodfill an area of the same color with new color clr. | |
void | schr4c_prep_map (const TSurface *srf, u16 *map, u16 se0) |
Prepare a screen-entry map for use with chr4. | |
u32 * | schr4c_get_ptr (const TSurface *srf, int x, int y) |
Special pointer getter for chr4: start of in-tile line. | |
INLINE void | _schr4c_plot (const TSurface *dst, int x, int y, u32 clr) |
Plot a single pixel on a 4bpp tiled,col-jamor surface; inline version. | |
INLINE u32 | _schr4c_get_pixel (const TSurface *src, int x, int y) |
Get the pixel value of src at (x, y); inline version. | |
A (4bpp) tiled surface is formed when each tilemap entry references a unique tile (this is done by schr4c_prep_map()). The pixels on the tiles will then uniquely map onto pixels on the screen.
There are two ways of map-layout here: row-major indexing and column-major indexing. The difference if is that tile 1 is to the right of tile 0 in the former, but under it in the latter.
30x20t screen: Row-major: 0 1 2 3 ... 30 31 32 33 ... 60 61 62 63 ... Column-major: 0 20 40 60 ... 1 21 41 61 ... 2 22 41 62 ...
With 4bpp tiles, the column-major version makes the y coordinate match up nicely with successive words. For this reason, column-major is preferred over row-major.
void schr4c_blit | ( | const TSurface * | dst, |
int | dstX, | ||
int | dstY, | ||
uint | width, | ||
uint | height, | ||
const TSurface * | src, | ||
int | srcX, | ||
int | srcY | ||
) |
Blitter for 4bpp tiled surfaces. Copies a rectangle from one surface to another.
dst | Destination surface. |
dstX | Left coord of rectangle on dst. |
dstY | Top coord of rectangle on dst. |
width | Width of rectangle to blit. |
height | Height of rectangle to blit. |
src | Source surface. |
srcX | Left coord of rectangle on src. |
srcY | Top coord of rectangle on src. |
References chr4_lmask(), chr4_rmask(), memcpy32(), min(), and schr4c_get_ptr().
void schr4c_floodfill | ( | const TSurface * | dst, |
int | x, | ||
int | y, | ||
u32 | clr | ||
) |
Floodfill an area of the same color with new color clr.
dst | Destination surface. |
x | X-coordinate. |
y | Y-coordinate; |
clr | Color. |
References _schr4c_get_pixel(), and schr4c_floodfill_internal().
void schr4c_frame | ( | const TSurface * | dst, |
int | left, | ||
int | top, | ||
int | right, | ||
int | bottom, | ||
u32 | clr | ||
) |
Draw a rectangle on a 4bpp tiled surface.
dst | Destination surface. |
left | Left side of rectangle; |
top | Top side of rectangle. |
right | Right side of rectangle. |
bottom | Bottom side of rectangle. |
clr | Color. |
References schr4c_hline(), and schr4c_vline().
void schr4c_hline | ( | const TSurface * | dst, |
int | x1, | ||
int | y, | ||
int | x2, | ||
u32 | clr | ||
) |
Draw a horizontal line on a 4bpp tiled surface.
dst | Destination surface. |
x1 | First X-coord. |
y | Y-coord. |
x2 | Second X-coord. |
clr | Color. |
References chr4_lmask(), chr4_rmask(), octup(), and schr4c_get_ptr().
Referenced by schr4c_floodfill_internal(), schr4c_frame(), and schr4c_line().
void schr4c_line | ( | const TSurface * | dst, |
int | x1, | ||
int | y1, | ||
int | x2, | ||
int | y2, | ||
u32 | clr | ||
) |
Draw a line on a 4bpp tiled surface.
dst | Destination surface. |
x1 | First X-coord. |
y1 | First Y-coord. |
x2 | Second X-coord. |
y2 | Second Y-coord. |
clr | Color. |
References schr4c_hline(), schr4c_plot(), and schr4c_vline().
void schr4c_plot | ( | const TSurface * | dst, |
int | x, | ||
int | y, | ||
u32 | clr | ||
) |
Plot a single pixel on a 4bpp tiled surface.
dst | Destination surface. |
x | X-coord. |
y | Y-coord. |
clr | Color. |
Referenced by schr4c_line().
void schr4c_prep_map | ( | const TSurface * | srf, |
u16 * | map, | ||
u16 | se0 | ||
) |
Prepare a screen-entry map for use with chr4.
srf | Surface with size information. |
map | Screen-blocked map to initialize. |
se0 | Additive base screen-entry. |
Referenced by tte_init_chr4c().
void schr4c_rect | ( | const TSurface * | dst, |
int | left, | ||
int | top, | ||
int | right, | ||
int | bottom, | ||
u32 | clr | ||
) |
Render a rectangle on a 4bpp tiled canvas.
dst | Destination surface. |
left | Left side of rectangle; |
top | Top side of rectangle. |
right | Right side of rectangle. |
bottom | Bottom side of rectangle. |
clr | Color-index. |
References chr4c_colset(), memset32(), min(), octup(), and schr4c_get_ptr().
Referenced by chr4c_erase().
void schr4c_vline | ( | const TSurface * | dst, |
int | x, | ||
int | y1, | ||
int | y2, | ||
u32 | clr | ||
) |
Draw a vertical line on a 4bpp tiled surface.
dst | Destination surface. |
x | X-coord. |
y1 | First Y-coord. |
y2 | Second Y-coord. |
clr | Color. |
References schr4c_get_ptr().
Referenced by schr4c_frame(), and schr4c_line().