VirtualBox

Changeset 82098 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Nov 22, 2019 8:27:57 AM (5 years ago)
Author:
vboxsync
Message:

Devices/Graphics: allow to dump surface content to a bitmap on non-Windows hosts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-info.cpp

    r82095 r82098  
    2828#include <iprt/assert.h>
    2929#include <iprt/mem.h>
     30#include <iprt/path.h>
    3031
    3132#include <VBox/vmm/pgm.h> /* required by DevVGA.h */
     
    17981799#endif /* VMSVGA3D_DIRECT3D */
    17991800
     1801#ifndef RT_OS_WINDOWS
     1802typedef uint16_t WORD;
     1803typedef uint32_t DWORD;
     1804typedef int32_t LONG;
     1805
     1806#pragma pack(2)
     1807typedef struct
     1808{
     1809    WORD    bfType;
     1810    DWORD   bfSize;
     1811    WORD    bfReserved1;
     1812    WORD    bfReserved2;
     1813    DWORD   bfOffBits;
     1814} BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
     1815
     1816typedef struct
     1817{
     1818    DWORD       biSize;
     1819    LONG        biWidth;
     1820    LONG        biHeight;
     1821    WORD        biPlanes;
     1822    WORD        biBitCount;
     1823    DWORD       biCompression;
     1824    DWORD       biSizeImage;
     1825    LONG        biXPelsPerMeter;
     1826    LONG        biYPelsPerMeter;
     1827    DWORD       biClrUsed;
     1828    DWORD       biClrImportant;
     1829} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
     1830#pragma pack()
     1831#endif
    18001832
    18011833static int vmsvga3dInfoBmpWrite(const char *pszFilename, const void *pvBits, int w, int h, uint32_t cbPixel, uint32_t u32Mask)
    18021834{
    1803 #ifdef RT_OS_WINDOWS
    18041835    if (   cbPixel != 4
    18051836        && cbPixel != 2
     
    18141845        return VERR_FILE_NOT_FOUND;
    18151846
     1847#ifdef RT_OS_WINDOWS
    18161848    if (cbPixel == 4)
    18171849    {
     
    18501882    }
    18511883    else
     1884#endif
    18521885    {
    18531886        BITMAPFILEHEADER bf;
    1854         bf.bfType = 'MB';
     1887        bf.bfType = 0x4D42; //'MB'
    18551888        bf.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + cbBitmap;
    18561889        bf.bfReserved1 = 0;
     
    19141947
    19151948    return VINF_SUCCESS;
    1916 #else /* !RT_OS_WINDOWS */
    1917     RT_NOREF6(pszFilename, pvBits, w, h, cbPixel, u32Mask);
    1918     return VERR_NOT_SUPPORTED;
    1919 #endif
    19201949}
    19211950
     
    19331962        char szFilepath[4096];
    19341963        RTStrPrintf(szFilepath, sizeof(szFilepath),
    1935                     "%s\\%s-%u-sid%u-%u%s.bmp",
     1964                    "%s" RTPATH_SLASH_STR "%s-%u-sid%u-%u%s.bmp",
    19361965                    pszPath, pszNamePrefix, u32Seq, pSurface->id, i, pszNameSuffix);
    19371966
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