Particle system for developers

From PopcornFX
Jump to: navigation, search


The popcorn-fx runtime is a collection of C++ libraries. All the libraries build without exceptions and RTTI, except one helper file on Windows platforms, for thread-naming when the VisualStudio debugger is attached, but that can be deactivated through a build flag.

The code documentation is only available to licensed developers, as an offline help-file. There is no online SDK documentation, as the C++ SDK itself is subject to NDA.

You will find the .chm doc in:


How to hook your engine

the popcorn runtime is standalone, meaning it can run as-is with minimal integration effort. However, it also allows you to hook custom handlers for many core engine functionalities, like memory, filesystem, error reports, etc..
You can currently redirect the following:

  • Memory allocation
  • Filesystem
  • Threading
  • Asserts
  • Logging
  • Resource validation errors/warnings
  • Hardware caps detection (CPU & Memory)
  • Realtime profiler
  • Meshes (lets the runtime access your own meshes/vertex streams in memory)
  • Images (custom image codecs to read/write your own image format, can be a memory image proxy)
  • Compiler backends

Let us know if you need to hook/override other subsystems.

There are also a few non-critical builtin utilities in some of the modules (like, for example, billboarding helpers, the multithreaded software skinning implementation in hh-geometrics, mesh kd-tree compiler, callstacks, etc..).
If you licensed the full-sources package, all these can be deactivated through build-flags to reduce binaries size if you don't need them.


The runtime source code should be easily portable without much problems. It builds fine under GCC, SNC, Clang, GHS, and Visual C++ 2008/2010/2012/2013 (and should compile fine on ICC too, although we do not currently keep an official up-to-date port).
See the .chm developer documentation that comes with the SDK for more infomation.

The main entry-points for building with a new unsupported compiler and/or architecture will be hh_compiler*.h, hh_arch*.h, and the hh_os*.h headers

You can also contact us if you'd like popcorn-fx to be ported to a specific platform.

Debugging & optimization

In addition to various runtime debug memory and performance tools, we also provide debugger definitions for visual studio, to add to the debugger.dat file, for easier viewing & inspection of HellHeaven types in step-by-step mode.

The runtime also comes with a high-resolution, low-overhead, realtime visual profiler. You can freely profile your own functions/scopes in your custom particle nodes.

see the Realtime profiler page for further details

Profiler-0 .png