OpenFrameworks add-on to load textures progressively, across several frames, without blocking the app - with our without mipmaps
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin/data
example-Queue
example
scripts/ci
src
.travis.yml
addon_config.mk
appveyor.yml
readme.md

readme.md

ofxProgressiveTextureLoad

Build Status Build status

OpenFrameworks add-on to load grayscale, RGB and RGBA textures (with mipmaps) without blocking the app, load them to CPU on a background thread, resize to fit power or two requirements for mipmaps, resize and prepare all mipmaps levels, and progressively upload that data to the GPU across several frames.

Useful to load very large images... All this while keeping interactive frame rates.

You get notified when the texture is drawable (so that you can start drawing a low res version of it) and you will also get notified when its fully loaded.

also loads textures with no mipmaps.

There's a helper class to help handle a scenario where several simultaneous requests might happen, allowing only N of them to be loaded at the same time.

See the examples for more info.

demo video

Requires ofxOpenCV for image resizing, example uses ofxHistoryPlot and ofxTimeMeasurements to track performance, but they are not necessary.

Notes

On Windows, if using an Nvidia GPU, make sure you go to the Nvidia Driver Settings >> Manage 3D Settings and set "Threaded Optimization" to OFF. Otherwise performance will be greatly reduced.

License

MIT

Compatibility

tested on 0F >=0.8.3

Known issues

Version history