Age | Commit message (Collapse) | Author |
|
|
|
All interesting code from the demo now lives in LibVirtGPU.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Remove hardcoded framebuffer size and add argument verification.
|
|
|
|
|
|
|
|
ObjectType is now passed as an enum instead of a plain number. The
underlying type for both ObjectType and VirGLCommand have been reduced
to u8 to make sure they fit in the encoded command. Command length is
verified to not overflow u16.
|
|
|
|
|
|
|
|
Since there is a non-default constructor this line is not needed.
|
|
|
|
This adds LibVirtGPU to the list of allowed drivers in LibGPU and adds a
factory method to create the device to libVirtGPU.
|
|
At this moment this only contains function stubs.
|
|
Size and format information are the same for every implementation and do
not need to be virtual. This removes the need to reimplement them for
each driver.
|
|
Here, we try to use the new String type for everything internal,
keeping the public interface and the interface to other code the same.
|
|
We've also pulled out the default root path instead of folding it in
with the receiving variables, so that it's uniform across all options
with default values.
|
|
Now, there is nothing that can react to `set_...()` calls, so
offering this possibility can cause wrong assumptions as to what one
can do as soon as a WebServer instance has launched.
The main program can still decide whether to supply the optional
credentials or not, but this way, the configuration can become a Value
Object that won't change after initial creation.
|
|
The concept of a "document root" seems to be a de-facto industry
standard and doesn't make you wonder what kind of root path is meant.
|
|
This is no longer required by the decoder.
|
|
Currently, the generated IPC decoders will default-construct the type to
be decoded, then pass that value by reference to the concrete decoder.
This, of course, requires that the type is default-constructible. This
was an issue for decoding Variants, which had to require the first type
in the Variant list is Empty, to ensure it is default constructible.
Further, this made it possible for values to become uninitialized in
user-defined decoders.
This patch makes the decoder interface such that the concrete decoders
themselves contruct the decoded type upon return from the decoder. To do
so, the default decoders in IPC::Decoder had to be moved to the IPC
namespace scope, as these decoders are now specializations instead of
overloaded methods (C++ requires specializations to be in a namespace
scope).
|
|
Instead of a bunch of manual error checking and returning a null OwnPtr,
we can propagate the errors up and return NonnullOwnPtr on success.
|
|
This patch removes 2 FIXMEs :^)
|
|
This means the errors all the way from Individual widgets get propagated
up.
|
|
This helps propagate errors that might happen when constructing the
quick launch menu. However, the errors are not propagated all the way
yet.
|
|
This is a normative change in the Temporal spec.
See:
- https://github.com/tc39/proposal-temporal/commit/7fa4d18
- https://github.com/tc39/proposal-temporal/commit/caa941d
|
|
Both widgets now make use of their base class's scrolling timer and
now always accept drag selection updates on mousemove_event().
This guarantees much snappier feeling selections when actively moving
the mouse.
|
|
Renames on_automatic_scrolling_timer_fired() =>
automatic_scrolling_timer_did_fire()
The 'on_' prefix is usually reserved for AK::Function hooks.
Renames set_automatic_scrolling_{active,timer}() =>
set_automatic_scrolling_timer_active()
For consistency, accuracy, and header file A E S T H E T I C S
|
|
Previously, automatic cursor tracking widgets consumed all mouse
events but did not update their own hover state while active, meaning
Enter and Leave events were not being dispatched.
Fixes TextEditor's automatic selection scroll timer failing to stop
and start while autotracking. Its manual workaround in mousedown
is no longer needed.
|
|
|
|
|
|
Since our WebServer can already react to Basic Auth, now there is a way
to use that in SerenityOS :^)
This commit intentionally omits any Digest authentication.
NOTE: We specifically allow for empty credentials (just ':'), since
standard RFC7617 doesn't explicitly prohibit this.
|
|
|
|
There were a total of 20 fixmes that were removed. This required me to
create a `initialize_all()` function for the HackStudioWidget class
that could actually propagate the errors forward to the Serenity::Main
function for the HackStudio application.
All the fixmes dealt with loading icons for the various actions
possible.
This should not be a failure that keeps HackStudio from running, but
currently, if the icons cannot be loaded HackStudio fails to open.
|
|
This patch adds a stub implementation for the POST
/session/{session id}/element/{element id}/click endpoint.
|
|
This patch will allow us to handle scrolling errors in the WebDriver
implementation :)
|
|
It's possible to construct a floating point value that when converted to
double is not larger than i64::max(), but when remaining a float is
larger. This patch avoids that edge case with some even less exciting if
constexpr branches to fix a float-cast-overflow UBSAN error on macOS
with llvm 15.0.6.
|
|
The OpenGL API has ways to retrieve these values, so let's make sure to
implement them. :^)
|
|
This fixes a bug where hackstudio's language server will crash upon
clicking the 'cut' button when no text is selected. This was because
the actions were not disabled on empty selection.
We now disable the actions depending on if there is empty selection
inside current tab. We update the cut/copy/paste buttons' actions when
changing tabs.
|
|
This code is already generalised to every gradient in existence.
|
|
Previously gradient painting was dominated by the clipping checks in
Painter::set_pixel(). This commit changes gradient painting to use the
new Painter::fill_pixels() function (which does all these checks outside
the hot loop).
With this change gradient painting drops from 96% of the profile to 51%
when scrolling around on gradients.html. A nice 45% reduction :^)
|