summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-03Utilities/df: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/arp: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Ladybird: Set fixed height for SettingsFederico Guerinoni
2023-02-03Ladybird: Add setting for page to open on new tabFederico Guerinoni
2023-02-03Ladybird: Design settings layout in horizontalFederico Guerinoni
2023-02-03LibVideo/VP9: Use proper indices for updating inter_mode probabilitiesZaggy1024
I previously changed it to use the absolute inter-prediction mode values instead of the ones relative to NearestMv. That caused the probability adaption to take invalid indices from the counts and broke certain videos. Now it will just convert to the PredictionMode enum when returning from parse_inter_mode, which allows us to still use it the same as before.
2023-02-03LibVideo/VP9: Use u32 to store the parsed value countsZaggy1024
There were rare cases in which u8 was not large enough for the total count of values read, and increasing this to u32 should have no real effect on performance (hopefully).
2023-02-03LibVideo/VP9: Prevent negation overflow in BitStream::read_sZaggy1024
2023-02-03LibVideo/VP9: Correct the mode/partition probability adaption countsZaggy1024
2023-02-03LibVideo/VP9: Increase the size of summed boolean counts in merge_probsZaggy1024
This fixes an issue where probabilities that sum to greater than 255 would wrap and cause the maximum probability adaption to take effect.
2023-02-02WebContent: Remove pending file requests before invoking their callbacksTimothy Flynn
It's currently possible for the callback of a file request to request more file objects. This could cause the hash map storing these requests to be rehashed while one of its callbacks is being invoked. AK::Function explicitly forbids this with an assertion. Instead, remove the callback from the hash map before invoking the callback function.
2023-02-02AK: Define HashMap::take to find and remove a value from the mapTimothy Flynn
2023-02-02AK: Ensure string types are actually considered hash-compatibleTimothy Flynn
The AnyString concept is currently broken because it checks whether a StringView is constructible from a type T. The StringView constructors, however, only accept constant rvalue references - i.e. `T const&`. This also adds a test to ensure this continues to work.
2023-02-02AK: Return a constant reference from HashMap's constant get() overrideTimothy Flynn
We cannot return a mutable reference from a constant function.
2023-02-02CMake: Set DWARF version before the debug information levelTim Schumacher
Setting the DWARF version after having selected which level of debug information to generate apparently undoes some settings again. Doing the reverse apparently keeps both the version and the debug level setting, resulting in a significantly smaller disk image size.
2023-02-02Chess: Replace 'Style' menu with a link to GamesSettingsSam Atkins
GamesSettings provides a nicer way of editing these, rather than having them crammed into a menu.
2023-02-02Chess: Automatically update and repaint when the config changesSam Atkins
2023-02-02GamesSettings: Add chess settings :^)Sam Atkins
This adds a tab for configuring the appearance of Chess, along with a preview.
2023-02-02Chess: Paint pieces using BilinearBlend instead of NearestNeighborSam Atkins
This makes the pieces look a lot nicer when the window isn't the exactly ideal size. Vector images might be worth pursuing later.
2023-02-02Chess: Stop hiding the frame borderSam Atkins
This `fill_rect()` call was covering the nice border that we just painted a few lines earlier.
2023-02-02Chess: Move configuration values into the "Games" domainSam Atkins
Chess is a game, after all. This makes more sense once we have chess settings in GamesSettings. :^)
2023-02-02Chess: Stop trying to read non-existent window-size config valueSam Atkins
Nobody ever sets this, and it doesn't seem especially useful, so let's remove it.
2023-02-02GamesSettings: Make CardSettingsWidget creation fallibleSam Atkins
2023-02-02GamesSettings: Rename `Preview` -> `CardGamePreview`Sam Atkins
2023-02-02LibPDF: Simplify Encoding to align with simple font requirementsRodrigo Tobar
All "Simple Fonts" in PDF (all but Type0 fonts) have the property that glyphs are selected with single byte character codes. This means that the Encoding objects should use u8 for representing these character codes. Moreover, and as mentioned in a previous commit, there is no need to store the unicode code point associated with a character (which was in turn wrongly associated to a glyph). This commit greatly simplifies the Encoding class. Namely it: * Removes the unnecessary CharDescriptor class. * Changes the internal maps to be u8 -> FlyString and vice-versa, effectively providing two-way lookups. * Adds a new method to set a two-way u8 -> FlyString mapping and uses it in all possible places. * Simplified the creation of Encoding objects. * Changes how the WinAnsi special treatment for bullet points is implemented.
2023-02-02LibPDF: Stop calculating code points for glyphsRodrigo Tobar
When rendering text, a sequence of bytes corresponds to a glyph, but not necessarily to a character. This misunderstanding permeated through the Encoding through to the Font classes, which were all trying to calculate such values. Moreover, this was done only to identify "space" characters/glyphs, which were getting a special treatment (e.g., avoid rendering). Spaces are not special though -- there might be fonts that render something for them -- and thus should not be skipped
2023-02-02LibPDF: Fix ZapfDingbat's char codesRodrigo Tobar
The initial values were fine, but those starting at 100 were wrong: they are all octal values, but since they were missing an initial 0 they were interpreted as decimals.
2023-02-02LibPDF: Stop storing unicode code points in EncodingRodrigo Tobar
In PDF's fonts, encoding objects are used to translate bytes into fonts' glyphs. Glyphs (in the fonts we currently support) organise their glyphs in such a way that they are accessed by name, and thus encoding translate between a byte sequence and a glyph name. Note that an no point this translation includes a Unicode character, and therefore assigning a character to a glyph in the Encoding object is the wrong thing to do. Moreover, using the code point for this character during the byte-sequence-to-glyph translation sequence is double-wrong. This commit removes the characters associated to each translation in the built-in Encoding objects. In order to keep commits short and sweet, I'm currently simply removing the character from the enumeration, leaving the old structure this information was held on intact. Instead, I'm filling the "code_point" member with a zero, and filling both mappings (which will be changed later on too) with the glyph name and the associated char code.
2023-02-02LibGUI: Use the correct font when relayouting BreadcrumbbarAndreas Kling
When the system is broadcasting a "system font changed" notification, the Breadcrumbbar will be notified before its button children. This means that we have to use the Breadcrumbbar's font() for calculations inside Breadcrumbbar as the buttons themselves still have the old font at this point.
2023-02-02LibGUI: Merge two loops over the segments in Breadcrummbar::relayout()Andreas Kling
2023-02-02LibGUI: Center TreeView item icons verticallyAndreas Kling
This makes tree views with icons look a lot better at larger font sizes.
2023-02-02Piano: Propagate errors in PlayerWidgetKeir Davis
Co-authored-by: Sam Atkins <atkinssj@serenityos.org>
2023-02-02LibWeb: Implement Element.attachShadow and Element.shadowRoot :^)Karol Kosek
2023-02-02LibWeb: Allow to set a root mode value when constructing a ShadowRootKarol Kosek
2023-02-02LibWeb: Add a helper function for checking if element is a shadow hostKarol Kosek
2023-02-02LibWeb: Rename DOM::shadow_root() to shadow_root_internal()Karol Kosek
The shadowRoot property getter that will be added in subsequent commits has an additional check that checks whether the shadow root is opened. I didn't update the function logic to match with the IDL interface, because it's very likely we don't want that check in the existing code, so that for example closed shadow root elements can still be updated.
2023-02-02LibWeb: Make ShadowRoot.mode return ShadowRootMode instead of StringKarol Kosek
2023-02-02LibWeb: Actually initialize ShadowRoot bindingsKarol Kosek
`mode` and `host` attributes were always undefined.
2023-02-02PixelPaint: Update text tool font color on primary color changeTim Ledbetter
2023-02-02LibWeb+LibWebSocket: DOM WebSocket subprotocol supportGuilherme Gonçalves
This adds support for WebSocket subprotocols to WebSocket DOM objects, with some necessary plumbing to LibWebSocket and its clients. See the associated pull request for how this was tested.
2023-02-02PixelPaint: Scale move tool resize anchorsTim Ledbetter
The areas where the user must click to resize the image are now scaled to ensure they do not overlap. This allows us to display the correct cursor when zoomed out, as well as making the borders look nicer.
2023-02-02PixelPaint: Show resize anchors when using the move toolTim Ledbetter
This commit adds a two color border around areas that the user must drag to resize, when using the move tool.
2023-02-02PixelPaint: Highlight active layer when using the move toolTim Ledbetter
This commit adds a two color border around the currently selected layer when using the move tool.
2023-02-02PixelPaint: Set initial position correctly when using the move toolTim Ledbetter
This fixes an issue, where single clicking in the corner of the image without moving the mouse would cause the layer to jump to the top left corner of the canvas.
2023-02-02Ports: Install all dependencies instead of just oneJelle Raaijmakers
Commit 9b7e217dda0c45 broke installation of port dependencies by `return`ing as soon as the first dependency was found.
2023-02-02LibSoftGPU: Only enable texture stages if requiredJelle Raaijmakers
Copying over every texel (4x`f32x4`) for every texture unit is relatively expensive. By checking if we even need to remember these texel values, we reduce the time spent in `rasterize_triangle` by around 2% as measured in Quake III.
2023-02-02Ports: Add bind mount automatically for Quake3Jelle Raaijmakers
We need a `wxallowed` bind mount for the `ioquake3` binary to be able to compile and run its executable scripts in memory. Instead of instructing the user how to do so in `/etc/fstab`, we can now use the fancy `/etc/fstab.d` facility :^)
2023-02-02LibSoftGPU: Make blending simpler and more efficientJelle Raaijmakers
Previously, we would precalculate "alpha blend factors" on every configuration update and then calculate the source and destination blending factors in one go using all these factors. The idea here was probably that we would get better performance by avoiding branching. However, by measuring blending performance in Quake III, it seems that this simpler version that only calculates the required factors reduces the CPU time spent in `rasterize_triangle` by 3%. As a bonus, `GL_SRC_ALPHA_SATURATE` is now also implemented.
2023-02-02Profiler: Standardize percentage formattingJelle Raaijmakers
This implements the same percentage formatting for the disassembly and flamegraph views as we have for the profile model.
2023-02-02FileSystemAccessServer: Send correct error code for failed file accessTimothy Flynn
When a file cannot be accessed, we currently send errno as the error code. However, there are system calls which occur (by way of dbgln) between the failed file access and accessing errno. This prevents the client-side detection of ENOENT from working. Instead, send over the error we already have stored in the ErrorOr object.