You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libksquirrel/kernel/kls_ttf/ftview/gblblit.h

83 lines
2.0 KiB

#ifndef __GBLENDER_BLIT_H__
#define __GBLENDER_BLIT_H__
#include "gblender.h"
/*
* blitting interface
*
*/
typedef enum
{
GBLENDER_SOURCE_GRAY8 = 0,
GBLENDER_SOURCE_HRGB,
GBLENDER_SOURCE_HBGR,
GBLENDER_SOURCE_VRGB,
GBLENDER_SOURCE_VBGR,
GBLENDER_SOURCE_MAX
} GBlenderSourceFormat;
typedef enum
{
GBLENDER_TARGET_GRAY8 = 0,
GBLENDER_TARGET_RGB32,
GBLENDER_TARGET_RGB24,
GBLENDER_TARGET_RGB565,
GBLENDER_TARGET_BGR565,
GBLENDER_TARGET_MAX
} GBlenderTargetFormat;
typedef struct GBlenderBlitRec_* GBlenderBlit;
typedef void (*GBlenderBlitFunc)( GBlenderBlit blit,
GBlenderPixel color );
typedef struct GBlenderBlitRec_
{
int width;
int height;
const unsigned char* src_line;
int src_pitch;
int src_x;
int src_y;
unsigned char* dst_line;
int dst_pitch;
int dst_x;
int dst_y;
GBlenderSourceFormat src_format;
GBlenderTargetFormat dst_format;
GBlender blender;
GBlenderBlitFunc blit_func;
} GBlenderBlitRec;
GBLENDER_API( int )
gblender_blit_init( GBlenderBlit blit,
GBlender blender,
int dst_x,
int dst_y,
GBlenderSourceFormat src_format,
const unsigned char* src_buffer,
int src_pitch,
int src_width,
int src_height,
GBlenderTargetFormat dst_format,
unsigned char* dst_buffer,
int dst_pitch,
int dst_width,
int dst_height );
#define gblender_blit_run(b,color) (b)->blit_func( (b), (color) )
#endif /* __GBLENDER_BLIT_H__ */