ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ULONG FASTCALL GdiFlushUserBatch ( PDC  dc,
PGDIBATCHHDR  pHdr 
)

Definition at line 67 of file gdibatch.c.

Referenced by NtGdiFlushUserBatch().

{
  BOOL Hit = FALSE;
  ULONG Cmd = 0, Size = 0;
  PDC_ATTR pdcattr = NULL;

  if (dc)
  {
     pdcattr = dc->pdcattr;
  }

  _SEH2_TRY
  {
     Cmd = pHdr->Cmd;
     Size = pHdr->Size; // Return the full size of the structure.
  }
  _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
  {
     Hit = TRUE;
  }
  _SEH2_END;

  if (Hit)
  {
     DPRINT1("WARNING! GdiBatch Fault!\n");
     return 0;
  }

  // FYI! The thread is approaching the end of sunset.
  switch(Cmd)
  {
     case GdiBCPatBlt: // Highest pri first!
        break;
     case GdiBCPolyPatBlt:
        break;
     case GdiBCTextOut:
        break;
     case GdiBCExtTextOut:
        break;
     case GdiBCSetBrushOrg:
     {
        PGDIBSSETBRHORG pgSBO;
        if (!dc) break;
        pgSBO = (PGDIBSSETBRHORG) pHdr;
        pdcattr->ptlBrushOrigin = pgSBO->ptlBrushOrigin;
        DC_vSetBrushOrigin(dc, pgSBO->ptlBrushOrigin.x, pgSBO->ptlBrushOrigin.y);
        break;
     }
     case GdiBCExtSelClipRgn:
        break;
     case GdiBCSelObj:
     {
        PGDIBSOBJECT pgO;
        PTEXTOBJ pNewFnt = NULL;

        if (!dc) break;
        pgO = (PGDIBSOBJECT) pHdr;

        if (NT_SUCCESS(TextIntRealizeFont((HFONT)pgO->hgdiobj,NULL)))
        {
           /* LFONTOBJ use share and locking. */
           pNewFnt = TEXTOBJ_LockText(pgO->hgdiobj);

           dc->dclevel.plfnt = pNewFnt;
           dc->hlfntCur = pgO->hgdiobj;
           pdcattr->hlfntNew = pgO->hgdiobj;
           pdcattr->ulDirty_ |= DIRTY_CHARSET;
           pdcattr->ulDirty_ &= ~SLOW_WIDTHS;
        }
        if (pNewFnt) TEXTOBJ_UnlockText(pNewFnt);
        break;
     }
     case GdiBCDelRgn:
        DPRINT("Delete Region Object!\n");
     case GdiBCDelObj:
     {
        PGDIBSOBJECT pgO = (PGDIBSOBJECT) pHdr;
        GreDeleteObject( pgO->hgdiobj );
        break;
     }
     default:
        break;
  }

  return Size;
}

Generated on Sat May 26 2012 06:09:56 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.