Subversion Repositories Kolibri OS

Rev

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
	}