KeyboardHook Classįor the shortcuts, I used the Win32 SetWindowHookEx method to hook up the WH_KEYBOARD_LL event. But as these formulas are not fully correct and I had to modify them a bit myself -the resulting colors may not be 100% identical. Int ps = ds.Stride - (ds.Width*3) // the space left at the end of the Y-lineīyte pd = new byte // dest spaceįor ( int h = 0 h RGB32 blitting, I just lock the bitmap and copy the values, leaving alpha empty (as it is not available anyway, but a 24-bit surface won't create).įor RGB24 -> YUY2 blitting, I looked up the format on and tried to convert it properly. LockedData dd = dest.Lock(LockFlags.WriteOnly) ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb) So I just try to find out which format works on the card and then use it.īitmapData ds = src.LockBits( new Rectangle( 0, 0, src.Width, src.Height), But as you cannot draw on YUV surfaces, it's quite useless. ATI cards support mostly RGB, but also YUV nVidia hardware only supports YUV. The first big problem here was the case of finding a surface pixelformat which would work on every hardware. To use it, just create an instance of the Overlay Class, set your Size and Position, Add your RenderDelegate, Initialise and Update() the overlay. The overlay library offers the basic functions of displaying an overlay. Therefore I created my own blitting function for converting a RGB Bitmap (which works on every hardware) to a YUV surface.
![nvidia overlay nvidia overlay](https://www.partitionwizard.com/images/uploads/articles/2020/06/how-to-disable-nvidia-overlay/how-to-disable-nvidia-overlay-9.png)
As overlays are a rather difficult and not a supported part of windows/DirectX, I tried creating something useful several times.ĭirectDraw Overlays always had some problems with nVidia hardware, as nVidia hardware only supports YUV Overlays on which you cannot draw using GDI or anything else. It was annoying to hear the message-sound, but not know what was written. I always wanted to see what others write to me in ICQ and mIRC while playing some fullscreen applications. Just start the OverlayTools.exe, and double click on the gear-tray-icon to display the options. But please keep in mind that this is quite slow and needs a high render rate to be OK - This option is probably more useful if you put the overlay in a place where the background doesn't change often (e.g. If you have a nvidia card, I recommend using a smaller overlay with a light grey background color, or try using the FakeAlpha option instead, which will Blit the screen below it on the overlay. Note: nVidia hardware only supports fragments of the DirectDraw overlay technique - Alpha won't work there (trying to set it will cause an error). Integrated in this tool are only some general plugins or plugins that I use. By changing various settings, you can disable and enable several plugins and change their behavior.ĭevelopers may create their own plugins to display their own stuff.
![nvidia overlay nvidia overlay](https://techgage.com/wp-content/uploads/2015/09/NVIDIA-GeForce-Experience-Share-Overlay.jpg)
This tool allows you to display an overlay (which is over everything, including DirectX and your desktop (which means you can't make a screenshot of it directly)).