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 |