Files
commandergenius/project/jni/application/lmarbles-1.0.8/src/sdl.h
2010-12-24 12:05:03 +00:00

116 lines
3.5 KiB
C

/***************************************************************************
sdl.h - description
-------------------
begin : Thu Apr 20 2000
copyright : (C) 2000 by Michael Speck
email : kulkanie@gmx.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef SDL_H
#define SDL_H
#include <SDL/SDL.h>
#include <SDL_mixer.h>
#ifdef __cplusplus
extern "C" {
#endif
// draw region //
#define D_SRC(p, i, j) {sdl.s.s = p; sdl.s.r.x = i; sdl.s.r.y = j; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;}
#define D_DST(p, i, j, k, l) {sdl.d.s = p; sdl.d.r.x = i; sdl.d.r.y = j; sdl.d.r.w = k; sdl.d.r.h = l;}
#define D_FSRC(p) {sdl.s.s = p; sdl.s.r.x = 0; sdl.s.r.y = 0; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;}
#define D_FDST(p) {sdl.d.s = p; sdl.d.r.x = 0; sdl.d.r.y = 0; sdl.d.r.w = (p)->w; sdl.d.r.h = (p)->h;}
typedef struct {
SDL_Surface *s;
SDL_Rect r;
} DrawRgn;
// Sdl Surface //
#define SDL_NONFATAL 0x10000000
SDL_Surface* SS_Ld(char *fname, int f);
SDL_Surface* SS_Crt(int w, int h, int f);
int SS_DpyFmt(SDL_Surface *sur);
void SS_Bgn(SDL_Surface *sur);
void SS_End(SDL_Surface *sur);
void SS_Blt(void);
void SS_ABlt(int alpha);
void SS_Fill(int c);
Uint32 get_pixel( SDL_Surface *surf, int x, int y );
// Sdl Font //
#define TA_X_L (1L<<1)
#define TA_X_C (1L<<2)
#define TA_X_R (1L<<3)
#define TA_Y_T (1L<<4)
#define TA_Y_C (1L<<5)
#define TA_Y_B (1L<<6)
typedef struct {
SDL_Surface *ss;
int algn;
int clr;
int h;
char lw[256];
int loff[256];
char keys[256];
char off;
char len;
//last written rect
int lX;
int lY;
int lW;
int lH;
} SFnt;
SFnt* SF_Ld(char *fname);
SFnt* SF_LdFxd(char *fname, int off, int len, int w);
void SF_Fr(SFnt *sfnt);
int SF_Wrt(SFnt *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha);
void SF_Bgn(SFnt *sfnt);
void SF_End(SFnt *sfnt);
SDL_Rect SF_LstR(SFnt *fnt);
int SF_TxtW(SFnt *fnt, char *str);
// Sdl //
#define SDL_MAX_RGNS 200
#define SDL_DIM_STEPS 8
#define SDL_DIM_DELAY 20
#define SDL_DIM() Sdl_Dim(SDL_DIM_STEPS, SDL_DIM_DELAY, 255)
#define SDL_UNDIM() Sdl_UnDim(SDL_DIM_STEPS, SDL_DIM_DELAY, 255)
typedef struct {
SDL_Surface *scr;
DrawRgn d, s;
int rnum;
SDL_Rect rgns[SDL_MAX_RGNS];
} Sdl;
void Sdl_Ini(int f);
void Sdl_Qut();
int Sdl_StVdMd(int w, int h, int d, int f);
void Sdl_HwCps();
void Sdl_Upd(int x, int y, int w, int h);
void Sdl_FUpd();
void Sdl_UpdR();
void Sdl_AddR(int x, int y, int w, int h);
void Sdl_Dim(int steps, int delay, int trp);
void Sdl_UnDim(int steps, int delay, int trp);
int Sdl_WtFrKy();
void Sdl_WtFrClk();
// hardware funcs //
void Sdl_Bgn();
void Sdl_End();
void Sdl_Flp();
#ifdef __cplusplus
};
#endif
#endif