139 lines
3.3 KiB
C
139 lines
3.3 KiB
C
#ifndef __RAD3DH__
|
|
#define __RAD3DH__
|
|
|
|
#ifndef __RADBASEH__
|
|
#include "radbase.h"
|
|
#endif
|
|
|
|
#ifdef GEKKO
|
|
|
|
#define RAD3DSURFACE32 0
|
|
#define RAD3DSURFACE32A 1
|
|
#define RAD3DSURFACE565 2
|
|
#define RAD3DSURFACE4444 3 // actually RGB4A3
|
|
#define RADSURFACEYUY2 4
|
|
#define RAD3DSURFACECOUNT ( RADSURFACEYUY2 + 1 )
|
|
|
|
#else
|
|
|
|
#define RAD3DSURFACE32 0
|
|
#define RAD3DSURFACE32A 1
|
|
#define RAD3DSURFACE555 2
|
|
#define RAD3DSURFACE565 3
|
|
#define RAD3DSURFACE5551 4
|
|
#define RAD3DSURFACE4444 5
|
|
|
|
#ifdef _XBOX
|
|
#define RAD3DSURFACEYUY2 6
|
|
#define RAD3DSURFACECOUNT ( RAD3DSURFACEYUY2 + 1 )
|
|
#else
|
|
#define RAD3DSURFACE32R 6
|
|
#define RAD3DSURFACE32RA 7
|
|
#define RAD3DSURFACE24 8
|
|
#define RAD3DSURFACE24R 9
|
|
#define RAD3DSURFACECOUNT ( RAD3DSURFACE24R + 1 )
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#define RADCFUNC extern "C"
|
|
#else
|
|
#define RADCFUNC
|
|
#endif
|
|
|
|
|
|
#ifdef GEKKO
|
|
|
|
#define HRAD3D int
|
|
|
|
#elif _XBOX
|
|
|
|
#define HRAD3D LPDIRECT3DDEVICE8
|
|
|
|
#else
|
|
|
|
//
|
|
// Define the handle types.
|
|
//
|
|
|
|
struct RAD3D;
|
|
typedef struct RAD3D* HRAD3D;
|
|
|
|
//
|
|
// Functions to open a RAD 3D handle (to OpenGL or Direct3D).
|
|
//
|
|
|
|
RADCFUNC HRAD3D Open_RAD_3D( HWND window );
|
|
|
|
RADCFUNC void Close_RAD_3D( HRAD3D rad_3D );
|
|
|
|
RADCFUNC void Resize_RAD_3D( HRAD3D rad_3d,
|
|
U32 width,
|
|
U32 height );
|
|
|
|
RADCFUNC char* Describe_RAD_3D( void );
|
|
|
|
#endif
|
|
|
|
RADCFUNC void Start_RAD_3D_frame( HRAD3D rad_3D );
|
|
|
|
RADCFUNC void End_RAD_3D_frame( HRAD3D rad_3D
|
|
#ifdef GEKKO
|
|
,S32 swap
|
|
#endif
|
|
);
|
|
|
|
//
|
|
// Define the handle types.
|
|
//
|
|
|
|
struct RAD3DIMAGE;
|
|
typedef struct RAD3DIMAGE* HRAD3DIMAGE;
|
|
|
|
//
|
|
// Functions to open a 3D image handle (GL or D3D texture array).
|
|
//
|
|
|
|
RADCFUNC HRAD3DIMAGE Open_RAD_3D_image( HRAD3D rad_3d,
|
|
U32 width,
|
|
U32 height,
|
|
#if defined( _XBOX ) || defined( GEKKO )
|
|
U32 rad3d_surface_format
|
|
#else
|
|
S32 alpha_pixels,
|
|
U32 maximum_texture_size RADDEFAULT( 256 )
|
|
#endif
|
|
);
|
|
|
|
RADCFUNC void Close_RAD_3D_image( HRAD3DIMAGE rad_image );
|
|
|
|
RADCFUNC S32 Lock_RAD_3D_image( HRAD3DIMAGE rad_image,
|
|
void* out_pixel_buffer,
|
|
U32* out_buffer_pitch,
|
|
U32* out_surface_type
|
|
#if !(defined( _XBOX ) || defined( GEKKO ))
|
|
,U32* src_x
|
|
,U32* src_y
|
|
,U32* src_w
|
|
,U32* src_h
|
|
#endif
|
|
);
|
|
|
|
RADCFUNC void Unlock_RAD_3D_image( HRAD3DIMAGE rad_image );
|
|
|
|
RADCFUNC void Blit_RAD_3D_image( HRAD3DIMAGE rad_image,
|
|
F32 x_offset,
|
|
F32 y_offset,
|
|
F32 x_scale,
|
|
F32 y_scale,
|
|
F32 alpha_level );
|
|
|
|
RADCFUNC void Draw_lines_RAD_3D_image( HRAD3DIMAGE rad_image,
|
|
F32 x_offset,
|
|
F32 y_offset,
|
|
F32 x_scale,
|
|
F32 y_scale );
|
|
|
|
|
|
#endif |