initial
parallel random noise generation
random number generation is its own kernel
separate queues for iterating, converting to pixbuf, and RNG
use read only buffer for blur matrices for a bit of speed
pixels at the border are now rendered with the correct border color + noise rather than black
use a float pixel buffer object, to offload conversion to int to the GPU
Load the .cl kernel code properly with a java resource
Noise is now gaussian, using a lookup table calculated in advance
Colors are now correctly clamped 0-1
Finally multithreaded!
- One OpenGL drawing & one OpenCL rendering thread
- Display resource is passed off between threads
- Main class now properly named "Recur"
Gamma adjustment applied before blurring, then corrected - simulates bloom
Border color now a parameter - brightness now per-channel
New blur method: Bokeh! Generates cool fractals through recursive aliasing!
Better exiting by properly ending OpenCL thread
Better exiting by properly ending OpenCL thread
Use float3 array in OpenCL, avoid calculations in alpha channel
Exit properly when recursion is stopped
Beginning of a UI to change parameter values!
SharedParameterUpdate to notify of parameter changes
Show some useful info about GPU device and OpenCL version
More parameters in the UI
Behave properly when bokeh radius < pixel radius
Contrast, brightness, gamma now adjustable - don't require recompiling
Gamma is per-channel