Jo Engine 2026.11.1
Jo Sega Saturn Engine
Loading...
Searching...
No Matches
types.h File Reference

Jo Engine Types. More...

Go to the source code of this file.

Data Structures

struct  jo_pos2D
 2D position More...
struct  jo_pos2D_fixed
 2D position using fixed number More...
struct  jo_pos3D
 3D position More...
struct  jo_pos3Df
 3D position using floating numbers More...
struct  jo_pos3D_fixed
 3D position using fixed numbers More...
struct  jo_rot3D
 3D rotation angles More...
struct  jo_rot3Df
 3D rotation angles More...
struct  jo_2d_object_attributes
 Object for 2D manipulation (storyboard) using fixed number. More...
struct  jo_3d_object_attributes
 Object for 3D manipulation (storyboard) using fixed number. More...
struct  jo_vectorf
 Vector for 3D computation using floating numbers. More...
struct  jo_vector
 Vector for 3D computation using integer. More...
struct  jo_vector_fixed
 Vector for 3D computation using fixed number. More...
struct  jo_vector2_fixed
 Vector for 2D computation using fixed number. More...
struct  jo_vector4_fixed
 Vector4 for 3D computation using fixed number. More...
union  jo_matrixf
 4x4 MATRIX for 3D computation using floating numbers More...
union  jo_matrix
 4x4 MATRIX for 3D computation using fixed number More...
struct  __jo_size
 Size struct. More...
struct  jo_texture_definition
 Texture definition. More...
struct  jo_picture_definition
 Picture definition. More...
struct  jo_img
 15 bits image struct More...
struct  jo_img_8bits
 8 bits image struct More...
struct  jo_raw_img
 Raw image struct. More...
struct  jo_palette
 Palette contents struct. More...
struct  jo_tile
 Struct of one tile (pos and size). More...
struct  jo_sprite_attributes
 Sprite attributes. More...
union  jo_IEEE754
 Float IEEE 754 format. More...
struct  jo_file
 File definition. More...

Macros

#define __jo_force_inline
 force inline attribute (and prevent Doxygen prototype parsing bug)

Typedefs

typedef unsigned short jo_color
 15 bits color type
typedef int jo_fixed
 Fixed point Q16.16 number.
typedef short jo_angle
 Angle.
typedef struct __jo_size jo_size
 Size struct.

Enumerations

enum  jo_8_directions {
  NONE , LEFT , RIGHT , UP ,
  DOWN , UP_LEFT , UP_RIGHT , DOWN_LEFT ,
  DOWN_RIGHT
}
 8 directions definition More...
enum  jo_scroll_screen {
  JO_NBG0_SCREEN , JO_NBG1_SCREEN , JO_NBG2_SCREEN , JO_NBG3_SCREEN ,
  JO_RBG0_SCREEN , JO_BACK_SCREEN , JO_SPRITE_SCREEN , JO_VDP2_3D_PLANE_SCREEN ,
  JO_LNCL_SCREEN , JO_ALL_SCROLL_SCREEN
}
 Sega Saturn Scroll Screen Ids. More...

Detailed Description

Jo Engine Types.

Author
Johannes Fetz
Bug
No known bugs.

Data Structure Documentation

◆ jo_pos2D

struct jo_pos2D

2D position

Data Fields
int x
int y

◆ jo_pos2D_fixed

struct jo_pos2D_fixed

2D position using fixed number

Data Fields
jo_fixed x
jo_fixed y

◆ jo_pos3D

struct jo_pos3D

3D position

Remarks
Inherits from jo_pos2D (cast friendly)
Data Fields
int x
int y
int z

◆ jo_pos3Df

struct jo_pos3Df

3D position using floating numbers

Data Fields
float x
float y
float z

◆ jo_pos3D_fixed

struct jo_pos3D_fixed

3D position using fixed numbers

Data Fields
jo_fixed x
jo_fixed y
jo_fixed z

◆ jo_rot3D

struct jo_rot3D

3D rotation angles

Data Fields
int rx
int ry
int rz

◆ jo_rot3Df

struct jo_rot3Df

3D rotation angles

Data Fields
float rx
float ry
float rz

◆ jo_2d_object_attributes

struct jo_2d_object_attributes

Object for 2D manipulation (storyboard) using fixed number.

Remarks
Inherits from jo_pos3D (cast friendly)
Data Fields
jo_pos3D
short rz

◆ jo_3d_object_attributes

