PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
PixelBase and depth-agnostic pixel operations including light-type (additive) and gradient-type (average) blending, as well as alpha-blending. Some pixel bit-depth specialization for later serialization.
Finished the four basic integer-based pixel types.
Created a Layer type that can be filled with raw color, initialized with a QImage, or have a buffer written to it (either raw or from another Layer). Next step- manipulation and rendering.
Modified Layer, added a Canvas interface as well as a Tool interface. Next step is implementation, maybe add a GlobalState type, and then connect everything to the GUI and CaveArt Alpha version 1.0 will be released.
Added Canvas implementation and some of GUICanvas's implementation.
Started work on the GUI Canvas (which will be a QtQuick type) and modified Tool.h/Tool.cpp a bit, with some other minor modifications.
Everything is ready for GUI, but it turns out making custom non-QML types work with Qt Quick is practically impossible. When I have time, I'll have to make plugins for each GUI element in a separate project. Fun.
Well it's broken internally (can't update the QImage), but other than that it's working perfectly.
Just did a little testing and modification with the brush tool and color system. Originally saving caused a segfault, but that was fixed. Also, the brush radius can safely be set to INT_MAX if you really, really want to do that.
Added a blur tool and a demonstration in main.cpp. For whatever reason it's segfaulting at the very end, probably the delete gs line, because gs is set as a context property. I don't know how to avoid the memory leak otherwise.
Fixed the blur tool, now it actually blurs evenly, instead of up and to the left. It's quite slow at radii >35, I'll try to find a way to speed it up. Less accuracy? It currently covers every degree.
This is the best performance I could get out of the blur tool, I don't think I can make it any faster at this point. I don't know what to classify it as, only O(1/2(n^2)) comes to mind.
More testing and tweaking.
Well, it's broken and segfaulting and I'm not sure why. Hopefully I'll find a way to get it working soon, by the 27th.
Update BrushTool.cpp