summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-01-19LibJS: Add missing definition of AsyncFunction.prototype.constructorLinus Groh
We also forgot to allocate an AsyncFunctionConstructor and assign it to m_async_function_constructor during GlobalObject initialization, whoops!
2022-01-19LibJS: Remove duplicate definition of AsyncGeneratorFunction.prototypeLinus Groh
2022-01-19LibSoftGPU: Reduce number of samplers to 2Stephan Unverwerth
OpenGL mandates at least 2 texture units when multitexturing is supported. This keeps our vertices lean and gives a nice speed improvement in glquake. Until we support shaders this should be enough.
2022-01-19LibGL+LibSoftGPU: Support generation of multiple texture coordinatesStephan Unverwerth
2022-01-19LibGL: Also track active texture unit indexStephan Unverwerth
In addition to tracking a pointer to the active texture unit we also track its index in the array.
2022-01-19LibGL: Track multiple current texture coordinates in GLContextStephan Unverwerth
Previously we only had a single current texture coordinate, set by the glTexCoord family of functions. Since we now can have multiple texture coordinates we track a vector of current texture coordinates and set the requested one in glMultiTexCoord(). glTexCoord() Always sets the first texture coordinate.
2022-01-19LibGL: Handle multiple texture coordinates in client stateStephan Unverwerth
This now tracks one vertex attribute pointer per texture unit and calls glMultiTexCoord() to set the texture coordinates for the correct texture unit.
2022-01-19LibGL+LibSoftGPU: Add multiple texture coordinates to vertex structStephan Unverwerth
We now have one set of texture coordinates per texture unit. Texture coordinate generation and texture coordinate assignment is currently only stubbed. This will be rectified in another commit.
2022-01-19LibGL: Add stubs for multitexturing and announce GL_ARB_multitextureStephan Unverwerth
This makes glquake recognize multitexture support and choose the multitexture rendering path.
2022-01-19LibGL: Implement glActiveTextureARB()Stephan Unverwerth
This is the equivalent of glActiveTexture() before it got promoted to the OpenGL core specification. It is needed by glquake to enable the multitexturing render path.
2022-01-19LibGL: Generate GL extension string dynamically during constructionStephan Unverwerth
LibGL will now generate the GL extension string in the constructor and refer to it later on when the string is queried via glGetString(). Currently we only check whether the device supports non-power-of-two textures and add GL_ARB_texture_non_power_of_two to the supported extensions in that case.
2022-01-19LibSoftGPU: Announce NPOT texture support via DeviceInfo structStephan Unverwerth
2022-01-19HackStudio: Change ProjectBuilder dependency declaration logicItamar
Previously when generating the HackStudio CMake build file, we used all dependency libraries that are specified in target_link_libraries commands as the dependencies of a library. The recent addition of LibCryptSHA2 broke things because that library is not declared with serenity_lib like most other libraries (it uses special linking properties). This means that we don't declare it in the CMake file we generate. To fix this, we now filter the dependencies and only include libraries that we define in the build CMake file.
2022-01-18LibCrypo: Simplify mixed-sign bitwise_orNico Weber
No behavior change.
2022-01-18LibCrypto: Remove some now-unused (and incorrect) methodsNico Weber
Removes the UnsignedBigInteger overloads of SignedBigInteger::binary_{and,or,xor}(). They're now unused, and they also didn't work when *this was negative.
2022-01-18LibCrypto+LibJS: Better bitwise binary_xor binopNico Weber
We went through some trouble to make & and | work right. Reimplement ^ in terms of & and | to make ^ work right as well. This is less fast than a direct implementation, but let's get things working first.
2022-01-18LibCrypto+LibJS: Better bigint bitwise_or binopNico Weber
Similar to the bitwise_and change, but we have to be careful to sign-extend two's complement numbers only up to the highest set bit in the positive number.
2022-01-18LibCrypto+LibJS: Better bigint bitwise_and binopNico Weber
Bitwise and is defined in terms of two's complement, so some converting needs to happen for SignedBigInteger's sign/magnitude representation to work out. UnsignedBigInteger::bitwise_not() is repurposed to convert all high-order zero bits to ones up to a limit, for the two's complement conversion to work. Fixes test262/test/language/expressions/bitwise-and/bigint.js.
2022-01-18LibJS+LibCrypto: Fix SignedBitInteger::bitwise_not and use it in LibJSNico Weber
Bitwise operators are defined on two's complement, but SignedBitInteger uses sign-magnitude. Correctly convert between the two. Let LibJS delegate to SignedBitInteger for bitwise_not, like it does for all other bitwise_ operations on bigints. No behavior change (LibJS is now the only client of SignedBitInteger::bitwise_not()).
2022-01-18LibCrypto: Add Formatter<SignedBigInteger>Nico Weber
Useful for seeing SignedBigInteger values in test failure messages.
2022-01-18FontEditor: Retrieve code point abbreviations from LibUnicodeTimothy Flynn
Rather than using a hard-coded list from AK::UnicodeUtils, LibUnicode contains the up-to-date official names and contains abbreviations for more control code points.
2022-01-18LibUnicode: Generate code point abbreviationsTimothy Flynn
2022-01-18LibJS: Implement UTF-16 surrogate pair concatenation without iterationTimothy Flynn
Performance of string concatenation regressed in a57e2f9. That commit iterates over the LHS string to find the last code unit, to check if it is a high surrogate. Instead, first look at the 3rd-to-last byte in the UTF-8 encoded string to check if it is a 3-byte code point; then decode just those bytes to check if we have a high surrogate. Similarly, check the first 3 bytes of the RHS string to check if we have a low surrogate.
2022-01-18disasm: Don't fail when trying to disassemble empty filesRummskartoffel
Given an empty file, disasm would try to create a zero-size memory mapping of that file, which would fail with EINVAL.
2022-01-18disasm: Convert to east-const and C++-style castsRummskartoffel
2022-01-18LibGUI: Use autoscroll from AbstractView when rubberbanding in IconViewMarcus Nilsson
We can re-use the logic used for automatic scrolling in AbstractView when we're doing rubberband scrolling in IconView. This removes some duplicated code.
2022-01-18HackStudio: Hookup git commit message detection and highlightingBrian Gianforcaro
2022-01-18TextEditor: Hookup git commit message detection and highlightingBrian Gianforcaro
2022-01-18LibGUI: Add a GitCommit SyntaxHighlighter implementationBrian Gianforcaro
This highlighter just syntax highlights the commented lines in your git commit message. It could potentially be enhanced to handle the rebase UI or other more advanced cases in the future.
2022-01-18LibSyntax: Add a language enum entry for git commit messagesBrian Gianforcaro
2022-01-18Playground: Enable line numbers in the GML editorBrian Gianforcaro
Most folks expect line numbers when editing code, so lets enable them in when editing GML in the Playground app.
2022-01-18LibJS: Combine UTF-16 surrogate pairs when concatenating stringsTimothy Flynn
In the following use case: "\ud834" + "\udf06" We were previously combining these as two individual code points. When concatenating strings, we must take care to combine the high surrogate from the left-hand side with the low surrogate from the right-hand side.
2022-01-18EmojiInputDialog: Increase size of buttons and dialogLady Gegga
Display some emojis earlier hidden behind "..." and add spacing.
2022-01-18LibGL+LibSoftGPU+3DFileViewer: Implement Specular highlighting :^)Jesse Buhagiar
2022-01-18LibGL+LibSoftGPU: Remove unused variable `specular_exponent`Jesse Buhagiar
This was a duplicate of the `Material::shininess` variable.
2022-01-18LibSoftGPU: Add `sgi_dot` lambdaJesse Buhagiar
This function is used quite a bit during the lighting calculations, so it's a bit cleaner having it in a centralized spot instead of just arbitrarily calling `dot()` with numerous `FloatVector3` conversions.
2022-01-18LibSoftGPU: Use correct position for `vertex_to_light`Jesse Buhagiar
The spec has a few stipulations on what this value should actually be, and hence we should follow it accordingly.
2022-01-18LibGfx: Add `::xyz()` swizzle operator to `Vector4`Jesse Buhagiar
2022-01-18LibGfx: Add unary `operator-()` to Vector2/3/4Jesse Buhagiar
2022-01-17LibJS: Make parseFloat slightly more specification-compliantIdan Horowitz
2022-01-17LibJS: Rewrite parseInt to be more specification-compliantIdan Horowitz
2022-01-17LibJS+LibUnicode: Make static const Utf8View variables constexprIdan Horowitz
2022-01-17LibJS: Implement the TrimString Abstract OperationIdan Horowitz
This was already implemented and duplicated across the String.prototype.trim{, Start, End} methods, so this simply extracts it into a separate method that can also be used by other users.
2022-01-17LibSoftGPU: Add stencil statistic to debug overlayJelle Raaijmakers
2022-01-17LibGL: Use number of lights from stored device infoJelle Raaijmakers
2022-01-17LibGL+LibSoftGPU: Implement the stencil bufferJelle Raaijmakers
This implements an 8-bit front stencil buffer. Stencil operations are SIMD optimized. LibGL changes include: * New `glStencilMask` and `glStencilMaskSeparate` functions * New context parameter `GL_STENCIL_CLEAR_VALUE`
2022-01-17LibGL: Convert stencil front/back function and operation to `Array`sJelle Raaijmakers
2022-01-17LibGL+LibSoftGPU: Enumize material front/back face selectionJelle Raaijmakers
2022-01-16readelf: Fall back to default interpreter path on empty pathThijs Waalen
This fixes readelf failing to map the interpreter for dynamic libraries. When an ELF does not have the PT_INTERP header the StringView will be of the inline capacity of the StringBuilder, not a null StringView. This would cause readelf not to fallback on the default interpreter path.
2022-01-17WindowServer: Pick font with glyphs for digits for ScreenNumberOverlayTom
We want to make sure we pick a font that has at least glyphs defined for all the digits that we may need to display.