![]() |
Jo Engine
2024.04.28
Jo Sega Saturn Engine
|
Jo Engine VDP2 definition and tools. More...
Go to the source code of this file.
Macros | |
| #define | jo_nbg2_printf(X, Y, ...) |
| NBG2 printf implementation (jo_set_nbg2_8bits_font must be called before) More... | |
| #define | jo_nbg3_printf(X, Y, ...) |
| NBG3 printf implementation (jo_set_nbg3_8bits_font must be called before) More... | |
| #define | JO_NBG1_SCROLL_TABLE_SIZE |
| 512 entries. One offset for each line because the background size is a 512x512 pixels by default. More... | |
| #define | JO_NBG0_SCROLL_TABLE_SIZE |
| 512 entries. One offset for each line because the background size is a 512x512 pixels by default. More... | |
Functions | |
| int | sprintf (char *str, const char *format,...) |
| sprintf prototypes More... | |
| void | jo_set_displayed_screens (const jo_scroll_screen scroll_screen_flags) |
| Set displayed screens. More... | |
| void | jo_set_default_background_color (const jo_color background_color) |
| Set default background color. More... | |
| void | jo_nbg2_print (int x, int y, char *str) |
| NBG2 Print implementation. More... | |
| void | jo_vdp2_set_nbg2_8bits_font (jo_img_8bits *img, char *mapping, int palette_id, bool vertical_flip, bool enabled) |
| Set 8 bits NBG2 font image. More... | |
| void | jo_nbg2_clear (void) |
| Clear NBG2. More... | |
| void | jo_nbg3_print (int x, int y, char *str) |
| NBG3 Print implementation. More... | |
| void | jo_vdp2_set_nbg3_8bits_font (jo_img_8bits *img, char *mapping, int palette_id, bool vertical_flip, bool enabled) |
| Set 8 bits NBG3 font image. More... | |
| void | jo_nbg3_clear (void) |
| Clear NBG3. More... | |
| void | jo_vdp2_set_nbg1_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip) |
| Add 8 bits NBG1 image. More... | |
| void | jo_vdp2_set_nbg0_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
| Set 8 bits NBG0 image. More... | |
| void | jo_vdp2_set_nbg2_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
| Set 8 bits NBG2 image. More... | |
| void | jo_vdp2_set_nbg3_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
| Set 8 bits NBG3 image. More... | |
| void | jo_vdp2_set_nbg1_image (const jo_img *const img, const unsigned short left, const unsigned short top) |
| Set NBG1 bitmap image. More... | |
| void | jo_vdp2_clear_bitmap_nbg1 (const jo_color color) |
| Clear NBG1 bitmap. More... | |
| static __jo_force_inline void | jo_vdp2_move_nbg1 (const int x, const int y) |
| Move NBG1 (scrolling) More... | |
| static __jo_force_inline void | jo_vdp2_zoom_nbg1f (const float width_factor, const float height_factor) |
| Zoom NBG1 width and height independently. More... | |
| static __jo_force_inline void | jo_vdp2_zoom_nbg1 (const float factor) |
| Zoom NBG1. More... | |
| static __jo_force_inline void | jo_vdp2_move_nbg0 (const int x, const int y) |
| Move NBG0 (scrolling) More... | |
| static __jo_force_inline void | jo_vdp2_zoom_nbg0f (const float width_factor, const float height_factor) |
| Zoom NBG0 width and height independently. More... | |
| static __jo_force_inline void | jo_vdp2_zoom_nbg0 (const float factor) |
| Zoom NBG0. More... | |
| void | jo_vdp2_draw_bitmap_nbg1_line (int x0, int y0, int x1, int y1, const jo_color color) |
| Draw a NBG1 line using Bresenham's line algorithm. More... | |
| static __jo_force_inline void | jo_vdp2_draw_bitmap_nbg1_square (const int x, const int y, const short width, const short height, const jo_color color) |
| Draw a square on NBG1. More... | |
| static __jo_force_inline void | jo_vdp2_put_pixel_bitmap_nbg1 (const int x, const int y, const jo_color color) |
| Put pixel in NBG1 using color. More... | |
| static __jo_force_inline void | jo_vdp2_put_pixel_bitmap_nbg1_rgb (const int x, const int y, unsigned char r, unsigned char g, unsigned char b) |
| Put pixel in NBG1 using composite color. More... | |
| void | jo_vdp2_enable_rbg0 (void) |
| Enable 3D planes. More... | |
| void | jo_vdp2_disable_rbg0 (void) |
| Disable 3D planes. More... | |
| void | jo_vdp2_set_rbg0_plane_a_8bits_image (jo_img_8bits *img, int palette_id, bool repeat, bool vertical_flip) |
| Setup plane A. More... | |
| void | jo_vdp2_set_rbg0_plane_b_8bits_image (jo_img_8bits *img, int palette_id, bool repeat, bool vertical_flip) |
| Setup plane B. More... | |
| void | jo_vdp2_replace_rbg0_plane_a_8bits_image (jo_img_8bits *img, bool vertical_flip) |
| Replace plane A image. More... | |
| void | jo_vdp2_replace_rbg0_plane_b_8bits_image (jo_img_8bits *img, bool vertical_flip) |
| Replace plane B image. More... | |
| static __jo_force_inline void | jo_vdp2_draw_rbg0_plane_a (const bool use_scroll_format_matrix) |
| Draw plane A. More... | |
| static __jo_force_inline void | jo_vdp2_draw_rbg0_plane_b (const bool use_scroll_format_matrix) |
| Draw plane A. More... | |
| static __jo_force_inline void | jo_enable_screen_mozaic (const jo_scroll_screen screens, const short x, const short y) |
| Enable mozaic effect for scroll screen. More... | |
| static __jo_force_inline void | jo_disable_all_screen_mozaic (void) |
| Disable mozaic effect for all scroll screen. More... | |
| int * | jo_vdp2_enable_nbg1_line_scroll (void) |
| Enable NBG1 horizontal line scroll effect. More... | |
| void | jo_vdp2_disable_nbg1_line_scroll (void) |
| Disable NBG1 horizontal line scroll effect. More... | |
| void | jo_vdp2_compute_nbg1_line_scroll (unsigned short offset) |
| Compute NBG1 horizontal line scroll effect using specific offset. More... | |
| int * | jo_vdp2_enable_nbg0_line_scroll (void) |
| Enable NBG0 horizontal line scroll effect. More... | |
| void | jo_vdp2_disable_nbg0_line_scroll (void) |
| Disable NBG0 horizontal line scroll effect. More... | |
| void | jo_vdp2_compute_nbg0_line_scroll (unsigned short offset) |
| Compute NBG0 horizontal line scroll effect using specific offset. More... | |
| void | jo_disable_all_screens_transparency (void) |
| Disable all screens transparency. More... | |
| void | jo_enable_screen_transparency (const jo_scroll_screen screen, const unsigned short transparency_level) |
| Enable screen transparency. More... | |
Variables | |
| char | __jo_sprintf_buf [JO_PRINTF_BUF_SIZE] |
| Internal sprintf buffer. More... | |
Jo Engine VDP2 definition and tools.
| #define JO_NBG0_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default.
| #define JO_NBG1_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default.
| #define jo_nbg2_printf | ( | X, | |
| Y, | |||
| ... | |||
| ) |
NBG2 printf implementation (jo_set_nbg2_8bits_font must be called before)
| X | Horizontal position from top left screen corner |
| Y | Vertical position from top left screen corner |
| ... | Arguments |
| #define jo_nbg3_printf | ( | X, | |
| Y, | |||
| ... | |||
| ) |
NBG3 printf implementation (jo_set_nbg3_8bits_font must be called before)
| X | Horizontal position from top left screen corner |
| Y | Vertical position from top left screen corner |
| ... | Arguments |
|
static |
Disable mozaic effect for all scroll screen.
| void jo_disable_all_screens_transparency | ( | void | ) |
Disable all screens transparency.
|
static |
Enable mozaic effect for scroll screen.
| screens | Scroll screens (You can pass multiple value using pipe(|). Example: JO_NBG1_SCREEN|JO_NBG2_SCREEN) |
| x | Horizontal mozaic size [1-16] |
| y | Vertical mozaic size [1-16] |
| void jo_enable_screen_transparency | ( | const jo_scroll_screen | screen, |
| const unsigned short | transparency_level | ||
| ) |
Enable screen transparency.
| screen | Scroll screen |
| transparency_level | Transparency Level 0 (fully visible) to 31 (almost invisible) |
| void jo_nbg2_clear | ( | void | ) |
Clear NBG2.
| void jo_nbg2_print | ( | int | x, |
| int | y, | ||
| char * | str | ||
| ) |
NBG2 Print implementation.
| x | Horizontal position from top left screen corner |
| y | Vertical position from top left screen corner |
| str | String |
| void jo_nbg3_clear | ( | void | ) |
Clear NBG3.
| void jo_nbg3_print | ( | int | x, |
| int | y, | ||
| char * | str | ||
| ) |
NBG3 Print implementation.
| x | Horizontal position from top left screen corner |
| y | Vertical position from top left screen corner |
| str | String |
| void jo_set_default_background_color | ( | const jo_color | background_color | ) |
Set default background color.
| background_color | Color |
| void jo_set_displayed_screens | ( | const jo_scroll_screen | scroll_screen_flags | ) |
Set displayed screens.
| scroll_screen_flags | Scroll screens (You can pass multiple value using pipe(|). Example: JO_NBG1_SCREEN|JO_NBG2_SCREEN) |
| void jo_vdp2_clear_bitmap_nbg1 | ( | const jo_color | color | ) |
Clear NBG1 bitmap.
| color | Clear color |
| void jo_vdp2_compute_nbg0_line_scroll | ( | unsigned short | offset | ) |
Compute NBG0 horizontal line scroll effect using specific offset.
| offset | Offset in scroll table returned by jo_vdp2_enable_nbg1_line_scroll() |
| void jo_vdp2_compute_nbg1_line_scroll | ( | unsigned short | offset | ) |
Compute NBG1 horizontal line scroll effect using specific offset.
| offset | Offset in scroll table returned by jo_vdp2_enable_nbg1_line_scroll() |
| void jo_vdp2_disable_nbg0_line_scroll | ( | void | ) |
Disable NBG0 horizontal line scroll effect.
| void jo_vdp2_disable_nbg1_line_scroll | ( | void | ) |
Disable NBG1 horizontal line scroll effect.
| void jo_vdp2_disable_rbg0 | ( | void | ) |
Disable 3D planes.
| void jo_vdp2_draw_bitmap_nbg1_line | ( | int | x0, |
| int | y0, | ||
| int | x1, | ||
| int | y1, | ||
| const jo_color | color | ||
| ) |
Draw a NBG1 line using Bresenham's line algorithm.
| x0 | horizontal location of the beginning of the line |
| y0 | vertical location of the beginning of the line |
| x1 | horizontal location of the end of the line |
| y1 | vertical location of the end of the line |
| color | Color (ex: JO_COLOR_Red) |
|
static |
Draw a square on NBG1.
| x | Square horizontal location |
| y | Square vertical location |
| width | Square width |
| height | Square height |
| color | Color (ex: JO_COLOR_Red) |
|
static |
Draw plane A.
| use_scroll_format_matrix | Convert current matrix to scroll format matrix |
|
static |
Draw plane A.
| use_scroll_format_matrix | Convert current matrix to scroll format matrix |
| int* jo_vdp2_enable_nbg0_line_scroll | ( | void | ) |
Enable NBG0 horizontal line scroll effect.
| int* jo_vdp2_enable_nbg1_line_scroll | ( | void | ) |
Enable NBG1 horizontal line scroll effect.
| void jo_vdp2_enable_rbg0 | ( | void | ) |
Enable 3D planes.
|
static |
Move NBG0 (scrolling)
| x | horizontal location |
| y | vertical location |
|
static |
Move NBG1 (scrolling)
| x | horizontal location |
| y | vertical location |
|
static |
Put pixel in NBG1 using color.
| x | horizontal location |
| y | vertical location |
| color | Color (ex: JO_COLOR_Red) |
|
static |
Put pixel in NBG1 using composite color.
| x | horizontal location |
| y | vertical location |
| r | Red color component |
| g | Green color component |
| b | Blue color component |
| void jo_vdp2_replace_rbg0_plane_a_8bits_image | ( | jo_img_8bits * | img, |
| bool | vertical_flip | ||
| ) |
Replace plane A image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| vertical_flip | Flip image vertically |
| void jo_vdp2_replace_rbg0_plane_b_8bits_image | ( | jo_img_8bits * | img, |
| bool | vertical_flip | ||
| ) |
Replace plane B image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| vertical_flip | Flip image vertically |
| void jo_vdp2_set_nbg0_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | vertical_flip, | ||
| bool | enabled | ||
| ) |
Set 8 bits NBG0 image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| enabled | Display NBG0 now |
| void jo_vdp2_set_nbg1_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | vertical_flip | ||
| ) |
Add 8 bits NBG1 image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| void jo_vdp2_set_nbg1_image | ( | const jo_img *const | img, |
| const unsigned short | left, | ||
| const unsigned short | top | ||
| ) |
Set NBG1 bitmap image.
| img | Pointer to an image struct |
| left | Left location |
| top | Top location |
| void jo_vdp2_set_nbg2_8bits_font | ( | jo_img_8bits * | img, |
| char * | mapping, | ||
| int | palette_id, | ||
| bool | vertical_flip, | ||
| bool | enabled | ||
| ) |
Set 8 bits NBG2 font image.
| img | 8 bits 255 colors max image. (height must be a multiple of 8). Width must be 8. |
| mapping | Image pattern : " 0123456789ABCDEFGH...". The first character must be an empty space. |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| enabled | Display NBG2 now |
| void jo_vdp2_set_nbg2_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | vertical_flip, | ||
| bool | enabled | ||
| ) |
Set 8 bits NBG2 image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| enabled | Display NBG2 now |
| void jo_vdp2_set_nbg3_8bits_font | ( | jo_img_8bits * | img, |
| char * | mapping, | ||
| int | palette_id, | ||
| bool | vertical_flip, | ||
| bool | enabled | ||
| ) |
Set 8 bits NBG3 font image.
| img | 8 bits 255 colors max image. (height must be a multiple of 8). Width must be 8 |
| mapping | Image pattern : "0123456789ABCDEFGH...". The first character must be an empty space. |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| enabled | Display NBG2 now |
| void jo_vdp2_set_nbg3_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | vertical_flip, | ||
| bool | enabled | ||
| ) |
Set 8 bits NBG3 image.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| vertical_flip | Flip image vertically |
| enabled | Display NBG3 now |
| void jo_vdp2_set_rbg0_plane_a_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | repeat, | ||
| bool | vertical_flip | ||
| ) |
Setup plane A.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| repeat | Repeat the plane infinitely. |
| vertical_flip | Flip image vertically |
| void jo_vdp2_set_rbg0_plane_b_8bits_image | ( | jo_img_8bits * | img, |
| int | palette_id, | ||
| bool | repeat, | ||
| bool | vertical_flip | ||
| ) |
Setup plane B.
| img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
| palette_id | palette id from TGA (see also jo_palette) |
| repeat | Repeat the plane infinitely. |
| vertical_flip | Flip image vertically |
|
static |
Zoom NBG0.
| factor | Zoom factor |
|
static |
Zoom NBG0 width and height independently.
| width_factor | Width zoom factor |
| height_factor | Height zoom factor |
|
static |
Zoom NBG1.
| factor | Zoom factor |
|
static |
Zoom NBG1 width and height independently.
| width_factor | Width zoom factor |
| height_factor | Height zoom factor |
| int sprintf | ( | char * | str, |
| const char * | format, | ||
| ... | |||
| ) |
sprintf prototypes
| str | String |
| format | Format string |
| ... | Arguments |
| char __jo_sprintf_buf[JO_PRINTF_BUF_SIZE] |
Internal sprintf buffer.
1.8.18