VirtualBox

Ignore:
Timestamp:
Feb 15, 2008 5:28:12 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
28154
Message:

Initial commit of VRDP text cache (disabled).

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r6002 r6973  
    4444        vrdp.c \
    4545        vrdpbmp.c \
     46        vrdptext.c \
    4647        vbox.c \
    4748        VBoxDisp.def \
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h

    r5159 r6973  
    186186} CLIPRECTS;
    187187
     188typedef struct _VRDPCLIPRECTS
     189{
     190    RECTL rclDstOrig; /* Original bounding rectancle. */
     191    RECTL rclDst;     /* Bounding rectangle of all rects. */
     192    CLIPRECTS rects;  /* Rectangles to update. */
     193} VRDPCLIPRECTS;
     194
    188195
    189196BOOL vboxVbvaEnable (PPDEV ppdev);
     
    244251void vrdpReportDirtyRect (PPDEV ppdev, RECTL *prcl);
    245252void vbvaReportDirtyRect (PPDEV ppdev, RECTL *prcl);
     253
     254#define VRDP_TEXT_MAX_GLYPH_SIZE 0x100
     255#define VRDP_TEXT_MAX_GLYPHS     0xfe
     256 
     257BOOL vboxReportText (PPDEV ppdev,
     258                     VRDPCLIPRECTS *pClipRects,
     259                     STROBJ   *pstro,
     260                     FONTOBJ  *pfo,
     261                     RECTL    *prclOpaque,
     262                     ULONG    ulForeRGB,
     263                     ULONG    ulBackRGB
     264                    );
     265
     266BOOL vrdpReportOrderGeneric (PPDEV ppdev,
     267                             const VRDPCLIPRECTS *pClipRects,
     268                             const void *pvOrder,
     269                             unsigned cbOrder,
     270                             unsigned code);
     271
    246272
    247273#include <iprt/assert.h>
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/vrdp.c

    r5999 r6973  
    4444} VRDPBRUSH;
    4545
    46 typedef struct _VRDPCLIPRECTS
    47 {
    48     RECTL rclDstOrig; /* Original bounding rectancle. */
    49     RECTL rclDst;     /* Bounding rectangle of all rects. */
    50     CLIPRECTS rects;  /* Rectangles to update. */
    51 } VRDPCLIPRECTS;
    52 
    5346#define VRDP_CLIP_OK              0
    5447#define VRDP_CLIP_NO_INTERSECTION 1
     
    633626}
    634627
    635 static BOOL vrdpReportOrderGeneric (PPDEV ppdev,
    636                                     const VRDPCLIPRECTS *pClipRects,
    637                                     const void *pvOrder,
    638                                     unsigned cbOrder,
    639                                     unsigned code)
     628BOOL vrdpReportOrderGeneric (PPDEV ppdev,
     629                             const VRDPCLIPRECTS *pClipRects,
     630                             const void *pvOrder,
     631                             unsigned cbOrder,
     632                             unsigned code)
    640633{
    641634    BOOL bRc;
     
    11781171             || prclExtra != NULL
    11791172             || (pfo->flFontType & FO_TYPE_RASTER) == 0
    1180              || pstro->cGlyphs > 256
     1173             || pstro->cGlyphs > VRDP_TEXT_MAX_GLYPHS
    11811174             || (pboOpaque && pboOpaque->iSolidColor == 0xFFFFFFFF)
    11821175             || pfo->iUniq == 0
     
    11911184    {
    11921185#if 0
     1186        /* Testing: report a red rectangle for the text area. */
    11931187        vrdpReportSolidRect (ppdev, &clipRects, 0x0000FF);
    11941188#else
     1189        /* Try to report the text order. */
     1190#if 0
     1191        ULONG ulForeRGB = pboFore? vrdpColor2RGB (pso, pboFore->iSolidColor): 0;
     1192        ULONG ulBackRGB = pboOpaque? vrdpColor2RGB (pso, pboOpaque->iSolidColor): 0;
     1193       
     1194        DISPDBG((1, "VRDP::vrdpTextOut: calling vboxReportText fg %x bg %x\n",
     1195                    ulForeRGB, ulBackRGB));
     1196                   
     1197        if (!vboxReportText (ppdev, &clipRects, pstro, pfo, prclOpaque, ulForeRGB, ulBackRGB))
     1198        {
     1199            vrdpReportDirtyRects (ppdev, &clipRects);
     1200        }
     1201#else
    11951202        vrdpReportDirtyRects (ppdev, &clipRects);
     1203#endif
    11961204#endif
    11971205    }
Note: See TracChangeset for help on using the changeset viewer.

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