Rev 4666 | Rev 5598 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4486 | leency | 1 | |
4475 | leency | 2 | dword zbuf_data; |
5519 | leency | 3 | |
4475 | leency | 4 | |
5519 | leency | 5 | |
4475 | leency | 6 | int bufx, bufy, bufw, bufh; |
4666 | leency | 7 | int zbufx, zbufy, zbufw, zbufh; |
5519 | leency | 8 | byte zoomf; |
9 | |||
4475 | leency | 10 | |
11 | void Show(); |
||
4666 | leency | 12 | void Fill(); |
4475 | leency | 13 | void Skew(); |
14 | void DrawBar(); |
||
15 | void PutPixel(); |
||
4666 | leency | 16 | void AlignCenter(); |
4475 | leency | 17 | void AlignRight(); |
18 | void Zoom2x(); |
||
5519 | leency | 19 | }; |
4475 | leency | 20 | |
21 | |||
4666 | leency | 22 | { |
4475 | leency | 23 | bufx = i_bufx; |
24 | bufy = i_bufy; |
||
25 | bufw = i_bufw; |
||
26 | bufh = i_bufh; |
||
27 | free(buf_data); |
||
28 | buf_data = malloc(bufw * bufh * 4 + 8); |
||
5519 | leency | 29 | ESDWORD[buf_data] = bufw; |
4475 | leency | 30 | ESDWORD[buf_data+4] = bufh; |
4666 | leency | 31 | |
4475 | leency | 32 | |
5519 | leency | 33 | { |
34 | zbufx = bufx; |
||
35 | zbufy = bufy; |
||
36 | zbufw = bufw * zoomf; |
||
37 | zbufh = bufh * zoomf; |
||
38 | free(zbuf_data); |
||
39 | zbuf_data = malloc(zbufw * zbufh * 4 + 8); |
||
40 | ESDWORD[zbuf_data] = zbufw; |
||
41 | ESDWORD[zbuf_data+4] = zbufh; |
||
42 | } |
||
43 | } |
||
4666 | leency | 44 | |
45 | |||
4475 | leency | 46 | { |
47 | int i; |
||
48 | int max_i = bufw * bufh * 4 + buf_data + 8; |
||
4666 | leency | 49 | for (i=buf_data+8; i |
4486 | leency | 50 | } |
4475 | leency | 51 | |
52 | |||
53 | { |
||
54 | int i, j; |
||
55 | for (j=0; j |
||
56 | { |
||
57 | for (i = y+j*bufw+x*4+8+buf_data; i |
||
4486 | leency | 58 | } |
4475 | leency | 59 | } |
60 | |||
61 | |||
4666 | leency | 62 | { |
63 | int pos = y*bufw+x*4+8+buf_data; |
||
64 | ESDWORD[pos] = color; |
||
65 | } |
||
66 | |||
67 | |||
4475 | leency | 68 | void DrawBufer::Skew(dword x, y, w, h) |
69 | { |
||
70 | int i, j; |
||
71 | for (j=0; j<=3; j++) |
||
72 | { |
||
73 | for (i = y+j*bufw+x+w+h*4; i>y+j*bufw+x+h-12*4 ; i-=4) |
||
74 | ESDWORD[buf_data+i+8] = ESDWORD[-shift[j]+buf_data+i+8]; |
||
75 | } |
||
76 | } |
||
77 | |||
78 | |||
79 | { |
||
80 | int i, j, l; |
||
81 | int content_left = w - content_width / 2; |
||
82 | for (j=0; j |
||
83 | { |
||
84 | for (i=j*w+w-x*4, l=j*w+content_width+x*4; (i>=j*w+content_left*4) && (l>=j*w*4); i-=4, l-=4) |
||
85 | { |
||
86 | ESDWORD[buf_data+8+i] >< ESDWORD[buf_data+8+l]; |
||
87 | } |
||
88 | } |
||
89 | } |
||
90 | |||
91 | |||
92 | { |
||
93 | int i, j, l; |
||
94 | int content_left = w - content_width / 2; |
||
95 | for (j=0; j |
||
96 | { |
||
97 | for (i=j*w+content_width+content_left*4, l=j*w+content_width+x*4; (i>=j*w+content_left*4) && (l>=j*w*4); i-=4, l-=4) |
||
98 | { |
||
99 | ESDWORD[buf_data+8+i] >< ESDWORD[buf_data+8+l]; |
||
100 | } |
||
101 | } |
||
102 | } |
||
103 | |||
104 | |||
105 | |||
5519 | leency | 106 | { |
107 | int i, s; |
||
108 | dword point_x, max_i, zline_w, s_inc; |
||
109 | |||
4475 | leency | 110 | |
5519 | leency | 111 | max_i = bufw * bufh * 4 + buf_data+8; |
112 | s_inc = zoomf * 4; |
||
113 | zline_w = zbufw * 4; |
||
114 | |||
115 | |||
116 | ESDWORD[s] = ESDWORD[i]; |
||
117 | ESDWORD[s+4] = ESDWORD[i]; |
||
118 | ESDWORD[s+zline_w] = ESDWORD[i]; |
||
119 | ESDWORD[s+zline_w+4] = ESDWORD[i]; |
||
120 | if (zoomf==3) |
||
121 | { |
||
122 | ESDWORD[s+8] = ESDWORD[i]; |
||
123 | ESDWORD[zline_w+s+8] = ESDWORD[i]; |
||
124 | ESDWORD[zline_w*2+s] = ESDWORD[i]; |
||
125 | ESDWORD[zline_w*2+s+4] = ESDWORD[i]; |
||
126 | ESDWORD[zline_w*2+s+8] = ESDWORD[i]; |
||
127 | } |
||
128 | |||
129 | |||
130 | if (point_x >= bufw) |
||
131 | { |
||
132 | s += zoomf - 1 * zline_w; |
||
133 | point_x = 0; |
||
134 | } |
||
135 | } |
||
136 | } |
||
137 | |||
138 | |||
139 | |||
140 | { |
||
141 | if (zoomf == 1) |
||
142 | { |
||
143 | PutPaletteImage(buf_data+8, bufw, bufh, bufx, bufy, 32, 0); |
||
144 | } |
||
145 | else |
||
146 | { |
||
147 | Zoom2x(); |
||
148 | PutPaletteImage(zbuf_data+8, zbufw, zbufh, zbufx, zbufy, 32, 0); |
||
149 | } |
||
150 | }>>=3;> |
||
151 |