summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-12-26PixelPaint: Erase old active layer boundary when active layer changesTim Ledbetter
2022-12-26Demos: Remove VirGLDemoStephan Unverwerth
All interesting code from the demo now lives in LibVirtGPU.
2022-12-26LibVirtGPU: Adopt rendering code from VirGLDemoStephan Unverwerth
2022-12-26LibVirtGPU: Adopt device initialization code from VirGLDemoStephan Unverwerth
2022-12-26LibVirtGPU: Create and initialize device from file descriptorStephan Unverwerth
2022-12-26LibVirtGPU: Replace magic values with command bitfieldsStephan Unverwerth
2022-12-26LibVirtGPU: Add utility header for command flag bitfieldsStephan Unverwerth
2022-12-26LibVirtGPU: Add enum for Gallium texture formatsStephan Unverwerth
2022-12-26LibVirtGPU: Add length verification to append_create_shader()Stephan Unverwerth
2022-12-26LibVirtGPU: Make depth and color clearing separate functionsStephan Unverwerth
2022-12-26LibVirtGPU: Remove hard coded primitive type in append_draw_vbo()Stephan Unverwerth
2022-12-26LibVirtGPU: Improve append_set_framebuffer_state_no_attach()Stephan Unverwerth
Remove hardcoded framebuffer size and add argument verification.
2022-12-26LibVirtGPU: Remove hardcoded size from append_viewport()Stephan Unverwerth
2022-12-26LibVirtGPU: Drop gl_ prefix from CommandBufferBuilder methodsStephan Unverwerth
2022-12-26LibVirtGPU: Use c++ style casts in CommandBuilderStephan Unverwerth
2022-12-26LibVirtGPU: Improve type safety of encode_command()Stephan Unverwerth
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.
2022-12-26LibVirtGPU: Make BindTarget an enum and move it into VirtGPU::ProtocolStephan Unverwerth
2022-12-26LibVirtGPU: Move VirGLDemo protocol code into VirtGPU namespaceStephan Unverwerth
2022-12-26LibVirtGPU: Add newlines between CommandBuilder methodsStephan Unverwerth
2022-12-26LibVirtGPU: Remove unnecessary BufferBuilder constructor deletionStephan Unverwerth
Since there is a non-default constructor this line is not needed.
2022-12-26LibVirtGPU: Adopt virgl protocol files from VirGLDemoStephan Unverwerth
2022-12-26LibGPU+LibVirtGPU: Allow loading the driver and instantiating the deviceStephan Unverwerth
This adds LibVirtGPU to the list of allowed drivers in LibGPU and adds a factory method to create the device to libVirtGPU.
2022-12-26LibVirtGPU: Add a new GPU device that talks to our VirtIO-GPU driverStephan Unverwerth
At this moment this only contains function stubs.
2022-12-26LibGPU+LibSoftGPU: Move size and pixel format information to GPU::ImageStephan Unverwerth
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.
2022-12-26WebServer: Use new String type internally as much as possibleThomas Keppler
Here, we try to use the new String type for everything internal, keeping the public interface and the interface to other code the same.
2022-12-26WebServer: Use new String type for default option valuesThomas Keppler
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.
2022-12-26WebServer: Require document root and credentials as config init paramsThomas Keppler
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.
2022-12-26WebServer: Rename {real_}root_path to {real_}document_root_pathThomas Keppler
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.
2022-12-26LibIPC: Remove requirement that Variant types must begin with EmptyTimothy Flynn
This is no longer required by the decoder.
2022-12-26LibIPC+Everywhere: Change IPC decoders to construct values in-placeTimothy Flynn
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).
2022-12-26IPCCompiler+LibIPC: Generate message decoders with better TRY semanticsTimothy Flynn
Instead of a bunch of manual error checking and returning a null OwnPtr, we can propagate the errors up and return NonnullOwnPtr on success.
2022-12-26Taskbar: Handle errors when adding/changing quick launch entriesArda Cinar
This patch removes 2 FIXMEs :^)
2022-12-26Taskbar: Add a factory function for TaskbarWindowArda Cinar
This means the errors all the way from Individual widgets get propagated up.
2022-12-26Taskbar: Add a factory function for QuickLaunchWidgetArda Cinar
This helps propagate errors that might happen when constructing the quick launch menu. However, the errors are not propagated all the way yet.
2022-12-26LibJS: Add yearOfWeek calendar methods and propertiesLuke Wilde
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
2022-12-26LibGUI: Standardize automatic scrolling in TextEditor+GlyphMapWidgetthankyouverycool
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.
2022-12-26LibGUI+Applications: Rename automatic scrolling timer functionsthankyouverycool
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
2022-12-26LibGUI: Handle Enter+Leave events for automatic cursor trackersthankyouverycool
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.
2022-12-26pro: Warn if credentials will not be considered for AuthorizationThomas Keppler
2022-12-26pro: Override authorization with manually set Authorization headerThomas Keppler
2022-12-26pro: Allow passing Basic Auth credentials for HTTP URLsThomas Keppler
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.
2022-12-26pro: Add header format to argument helpThomas Keppler
2022-12-26HackStudio: Remove `release_values_but_fixme_should_propogate_errors`sominusliticus
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.
2022-12-25WebDriver: Implement stub for .../element/{element id}/clickBaitinq
This patch adds a stub implementation for the POST /session/{session id}/element/{element id}/click endpoint.
2022-12-25LibWeb: Propagate errors in Element::scroll_into_view()Baitinq
This patch will allow us to handle scrolling errors in the WebDriver implementation :)
2022-12-25LibWasm: Split SaturatingTruncate conversion function by float/non-floatAndrew Kaster
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.
2022-12-25LibGL+LibWeb: Remove WebGL-specific API from GLContextJelle Raaijmakers
The OpenGL API has ways to retrieve these values, so let's make sure to implement them. :^)
2022-12-25Hackstudio: Use `GUI::TextEditor' actions for cut/copy/paste buttonsAayush
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.
2022-12-25LibWeb: Remove done gradient painting TODOMacDue
This code is already generalised to every gradient in existence.
2022-12-25LibWeb: Speed up gradient painting quite a lotMacDue
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 :^)