struct jo_3d_object_attributes

Object for 3D manipulation (storyboard) using fixed number.

Remarks
Inherits from jo_2d_object_attributes (cast friendly)
Data Fields
jo_2d_object_attributes
short rx
short ry

◆ jo_vectorf

struct jo_vectorf

Vector for 3D computation using floating numbers.

Data Fields
float x
float y
float z

◆ jo_vector

struct jo_vector

Vector for 3D computation using integer.

Remarks
Inherits from jo_pos3D (cast friendly)
Data Fields
jo_pos3D

◆ jo_vector_fixed

struct jo_vector_fixed

Vector for 3D computation using fixed number.

Remarks
Inherits from jo_pos3D_fixed (cast friendly)
Data Fields
jo_pos3D_fixed

◆ jo_vector2_fixed

struct jo_vector2_fixed

Vector for 2D computation using fixed number.

Data Fields
jo_fixed x
jo_fixed y

◆ jo_vector4_fixed

struct jo_vector4_fixed

Vector4 for 3D computation using fixed number.

Remarks
Inherits from jo_pos3D_fixed (cast friendly)
Data Fields
jo_pos3D_fixed
jo_fixed w

◆ __jo_size

struct __jo_size

Size struct.

Data Fields
unsigned short height
unsigned short width

◆ jo_texture_definition

struct jo_texture_definition

Texture definition.

Remarks
Inherits from jo_size (cast friendly)
Data Fields
unsigned short adr
unsigned short height
unsigned short size
unsigned short width

◆ jo_picture_definition

struct jo_picture_definition

Picture definition.

Data Fields
unsigned short color_mode
void * data
unsigned short index

◆ jo_img

struct jo_img

15 bits image struct

Data Fields
jo_color * data
unsigned short height
unsigned short width

◆ jo_img_8bits

struct jo_img_8bits

8 bits image struct

Data Fields
unsigned char * data
unsigned short height
unsigned short width

◆ jo_raw_img

struct jo_raw_img

Raw image struct.

Data Fields
void * data
unsigned short height
unsigned short width

◆ jo_palette

struct jo_palette

Palette contents struct.

Data Fields
jo_color * data
int id

◆ jo_tile

struct jo_tile

Struct of one tile (pos and size).

Data Fields
unsigned short height
unsigned short width
int x
int y

◆ jo_sprite_attributes

struct jo_sprite_attributes

Sprite attributes.

Data Fields
unsigned int clipping
unsigned int color_table_index
unsigned short direction
unsigned short effect
jo_fixed fixed_scale_x
jo_fixed fixed_scale_y
unsigned int gouraud_shading_index

◆ jo_IEEE754

union jo_IEEE754

Float IEEE 754 format.

Data Fields
float f
struct field

◆ jo_file

struct jo_file

File definition.

Data Fields
void * handle
int id
int read
char * read_buffer
int read_buffer_size
int read_index
int size

Macro Definition Documentation

◆ __jo_force_inline

#define __jo_force_inline

force inline attribute (and prevent Doxygen prototype parsing bug)

Typedef Documentation

◆ jo_angle

typedef short jo_angle

Angle.

Remarks
0x10000 = 360 degrees (0x4000 = 90 degrees)
Use jo_DEGtoANG() or JO_DEG_TO_ANGLE() to convert a degree

◆ jo_color

typedef unsigned short jo_color

15 bits color type

◆ jo_fixed

typedef int jo_fixed

Fixed point Q16.16 number.

Remarks
Integer part is located in the upper 16 bits and a decimal part in the lower 16 bits
Valid range is -32767.99998 to 32767.99998

◆ jo_size

typedef struct __jo_size jo_size

Size struct.

Enumeration Type Documentation

◆ jo_8_directions

8 directions definition

Enumerator
NONE 
LEFT 
RIGHT 
UP 
DOWN 
UP_LEFT 
UP_RIGHT 
DOWN_LEFT 
DOWN_RIGHT 

◆ jo_scroll_screen

Sega Saturn Scroll Screen Ids.

Enumerator
JO_NBG0_SCREEN 
JO_NBG1_SCREEN 
JO_NBG2_SCREEN 
JO_NBG3_SCREEN 
JO_RBG0_SCREEN 
JO_BACK_SCREEN 
JO_SPRITE_SCREEN 
JO_VDP2_3D_PLANE_SCREEN 
JO_LNCL_SCREEN 
JO_ALL_SCROLL_SCREEN