Subversion Repositories Kolibri OS

Rev

Rev 2384 | Rev 2446 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2384 Rev 2430
Line 322... Line 322...
322
        call    blit_clip
322
        call    blit_clip
323
        test    eax, eax
323
        test    eax, eax
324
        jne     .L57
324
        jne     .L57
325
 
325
 
Line 326... Line -...
326
        inc     [mouse_pause]
-
 
327
        call    [_display.disable_mouse]
-
 
328
 
-
 
329
        mov     eax, [TASK_BASE]
326
        mov     eax, [TASK_BASE]
Line 330... Line 327...
330
 
327
 
331
        mov     ebx, [esp+BLITTER.dst_x]
328
        mov     ebx, [esp+BLITTER.dst_x]
332
        mov     ebp, [esp+BLITTER.dst_y]
329
        mov     ebp, [esp+BLITTER.dst_y]
333
        add     ebx, [eax-twdw + WDATA.box.left]
330
        add     ebx, [eax-twdw + WDATA.box.left]
-
 
331
        add     ebp, [eax-twdw + WDATA.box.top]
-
 
332
 
-
 
333
        mov     ecx, ebx
-
 
334
        add     ecx, [esp+BLITTER.w]
-
 
335
        shl     ecx, 16
-
 
336
        mov     cx, bp
-
 
337
        add     ecx, [esp+BLITTER.h]
334
        add     ebp, [eax-twdw + WDATA.box.top]
338
 
Line 335... Line 339...
335
        mov     edi, ebp
339
        mov     edi, ebp
336
 
340
 
337
        imul    edi, [_display.pitch]
341
        imul    edi, [_display.pitch]
Line 344... Line 348...
344
        mov     esi, [esp+BLITTER.src_x]
348
        mov     esi, [esp+BLITTER.src_x]
345
        lea     esi, [eax+esi*4]
349
        lea     esi, [eax+esi*4]
346
        add     esi, [esp+BLITTER.bitmap]
350
        add     esi, [esp+BLITTER.bitmap]
347
 
351
 
Line -... Line 352...
-
 
352
        mov     eax, ecx
348
        mov     ecx, [esp+BLITTER.h]
353
        mov     ecx, [esp+BLITTER.h]
349
        mov     edx, [esp+BLITTER.w]
354
        mov     edx, [esp+BLITTER.w]
Line 350... Line 355...
350
 
355
 
351
        test    ecx, ecx    ;FIXME check clipping
356
        test    ecx, ecx    ;FIXME check clipping
Line 359... Line 364...
359
 
364
 
Line 360... Line 365...
360
        lea     edi, [edi+ebx*4]
365
        lea     edi, [edi+ebx*4]
Line 361... Line 366...
361
 
366
 
362
        mov     ebx, [CURRENT_TASK]
-
 
363
 
367
        mov     ebx, [CURRENT_TASK]
364
align 4
368
align 4
365
.outer32:
369
.outer32:
Line 366... Line 370...
366
        xor     ecx, ecx
370
        xor     ecx, ecx
367
 
371
 
368
align 4
372
align 4
369
.inner32:
373
.inner32:
370
        cmp     [ebp+ecx], bl
-
 
-
 
374
        cmp     [ebp+ecx], bl
-
 
375
        jne     @F
371
        jne     @F
376
;--------------------------------------
-
 
377
        push    eax
-
 
378
        mov     eax, [esi+ecx*4]
-
 
379
 
-
 
380
        push    ecx
-
 
381
 
-
 
382
        mov     ecx, [esp+4]
-
 
383
        ror     ecx, 16
-
 
384
        sub     ecx, edx
-
 
385
        rol     ecx, 16
-
 
386
        sub     ecx, [esp+BLITTER.h + 8]
-
 
387
 
-
 
388
; check mouse area for putpixel
-
 
389
        call    [_display.check_mouse]
372
 
390
        pop     ecx
-
 
391
; store to real LFB
-
 
392
        mov     [LFB_BASE+edi+ecx*4], eax
-
 
393
        pop     eax
373
        mov     eax, [esi+ecx*4]
394
;--------------------------------------
374
        mov     [LFB_BASE+edi+ecx*4], eax
395
align 4
375
@@:
396
@@:
376
        inc     ecx
397
        inc     ecx
Line 385... Line 406...
385
        dec     [esp+BLITTER.h]
406
        dec     [esp+BLITTER.h]
386
        jnz     .outer32
407
        jnz     .outer32
387
 
408
 
Line 388... Line 409...
388
.done:
409
.done:
389
        dec     [mouse_pause]
-
 
390
        call    [draw_pointer]
410
        call    [draw_pointer]
391
.L57:
411
.L57:
392
        add     esp, 72
412
        add     esp, 72
393
        pop     ebx
413
        pop     ebx
394
        pop     esi
414
        pop     esi
Line 409... Line 429...
409
align 4
429
align 4
410
.inner24:
430
.inner24:
411
        cmp     [ebp+ecx], bl
431
        cmp     [ebp+ecx], bl
412
        jne     @F
432
        jne     @F
413
 
-
 
-
 
433
;--------------------------------------
-
 
434
        push    eax
414
        mov     eax, [esi+ecx*4]
435
        mov     eax, [esi+ecx*4]
Line 415... Line 436...
415
 
436
 
-
 
437
        lea     edi, [edi+ecx*2]
-
 
438
 
-
 
439
        push    ecx
-
 
440
 
-
 
441
        mov     ecx, [esp+4]
-
 
442
        ror     ecx, 16
-
 
443
        sub     ecx, edx
-
 
444
        rol     ecx, 16
-
 
445
        sub     ecx, [esp+BLITTER.h + 8]
-
 
446
 
-
 
447
; check mouse area for putpixel
-
 
448
        call    [_display.check_mouse]
-
 
449
        pop     ecx
416
        lea     edi, [edi+ecx*2]
450
 
417
        mov     [edi+ecx], ax
451
        mov     [edi+ecx], ax
418
        shr     eax, 16
452
        shr     eax, 16
-
 
453
        mov     [edi+ecx+2], al
-
 
454
 
-
 
455
        pop     eax
-
 
456
;--------------------------------------
419
        mov     [edi+ecx+2], al
457
align 4
420
@@:
458
@@:
421
        mov     edi, [esp+64]
459
        mov     edi, [esp+64]
422
        inc     ecx
460
        inc     ecx
423
        dec     edx
461
        dec     edx