VirtualBox

Changeset 64960 in vbox


Ignore:
Timestamp:
Dec 19, 2016 2:53:24 PM (8 years ago)
Author:
vboxsync
Message:

new year splash screen for Oracle builds

Location:
trunk/src/VBox/Devices
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/BIOS/Makefile.kmk

    r62514 r64960  
    160160VgaDefBiosLogo_SOURCES   = $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogo.c
    161161VgaDefBiosLogo_CLEAN     = $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogo.c
     162ifndef VBOX_OSE
     163VgaDefBiosLogo_SOURCES  += $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogoNY.c
     164VgaDefBiosLogo_CLEAN    += $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogoNY.c
     165endif
    162166
    163167# Rule for making the bios logo.
     
    165169        $(call MSG_TOOL,bin2c,VgaDefBiosLogo,$<,$@)
    166170        $(QUIET)$(VBOX_BIN2C) VgaDefBiosLogo $< $@
     171
     172# Rule for making the bios logo.
     173$$(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogoNY.c: $(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS/puel_logo_ny.bmp $(VBOX_BIN2C) | $$(dir $$@)
     174        $(call MSG_TOOL,bin2c,VgaDefBiosLogoNY,$<,$@)
     175        $(QUIET)$(VBOX_BIN2C) VgaDefBiosLogoNY $< $@
    167176
    168177
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r64391 r64960  
    38713871 * @param   cxLogo      Logo width.
    38723872 * @param   cyLogo      Logo height.
     3873 * @param   fInverse    True if the bitmask is black on white (only for 1bpp)
    38733874 * @param   iStep       Fade in/fade out step.
    38743875 * @param   pu32Palette Palette data.
     
    38763877 * @param   pbDst       Destination buffer.
    38773878 */
    3878 static void vbeShowBitmap(uint16_t cBits, uint16_t xLogo, uint16_t yLogo, uint16_t cxLogo, uint16_t cyLogo, uint8_t iStep,
     3879static void vbeShowBitmap(uint16_t cBits, uint16_t xLogo, uint16_t yLogo, uint16_t cxLogo, uint16_t cyLogo,
     3880                          bool fInverse, uint8_t iStep,
    38793881                          const uint32_t *pu32Palette, const uint8_t *pbSrc, uint8_t *pbDst)
    38803882{
     
    39243926        for (i = 0; i < cxLogo; i++)
    39253927        {
    3926             uint8_t pix;
    3927 
    39283928            switch (cBits)
    39293929            {
     
    39333933                        c = *pbSrc++;
    39343934
    3935                     pix = (c & 1) ? 0xFF : 0;
    3936                     c >>= 1;
    3937 
    3938                     if (pix)
     3935                    if (c & 1)
    39393936                    {
    3940                         *pbTmpDst++ = pix * iStep / LOGO_SHOW_STEPS;
    3941                         *pbTmpDst++ = pix * iStep / LOGO_SHOW_STEPS;
    3942                         *pbTmpDst++ = pix * iStep / LOGO_SHOW_STEPS;
    3943                         pbTmpDst++;
     3937                        if (fInverse)
     3938                        {
     3939                            *pbTmpDst++ = 0;
     3940                            *pbTmpDst++ = 0;
     3941                            *pbTmpDst++ = 0;
     3942                            pbTmpDst++;
     3943                        }
     3944                        else
     3945                        {
     3946                            uint8_t pix = 0xFF * iStep / LOGO_SHOW_STEPS;
     3947                            *pbTmpDst++ = pix;
     3948                            *pbTmpDst++ = pix;
     3949                            *pbTmpDst++ = pix;
     3950                            pbTmpDst++;
     3951                        }
    39443952                    }
    39453953                    else
    39463954                        pbTmpDst += 4;
    3947 
     3955                    c >>= 1;
    39483956                    j = (j + 1) % 8;
    39493957                    break;
     
    39553963                        c = *pbSrc++;
    39563964
    3957                     pix = (c >> 4) & 0xF;
     3965                    uint8_t pix = (c >> 4) & 0xF;
    39583966                    c <<= 4;
    39593967
     
    39763984                    uint32_t u32Pal = pu32Palette[*pbSrc++];
    39773985
    3978                     pix = (u32Pal >> 16) & 0xFF;
     3986                    uint8_t pix = (u32Pal >> 16) & 0xFF;
    39793987                    *pbTmpDst++ = pix * iStep / LOGO_SHOW_STEPS;
    39803988                    pix = (u32Pal >> 8) & 0xFF;
     
    40554063                vbeShowBitmap(pThis->cLogoBits, xLogo, yLogo,
    40564064                              pThis->cxLogo, pThis->cyLogo,
    4057                               iStep, &pThis->au32LogoPalette[0],
     4065                              false, iStep, &pThis->au32LogoPalette[0],
    40584066                              pbSrc, pbDst);
    40594067
     
    40624070                    vbeShowBitmap(1, LOGO_F12TEXT_X, LOGO_F12TEXT_Y,
    40634071                                  LOGO_F12TEXT_WIDTH, LOGO_F12TEXT_HEIGHT,
    4064                                   iStep, &pThis->au32LogoPalette[0],
     4072                                  pThis->fBootMenuInverse, iStep, &pThis->au32LogoPalette[0],
    40654073                                  &g_abLogoF12BootText[0], pbDst);
    40664074
     
    60696077                                          "HostWindowId\0"
    60706078#endif
     6079                                          "SuppressNewYearSplash\0"
    60716080                                          ))
    60726081        return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
     
    69196928    /*
    69206929     * Allocate buffer for the logo data.
    6921      * RT_MAX() is applied to let us fall back to default logo on read failure.
     6930     * Let us fall back to default logo on read failure.
    69226931     */
    6923     pThis->cbLogo = sizeof(LogoHdr) + LogoHdr.cbLogo;
    6924     pThis->pbLogo = (uint8_t *)PDMDevHlpMMHeapAlloc(pDevIns, RT_MAX(pThis->cbLogo, g_cbVgaDefBiosLogo + sizeof(LogoHdr)));
     6932    pThis->cbLogo = LogoHdr.cbLogo;
     6933    if (g_cbVgaDefBiosLogo)
     6934        pThis->cbLogo = g_cbVgaDefBiosLogo;
     6935#ifndef VBOX_OSE
     6936    if (g_cbVgaDefBiosLogoNY)
     6937        pThis->cbLogo = g_cbVgaDefBiosLogoNY;
     6938#endif
     6939    pThis->cbLogo += sizeof(LogoHdr);
     6940
     6941    pThis->pbLogo = (uint8_t *)PDMDevHlpMMHeapAlloc(pDevIns, pThis->cbLogo);
    69256942    if (pThis->pbLogo)
    69266943    {
     
    69496966            || RT_FAILURE(rc))
    69506967        {
    6951             memcpy(pLogoHdr + 1, g_abVgaDefBiosLogo, LogoHdr.cbLogo);
     6968#ifndef VBOX_OSE
     6969            RTTIMESPEC Now;
     6970            RTTimeLocalNow(&Now);
     6971            RTTIME T;
     6972            RTTimeLocalExplode(&T, &Now);
     6973            bool fSuppressNewYearSplash = false;
     6974            rc = CFGMR3QueryBoolDef(pCfg, "SuppressNewYearSplash", &fSuppressNewYearSplash, false);
     6975            if (   !fSuppressNewYearSplash
     6976                && (T.u16YearDay > 353 || T.u16YearDay < 10))
     6977            {
     6978                pLogoHdr->cbLogo = LogoHdr.cbLogo = g_cbVgaDefBiosLogoNY;
     6979                memcpy(pLogoHdr + 1, g_abVgaDefBiosLogoNY, LogoHdr.cbLogo);
     6980                pThis->fBootMenuInverse = true;
     6981            }
     6982            else
     6983#endif
     6984                memcpy(pLogoHdr + 1, g_abVgaDefBiosLogo, LogoHdr.cbLogo);
    69526985            rc = vbeParseBitmap(pThis);
    69536986            if (RT_FAILURE(rc))
  • trunk/src/VBox/Devices/Graphics/DevVGA.h

    r64482 r64960  
    585585    /** Clear screen flag. */
    586586    uint8_t                     fLogoClearScreen;
    587     uint8_t                     Padding8[7];
     587    uint8_t                     fBootMenuInverse;
     588    uint8_t                     Padding8[6];
    588589    /** Palette data. */
    589590    uint32_t                    au32LogoPalette[256];
  • trunk/src/VBox/Devices/build/VBoxDD.h

    r64508 r64960  
    2525/** The default BIOS logo data. */
    2626extern const unsigned char  g_abVgaDefBiosLogo[];
     27extern const unsigned char  g_abVgaDefBiosLogoNY[];
    2728/** The size of the default BIOS logo data. */
    2829extern const unsigned       g_cbVgaDefBiosLogo;
     30extern const unsigned       g_cbVgaDefBiosLogoNY;
    2931
    3032
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette