4bpp tiled surfaces, column major
[Surface functions]
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. |
Detailed Description
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.
Function Documentation
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.
- Parameters:
-
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.
- Note:
- The rectangle will be clipped to both src and dst.
void schr4c_floodfill | ( | const TSurface * | dst, | |
int | x, | |||
int | y, | |||
u32 | clr | |||
) |
Floodfill an area of the same color with new color clr.
- Parameters:
-
dst Destination surface. x X-coordinate. y Y-coordinate; clr Color.
- Note:
- This routines is probably very, very slow.
void schr4c_frame | ( | const TSurface * | dst, | |
int | left, | |||
int | top, | |||
int | right, | |||
int | bottom, | |||
u32 | clr | |||
) |
Draw a rectangle on a 4bpp tiled surface.
- Parameters:
-
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.
- Note:
- Does normalization, but not bounds checks.
PONDER: RB in- or exclusive?
u32 schr4c_get_pixel | ( | const TSurface * | src, | |
int | x, | |||
int | y | |||
) |
Get the pixel value of src at (x, y).
void schr4c_hline | ( | const TSurface * | dst, | |
int | x1, | |||
int | y, | |||
int | x2, | |||
u32 | clr | |||
) |
Draw a horizontal line on a 4bpp tiled surface.
- Parameters:
-
dst Destination surface. x1 First X-coord. y Y-coord. x2 Second X-coord. clr Color.
- Note:
- Does normalization, but not bounds checks.
void schr4c_line | ( | const TSurface * | dst, | |
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
u32 | clr | |||
) |
Draw a line on a 4bpp tiled surface.
- Parameters:
-
dst Destination surface. x1 First X-coord. y1 First Y-coord. x2 Second X-coord. y2 Second Y-coord. clr Color.
- Note:
- Does normalization, but not bounds checks.
void schr4c_plot | ( | const TSurface * | dst, | |
int | x, | |||
int | y, | |||
u32 | clr | |||
) |
Plot a single pixel on a 4bpp tiled surface.
- Parameters:
-
dst Destination surface. x X-coord. y Y-coord. clr Color.
- Note:
- Fairly slow. Inline plotting functionality if possible.
void schr4c_prep_map | ( | const TSurface * | srf, | |
u16 * | map, | |||
u16 | se0 | |||
) |
Prepare a screen-entry map for use with chr4.
- Parameters:
-
srf Surface with size information. map Screen-blocked map to initialize. se0 Additive base screen-entry.
void schr4c_rect | ( | const TSurface * | dst, | |
int | left, | |||
int | top, | |||
int | right, | |||
int | bottom, | |||
u32 | clr | |||
) |
Render a rectangle on a 4bpp tiled canvas.
- Parameters:
-
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.
void schr4c_vline | ( | const TSurface * | dst, | |
int | x, | |||
int | y1, | |||
int | y2, | |||
u32 | clr | |||
) |
Draw a vertical line on a 4bpp tiled surface.
- Parameters:
-
dst Destination surface. x X-coord. y1 First Y-coord. y2 Second Y-coord. clr Color.
- Note:
- Does normalization, but not bounds checks.
Generated on Mon Aug 25 17:03:57 2008 for libtonc by
![doxygen](doxygen.png)