Rev 6021 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6021 | Rev 6053 | ||
---|---|---|---|
Line 208... | Line 208... | ||
208 | =========================== RAW =========================== |
208 | =========================== RAW =========================== |
209 | =========================== =========================== |
209 | =========================== =========================== |
210 | =====================================================================================*/ |
210 | =====================================================================================*/ |
Line 211... | Line 211... | ||
211 | 211 | ||
212 | 212 | ||
213 | inline fastcall dword b24(EBX) { return DSDWORD[EBX] << 8; } |
213 | inline fastcall dword b24(EAX) { return DSDWORD[EAX] & 0x00FFFFFF; } |
214 | :void LABEL::apply_smooth() |
214 | :void LABEL::apply_smooth() |
215 | { |
- | |
216 | dword i,line_w,to; |
215 | { |
217 | rgb.DwordToRgb(ShadowPixel(background,2)); //get shadowed pixel |
216 | dword i,line_w,to,dark_background; |
218 | line_w = size.width * 3; |
217 | line_w = size.width * 3; |
219 | to = size.height - 1 * line_w + raw - 3; |
218 | to = size.height - 1 * line_w + raw - 3; |
220 | for(i=raw; i < to; i+=3) |
219 | for(i=raw; i < to; i+=3) |
221 | { |
220 | { |
222 | if(i-raw%line_w +3 == line_w) continue; |
221 | if(i-raw%line_w +3 == line_w) continue; |
223 | // pixels position, where b - black, w - write |
222 | // pixels position, where b - black, w - write |
224 | // bw |
223 | // bw |
225 | // wb |
224 | // wb |
226 | if(b24(i)==0x000000) && (b24(i+3)!=0x000000) && (b24(i+line_w)!=0x000000) && (b24(i+3+line_w)==0x000000) |
- | |
227 | { |
- | |
228 | ESBYTE[i+3] = rgb.b; |
- | |
229 | ESBYTE[i+4] = rgb.g; |
- | |
230 | ESBYTE[i+5] = rgb.r; |
- | |
231 | ESBYTE[i+line_w ] = rgb.b; |
- | |
232 | ESBYTE[i+line_w+1] = rgb.g; |
225 | if(b24(i)!=background) && (b24(i+3)==background) && (b24(i+line_w)==background) && (b24(i+3+line_w)!=background) |
233 | ESBYTE[i+line_w+2] = rgb.r; |
226 | { |
234 | // // I don't know why but underneath code works slower then beneath |
227 | dark_background = MixColors(background,b24(i),200); |
235 | // DSDWORD[i] = DSDWORD[i] & 0xFF000000 | dark_background; |
228 | DSDWORD[i+3] = DSDWORD[i+3] & 0xFF000000 | dark_background; |
236 | // DSDWORD[i+line_w] = DSDWORD[i+3+line_w] & 0xFF000000 | dark_background; |
229 | DSDWORD[i+line_w] = DSDWORD[i+line_w] & 0xFF000000 | dark_background; |
237 | } |
230 | } |
238 | // wb |
231 | // wb |
239 | // bw |
232 | // bw |
240 | else if(b24(i)!=0x000000) && (b24(i+3)==0x000000) && (b24(i+line_w)==0x000000) && (b24(i+3+line_w)!=0x000000) |
- | |
241 | { |
- | |
242 | ESBYTE[i ] = rgb.b; |
- | |
243 | ESBYTE[i+1] = rgb.g; |
- | |
244 | ESBYTE[i+2] = rgb.r; |
- | |
245 | ESBYTE[i+line_w+3] = rgb.b; |
- | |
246 | ESBYTE[i+line_w+4] = rgb.g; |
233 | else if(b24(i)==background) && (b24(i+3)!=background) && (b24(i+line_w)!=background) && (b24(i+3+line_w)==background) |
247 | ESBYTE[i+line_w+5] = rgb.r; |
234 | { |
248 | // // I don't know why but underneath code works slower then beneath |
235 | dark_background = MixColors(background,b24(i+3),200); |
249 | // DSDWORD[i] = DSDWORD[i] & 0xFF000000 | dark_background; |
236 | DSDWORD[i] = DSDWORD[i] & 0xFF000000 | dark_background; |
250 | // DSDWORD[i+3+line_w] = DSDWORD[i+3+line_w] & 0xFF000000 | dark_background; |
237 | DSDWORD[i+3+line_w] = DSDWORD[i+3+line_w] & 0xFF000000 | dark_background; |
251 | } |
238 | } |
Line 252... | Line 239... | ||
252 | } |
239 | } |