Changeset 7814 in vbox for trunk/src/VBox
- Timestamp:
- Apr 8, 2008 7:25:27 PM (17 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r7776 r7814 3631 3631 break; 3632 3632 3633 case LOGO_CMD_BUF_BLT: 3634 { 3635 if (pData->vram_size >= LOGO_MAX_SIZE * 2) 3636 { 3637 uint32_t *pu32TmpDst = (uint32_t *)pData->vram_ptrHC; 3638 uint32_t *pu32TmpSrc = (uint32_t *)pData->vram_ptrHC + LOGO_MAX_SIZE / 4; 3639 for (i = 0; i < LOGO_MAX_WIDTH; i++) 3640 { 3641 for (j = 0; j < LOGO_MAX_HEIGHT; j++) 3642 *pu32TmpDst++ = *pu32TmpSrc++; 3643 } 3644 } 3645 break; 3646 } 3647 3633 3648 case LOGO_CMD_SET_PAL: 3634 3649 { … … 3657 3672 } 3658 3673 3674 case LOGO_CMD_SET_DIRTY: 3675 { 3676 /* Set dirty flags */ 3677 uint32_t off = 0; 3678 uint32_t size = LOGO_MAX_SIZE; 3679 while (off <= size) 3680 { 3681 vga_set_dirty(pData, off); 3682 off += PAGE_SIZE; 3683 } 3684 break; 3685 } 3686 3659 3687 case LOGO_CMD_CLS: 3660 3688 { 3689 uint32_t *pu32TmpPtr; 3690 3691 if (pData->vram_size >= LOGO_MAX_SIZE * 2) 3692 pu32TmpPtr = (uint32_t *)pData->vram_ptrHC + LOGO_MAX_SIZE / 4; 3693 else 3694 pu32TmpPtr = (uint32_t *)pData->vram_ptrHC; 3695 3661 3696 /* Clear vram */ 3662 uint32_t *pu32TmpPtr = (uint32_t *)pData->vram_ptrHC;3663 3697 for (i = 0; i < LOGO_MAX_WIDTH; i++) 3664 3698 { … … 3675 3709 3676 3710 /* 3677 * Determin bytes per pixel in the destination buffer.3711 * Determine bytes per pixel in the destination buffer. 3678 3712 */ 3679 3713 if ((u32 & 0xFF00) == LOGO_CMD_SHOW_TEXT) … … 3693 3727 size_t cbPadBytes = 0; 3694 3728 size_t cbLineDst = pData->pDrv->cbScanline; 3695 uint8_t *pu8Dst = pData->vram_ptrHC;3729 uint8_t *pu8Dst; 3696 3730 uint32_t cyLeft = cy; 3697 3731 uint16_t i; 3732 3733 if (pData->vram_size >= LOGO_MAX_SIZE * 2) 3734 pu8Dst = (uint8_t *)pData->vram_ptrHC + LOGO_MAX_SIZE; 3735 else 3736 pu8Dst = (uint8_t *)pData->vram_ptrHC; 3698 3737 3699 3738 pu8Dst += pData->xLogo * 4 + pData->yLogo * cbLineDst; … … 3816 3855 pu8Src += cbPadBytes; 3817 3856 } 3818 3819 /*3820 * Invalidate the area.3821 */3822 /** @todo cannot call this here. Just set the appropriate dirty bits. */3823 pData->pDrv->pfnUpdateRect(pData->pDrv, 0, 0, LOGO_MAX_WIDTH, LOGO_MAX_WIDTH);3824 3825 3857 pData->LogoCommand = LOGO_CMD_NOP; 3826 3858 break; -
trunk/src/VBox/Devices/PC/BIOS/logo.c
r7774 r7814 660 660 outw(LOGO_IO_PORT, LOGO_CMD_CLS); 661 661 662 // Set dirty bits 663 outw(LOGO_IO_PORT, LOGO_CMD_SET_DIRTY); 664 662 665 if (is_fade_in) 663 666 { … … 675 678 show_boot_text(i); 676 679 680 // Blit buffer 681 outw(LOGO_IO_PORT, LOGO_CMD_BUF_BLT); 682 683 // Set dirty bits 684 outw(LOGO_IO_PORT, LOGO_CMD_SET_DIRTY); 685 677 686 wait(16 / WAIT_MS, 0); 678 687 } … … 690 699 if (uBootMenu == 2) 691 700 show_boot_text(LOGO_SHOW_STEPS); 701 702 // Blit buffer 703 outw(LOGO_IO_PORT, LOGO_CMD_BUF_BLT); 704 705 // Set dirty bits 706 outw(LOGO_IO_PORT, LOGO_CMD_SET_DIRTY); 692 707 } 693 708 … … 714 729 if (uBootMenu == 2) 715 730 show_boot_text(i); 731 732 // Blit buffer 733 outw(LOGO_IO_PORT, LOGO_CMD_BUF_BLT); 734 735 // Set dirty bits 736 outw(LOGO_IO_PORT, LOGO_CMD_SET_DIRTY); 716 737 717 738 scode = wait(16 / WAIT_MS, 0);
Note:
See TracChangeset
for help on using the changeset viewer.