Rev 2434 | Rev 2467 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2434 | Rev 2465 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 2 | ;; ;; |
|
- | 3 | ;; Copyright (C) KolibriOS team 2011-2012. All rights reserved. ;; |
|
- | 4 | ;; Distributed under terms of the GNU General Public License ;; |
|
- | 5 | ;; ;; |
|
- | 6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
Line 1... | Line 7... | ||
1 | struct BLITTER_BLOCK |
7 | |
2 | xmin dd ? |
8 | struct BLITTER_BLOCK |
3 | ymin dd ? |
9 | xmin dd ? |
4 | xmax dd ? |
10 | ymin dd ? |
Line 338... | Line 344... | ||
338 | 344 | add ecx, [esp+BLITTER.h] |
|
Line 339... | Line 345... | ||
339 | mov edi, ebp |
345 | |
Line 340... | Line 346... | ||
340 | 346 | mov edi, ebp |
|
341 | imul edi, [_display.pitch] |
347 | |
- | 348 | imul edi, [_display.pitch] |
|
- | 349 | ; imul ebp, [_display.width] |
|
342 | imul ebp, [_display.width] |
350 | mov ebp, [d_width_calc_area + ebp*4] |
343 | add ebp, ebx |
351 | |
Line 344... | Line 352... | ||
344 | add ebp, [_WinMapAddress] |
352 | add ebp, ebx |
345 | 353 | add ebp, [_WinMapAddress] |
|
Line 371... | Line 379... | ||
371 | 379 | xor ecx, ecx |
|
Line 372... | Line 380... | ||
372 | align 4 |
380 | |
373 | .inner32: |
381 | align 4 |
374 | cmp [ebp+ecx], bl |
382 | .inner32: |
375 | jne @F |
383 | cmp [ebp+ecx], bl |
376 | ;-------------------------------------- |
384 | jne .skip |
377 | push eax |
385 | ;-------------------------------------- |
378 | mov eax, [esi+ecx*4] |
386 | push eax |
Line -... | Line 387... | ||
- | 387 | mov eax, [esi+ecx*4] |
|
- | 388 | ||
- | 389 | ; check for hardware cursor |
|
- | 390 | cmp [_display.select_cursor], select_cursor |
|
- | 391 | je @f |
|
- | 392 | cmp [_display.select_cursor], 0 |
|
- | 393 | jne .no_mouseunder |
|
- | 394 | ;-------------------------------------- |
|
379 | 395 | align 4 |
|
Line 380... | Line 396... | ||
380 | push ecx |
396 | @@: |
381 | 397 | push ecx |
|
382 | mov ecx, [esp+4] |
398 | |
Line 387... | Line 403... | ||
387 | 403 | sub ecx, [esp+BLITTER.h + 8] |
|
Line 388... | Line 404... | ||
388 | ; check mouse area for putpixel |
404 | |
389 | call [_display.check_mouse] |
405 | ; check mouse area for putpixel |
390 | pop ecx |
406 | call [_display.check_mouse] |
- | 407 | pop ecx |
|
- | 408 | ;-------------------------------------- |
|
- | 409 | align 4 |
|
391 | ; store to real LFB |
410 | .no_mouseunder: |
392 | mov [LFB_BASE+edi+ecx*4], eax |
411 | ; store to real LFB |
393 | pop eax |
412 | mov [LFB_BASE+edi+ecx*4], eax |
394 | ;-------------------------------------- |
413 | pop eax |
395 | align 4 |
414 | ;-------------------------------------- |
396 | @@: |
415 | align 4 |
397 | inc ecx |
416 | .skip: |
398 | dec edx |
417 | inc ecx |
399 | jnz .inner32 |
418 | dec edx |
Line 400... | Line 419... | ||
400 | 419 | jnz .inner32 |
|
Line 406... | Line 425... | ||
406 | dec [esp+BLITTER.h] |
425 | mov edx, [esp+BLITTER.w] |
407 | jnz .outer32 |
426 | dec [esp+BLITTER.h] |
408 | 427 | jnz .outer32 |
|
Line 409... | Line 428... | ||
409 | .done: |
428 | |
410 | call [draw_pointer] |
429 | .done: |
- | 430 | ; call [draw_pointer] |
|
411 | .L57: |
431 | call __sys_draw_pointer |
412 | add esp, 72 |
432 | .L57: |
413 | pop ebx |
433 | add esp, 72 |
414 | pop esi |
434 | pop ebx |
415 | pop edi |
435 | pop esi |
Line 428... | Line 448... | ||
428 | 448 | xor ecx, ecx |
|
Line 429... | Line 449... | ||
429 | align 4 |
449 | |
430 | .inner24: |
450 | align 4 |
431 | cmp [ebp+ecx], bl |
451 | .inner24: |
432 | jne @F |
452 | cmp [ebp+ecx], bl |
433 | ;-------------------------------------- |
453 | jne .skip_1 |
434 | push eax |
454 | ;-------------------------------------- |
435 | mov eax, [esi+ecx*4] |
455 | push eax |
Line 436... | Line 456... | ||
436 | 456 | mov eax, [esi+ecx*4] |
|
Line -... | Line 457... | ||
- | 457 | ||
- | 458 | lea edi, [edi+ecx*2] |
|
- | 459 | ||
- | 460 | ; check for hardware cursor |
|
- | 461 | cmp [_display.select_cursor], select_cursor |
|
- | 462 | je @f |
|
- | 463 | cmp [_display.select_cursor], 0 |
|
- | 464 | jne .no_mouseunder_1 |
|
437 | lea edi, [edi+ecx*2] |
465 | ;-------------------------------------- |
Line 438... | Line 466... | ||
438 | 466 | align 4 |
|
439 | push ecx |
467 | @@: |
440 | 468 | push ecx |
|
Line 446... | Line 474... | ||
446 | 474 | sub ecx, [esp+BLITTER.h + 8] |
|
Line 447... | Line 475... | ||
447 | ; check mouse area for putpixel |
475 | |
448 | call [_display.check_mouse] |
476 | ; check mouse area for putpixel |
449 | pop ecx |
477 | call [_display.check_mouse] |
- | 478 | pop ecx |
|
450 | 479 | ;-------------------------------------- |
|
- | 480 | align 4 |
|
451 | mov [edi+ecx], ax |
481 | .no_mouseunder_1: |
452 | shr eax, 16 |
482 | mov [edi+ecx], ax |
453 | mov [edi+ecx+2], al |
483 | shr eax, 16 |
Line 454... | Line 484... | ||
454 | 484 | mov [edi+ecx+2], al |
|
455 | pop eax |
485 | |
456 | ;-------------------------------------- |
486 | pop eax |
457 | align 4 |
487 | ;-------------------------------------- |
458 | @@: |
488 | align 4 |
459 | mov edi, [esp+64] |
489 | .skip_1: |
460 | inc ecx |
490 | mov edi, [esp+64] |
461 | dec edx |
491 | inc ecx |