summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-10Lagom: Avoid declaring `Time` in the global namespaceMichel Hermier
When compiled using clang, an ambiguity error is detected between `class AK::Time` aliased to `::Time` and the `struct ::Time` provided in `GenerateTimeZoneData.cpp`. Solve this by moving most of the code in an anonymous namespace.
2022-01-10LibGUI+AK: Add DRAG_DEBUG opt and put drag operations behind dbgln_ifMarcus Nilsson
No need to have this enabled all the time.
2022-01-10Documentation: Document how to transfer files from QEMU to the hostBrandon
Document how to transfer files from QEMU to the host
2022-01-102048: Add action icons for New Game and SettingsDylan Katz
2022-01-102048: Simplify dialog box when target reachedDylan Katz
Previously, upon reaching the target, the player is presented with potentially two dialog boxes: one asking if the user wants to continue endlessly and another showing the player's statistics, which would only be shown if the user does not want to continue. This commit consolidates these into a single dialog box that shows the relevant statistics and asks the user if they want to continue endlessly.
2022-01-102048: Fix off-by-1 when opening settingsDylan Katz
When opening 2048's settings, it translates the target tile into a power of 2. Previously, it was done incorrectly, causing the resulting value to be off by one, and the number would increase every time one opens, saves and closes the settings. With this change, it now works as expected.
2022-01-09Meta: Disable readability-use-anyofallof clang-tidy checkHendiadyoin1
2022-01-09Kernel: Add implied auto qualifiers in MemoryHendiadyoin1
2022-01-09Base: Add Hebrew Characterselectrikmilk
2022-01-10Toolchain+CI: Link LLVM with LLD if availableDaniel Bertalan
According to most benchmarks, LLD is faster than GNU ld and the macOS linker, so let's use it if possible in order to speed up the toolchain build.
2022-01-10CI: Hash only relevant files for the key of the compiler cacheDaniel Bertalan
In the last few commits, a second patch was added to the LLVM toolchain, and it no longer uses our binutils patch. This commit changes the CI cache keys accordingly, in order to prevent unnecessary rebuilds of both toolchains when only one is changed. The Clang toolchain's cache now only takes into account patches that begin with `llvm`, and the GNU toolchain excludes those from the hash calculation. We now also hash the two CMake cache files that we use for building LLVM and its runtime libraries.
2022-01-10Toolchain: Do not overwrite libraries with stubs when rebuilding LLVMDaniel Bertalan
We erroneously appended ".so" after the base name for the library, so we ended up checking for the existence of e.g. `libc.so.so`, which obviously didn't exist, so we overwrote the existing libraries when we rebuilt the toolchain.
2022-01-10Toolchain: Don't use GNU objcopy in the LLVM toolchainDaniel Bertalan
Our build of LLVM's objcopy now supports the single missing feature (--update-section) that previously forced us to use the one from GNU Binutils. This means that there is no reason anymore to build Binutils alongside LLVM's tools.
2022-01-10Toolchain: Backport `--update-section` support to llvm-objcopyDaniel Bertalan
This commit backports the LLVM commit that adds support for the `--update-section` flag to llvm-objcopy. We use this feature of GNU objcopy to embed the symbol map in the kernel. The corresponding LLVM Phabricator Differential Revision can be found here: https://reviews.llvm.org/D112116 This patch is identical to the upstream commit, except for two hunks that had to be changed as they didn't apply cleanly.
2022-01-09LibGUI: Show hours and minutes in "unsaved changes" dialogsRafał Babiarz
2022-01-09AK: Added human_readable_time() method for "unsaved changes" dialogsRafał Babiarz
2022-01-09Kernel: Make enumerate_disk_partitions function not constPankaj Raghav
The enumerate_disk_partitions function doesn't need to be const. Remove the constness and use the newly added `add_partition` function.
2022-01-09Kernel: Add add_partition functionPankaj Raghav
Until now partitions were added directly by accessing the private member of the StorageDevice class. Add a new member function to add partition.
2022-01-09Base: Complete Greek & Coptic, and Cyrillicelectrikmilk
Add the rest of the Greek & Coptic, and Cyrillic characters.
2022-01-10Base: Fix non fixed-width in Cathodeelectrikmilk
Fix letters that aren't fixed-width (i, I, l)
2022-01-09Ports: Add "-ldl" as CMAKE_DL_LIBS in CMake platform patchAndrew Kaster
2022-01-09Ports: Add ccache port to make compiling on Serenity more fun :^)Andrew Kaster
2022-01-09Ports: Convert curl port to use CMake, remove two autoconf patchesAndrew Kaster
This removes the shlib hack from the install step, which repackaged the static library as the shared one. It also has the benefit of making the port work with the Clang toolchain :^).
2022-01-09Base: Monospace fontelectrikmilk
Add default monospace style font for code editing.
2022-01-09Ports: Patch out SDL timer lock from ScummVMJelle Raaijmakers
This change is backported from upstream master and prevents unnecessary spam to our debug console about NULL mutexes.
2022-01-09Ports: Compile ScummVM with OpenGL supportJelle Raaijmakers
By default, ScummVM will still run in software rendering mode, but the options to enable OpenGL will become available.
2022-01-09LibGL: Add stub for `glColorMaterial`Jelle Raaijmakers
2022-01-09Ports: Update ScummVM to version 2.5.1Jelle Raaijmakers
2022-01-09LibGL: Add capabilities to context parametersJelle Raaijmakers
Context parameters are LibGL's way of centrally defining all parameters that can be retrieved through `glGetBoolean*`, `glGetInteger*`, etc. The spec describes that capabilities such as `GL_LIGHTING` can also be retrieved through these methods, but it should not be possible to retrieve random boolean parameters through `glIsEnabled`. For example, `GL_UNPACK_LSB_FIRST` can only be retrieved through `glGet*`. This moves reading of capabilities to `::get_context_parameter` and implements its use in `::gl_is_enabled`.
2022-01-09LibJS: Implement proper Iterator recordsLinus Groh
Instead of using plain objects as Iterator records, causes confusion about the object itself actually being its [[Iterator]] slot, and requires non-standard type conversion shenanigans fpr the [[NextValue]] and [[Done]] internal slots, implement a proper Iterator record struct and use it throughout. Also annotate the remaining Iterator AOs with spec comments while we're here.
2022-01-09LibJS: Use Optional<Value> for potentially missing value in Iterator AOsLinus Groh
Given we're already moving away from using the empty Value elsewhere, and I'm about to update most of this code, let's do this small tweak now.
2022-01-09AK/SIMD: Suppress psabi warnings and add explanatory commentStephan Unverwerth
2022-01-09Meta: Do not allow undefined symbols in executables and shared objectsDaniel Bertalan
The `--allow-shlib-undefined` option is a bit of a misnomer. It actually controls whether we should be allowed to have undefined references after symbols from all dependencies have been resolved, so it applies both to shared libraries and executables. LLD defaults to allowing undefined references in shared libraries, but not in executables. Previously, we had to disable this check for executables too, as it caused a build failure due to the LibC-LibPthread-libc++ and the LibCore-LibCrypto circular dependencies. Now that those have been resolved, we can enable this warning, in the hopes that it will prevent us from introducing circular libraries and missing dependencies that might cause unexpected breakage.
2022-01-09LibCrypto: Link against LibCoreDaniel Bertalan
The ASN1 parser calls `LibCore::DateTime::create` and `LibCore::DateTime::now`.
2022-01-09Spreadsheet: Properly pass parent window to WorkbookGlenford Williams
Change the parent of the WizardDialog to that of the Spreadsheet window. Previously the WizardDialog was using the open file dialog as the parent resulting in the csv import dialog
2022-01-09PixelPaint: Verify that we have an ImageEditor instead of returningMarcus Nilsson
We should never be in a state where an action requiring an ImageEditor is enabled if all tabs are closed.
2022-01-09PixelPaint: Disable actions when no ImageEditor is openMarcus Nilsson
Disable all actions when the last tab is closed and enable them when a new ImageEditor is created.
2022-01-09LibGUI: Add Menu::set_children_actions_enabled() helperMarcus Nilsson
This adds a helper function to Menu that allows us to set all the children enabled/disabled.
2022-01-09PixelPaint: Keep a RefPtr to layer in LayerPropertiesWidgetMarcus Nilsson
Using a WeakPtr to keep a reference to the active layer caused it to be destroyed when the last tab was closed, which made the m_layer == layer check in set_layer() return early since it was already null. Because of this the LayerPropertiesWidget was never disabled.
2022-01-09PixelPaint: Make PaletteWidget::set_image_editor take a ImageEditor*Marcus Nilsson
After closing the last open ImageEditor, selecting a color would try to dereference it causing a crash. Instead make set_image_editor() take a pointer to it and set it to nullptr when closing the last tab like we do with LayerListWidget and LayerPropertiesWidget.
2022-01-09LibGL+LibSoftGPU: Implement viewport supportJelle Raaijmakers
This implements the `glViewport` API call, the coordinate transformation and the `GL_VIEWPORT` context parameter.
2022-01-09LibSoftGPU: Rename window coordinate transformation functionJelle Raaijmakers
The name `scissor_box_to_window_coordinates` was wildy inaccurate since we are actually transforming window coordinates into whatever the coordinate space of the backing bitmap is.
2022-01-09Help: Scroll to the top of page when opening a new linksholm
Previously the scroll position would not reset when loading a new page. This caused various problems such as opening the page at the previous pages scroll position and in some instances not even showing the new page at all.
2022-01-09Kernel: Page-align AC'97 audio buffer descriptor listJelle Raaijmakers
This was broken in commit 0a1b34c753 / PR #11687 since the buffer descriptor list size was not page-aligned, and the new `MM.allocate_dma_buffer_pages` expects a page-aligned size.
2022-01-09Toolchain: Fix macOS build failure due to a malformed patchDaniel Bertalan
Discord user aesophor pointed out that the GCC toolchain fails to build on macOS, and traced the issue back to 41ea37f2, which is the latest change to `gcc.patch`. Similarly, when I tried to run BuildIt.sh in the `--dev` mode, `git apply` complained about the patch being malformed. I regenerated the patch by manually applying the changes of 41ea37f2 on top of a known good GCC source tree, and I sent the new file to them. They reported that this fixed the build issue they were having.
2022-01-09LibSoftGPU: Take sample from pixel centerStephan Unverwerth
This adds a half pixel offset to the edge value calculation in order to sample the triangle at pixel centers. This is in line with actual OpenGL rasterization rules and generates correctly interpolated vertex attributes including texture coordinates.
2022-01-09LibSoftGPU: Make divide-by-zero guard more explicit in stats overlayStephan Unverwerth
This previously assigned 1 to any divisor that was 0 which was a bit confusing
2022-01-09LibSoftGPU: Allow arbitrary render target sizesStephan Unverwerth
With the RASTERIZER_BLOCK_SIZE gone we can now render to any size, even odd ones. We have to be careful to not generate out of bounds accesses when calculating the render target and depth buffer pointers. Thus we check the coverage mask and generate nullptrs for pixels that will not be updated. This also masks out pixels that would touch the triangle but are outside the render target/scissor rect bounds.
2022-01-09LibSoftGPU: Also interpolate normal during triangle clippingStephan Unverwerth
2022-01-09LibSoftGPU: Move alpha test into separate functionStephan Unverwerth