Archive for Programming

Managed Overlay Library

I added a managed release of the overlay library here. I had intended to add this on Friday, and I took a jab at it back then, but something came up and I couldn’t finish it.

Also, I’ve not packaged the source for the managed sample separately. So, just retrieve the latest source code from the source code tab if you want to check the sample source.


Comments (10)

DirectDraw Overlay Library released

I have released a beta of the overlay library at codeplex, here. The current version features the C++ library only, until I iron out some remaining issues.

Comments (8)

DirectDraw Overlays on Vista, Part II

I discovered that the overlay problem I reported earlier was caused by the Desktop Window Manager, which is responsible for compositing under Vista. The DWM expects applications to draw themselves into an off-screen surface, which it can use for compositing. The solution I found back then, which is to retrieve the DC on the primary surface, caused the locking of the primary surface, which forces the DWM to relieve control to the application and switch back to “Aero Basic” for the duration of the application.

So I came up with a more explicit solution this time:

Disabling the DWM

Leave a Comment

DirectDraw Overlays on Vista: DDERR_OUTOFCAPS

My DirectDraw Overlay Sample does not work on Windows Vista. It fails at the call to IDirectDraw7::UpdateOverlay, with the HRESULT DDERR_OUTOFCAPS. If you search online for that, you won’t find any meaningful results–only the explanation that this error occurs when the overlay capabilities are already maxed, i.e. the DDCAPS::dwMaxVisibleOverlays cap has already been surpassed.

In examining the issue, I noticed that AngelCode’s overlay sample works fine. After examining his code, the only difference in our initialization sequences is that he retrieves the device context–HDC–on the primary surface before showing the overlay. He does that because he draws manually to the overlay, and he uses GDI to figure out the format of the surface.

So, it turns out, the solution was to simply retrieve the device context on the primary surface and immediately release it before calling IDirectDraw7::UpdateOverlay.

With that problem out of the way, I’m now working on transforming my sample into a flexible, robust overlay library.

Comments (2)

The Visual Studio Lockup Mystery…solved!

For a long time, I’ve been experiencing very annoying Windows lockups while using Visual Studio. It wasn’t uncommon for me to get 2 lockups a day with Visual Studio.NET. Moving to Visual Studio 2005 helped, but it still occurred every now and then. Finally, someone on the virtualdub team used his debugging Kung-Fu to find out what’s going on.

Leave a Comment

gethostbyname – First chance exception 0x000006C5: The tag is invalid

When running a Win32 application on WOW64, you’ll get such a first-chance exception–but the code will continue to work as usual. The exception only slows down operation. See: Bug report

Just to (hopefully) help those who google the above error.

Comments (8)

Milkshape3D Model Viewer

This has been on my TODO list for a long time. I started working on this about 4 or 5 months back, I think, but kept getting distracted by other things (e.g. finals, work, etc). The announcement thread on can be found here.

Obligatory images:

Animated ninja model (by psionic)

Animated ninja model, by psionic


Static car model, by psionic

Leave a Comment

Older Posts »