summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-12-24pwd: Convert to `serenity_main(..)`Brian Gianforcaro
2021-12-24LibCore: Add Core::System::getcwd() wrapperBrian Gianforcaro
2021-12-24Spider: Add animation when drawing cardsNihal Jere
2021-12-24LibC: Implement _setjmp and _longjmpBrian Gianforcaro
These are aliases to `setjmp()` and `longjmp()` on our system, as our implementations don't modify the signal mask. This is required for the syzkaller executor process.
2021-12-24SystemMonitor: Remove unused SortingProxyModel includeSam Atkins
2021-12-24LibGUI+Userland: Make SortingProxyModel::create() return ErrorOrSam Atkins
Unfortunately, most of the users are inside constructors, (and two others are inside callback lambdas) so the error can't propagate, but that can be improved later.
2021-12-24LibSoftGPU: Add method to copy texels between imagesStephan Unverwerth
Adds a method `copy_texels()` to class `Image` that copies a rect of texels from source image to destination.
2021-12-24LibGL: Remove image storage from MipMapStephan Unverwerth
Images are stored on the device side. Texture2D and MipMap are now only used to store imformation about the texture and reference to the device image.
2021-12-24LibGL: Remove sampling code from Sampler2DStephan Unverwerth
Texture sampling now happens entirely in SoftGPU thus this class will now only be used to hold the sampler configuration.
2021-12-24LibGL+LibSoftGPU: Add method to query device infoStephan Unverwerth
This adds a method `info()` to SoftGPU that returns the name of the hardware vendor and device name, as well as the number of texture untis. LibGL uses the returned texture unit count to initialize its internal texture unit array.
2021-12-24LibSoftGPU: Move enums into separate fileStephan Unverwerth
2021-12-24LibSoftGPU: Remove GLenum used for selecting rendered primitive typeStephan Unverwerth
This removes the last reference to LibGL from LibSoftGPU. The GLenum has been replaced by our own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for polygon modeStephan Unverwerth
Replaces the GLenum used to setup polygon mode in RasterizerOptions with our own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for fog modeStephan Unverwerth
Replaces the GLenum used to set up the fog mode in RasterizerOptions with out own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for depth test funcStephan Unverwerth
Replaces the GLenum used in the RasterizerConfig for selecting the depth test function with out own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for draw buffer selectionStephan Unverwerth
Replaces the GLenum used in RasterizerConfig to select the draw buffer with a simple boolean that disabled color output when the draw buffer is set to GL_NONE on the OpenGL side.
2021-12-24LibSoftGPU: Remove OpenGL type for culled side selectionStephan Unverwerth
Replaces the GLenum in RasterizerConfig, that selects the triangle sides to be culled, with two booleans.
2021-12-24LibSoftGPU: Remove OpenGL type for front face selectionStephan Unverwerth
Replaces the GLenum used for selecting the frontface in the rasterizer config with out own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for alpha blend factorsStephan Unverwerth
Replaces the GLenum used for configuring alpha blend factors in the SoftGPU device with out own enum.
2021-12-24LibSoftGPU: Remove OpenGL type for alpha test funcStephan Unverwerth
Replaces the OpenGL enum used for setting the alpha test func in RasterizerOptions with out own enum.
2021-12-24LibSoftGPU: Remove simple OpenGL types from RasterizerConfigStephan Unverwerth
Replace GLfloat and GLboolean types in RasterizerConfig with their c++ native equivalent.
2021-12-24LibGL+LibSoftGPU: Use device samplers for renderingStephan Unverwerth
We now sample textures from the device owned image samplers. Passing of enabled texture units has been simplified by only passing a list of texture unit indices.
2021-12-24LibGL: Synchronize device config before rendering if anything changedStephan Unverwerth
2021-12-24LibGL: Attach device image to texture object and upload image dataStephan Unverwerth
2021-12-24LibSoftGPU: Add legacy texture env mode to sampler configStephan Unverwerth
2021-12-24LibSoftGPU: Add methods to read and write image dataStephan Unverwerth
This adds two methods, write_texels and read_texels, to the Image class. Conversion between image formats happens automatically. The layout of the client image data is passed in via ImageDataLayout struct.
2021-12-24LibSoftGPU: Make samplers part of deviceStephan Unverwerth
This adds a sampler array to the device implementation and adds a method `set_sampler_config` to configure samplers.
2021-12-24LibSoftGPU: Add device method for creating imagesStephan Unverwerth
2021-12-24LibSoftGPU: Add Image classStephan Unverwerth
This serves as the storage for all image types. 1D, 2D, 3D, Cube and image arrays. Upon construction a full mipmap chain is generated and the image is immutable afterwards with respect to its layout.
2021-12-24LibSoftGPU: Rename class SoftwareRasterizer to DeviceStephan Unverwerth
This class does everything related to rendering now. It is the software implementation of a full GPU device.
2021-12-24LibGL: Remove unused GLStruct.hStephan Unverwerth
2021-12-24LibGL+LibSoftGPU: Move Vertex and Triangle structs to LibSoftGPUStephan Unverwerth
2021-12-24LibGL+LibSoftGPU: Move primitive assembly and clipping into LibSoftGPUStephan Unverwerth
2021-12-24LibGL+LibSoftGPU: Add face culling state to rasterizer optionsStephan Unverwerth
2021-12-24LibGL+LibSoftGPU: Move rendering related code to LibSoftGPU libraryStephan Unverwerth
This introduces a new library, LibSoftGPU, that incorporates all rendering related features that formerly resided within LibGL itself. Going forward we will make both libraries completely independent from each other allowing LibGL to load different, possibly accelerated, rendering backends.
2021-12-24SoundPlayer: Add a keyboard shortcut 'M' to mute the playerElyse
This shortcut let us mute/unmute the player, but it still doesn't update the volume slider because the actual volume widget can't display a muted state.
2021-12-24SoundPlayer: Add 'mute' methods to PlayerElyse
These methods allow us to mute/unmute the player without needing to modify the volume level that it has.
2021-12-24AudioServer: Ignore 'muted' clients when computing the 'output mix'Elyse
2021-12-24AudioServer: Add a 'self_muted' state to each client connectionElyse
This new state will allow us to ignore muted clients when computing the 'output mix' in the Mixer.
2021-12-24AudioServer: Add 'mute' member and methods to ClientAudioStreamElyse
When computing the 'output mix', the Mixer iterates over all client audio streams and computes a 'mixed sample' taking into account mainly the client's volume. This new member and methods will allow us to ignore a muted client when computing that mix.
2021-12-24Everywhere: Refactor 'muted' to 'main_mix_muted' in all AudioConnectionsElyse
The 'muted' methods referred to the 'main mix muted' but it wasn't really clear from the name. This change will be useful because in the next commit, a 'self muted' state will be added to each audio client connection.
2021-12-24AudioServer/Mixer: Fix remaining samples underflowMax Trussell
The `m_remaining_samples` attribute was underflowing at the end of an audio stream. This fix guards against the underflow by only decrementing the attribute when it is greater than zero. I found this bug because the SoundPlayer userland application was not correctly detecting when an audio stream was completed. This was happening because the remaining samples being returned from the client audio connection was an underflowed 16 bit integer instead of zero.
2021-12-24SoundPlayer: Sync startup loop and show playlist settings in GUIMax Trussell
This fix syncs up the AudioPlayer's internal state for showing playlist information with the AudioPlayer's GUI. Before, if the AudioPlayer was opened with a playlist file (.m3u or .m3u8) it would automatically show the playlist information in the GUI and set the loop mode to playlist, but the menu options would be unchecked. In order to hide the playlist information, the menu option would then have to be toggled twice -- once on and again off.
2021-12-23HexEditor: Don't unnecessarily abbreviate variable namesArne Elster
There's enough line space to use readable variable names.
2021-12-23HexEditor: Make HexDocuments finalArne Elster
There's no reason as to why someone would inherit those, so might aswell make them final.
2021-12-23HexEditor: Scroll back to the top when opening another fileArne Elster
When a file is opened and scrolled to some position and the user opens another file, the current scroll position stays the same. That's disorienting. Therefore, when opening another file, scroll back to the top.
2021-12-23HexEditor: Stream input files instead of keeping them in memoryArne Elster
To support editing of large files it is an advantage to not load the entire file into memory but only load whatever is needed for display at the moment. To make it work, file access is abstracted into a socalled HexDocument, of which there two: a memory based and a file based one. The former can be used for newly created documents, the latter for file based editing. Hex documents now do track changes instead of the HexEditor. HexEditor only sets new values. This frees HexEditor of some responsibility.
2021-12-23LibFileSystemAccessClient: Allow custom access rights for open/saveArne Elster
There can be cases when one wants to open a file not just for reading but also for writing. It was already possible to have a custom open mode for request_file, now it is also possible through the open/save dialogs.
2021-12-23LibGUI: Add visual clue to Scrollbar gutterFrHun
This adds a visual clue to scrolling by clicking on the Scrollbar gutter. This gives the user a hint that scrolling will continue in the direction of the darkened gutter, until the mouse is released. It is inspired by very similar behavior on old windows.
2021-12-23LibC: Allow multiple includes of `<assert.h>`Michel Hermier
ISO C requires in section 7.2: The assert macro is redefined according to the current state of NDEBUG each time that <assert.h> is included. Also add tests for `assert` multiple inclusion accordingly.