Latest updates:
15/09/04: Added a couple of Windows tweaks
13/08/03: Added new version of Play3D, with several improvements and bug fixes
14/03/03: Added new version of Play3D, fixes bug and improves fullscreen option
07/01/03: Happy new year! (resolved to improve my web-site design this year..)
07/01/03: Added new program for download: OpenGL stereo movie player (0.07)
07/01/03: Added new version of GLPanel component (0.30) which now supports stereo.
10/12/02: Added link to Linux/SGI port of RasterSaver (thanks to Ken Schwarz)

 Particle Blend
 Platforms: Windows / OpenGL  Version: 1.01  Date: 06/06/01
This is an OpenGL demo that renders objects using thousands (or millions) of points, with full control over blending, depth-buffer, point-smoothing, alpha, resolution etc. The program needs a relatively good graphics card (GeForce II preferred), otherwise you will find it very slow. You can produce many interesting effects by carefully adjusting the parameters - it's a nice way to experiment with particles and blending functions.
Please download version 1.01, which has quite a few improvements over the previous version. The source code for this version is also available.
 File  Description  Size
 ParticleBlend101-Binary.zip   Latest Binary (Executable)   265k 
 ParticleBlend101-Source.zip   Latest Source-code   82k 
 particle_blend.zip   Older version (Binary only)   260k 

 GLPanel Component
 Platforms: Windows, OpenGL, Borland C++ Builder  Version: 0.30  Date: 07/01/03

This is the beta release of my OpenGL panel component for Borland C++ Builder 5. It provides a drag-and-drop method for implementing OpenGL applications. You can create an application by using the form designer to place panels on a form, then simply enter OpenGL code directly into an OnRender and OnResize event function. The panel takes care of the rest..
It makes it easy to create professional looking applications and hides much of the complexity from the developer. In particular, you can easily lay out multiple OpenGL windows on a form, and let Builder handle the resizing and layout for you.
The latest version 0.30 adds support for stereoscopic pixel formats (quad-buffer OpenGL stereo), fixes a bug and adds some basic installation instructions. These changes were made at the request of Jean-Alain Grunchec. Although I no longer use Builder myself, I try to maintain this component if anyone has any suggestions for changes or bug fixes.

 File  Description  Date  Size
 GLPanel030-Source.zip   Latest source-code   07/01/03   36k 
 GLPanel010-Source.zip   Older version  14/06/01   33k 

 HandleMon
 Platforms: Windows NT,2000  Version: 1.00  Date: 30/01/01
This is a desktop application for Windows NT / 2000 only. It monitors the number of handles in use by a process (you choose), and warns you when it reaches a specified limit. It was written using Borland C++ Builder 5, and full source code is available to download.
It's designed to detect handle leaks in a "popular word processor" (versions 97 and 2000 :) that can prevent you from saving large documents. It might be useful for other applications, and the source provides an example of using the Microsoft Performance Data Helper library.
 File  Description  Size
 HandleMon100.gif   Screen Shot   4k 
 HandleMon100Bin.zip   Binaries   294k 
 HandleMon100Src.zip   Source code   18k 
 HandleMon100BinSrc.zip   Binaries & Source (everything)   312k 

 SetGamma
 Platforms: Windows 9x,2000  Version: 1.00  Date: 06/01/02

This is a command-line utility that sets the display gamma before running an application, and restores it afterwards. It is useful for increasing the brightness of games. I wrote this because Unreal is too dark when using the OpenGL drivers on my system, but it might be useful for other applications also. I found a few shareware and commercial applications that do this, but nothing for free - so I wrote this.
Please note that not all display adapters support gamma table adjustment, which is required by this program. It is known to work with GeForce cards, and I believe it will also work with Radeon. If anyone can confirm whether this works on Radeon etc., I would be pleased to know.. drop me a line.
Important note: since this is a command line utility, you won't see anything happen if you just double-click the file.. this doesn't mean anything is wrong.. just start it from a command prompt, or create a shortcut to run it with the correct parameters.
The source code is available (compile with MS Visual C++ 6.0, remember to select Release build).

 File  Description  Size
 SetGamma100-Binary.zip   Binary (Executable)   51k 
 SetGamma100-Source.zip   Source-code  5k 

 OpenGL Stereo Viewer
 Platforms: Windows 9x,NT,2000  Version: 0.07 ALPHA  Date: 02/08/02

This is a 3D image viewer that allows stereoscopic JPS, JPEG and BMP pictures to be displayed under OpenGL using quad-buffer stereo. It supports single JPS images (containing both left/right views), as well as stereo pairs in BMP format (separate left/right image files). You can also view a sequence of images in a slideshow.
Note: Your graphics card must support true OpenGL stereo (not all cards support this, for example: GeForce2/3 are usually patched with SoftQuadro to enable this feature). This is an alpha version that has not been extensively tested: any feedback or suggestions would be welcomed. An improved version will be released very shortly, but I post this in the hope it will be useful.
Source code will also be released in the next version.
Version 0.07 has some minor improvements such as automatically switching on stereo, and a key to maximize the window to fill the screen.

 File  Description  Size
 StereoViewer007-Binary.zip   Latest Binary (Executable)   120k 
 StereoViewer005-Binary.zip   Older version (Executable)   119k 

 OpenGL Stereo Movie Player
 Platforms: Windows 2000 (others?)  Version: 0.10  Date: 05/12/02 (last update 13/08/03)

