1
0
Fork 0

(svn r2571) Add explicit type Pixel for ... Pixels

release/0.4.5
tron 2005-07-15 14:16:14 +00:00
parent b21ee889fe
commit 8f71864bef
6 changed files with 32 additions and 33 deletions

22
gfx.c
View File

@ -11,7 +11,7 @@ Colour _cur_palette[256];
static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode); static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode);
static int _stringwidth_out; static int _stringwidth_out;
static byte _cursor_backup[64*64]; static Pixel _cursor_backup[64 * 64];
static Rect _invalid_rect; static Rect _invalid_rect;
static const byte *_color_remap_ptr; static const byte *_color_remap_ptr;
static byte _string_colorremap[3]; static byte _string_colorremap[3];
@ -37,8 +37,8 @@ void memcpy_pitch(void *d, void *s, int w, int h, int spitch, int dpitch)
void GfxScroll(int left, int top, int width, int height, int xo, int yo) void GfxScroll(int left, int top, int width, int height, int xo, int yo)
{ {
byte *src; const Pixel *src;
byte *dst; Pixel *dst;
int p; int p;
int ht; int ht;
@ -109,7 +109,7 @@ void GfxScroll(int left, int top, int width, int height, int xo, int yo)
void GfxFillRect(int left, int top, int right, int bottom, int color) void GfxFillRect(int left, int top, int right, int bottom, int color)
{ {
DrawPixelInfo *dpi = _cur_dpi; DrawPixelInfo *dpi = _cur_dpi;
byte *dst; Pixel *dst;
const int otop = top; const int otop = top;
const int oleft = left; const int oleft = left;
@ -574,7 +574,7 @@ typedef struct BlitterParams {
int start_x, start_y; int start_x, start_y;
const byte* sprite; const byte* sprite;
const byte* sprite_org; const byte* sprite_org;
byte *dst; Pixel *dst;
int mode; int mode;
int width, height; int width, height;
int width_org; int width_org;
@ -589,7 +589,7 @@ static void GfxBlitTileZoomIn(BlitterParams *bp)
const byte* src; const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst; Pixel *dst;
const byte* ctab; const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
@ -718,7 +718,7 @@ static void GfxBlitTileZoomIn(BlitterParams *bp)
static void GfxBlitZoomInUncomp(BlitterParams *bp) static void GfxBlitZoomInUncomp(BlitterParams *bp)
{ {
const byte *src = bp->sprite; const byte *src = bp->sprite;
byte *dst = bp->dst; Pixel *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
int i; int i;
@ -791,7 +791,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
const byte* src; const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst; Pixel *dst;
const byte* ctab; const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
@ -945,7 +945,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
static void GfxBlitZoomMediumUncomp(BlitterParams *bp) static void GfxBlitZoomMediumUncomp(BlitterParams *bp)
{ {
const byte *src = bp->sprite; const byte *src = bp->sprite;
byte *dst = bp->dst; Pixel *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
int i; int i;
@ -996,7 +996,7 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
const byte* src; const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst; Pixel *dst;
const byte* ctab; const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
@ -1209,7 +1209,7 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
static void GfxBlitZoomOutUncomp(BlitterParams *bp) static void GfxBlitZoomOutUncomp(BlitterParams *bp)
{ {
const byte* src = bp->sprite; const byte* src = bp->sprite;
byte *dst = bp->dst; Pixel *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
int i; int i;

3
gfx.h
View File

@ -1,6 +1,7 @@
#ifndef GFX_H #ifndef GFX_H
#define GFX_H #define GFX_H
typedef byte Pixel;
typedef struct ColorList { typedef struct ColorList {
byte unk0, unk1, unk2; byte unk0, unk1, unk2;
@ -10,7 +11,7 @@ typedef struct ColorList {
} ColorList; } ColorList;
struct DrawPixelInfo { struct DrawPixelInfo {
byte *dst_ptr; Pixel *dst_ptr;
int left, top, width, height; int left, top, width, height;
int pitch; int pitch;
uint16 zoom; uint16 zoom;

View File

@ -57,7 +57,7 @@ static bool MakeBmpImage(const char *name, ScreenshotCallback *callb, void *user
BitmapFileHeader bfh; BitmapFileHeader bfh;
BitmapInfoHeader bih; BitmapInfoHeader bih;
RgbQuad rq[256]; RgbQuad rq[256];
byte *buff; Pixel *buff;
FILE *f; FILE *f;
uint i, padw; uint i, padw;
uint n, maxlines; uint n, maxlines;
@ -159,7 +159,7 @@ static void PNGAPI png_my_warning(png_structp png_ptr, png_const_charp message)
static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette) static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette)
{ {
png_color rq[256]; png_color rq[256];
byte *buff; Pixel *buff;
FILE *f; FILE *f;
uint i, y, n; uint i, y, n;
uint maxlines; uint maxlines;
@ -272,7 +272,7 @@ assert_compile(sizeof(PcxHeader) == 128);
static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette) static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette)
{ {
byte *buff; Pixel *buff;
FILE *f; FILE *f;
uint maxlines; uint maxlines;
uint y; uint y;
@ -330,14 +330,14 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user
// write them to pcx // write them to pcx
for (i = 0; i != n; i++) { for (i = 0; i != n; i++) {
const byte* bufp = buff + i * w; const Pixel* bufp = buff + i * w;
byte runchar = bufp[0]; byte runchar = bufp[0];
uint runcount = 1; uint runcount = 1;
uint j; uint j;
// for each pixel... // for each pixel...
for (j = 1; j < w; j++) { for (j = 1; j < w; j++) {
byte ch = bufp[j]; Pixel ch = bufp[j];
if (ch != runchar || runcount >= 0x3f) { if (ch != runchar || runcount >= 0x3f) {
if (runcount > 1 || (runchar & 0xC0) == 0xC0) if (runcount > 1 || (runchar & 0xC0) == 0xC0)
@ -426,7 +426,7 @@ void SetScreenshotFormat(int i)
} }
// screenshot generator that dumps the current video buffer // screenshot generator that dumps the current video buffer
static void CurrentScreenCallback(void *userdata, byte *buf, uint y, uint pitch, uint n) static void CurrentScreenCallback(void *userdata, Pixel *buf, uint y, uint pitch, uint n)
{ {
for (; n > 0; --n) { for (; n > 0; --n) {
memcpy(buf, _screen.dst_ptr + y * _screen.pitch, _screen.width); memcpy(buf, _screen.dst_ptr + y * _screen.pitch, _screen.width);
@ -436,7 +436,7 @@ static void CurrentScreenCallback(void *userdata, byte *buf, uint y, uint pitch,
} }
// generate a large piece of the world // generate a large piece of the world
static void LargeWorldCallback(void *userdata, byte *buf, uint y, uint pitch, uint n) static void LargeWorldCallback(void *userdata, Pixel *buf, uint y, uint pitch, uint n)
{ {
ViewPort *vp = (ViewPort *)userdata; ViewPort *vp = (ViewPort *)userdata;
DrawPixelInfo dpi, *old_dpi; DrawPixelInfo dpi, *old_dpi;

View File

@ -190,9 +190,8 @@ static const uint16 * const _legend_table[] = {
}; };
#if defined(TTD_ALIGNMENT_4) #if defined(TTD_ALIGNMENT_4)
static inline void WRITE_PIXELS(void *dst, uint32 val) static inline void WRITE_PIXELS(Pixel* d, uint32 val)
{ {
byte *d = (byte*)dst;
# if defined(TTD_BIG_ENDIAN) # if defined(TTD_BIG_ENDIAN)
d[0] = (byte)(val >> 24); d[0] = (byte)(val >> 24);
d[1] = (byte)(val >> 16); d[1] = (byte)(val >> 16);
@ -207,9 +206,8 @@ static const uint16 * const _legend_table[] = {
} }
/* need to use OR, otherwise we will overwrite the wrong pixels at the edges :( */ /* need to use OR, otherwise we will overwrite the wrong pixels at the edges :( */
static inline void WRITE_PIXELS_OR(void *dst, uint32 val) static inline void WRITE_PIXELS_OR(Pixel* d, uint32 val)
{ {
byte *d = (byte*)dst;
# if defined(TTD_BIG_ENDIAN) # if defined(TTD_BIG_ENDIAN)
d[0] |= (byte)(val >> 24); d[0] |= (byte)(val >> 24);
d[1] |= (byte)(val >> 16); d[1] |= (byte)(val >> 16);
@ -324,9 +322,9 @@ typedef uint32 GetSmallMapPixels(TileIndex tile); // typedef callthrough functio
* @param proc Pointer to the colour function * @param proc Pointer to the colour function
* @see GetSmallMapPixels(TileIndex) * @see GetSmallMapPixels(TileIndex)
*/ */
static void DrawSmallMapStuff(byte *dst, uint xc, uint yc, int pitch, int reps, uint32 mask, GetSmallMapPixels *proc) static void DrawSmallMapStuff(Pixel *dst, uint xc, uint yc, int pitch, int reps, uint32 mask, GetSmallMapPixels *proc)
{ {
byte *dst_ptr_end = _screen.dst_ptr + _screen.width * _screen.height - _screen.width; Pixel *dst_ptr_end = _screen.dst_ptr + _screen.width * _screen.height - _screen.width;
do { do {
// check if the tile (xc,yc) is within the map range // check if the tile (xc,yc) is within the map range
@ -589,7 +587,7 @@ static void DrawSmallMap(DrawPixelInfo *dpi, Window *w, int type, bool show_town
{ {
DrawPixelInfo *old_dpi; DrawPixelInfo *old_dpi;
int dx,dy, x, y, x2, y2; int dx,dy, x, y, x2, y2;
byte *ptr; Pixel *ptr;
int tile_x; int tile_x;
int tile_y; int tile_y;
ViewPort *vp; ViewPort *vp;

View File

@ -43,7 +43,7 @@ const int _textmessage_box_y = 150; // Height of box
const int _textmessage_box_bottom = 30; // Pixels from bottom const int _textmessage_box_bottom = 30; // Pixels from bottom
const int _textmessage_box_max_width = 400; // Max width of box const int _textmessage_box_max_width = 400; // Max width of box
static byte _textmessage_backup[150*400]; // (y * max_width) static Pixel _textmessage_backup[150 * 400]; // (y * max_width)
extern void memcpy_pitch(void *d, void *s, int w, int h, int spitch, int dpitch); extern void memcpy_pitch(void *d, void *s, int w, int h, int spitch, int dpitch);

12
win32.c
View File

@ -21,9 +21,9 @@
static struct { static struct {
HWND main_wnd; HWND main_wnd;
HBITMAP dib_sect; HBITMAP dib_sect;
void *bitmap_bits; Pixel *bitmap_bits;
void *buffer_bits; Pixel *buffer_bits;
void *alloced_bits; Pixel *alloced_bits;
HPALETTE gdi_palette; HPALETTE gdi_palette;
int width,height; int width,height;
int width_org, height_org; int width_org, height_org;
@ -568,7 +568,7 @@ static bool AllocateDibSection(int w, int h)
DeleteObject(_wnd.dib_sect); DeleteObject(_wnd.dib_sect);
dc = GetDC(0); dc = GetDC(0);
_wnd.dib_sect = CreateDIBSection(dc, bi, DIB_RGB_COLORS, &_wnd.bitmap_bits, NULL, 0); _wnd.dib_sect = CreateDIBSection(dc, bi, DIB_RGB_COLORS, (void**)&_wnd.bitmap_bits, NULL, 0);
if (_wnd.dib_sect == NULL) if (_wnd.dib_sect == NULL)
error("CreateDIBSection failed"); error("CreateDIBSection failed");
ReleaseDC(0, dc); ReleaseDC(0, dc);
@ -665,8 +665,8 @@ static void Win32GdiStop(void)
static void filter(int left, int top, int width, int height) static void filter(int left, int top, int width, int height)
{ {
uint p = _screen.pitch; uint p = _screen.pitch;
byte *s = (byte*)_wnd.buffer_bits + top * p + left; const Pixel *s = _wnd.buffer_bits + top * p + left;
byte *d = (byte*)_wnd.bitmap_bits + top * p * 4 + left * 2; Pixel *d = _wnd.bitmap_bits + top * p * 4 + left * 2;
for (; height > 0; height--) { for (; height > 0; height--) {
int i; int i;