Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-01-19 | Move Widget & friends into LibGUI. | Andreas Kling | |
2019-01-19 | Make a SharedGraphics directory for classes shared between Kernel and LibGUI. | Andreas Kling | |
2019-01-18 | Make it possible to invalidate only a portion of a window. | Andreas Kling | |
Use this in Terminal to only invalidate rows where anything changed. | |||
2019-01-17 | Paper over annoying race in GraphicsBitmap instantiation. | Andreas Kling | |
This works for now. This has to be done quite differently when I eventually move the WindowServer to userspace. | |||
2019-01-17 | Get rid of #ifdef SERENITY. We're past that phase of bootstrapping. | Andreas Kling | |
2019-01-17 | Tidy up Painter::fill_rect() a bit. | Andreas Kling | |
2019-01-16 | Optimize Painter::draw_rect() a bit. | Andreas Kling | |
Reorganize the loops to make it go fast. The draw_rect() part of painting window frames is now ~2.65x faster. | |||
2019-01-16 | Optimize the Painter::blit() loop a bit. ~3% fewer cycles, I'll take it. | Andreas Kling | |
2019-01-16 | Move some more classes to the new coding style. | Andreas Kling | |
2019-01-16 | Tear out or duplicate what's unique for WindowServer from Widgets. | Andreas Kling | |
This turned into a huge refactoring that somehow also includes making locks recursive/reentrant. | |||
2019-01-16 | Window: Update coding style. | Andreas Kling | |
2019-01-16 | Pass the process to CharacterDevice::read/write. | Andreas Kling | |
This is much nicer than grabbing directly at 'current' inside a read(). | |||
2019-01-16 | Rename CharacterDevice::has_data_available_for_reading() -> can_read(). | Andreas Kling | |
2019-01-15 | Allow character devices to block write attempts until there is more space. | Andreas Kling | |
2019-01-15 | Let's do dword-at-a-time memcpy() and memset() in userspace as well. | Andreas Kling | |
Also fix a dumb bug that showed up when I was memsetting something other than zeroes. | |||
2019-01-15 | Minor Terminal tweaks. | Andreas Kling | |
2019-01-15 | Add very basic KeyDown events to the GUI event stream. | Andreas Kling | |
The Terminal program now hosts an interactive shell. :^) | |||
2019-01-15 | Factor out individual glyph drawing into Painter::draw_glyph(). | Andreas Kling | |
2019-01-15 | Start working on a graphical Terminal program. | Andreas Kling | |
2019-01-14 | Build Painter & friends into LibC. Use it in the GUI test app. | Andreas Kling | |
2019-01-14 | So long SDL stuff. You were a nice bootstrapping environment. | Andreas Kling | |
2019-01-14 | Share GraphicsBitmaps between the windowing server and the client process. | Andreas Kling | |
This is pretty cool. :^) GraphicsBitmaps are now mapped into both the server and the client address space (usually at different addresses but that doesn't matter.) Added a GUI syscall for getting a window's backing store, and another one for invalidating a window so that the server redraws it. | |||
2019-01-14 | Start refactoring the windowing system to use an event loop. | Andreas Kling | |
Userspace programs can now open /dev/gui_events and read a stream of GUI_Event structs one at a time. I was stuck on a stupid problem where we'd reenter Scheduler::yield() due to having one of the has_data_available_for_reading() implementations using locks. | |||
2019-01-13 | Keep back and front painters around in WindowManager. | Andreas Kling | |
The internal state never changes in some meaningful way for these (at this time.) | |||
2019-01-13 | Flush the old and new cursor rects in a single rect. | Andreas Kling | |
2019-01-13 | Make a nice bitmap cursor. | Andreas Kling | |
It's rendered as two CharacterBitmaps right now because I don't have a good primitive for this and I wanted it right away. I should add 2-color bitmaps.. Also make a neat little effect where the cursor becomes inverted on press. | |||
2019-01-13 | Minor GUI API things + make Button corners properly transparent. | Andreas Kling | |
2019-01-13 | Start working on a GUI kernel API. | Andreas Kling | |
2019-01-13 | Make GraphicsBitmaps be Region-backed when running in the kernel. | Andreas Kling | |
This is a lot better than having them in kmalloc memory. I'm gonna need a way to keep track of which process owns which bitmap eventually, maybe through some sort of resource keying system. We'll see. | |||
2019-01-13 | Have WindowManager::invalidate() unite dirty rects that intersect each other. | Andreas Kling | |
This is kinda primitive but it avoids double-draw when slowly dragging stuff. | |||
2019-01-12 | Paper over a race in DoubleBuffer. | Andreas Kling | |
I'm still somewhat okay throwing InterruptDisabler at races as they screw me. Eventually I'm gonna have to devise a different strategy though. | |||
2019-01-12 | Optimize WindowManager::flush() with fast_dword_copy(). | Andreas Kling | |
2019-01-12 | Give GraphicsBitmap a member for the pitch. | Andreas Kling | |
2019-01-12 | Make FrameBuffer::flush() a no-op when building outside of SDL. | Andreas Kling | |
2019-01-12 | Draw the cursor *after* flushing all dirty rects. | Andreas Kling | |
2019-01-12 | Remove FrameBuffer::blit() since it was superseded by Painter::blit(). | Andreas Kling | |
2019-01-12 | Add fast dword-sized copy and fill to the Painter code. | Andreas Kling | |
2019-01-12 | Fix broken focus rects (due to yet another Rect semantics bug.) | Andreas Kling | |
2019-01-12 | ListBox: Fix item rect inconsistency between paints and clicks. | Andreas Kling | |
2019-01-12 | Fix more underdraw bugs in Button due to new Rect semantics. | Andreas Kling | |
2019-01-12 | Clip painters to widget rect by default to prevent overdraw. | Andreas Kling | |
2019-01-12 | Update Painter class to the new coding style. | Andreas Kling | |
2019-01-12 | Fix rect drawing to grok new Rect semantics. | Andreas Kling | |
2019-01-12 | Give WindowManager member copies of the Framebuffer& and the screen rect. | Andreas Kling | |
These are used all the time, let's avoid function calls for them. | |||
2019-01-12 | WindowManager::invalidate() can just use Rect::intersection(). | Andreas Kling | |
2019-01-12 | WindowManager should only flush pixels inside the screen rect. | Andreas Kling | |
2019-01-12 | Tidy up the h/v line drawing loops a bit. | Andreas Kling | |
2019-01-12 | Make the Event class virtual. | Andreas Kling | |
I realized that we're leaking all the members in Event subclasses. | |||
2019-01-12 | Add a Vector::clear_with_capacity() that doesn't release the backing store. | Andreas Kling | |
Use this for WindowManager's dirty rects to avoid kmalloc traffic. | |||
2019-01-12 | Redraw both incoming and outgoing widget when changing focus. | Andreas Kling | |