This is a 3D movie player that can play most 3D movies (AVI and MPEG) using quad-buffer stereo under OpenGL. It uses DirectShow to decode the movies, so it should support any movie that you can play with Windows MediaPlayer (providing that you have an appropriate codec installed). This is a command-line program, so you can easily control it from shortcuts or batch files.
It supports the following movie formats: interlaced, above/below, above/below with 5% separator and side-by-side. Your movie can be played using quad-buffer stereo, anaglyph mode or monoscopic mode. There is also a full-screen mode, looped playback, seeking to any point in movie, pause, rewind, eye-flip and a few other features that I forget (it's all in the readme file).
If your card doesn't support stereo, the program features an anaglyph mode for Red/Blue glasses!
Note: The quad-buffer stereo support depends on your graphics card and drivers (not all cards support this, for example: GeForce2/3/4 are usually patched with SoftQuadro to enable this feature). Workstation cards such as Quadro and Wildcat support stereo natively. 

 File  Description  Date  Size
 Play3D010-Binary.zip   Latest Binary (Executable)   13/08/03   145k 
 Play3D008-Binary.zip   Old Version   14/03/03   144k 
 Play3D007-Binary.zip   Old Version   05/12/02   144k 

 RemHead
 Platforms: Windows 9x,NT,2000  Version: 1.00  Date: 07/10/01

RemHead is a simple command line tool that can be used to strip a variable sized header from a raw format image file. It assumes that the file is formatted as follows: File=(Header+Image). You specify the width, height and bytes per pixel and it calculates the image size and header size. It then writes out a new file containing the raw image data.
For example, I find this very useful for stripping off the headers from image files so that they can be loaded into software such as MIMICS, Scion Image, ImageTool or many other packages that can read raw image formats (but often dislike variable size headers).
The source code is available, including MS Visual C++ 6.0 project.

 File  Description  Size
 RemHead100-Binary.zip   Binary (Executable)   20k 
 RemHead100-Source.zip   Source-code   6k 

 RasterSaver
 Platforms: Windows (9x,NT,2000,XP), MacOS-X, Linux, SGI  Version: 1.00  Date: 03/04/02 (last update 10/12/02)

RasterSaver is a free OpenGL screen saver, inspired by those science-fiction computers that you see in the background of anime movies, and written as an experiment with blending and TV noise effects. The source code contains examples of blending, texturing and simple ASE file loading. There is also a simple skeleton class that could be used to develop your own screen savers. I recommend nVidia GeForce for best results.
The source code is available, including MS Visual C++ 6.0 project. For MSVC 7 you need to link with "comctl32.lib" (thanks to Philip Wyett for pointing this out). I've also found headache tablets to be very useful with Visual Studio .NET.
Tom Naughton has kindly provided me with a port to MacOS X. This is very cool, thanks Tom. I haven't been able to test this myself, but I am making it available for download below. His contact details are in the readme file. There is a new version (003) here that fixes some problems apparently.
Ken Schwarz supplied an SGI and Linux port (10th Dec.02) This is a really great early Christmas present for me :) It's something I wanted to try myself, but hadn't found the time, so I was really pleased to see this. You will find a link to his site in the table below. I can't wait to try this in Linux..
Grzegorz Krol asked about compiling the code under Borland C++ Builder, so I've added some instructions that might help to get you started. There is a problem here because the screen saver library is not available for builder. For this reason, I have added a replacement version of "scrnsave.lib" that should work in builder (it worked for me at least). Let me know if you have any problems with this, because it hasn't been tested extensively. These files are not needed if you have access to MS Visual C++.

 Windows Version (original flavour)  Description  Size
 RasterSave100.exe   Windows Installer (Self-extracting EXE)   197k 
 RasterSave100-Source.zip   Windows Source-code   23k 
 Linux and SGI Version  Ported by Ken Schwarz - thanks!  Size
 Ken Schwarz Homepage   Linux and SGI Source-code (external link)   - 
 MacOS X Version  Ported by Tom Naughton - thanks!  Size
 rastersaver_macosx_003.tar.gz   Latest MacOS X Screensaver   341k 
 rastersaver_macosx_003_source.tar.gz   Latest MacOS X Source-code   22k 
 rastersaver_macosx.tar.gz   Older version (binary)  341k 
 rastersaver_macosx_source.tar.gz   Older version (source code)  22k 
 Borland C++ Builder Extras  Some help for those who use Borland Builder   Size
 RasterSave_BCB5.txt  Instructions for compilation under BCB5  5k 
 bcb_scrnsave_lib.zip  Replacement scrnsave.lib for BCB5  15k 

 Windows Registry Tweaks
 Platforms: Windows XP/2000  Version: 1.00  Date: 15/09/04

Below are a few registry tweaks that I find very useful for Windows development. They add options to the context menu that appears when you right click on a folder within Windows Explorer. Note: these only work on Windows 2000 and XP, and I recommend you read the readme.txt files before installing them.

 File  Description
 dos_prompt_here.zip   Open MS-DOS prompt by right clicking a folder in Explorer
 delete_temp_vc_files.zip   Delete temporary Visual C++ files by right clicking a folder.