7,13 → 7,11 |
#endif |
|
dword buf_data; |
dword zbuf_data; |
|
|
struct DrawBufer { |
int bufx, bufy, bufw, bufh; |
int zbufx, zbufy, zbufw, zbufh; |
byte zoomf; |
byte zoom; |
|
void Init(); |
void Show(); |
23,7 → 21,6 |
void PutPixel(); |
void AlignCenter(); |
void AlignRight(); |
void Zoom2x(); |
}; |
|
void DrawBufer::Init(int i_bufx, i_bufy, i_bufw, i_bufh) |
30,25 → 27,13 |
{ |
bufx = i_bufx; |
bufy = i_bufy; |
bufw = i_bufw; |
bufh = i_bufh; |
bufw = i_bufw * zoom; |
bufh = i_bufh * zoom; |
free(buf_data); |
buf_data = malloc(bufw * bufh * 4 + 8); |
ESDWORD[buf_data] = bufw; |
ESDWORD[buf_data+4] = bufh; |
|
if (zoomf != 1) |
{ |
zbufx = bufx; |
zbufy = bufy; |
zbufw = bufw * zoomf; |
zbufh = bufh * zoomf; |
free(zbuf_data); |
zbuf_data = malloc(zbufw * zbufh * 4 + 8); |
ESDWORD[zbuf_data] = zbufw; |
ESDWORD[zbuf_data+4] = zbufh; |
} |
} |
|
void DrawBufer::Fill(dword fill_color) |
{ |
109,7 → 94,7 |
} |
} |
|
|
/* |
void DrawBufer::Zoom2x() |
{ |
int i, s; |
117,7 → 102,7 |
|
point_x = 0; |
max_i = bufw * bufh * 4 + buf_data+8; |
s_inc = zoomf * 4; |
s_inc = zoom * 4; |
zline_w = zbufw * 4; |
|
for (i=buf_data+8, s=zbuf_data+8; i<max_i; i+=4, s+= s_inc) { |
125,7 → 110,7 |
ESDWORD[s+4] = ESDWORD[i]; |
ESDWORD[s+zline_w] = ESDWORD[i]; |
ESDWORD[s+zline_w+4] = ESDWORD[i]; |
if (zoomf==3) |
if (zoom==3) |
{ |
ESDWORD[s+8] = ESDWORD[i]; |
ESDWORD[zline_w+s+8] = ESDWORD[i]; |
137,24 → 122,17 |
point_x++; |
if (point_x >= bufw) |
{ |
s += zoomf - 1 * zline_w; |
s += zoom - 1 * zline_w; |
point_x = 0; |
} |
} |
} |
*/ |
|
|
void DrawBufer::Show() |
{ |
if (zoomf == 1) |
{ |
PutPaletteImage(buf_data+8, bufw, bufh, bufx, bufy, 32, 0); |
} |
else |
{ |
Zoom2x(); |
PutPaletteImage(zbuf_data+8, zbufw, zbufh, zbufx, zbufy, 32, 0); |
} |
} |
|
#endif |