• Welcome to Theos PowerBasic Museum 2017.

StarGate 64-bit

Started by Patrice Terrier, December 13, 2013, 12:32:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Patrice Terrier

StarGate 64-bit (mini demoscene project).

It is based on a combination of:

  • OpenGL for animation.
  • BASS.dll for audio.
  • WinLIFT for skinning.
  • GDImage for WGL extension support.
  • Pure SDK flat API for performance and small code size.

Screen shot:

Main points of this demo:

  • Animation, on I7 multi-core could be performed from a dedicated loop thread, instead of using a TIMER.
  • Private font, ensure that the GUI always look the same on all computers.
  • Controls, are skinned on the fly (after the SkinEngine itself has been fired).
  • Effects, all animations are based on real time processing of the audio signal.
  • Antialias, is GPU based via the use of WGL GDImage extensions.

This is a VS2010+ C++ project, all bin files and resources are provided within the \X64\Release subfolder.

This version uses an XM sound tracker audio file to reduce the size of the ZIP file.
Patrice Terrier
GDImage (advanced graphic addon)

Patrice Terrier

The ZIP attached to the first post of this thread has been updated to fix a bug that was detected when i compiled the code in VS2013.

In BassAudio.h

Quotelong BassStreamFree() {
    long nRet = 0;
    if (ta.Channel) {
        if (ta.MediaType == MUSIC) {
            nRet = BASS_MusicFree(ta.Channel); }
        else {
            nRet = BASS_StreamFree(ta.Channel);
       ta.Channel = 0; ta.MediaType = 0;
    return nRet;

I was using only one single = instead of two  >:( (that's a very common error when translating from PB to C++)

However the ZIP file is still using the VS2010 version, because it produces smaller EXE: 110 Kb, while VS2013 is 150 Kb, 36% larger.

I also swap back the thread animation to a WM_TIMER, because a WM_TIMER produces more accurate result on slower machine, and single core processor.


Patrice Terrier
GDImage (advanced graphic addon)