
 1. About
 
 DGDI32 is part of HX's Win32 emulation. DPMILD32 will load this dll if 
 module GDI32 is imported. Support for GDI32 is only rudimentary, though,
 and most Win32 GUI apps won't run. Main purpose is to support simple
 applications which just need the basics (bitmaps, pens, brushes,...).
 

 2. Supported Functions
 
 Please note that if a function is not marked as dummy this doesn't mean
 it is fully implemented. 

  Name                     Dummy
 ----------------------------------
  AddFontResourceA         
  AnimatePalette
  Arc                      Y
  BitBlt                   
  ChoosePixelFormat        Y
  CloseEnhMetaFile         Y
  CopyEnhMetaFileA         Y
  CopyEnhMetaFileW         Y
  CopyMetaFileA            Y
  CopyMetaFileW            Y
  CombineRgn
  CreateBitmap
  CreateBrushIndirect
  CreateColorSpaceA        Y
  CreateColorSpaceW        Y
  CreateCompatibleBitmap
  CreateCompatibleDC
  CreateDC                 
  CreateDIBitmap
  CreateDIBSection
  CreateEnhMetaFileA       Y
  CreateFontA
  CreateFontW
  CreateFontIndirectA
  CreateFontIndirectW
  CreateMetaFileA          Y
  CreateMetaFileW          Y
  CreatePalette
  CreatePatternBrush
  CreatePen
  CreateRectRgn
  CreateRectRgnIndirect
  CreateSolidBrush
  DeleteDC
  DeleteEnhMetaFile        Y
  DeleteObject
  DescribePixelFormat      Y
  Ellipse                  Y
  EnumFontFamiliesA        Y
  EnumFontFamiliesExA      Y
  ExtCreatePen
  ExtCreateRegion
  ExtTextOutA
  ExtTextOutW
  FillRgn
  FloodFill                Y
  GdiFlush                 Y
  GdiSetBatchLimit         Y
  GetBitmapBits
  GetBitmapDimensionEx     Y
  GetBkColor
  GetCharacterPlacementA   Y
  GetCharacterPlacementW   Y
  GetCharABCWidthsA        Y
  GetCharABCWidthsW        Y
  GetCharWidth32A
  GetCharWidth32W
  GetCharWidthA
  GetCharWidthW
  GetClipBox
  GetCurrentObject
  GetCurrentPositionEx
  GetDCOrgEx    
  GetDCBrushColor
  GetDCPenColor
  GetDeviceCaps
  GetDeviceGammaRamp       Y
  GetDIBColorTable
  GetDIBits
  GetEnhMetaFileBits       Y
  GetEnhMetaFileHeader     Y
  GetFontData              Y
  GetMapMode
  GetNearestPaletteIndex
  GetObjectA
  GetObjectType
  GetOutlineTextMetricsA   Y
  GetOutlineTextMetricsW   Y
  GetPaletteEntries
  GetPixel
  GetPixelFormat           Y
  GetRegionData
  GetRgnBox
  GetROP2                  Y
  GetStockObject
  GetSystemPaletteEntries
  GetSystemPaletteUse
  GetTextAlign
  GetTextCharset
  GetTextCharsetInfo
  GetTextColor
  GetTextExtentPoint32A
  GetTextExtentPoint32W
  GetTextExtentPointA
  GetTextExtentPointW
  GetTextFaceA
  GetTextFaceW
  GetTextMetricsA
  GetViewportExtEx
  GetViewportOrgEx
  GetWindowExtEx
  GetWindowOrgEx
  GetWorldTransform        Y
  IntersectClipRect
  LineTo
  MaskBlt                  Y
  MoveToEx
  OffsetClipRgn
  OffsetRgn
  OffsetViewportOrgEx
  OffsetWindowOrgEx
  PaintRgn
  PatBlt
  Pie                      Y
  PlayEnhMetaFile          Y
  PlayEnhMetaFileRecord    Y
  Polygon
  Polyline
  PolyPolyline             Y
  PtVisible                Y
  RealizePalette
  Rectangle
  RectVisible              Y
  ResizePalette
  ScaleViewportExtEx       Y
  ScaleWindowExtEx         Y
  SelectObject
  SelectPalette
  SetBitmapBits
  SetBitmapDimensionEx     Y
  SetBkColor
  SetBkMode
  SetDCBrushColor
  SetDCPenColor
  SetDeviceGammaRamp       Y
  SetDIBColorTable
  SetDIBits
  SetDIBitsToDevice
  SetEnhMetaFileBits       Y
  SetMapMode
  SetPaletteEntries
  SetPixel
  SetPixelFormat           Y
  SetRectRgn 
  SetROP2                  Y
  SetStretchBltMode
  SetTextAlign
  SetTextColor
  SetViewportExtEx
  SetViewportOrgEx
  SetWindowExtEx
  SetWindowOrgEx
  SetWorldTransform        Y
  StartDocA                Y
  StartDocW                Y
  StretchBlt               Y
  StretchDIBits            Y
  SwapBuffers              Y
  TextOutA    
  TextOutW
  TranslateCharsetInfo     Y
  UnrealizeObject          Y
  UpdateColors             Y


 3. History

 2011/05/27:  V1.13

  BitBlt: allow negative numbers for x-coord and/or y-coord or destination.
  BitBlt: direction flag is cleared on entry (SDL.DLL might set it!?).
  AbortDoc(), SetAbortProc() added (dummies)
 
 2009/01/20:  V1.12

  source assembled with JWasm.
 
 2008/03/01:  V1.11
 
  TextOut: mouse cursor hidden+restored only if output is to screen.
  PatBlt: mouse cursor hidden+restored only if output is to screen.
 
 2008/01/11:  V1.10
 
  if the vesa mode doesn't support BIOS output, the infos for cell
   height/width and int 43h are ignored and the ROM 16x8 font is used 
   instead. This makes text shown correctly in GUI apps running in
   VMware (Player + Workstation).
  CreateFontW, CreateFontIndirectW, GetObjectW added.
  GetOutlineTextMetricsW added (dummy).
  GetGammaRamp implemented (required by SDL 1.12)
  mapping implemented for polygon drawing
  LPtoDP added (dummy)
  CreateEnhMetaFileA/W, CloseEnhMetaFile, DeleteEnhMetaFile,
   PlayEnhMetaFile, PlayEnhMetaFileRecord, CopyEnhMetaFileA/W,
   GetEnhMetaFileBits, SetEnhMetaFileBits, GetEnhMetaFileHeader,
   EnumEnhMetaFile, GetEnhMetaFilePaletteEntries added (dummies)
  GetWinMetaFileBits, SetWinMetaFileBits added (dummies) 
  CreateMetaFileA/W, CloseMetaFile, DeleteMetaFile,
   PlayMetaFile, PlayMetaFileRecord, CopyMetaFileA/W,
   GetMetaFileBitsEx, SetMetaFileBitsEx, EnumMetaFile added (dummies)
  GetTextExtentPointA/W added
  CreateHalftonePalette added (dummy) 
  GetTextMetricsW added (dummy) 
  GetTextFaceW added
  EnumFontFamiliesW, EnumFontFamiliesExW added (dummies) 
  GetCharWidth32A/W added
  GetCharacterPlacementA/W added (dummies)
  CreateColorSpaceA/W added (dummies)
  StartDocW added (dummy)
  CreateICA/W added (dummies)
 
 2007/07/15:  V1.9.8
 
  bugfix: BitBlt(): if the source was a bitmap with a height lower
   than the screen and the lines in BOTTOM-UP order, a GPF occured.
  CreateBrushIndirect added.
  bugfix: GetDIBits: the color table is now also filled if lpvBits is
   <> NULL.
  CreateDIBitmap rewritten. It is now equivalent to calling 
   CreateCompatibleBitmap + SetDIBits.
  bugfix: SetDIBits just copied bitmap data, without converting it
   from DIB to DDB format.
  SetDIBitsToDevice rewritten.
  BitBlt: copy of 1 bpp bitmaps supported.
 
 2007/03/15:  V1.9.7

  bugfix: GetDIBits did just copy bitmap data, without changing the
   line order (bottom-up / top-down) if requested.
  bugfix: CreateCompatibleDC copied the palette from the source DC.
   Now the default palette is set.
  bugfix: if CreateCompatibleBitmap was called with a memory DC, it
   did not use the bitcount value of the currently selected bitmap, but
   used the device context's bpp.
  bugfix: GetDIBits might have directly returned the value stored
   in BITMAPINFOHEADER.biHeight, even if this value was negative.
  bugfix: GetDIBits might have read 1 line past end of bitmap, thus
   increasing the risk for a GPF.
  bugfix: GetTextExtentPoint32 may have caused a GPF.
  bugfix: default palette had colors red and blue exchanged for entries 9-20.
  RealizePalette for a memory DC now uses the system palette as source.
  StartDocA, EndDoc, StartPage, EndPage, Escape added (dummies)
  ScaleWindowExtEx, ScaleViewportExtEx added (dummies)
  PtVisible, RectVisible added (dummies)
  pfnRealizePalette and pfnSelectPalette exported
  palette translation supported (previously only identity palettes
   did work in 8 bpp modes).
 
 2006/10/15:  V1.9.6
 
  bugfix: GetStockObject(NULL_PEN) returned NULL
  bugfix: CreateDIBSection didn't use colors of current palette in hdc
   if iUsage parameter was DIB_PAL_COLORS.
  bugfix: the memory allocated for the bitmap bits of a DIB in 
   CreateDIBSection may have been too small, which then may have resulted
   in a GDI heap curruption.
  bugfix: if a pattern Brush was selected in the device context, PatBlt
   may not have filled the whole region.
  SetRectRgn added
  CombineRgn partly implemented
  EnumFontFamiliesExA implemented
  CreatePen now accepts any width and style (but still draws with
   width=1 and style=solid only)
  GetDeviceCaps understands LOGPIXELSX/SY now.
 
 2006/09/14:  V1.9.5
 
  StretchBlt implemented, but just calls BitBlt
  StretchDIBits implemented (to some extent)
 
 2006/08/15:  V1.9.4
 
  bugfix: GetDIBColorTable ignored biClrUsed field
  bugfix: CreateBitmap did not set the correct direction
 
 2006/07/15:  V1.9.3
 
  MaskBlt added (just calls BitBlt) 
  GetClipBox added
  IntersectClipRect added
  ExtCreateRegion added (works with simple rectangular region only)
  GetCharWidthA, GetCharWidthW implemented
  CombineRgn added (dummy)
  TranslateCharsetInfo added (dummy)
  Get/SetBitmapDimensionEx added (dummies)
 
 2006/06/14:  V1.9.2

  bugfix: LineTo may have looped if a line length of zero was calculated
  bugfix: under some conditions RealizePalette did nothing
  bugfix: SetPaletteEntries may have set wrong colors if start index was != 0
  bugfix: SetPaletteEntries ignored PC_EXPLICIT flag
  CreateFontA implemented
  CreatePatternBrush implemented
  CreateDIBSection now accepts usage DIB_PAL_COLORS
  PatBlt now works with a pattern brush
  GetCurrentPositionEx added
  GetTextExtentPoint32A + GetTextExtentPoint32W added
  SetWindowOrgEx, SetWindowExtEx, SetViewportOrgEx, SetViewportExtEx added
  OffsetWindowOrgEx, OffsetViewportOrgEx added
  GetRgnBox, FillRgn, PaintRgn added, GetRegionData implemented
  clipping partly implemented
  ExtCreatePen added, it just calls CreatePen though
  SaveDC, RestoreDC added
  GetTextCharset, GetTextCharsetInfo, GetTextFaceA added
  TextOutW added, ExtTextOutW implemented
  FloodFill added (dummy)
  Arc, Pie, Ellipse added (dummies)
 
 2006/04/21:  V1.9.1

  GetRegionData added (dummy)
 
 2006/03/14:  V1.9
 
  CreateRectRgnIndirect(), OffsetRgn() added
  GdiSetBatchLimit() added (dummy)
  UpdateColors() added (dummy)
  ResizePalette() added
  Rectangle(), Polyline(), Polygon() added
  GetGraphicsMode, SetGraphicsMode, SetWorldTransform added (dummies)
  GetFontData added (dummy)
  EnumFontFamiliesA added
  EnumFontFamiliesExA added (dummy)
 
 2006/02/06:  V1.8
 
  export _SetDCBitPtr added to allow DDDRAW to create DCs for any surfaces.
 
 2006/01/22:  V1.7
 
  DPtoLP added (dummy)
  bugfix: SetSystemPaletteUse set an invalid value for system palette usage.
  CreatePatternBrush added (dummy)
  GetObjectA now supports BRUSH objects
 
 2006/01/02:  V1.6
 
  AnimatePalette added (dummy)
  UnrealizeObject added (dummy)
  CreateFondA added (dummy)
  StretchBlt, StretchDIBits, SetStretchBltMode added (dummies)
  GetSystemPaletteUse added
 
 2005/12/20:  V1.5
 
  some speed optimisations in PatBlt + BitBlt
 
 2005/12/07:  V1.4
 
  bugfix: RealizePalette didn't work for memory context and
   didn't return the number of entries mapped to system palette
  SetSystemPaletteUse added (dummy)
  bugfix: GetObjectTypeA returned OBJ_DC for memory DCs
  mapping mode initialized to MM_TEXT (previously 0)
  GetObjectA now supports BITMAP objects
  GetStockObject(SYSTEM_FONT) now never fails (uses OEM-VGA font
   if no system font has been loaded.
  GetDeviceCaps(TECHNOLOGY) supported
  bugfix: CreateDC changed to CreateDCA
  GetROP2, SetROP2 added (dummies)
  SetDIBitsToDevice added (dummy)
  ExtEscape added (dummy)
  GDIFlush added (dummy)
  PolyPolyline added (dummy)
  GetGlyphOutlineA, GetGlyphOutlineW added (dummies)
  GetWorldTransform, ModifyWorldTransform added (dummies)
  GetViewportOrgEx, GetViewportExtEx added (dummies)
  GetWindowOrgEx, GetWindowExtEx added (dummies)
  GetOutlineTextMetricsA added (dummies)
  GetCharABCWidthsA, GetCharABCWidthsW added (dummies)
  GetCharWidthA, GetCharWidthW added (dummies)
  ExtTextOutA, ExtTextOutW added (dummies)
  GetClipRgn, SelectClipRgn added (dummies)
  GetMapMode, SetMapMode added
  GetTextAlign, SetTextAlign added
  CreateRectRgn added
  bugfix: SetPixel, GetPixel returned 0 in case of an error,
   not CLR_INVALID (=-1)
  CreatePen, CreateBitmap, GetBitmapBits, SetBitmapBits added
 
 2005/11/24:  V1.3
 
  SetDIBits, GetDIBColorTable added
  GetPixelFormat added (dummy)
  stock objects BLACK_PEN and WHITE_PEN added
  GetDCBrushColor, SetDCBrushColor added
  GetDCPenColor, SetDCPenColor added
  GetPixel, SetPixel, MoveToEx, LineTo, GetObjectType added
  display contexts now aware of changes in display start scan line.
              
 2005/11/18:  V1.2
 
  SetDIBColorTable no longer dummy
  GetCurrentObject, GetPaletteEntries added
  GetBkColor, GetTextColor, GetNearestPaletteIndex added
 
 2005/10/21:  V1.1
 
  GetTextMetricsA added
  GetDCOrgEx added
  GetDeviceGammaRamp, SetDeviceGammaRamp added (dummies)
  ChoosePixelFormat, DescribePixelFormat, SetPixelFormat,
   SwapBuffers added (dummies)
  CreateDIBSection, SetDIBColorTable added
  GetDeviceCaps added
  CreatePalette, RealizePalette, SelectPalette, SetPaletteEntries,
   GetSystemPaletteEntries added
  CreateCompatibleBitmap added
  GetDIBits added
 
 2005/09/28:  V1.0

 
 4. Copyright
 
 DGDI32 is part of HX DOS extender. This extender is freeware.
 View HXRT.TXT for licence details.
 
 Japheth

 
