Sergey Bugaev
7ccb84e58e
PaintBrush: Make spray circular.
2019-06-17 16:11:01 +02:00
Robin Burchell
502c54e39a
Add a simple spray fill tool
...
Could do with some more tweaking no doubt, and it'd be nice to have a
circular spray, but this is better than nothing.
2019-06-17 05:54:32 +02:00
Andreas Kling
f49e5c6732
PaintBrush: Reduce debug spam in the color editor dialog.
2019-06-16 16:33:16 +02:00
Andreas Kling
cf17e385b5
PaintBrush: Allow editing palette colors by ctrl-clicking them.
...
Maybe the ColorDialog class could be fashioned into something generally
usable in LibGUI, but for now it lives in the PaintBrush app. :^)
2019-06-16 15:09:36 +02:00
Andreas Kling
264890bfc3
PaintBrush: Flood filling with the same color is a no-op.
2019-06-16 06:34:29 +02:00
Andreas Kling
694b4a64bd
PaintBrush: Make little icons for the pen and bucket tools.
2019-06-15 17:52:53 +02:00
Andreas Kling
dcbddb4f8c
GraphicsBitmap: Provide templated versions of get_pixel() and set_pixel().
...
If we already know the bitmap format used, we can use these functions to
bypass the format checks and go straight to pixel manipulation.
2019-06-15 11:06:02 +02:00
Andreas Kling
150b3cf378
PaintBrush: Fix some silly logic typos in flood fill.
2019-06-15 10:48:20 +02:00
Andreas Kling
a8b2b96f38
PaintBrush: Use a Queue<Point> for the flood fill.
2019-06-15 10:39:45 +02:00
Andreas Kling
9443957c14
PaintBrush: Speed up the bucket tool with smarter use of Vector.
...
Put together a pretty well-performing queue using a Vector and an offset.
By using the new Vector::shift_left(int) instead of Vector::take_first()
we can avoid shifting the vector contents every time and instead only
do it every so often.
Maybe this could be generalized into a separate class, I'm not sure if it's
the best algorithm though, it's just what I came up with right now. :^)
2019-06-14 21:50:28 +02:00
Andreas Kling
e9c021de92
PaintBrush: Implement a naive but working bucket fill tool.
...
I've used a SinglyLinkedList<Point> for the flood fill queue, since Vector
was death slow. This could definitely be made faster with a better algorithm
and/or data structure. :^)
2019-06-14 19:11:22 +02:00
Andreas Kling
56cbe15033
PaintBrush: Factor out the pen tool into an actual PenTool class.
...
Also add a Tool base class, and an empty BucketTool subclass which is the
next thing to implement.
2019-06-14 18:51:57 +02:00
Andreas Kling
c4d24bb4e9
PaintBrush: Start fleshing out a toolbox widget.
2019-06-12 05:58:31 +02:00
Andreas Kling
cadc65a82d
PaintBrush: Let's use Color::MidGray for the outside-the-bitmap area.
2019-06-11 20:39:32 +02:00
Andreas Kling
70564a78b2
PaintBrush: Tidy up the UI a bit. Add some more colors.
2019-06-11 20:37:58 +02:00
Andreas Kling
6ef45bc0ef
PaintBrush: Add some placeholder menus so it looks proper.
2019-06-10 21:05:20 +02:00
Andreas Kling
1f756378e8
PaintBrush: Make it possible to switch colors using the PaletteWidget.
2019-06-10 20:07:26 +02:00
Andreas Kling
f86b1bdca1
PaintBrush: Add a PaletteWidget to allow color selection.
...
Also use different colors for left/right mouse button. :^)
2019-06-10 19:54:09 +02:00
Andreas Kling
642c82fbff
PaintBrush: Use draw_line() when drawing continuously.
2019-06-10 19:35:24 +02:00
Andreas Kling
d599544890
PaintBrush: Start working on a simple painting application.
2019-06-10 19:29:33 +02:00