MacDue
8272cfc9f3
Base: Add a radial gradient with transparent end stops canvas demo
2023-01-23 10:03:54 +00:00
MacDue
a43d892c4e
LibGfx: Use the first/last color for positions before/after a gradient
...
This fixes a few rendering bugs especially where the first or last
color stop had a zero alpha value. Note we can't just set the first
and last values on the gradient line to the first/last colors since
that might not be correct (e.g. have a transition hint).
2023-01-23 10:03:54 +00:00
davidot
6255ca4a42
LibJS: Add DisposableStack{, Prototype, Constructor}
...
Since the async parts of the spec are not stage 3 at this point we don't
add AsyncDisposableStack.
2023-01-23 09:56:50 +00:00
davidot
bff038411a
LibJS: Add using declaration support in for and for of loops
...
The using declarations have kind of special behavior in for loops so
this is seperated.
2023-01-23 09:56:50 +00:00
davidot
541637e15a
LibJS: Add using declaration support, RAII like operation in js
...
In this patch only top level and not the more complicated for loop using
statements are supported. Also, as noted in the latest meeting of tc39
async parts of the spec are not stage 3 thus not included.
2023-01-23 09:56:50 +00:00
davidot
2c87ff2218
LibJS: Add Symbol.dispose
2023-01-23 09:56:50 +00:00
davidot
a746739cb0
LibJS: Add an initialize binding hint to all initialize_binding methods
...
This will allow us to specify things like SyncDispose and perhaps
AsyncDispose in the future.
2023-01-23 09:56:50 +00:00
davidot
3353cf68f1
LibJS: Add SuppressedError{, Prototype, Constructor}
2023-01-23 09:56:50 +00:00
davidot
0d8bab82f0
LibJS: Add custom details to toBe{True, False} shown on failure
...
Any test with multiple expect(...).toBe{True, False} checks is very hard
to debug.
2023-01-23 09:56:50 +00:00
davidot
fa030d7b9c
LibJS: Clarify more errors in test-common
...
Without a message these just show 'ExpectationError' even if the check
has multiple steps.
2023-01-23 09:56:50 +00:00
Aliaksandr Kalenik
802d9336f0
LibWeb: Use CSS Pixels for overflow clip rect
2023-01-23 10:21:23 +01:00
Cameron Youell
3bd96f29d2
Ladybird: Add LocationEdit Highlighting
2023-01-22 21:15:22 -07:00
Cameron Youell
b97f9f5809
Ladybird: Make LocationEdit its own class
...
Also make return key behave more like other browsers when editing
2023-01-22 21:15:22 -07:00
Sam Atkins
926e61dec6
LibCards: Use AK::shuffle() for shuffling new decks
2023-01-22 21:31:36 +00:00
Sam Atkins
c7a66882f4
AK: Make NonnullPtrVectors shuffleable
...
AK::shuffle() doesn't work on these, because their operator[] returns a
reference to the pointed-at value, instead of to the NonnullPtr itself.
2023-01-22 21:31:36 +00:00
Sam Atkins
ccabc8e930
LibCards+Games: Return ErrorOr from CardStack::add_all_grabbed_cards()
...
...and CardGame::pick_up_cards_from_stack() which is its only caller.
2023-01-22 21:31:36 +00:00
Sam Atkins
c7c4d70f6e
LibCards+Games: Return ErrorOr from deck-creation factory functions :^)
...
Also, be smarter about appending cards to the deck: we can
unchecked_append them to the deck, since we already ensured enough
capacity earlier.
2023-01-22 21:31:36 +00:00
Sam Atkins
0855e9f014
LibCards+Game: Return ErrorOr from CardGame::drop_cards_on_stack()
2023-01-22 21:31:36 +00:00
Sam Atkins
8b3a94ffbc
LibCards+Games+GamesSettings: Return ErrorOr from CardStack::push()
...
Very few of these calls can propagate their errors yet, but one step at
a time. :^)
2023-01-22 21:31:36 +00:00
Sam Atkins
83687f85df
LibCards+Solitaire: Rename CardStack::move_to_stack()
-> take_all()
...
`a.move_to_stack(b)` sounded too much like it moves a's cards to b, when
it actually moves b's cards to a.
2023-01-22 21:31:36 +00:00
Nico Weber
3423b54eb9
LibTextCodec: Make utf-16be and utf-16le codecs actually work
...
There were two problems:
1. They didn't handle surrogates
2. They used signed chars, leading to eg 0x00e4 being treated as 0xffe4
Also add a basic test that catches both issues.
There's some code duplication with Utf16CodePointIterator::operator*(),
but let's get things working first.
2023-01-22 21:30:44 +00:00
Nico Weber
aa9037eed4
AK: Add spec comments to Utf16CodePointIterator::operator*()
2023-01-22 21:30:44 +00:00
Nico Weber
401246ae21
LibJS: Use is_unicode_surrogate more
...
No behavior change.
2023-01-22 21:27:32 +00:00
Nico Weber
868b358b1a
LibJS: Add spec comments to quote_json_string
2023-01-22 21:27:32 +00:00
Nico Weber
ba97f471ca
LibJS: Add spec comments to CodePointAt
2023-01-22 21:27:32 +00:00
Timothy Flynn
ef275e25b8
AK: Reduce String's allocated data by one byte
...
This was copied from allocation_size_for_stringimpl, which had to ensure
the string is null-terminated. String makes no such guarantee.
2023-01-22 20:27:52 +00:00
Karol Kosek
c111536f28
LibGfx: Port JPGLoader to Core::Stream
2023-01-22 20:58:42 +01:00
Karol Kosek
2d976ab2a6
AK: Define is_trivially_serializable trait for Little and BigEndian<>
...
This will allow us get LittleEndian<> and BigEndian<> wrapped types
directly from Stream::read_value<>().
2023-01-22 20:58:42 +01:00
Karol Kosek
c39d3c30b7
LibGfx: Return stream errors when reading a marker in JPGLoader
2023-01-22 20:58:42 +01:00
Tim Schumacher
a9eea2e0c4
LibDebug: Use Core::Stream
to read opcodes for expression evaluation
2023-01-22 19:12:26 +01:00
Tim Schumacher
91505d8cf3
LibDebug: Port the rest of DWARF parsing to Core::Stream
2023-01-22 19:12:26 +01:00
Tim Schumacher
e62269650a
LibDebug: Propagate errors throughout DWARF parsing
...
Splitting this into a separate commit was an afterthought, so this does
not yet feature any fallible operations.
2023-01-22 19:12:26 +01:00
Tim Schumacher
e235c42e4d
LibDebug: Parse DWARF address ranges using Core::Stream
2023-01-22 19:12:26 +01:00
Tim Schumacher
908b88db34
LibDebug: Use Core::Stream
to read the DWARF abbreviations map
2023-01-22 19:12:26 +01:00
MacDue
9b35e3d95b
Base: Add test page for canvas gradients
2023-01-22 18:15:52 +01:00
MacDue
27a3e11f02
LibWeb: Implement the canvas gradients
...
This gets:
- CanvasRenderingContext2D.createLinearGradient()
- CanvasRenderingContext2D.createConicGradient()
- CanvasRenderingContext2D.createRadialGradient()
Actually working as fill styles for paths and rectangles :^)
Getting them working for strokes is left as an exercise is
left as an exercise for the reader.
2023-01-22 18:15:52 +01:00
MacDue
24cb57ac88
LibWeb: Update CRC2D .fillStyle and .strokeStyle to accept gradients
...
While doing add some structures to hold these new fill styles and
plumb them over to the painter.
2023-01-22 18:15:52 +01:00
MacDue
2be4142138
Meta: Register CanvasGradient as a platform object
2023-01-22 18:15:52 +01:00
MacDue
1a89d77688
LibGfx: Implement paint styles required for HTML canvas gradients
...
This implements the gradients for:
- CanvasRenderingContext2D.createLinearGradient()
- CanvasRenderingContext2D.createConicGradient()
- CanvasRenderingContext2D.createRadialGradient()
As loosely defined in: https://html.spec.whatwg.org/multipage/canvas.html#fill-and-stroke-styles
(It's really not very well defined for radial gradients)
Actual implementation (for radial gradients) was done with a lot
of trial and error, then visually comparing to other browsers.
2023-01-22 18:15:52 +01:00
MacDue
f3c0987afe
LibGfx: Add Painter::fill_rect(rect, paint_style)
...
The usual fill_rect()... but with style :^)
2023-01-22 18:15:52 +01:00
MacDue
223cedc896
LibGfx: Update fill_path() to support taking a PaintStyle
...
This means fill_path() now paints the scanlines its self rather than
calling draw_line() which easily allows each pixel along the scanline
to have a different color.
2023-01-22 18:15:52 +01:00
MacDue
b31d768e95
LibGfx: Add paint styles and allow gradients to be used as them
...
Also while here add option to disable pre-multiplied alpha for gradients
(this will be handy later).
2023-01-22 18:15:52 +01:00
Nico Weber
19ce63babf
icc: Print MultiLocalizedUnicodeTagData contents
2023-01-22 15:25:58 +00:00
Nico Weber
3bc70d7aa5
icc: Print TextTagData contents
2023-01-22 15:25:58 +00:00
Nico Weber
ec7a2058a2
LibGfx: Add ICCProfile support for multiLocalizedUnicodeType
...
This is used in v4 profiles for the required 'cprt' and 'desc' tags.
2023-01-22 15:25:58 +00:00
Nico Weber
3dfb012a1a
LibGfx: Add ICCProfile support for textType
...
This is used in v2 profiles for the required 'cprt' tag.
2023-01-22 15:25:58 +00:00
Nico Weber
d33eef14a0
LibGfx: Minorly simplify a line of code in ICCProfile with OptionalNone
...
No behavior change.
2023-01-21 22:16:38 -05:00
Nico Weber
b56a145a67
LibGfx+icc: Make device manufacturer and device model clickable
2023-01-21 22:16:38 -05:00
Timothy Flynn
243caa8fa9
LibJS: Port the VM's single-character ASCII strings to String
...
This creates the Strings representing the ASCII characters at compile
time, then creates the PrimitiveStrings from those Strings when the VM
is created.
2023-01-22 01:03:13 +00:00
Timothy Flynn
12c8bc3e85
AK: Add a String factory to create a string from a single code point
2023-01-22 01:03:13 +00:00