Spout 2.007 released

Without further ado Spout 2.007 is released.

Like the previous installation, just unzip the download file and copy the folder to any convenient location (although avoid folders requiring administrator privileges) and run “SpoutSettings” once.

What’s different for the user?

Nothing much at all for applications built with the Spout 2.006 SDK. The new settings will only take effect for updated applications, and there’s no rush for developers to do that either because all existing applications are compatible with those that are updated.

“SpoutPanel”, that pops up for receivers to select a sender, has been revised to fix some bugs. The demo programs now report much more if graphics is incompatible with OpenGL/DirectX texture linking. Error log files are generated and you can examine the result.

Sharing modes

Options for different sharing methods are rarely needed and most often used for testing. Now the switch to CPU backup is automatic if the system is not compatible with OpenGL/DirectX texture linking. The sender’s DirectX shared texture is not affected and can always be received by another application whether that is compatible or not.

How can that happen on the same system?

Easily if you have dual GPUs such as a laptop with Optimus or AMD auto switching graphics. If you want to know whether something is not OpenGL compatible, check “Auto” off in SpoutSettings. The program will either work or it won’t and you can decide to use CPU backup or investigate how to make the application compatible, typically with settings for the dual graphics system.

What other options are there?

Some tweaks. OpenGL buffering, maxumum sender number and some conveninence settings for NVIDIA graphics. Read the documentation files in the installation.

What if I want to go back to 2.006?

Run SpoutSettings in the “Spout 2.006 update 4” download folder once. To return to 2.007 do the same in the “Spout 2.007” download folder. You can go back and forth in this way and use both copies of the demo programs.

What’s new for developers?

Compatibility with existing applications means that developers can rebuild and/or explore new methods at their convenience. Documentation has been revised and there are comments in the SDK source files and in the example code.

The SDK has been re-written to remove the clutter. New methods that make it easier to create new applications. It’s possible for a sender to simply call “SendTexture” and that’s all. Existing application code does not need to be changed. Class files have been re-arranged but changes to existing code are minor, involving header file inclusion and where lower level class methods have been used. A rebuild with the 2.007 SDK files will convert everything to new methods. The documentation files cover all the details.

For updated applications, the frame counting features become active, so the receiver can query sender new frame, frame rate and frame number.

SpoutLibrary is updated and ready to use. Change the header file and libraries and make the necessary adjustments. Read the documentation for details.

A new “DirectX” folder has examples that show how a DirectX application can use the SDK class methods directly or use a support class to manage sender and receiver functions. Older DirectX 9 applications can use a separate, dedicated support class. Have a look at the commented examples.

Want to build the library as a dll but don’t have Visual Studio? Use CMake instead. CMake files allow you to generate projects for different compilers, where the code methods are supported, and build all the libraries in one go. The CMake files were contributed by Alexandre Buge of Smode. Read the documentation file “Building the Libraries”.


2.007 has been in development for some time and, although feedback for testing has been rare, the SDK has been tested with all available 2.006 projects. The entire 2.006 SDK is archived in the “2.006” branch, so you can continue to use it if you like. Eventually though this should be replaced. GitHub Beta replaces the Master branch, but remains for development and pull requests.


That’s a nice update, thanks Lynn !

Thank you for your hard work!