Microsoft WinG - Beta release - June 27, 1994
-------------------------------------------------
This file describes known bugs, gotchas, and helpful hints for the WinG
Beta release. Please remember that this is a beta version and is
subject to the usual Beta Disclaimers.


Reporting Bugs
--------------
The main goal of this Beta release, in addition to providing you with
a solid foundation for writing great graphics-intensive Windows
applications, is to flush out compatibility problems with WinG. We
want to know when you encounter bugs, and want to hear suggestions
and/or recommendations you have about WinG or its support files.

With this in mind, we have included WINGBUG.EXE in the WinG Beta
Development Kit (in the BIN directory of the SDK), an automated tool for
gathering information on your configuration for reporting bugs to the
WinG development team. This tool creates a complete bug report by
prompting you for information about the bug, your configuration,
and the steps used to reproduce the bug. The resulting bug 
report text file should be sent to the wingbug@microsoft.com
address, or sent to Microsoft on floppy disk.

Before reporting a bug, please be sure that it's not one we already
know about by looking through the Known Bugs and Limitations section
below.  If there is any doubt, send the bug anyway--it's better to have a
duplicate bug on file than not know about one.

Known Bugs And Limitations
--------------------------
The following are known problems with the beta version of WinG.

These bugs and design decisions will be fixed or resolved before the final
release. Their presence here serves only as a warning to programmers
coding for this release.

- WinGBitmaps must be created with full 256 entry color tables.

- WinG will assert on 8bpp non-palette devices, like the ATI Mach32 8bpp
   non-palette mode.

- CMACRO32.INC from the doggie sample application requires Microsoft MASM
  5.1 to compile. You must specify the /NOPACKCODE option when linking
  segments produced with CMACRO32.INC.

- Calling WinGStretchBlt and WinGBitBlt with source coordinates outside
  of the source boundary can crash WinG.

- WinGBitBlt and WinGStretchBlt only support bltting from WinGDCs to the
  screen.

- Several GDI APIs that should work into WinGDCs don't right now.  If
  you discover others not on this list we'd appreciate hearing about them.

    StrechDIBits with non-1:1 ratio screws up
    hatched brushes sometimes draw incorrectly
    FloodFill with a NULL brush draws incorrectly
    FloodFill outside of the bounds of a WinGBitmap can flood the
      whole image
    PALETTERGBs may map differently when compared to the display
    brushes created with CreatePatternBrush fault when selected
    some drawing operations draw slightly differently than standard GDI
    DrawIcon will crash
    WinGDCs will incorrectly map non-exact matchs in the color-table

- You cannot change the origin of halftone brushes.

- The sample programs's makefiles are named sample.mk (where sample is
  the name of the sample) instead of makefile because of limitations
  with Microsoft Setup.

- Some GP Faults within the SVGA256.DRV driver have been found. If
  you encounter one, please use WINGBUG.EXE and send mail to
  wingbug@microsoft.com.

- WinG does not unload when a GP Fault occurs. For accurate
  performance, be sure to unload WinG.DLL or reboot Windows after a
  GP Fault in a WinG application.

- WinGBitBlt and WinGStretchBlt sometimes have trouble clipping to
  non-rectangular clipping regions. If you encounter incorrect
  behavior, please use WINGBUG.EXE and send mail to
  wingbug@microsoft.com.

- 16-bit WinG applications will not run on Daytona Beta 1 (build 612).
  You must have Daytona Beta 2 (build 683) to use 16-bit WinG
  applications under Windows NT. 32-bit WinG applications will run on
  all versions of Daytona.

- Noticeable timing differences have been found while running the
  WinG profiler on a computer connected to a network. For accurate
  results, disconnect your computer from the network the first time you
  run a WinG application. After the profile is complete, you can plug the
  net in again. 

A Note on Speed
---------------
WinG is designed to be the absolute fastest way to blt DIBs under
Windows.  The goal is to blt at memory bandwidth to the display device.
In other words, we are competing with BitBlt and DOS blts, not
StretchDIBits or SetDIBitsToDevice.

On most 8bpp devices, if you use the recommended DIB format (returned
by WinGRecommendDIBFormat) you should get speeds comparable to BitBlt,
and much faster than StretchDIBits. The timewing sample application
will show you various blt speeds on your display.

The only time WinG (in its final release) will not be able to beat or
match BitBlt is on some "device bitmap" drivers.  These are drivers that
keep HBITMAPs in video ram and use the display hardware to copy to the
screen at much higher speeds than one can copy from main memory.

If you run timewing and the WinGStretchBlt performance is not as good or
better than the StretchBlt case and is not much faster than the StretchDIBits
case, please use WINGBUG.EXE and send a bug report to
wingbug@microsoft.com.  We treat performance problems as priority 1 bugs.
After all, if it's not fast it's not worth using.

Thanks a lot for your participation in the WinG Beta program!

