Nico Weber
fa00d94e82
LibGfx+icc: Add ICCProfile support for parametricCurveType and print it
...
With this, we can parse all types required in v4
"Three-component matrix-based Input profiles".
2023-01-23 23:37:33 +00:00
Nico Weber
67f718aa3f
LibGfx+icc: Add ICCProfile support for curveType and print it
2023-01-23 18:20:55 +00:00
Nico Weber
ea31aba0f4
LibGfx: Tweak an error message in XYZTagData::from_bytes
2023-01-23 18:09:23 +00:00
Nico Weber
9756842734
LibGfx+icc: Add ICCProfile support for s15Fixed16ArrayType and print it
...
This is the type of the chromaticAdaptationTag, which is a required tag
in v4 profiles for all non-DeviceLink profiles.
2023-01-23 18:09:23 +00:00
Nico Weber
9c5820326d
AK: Make FixedPoint::create_raw public and constexpr
2023-01-23 18:09:23 +00:00
Nico Weber
b347aebc3e
LibGfx: Do not repeat class name in ICC from_bytes() functions
...
Makes these more amenable to copy-pasting :^)
No behavior change.
2023-01-23 16:36:02 +01:00
Nico Weber
6cfb057430
LibGfx+icc: Add ICCProfile support for XYZType and print it
2023-01-23 12:08:25 +00:00
Nico Weber
2bfd09b173
LibGfx: Fix typo in an error message in TextTagData::from_bytes()
2023-01-23 10:09:01 +00:00
Nico Weber
e7eccf4ac8
LibGfx+icc: Add ICCProfile support for textDescriptionType and print it
...
This is used in v2 profiles for the required 'desc' tag. In v2
profiles, it's also used by the 'dmnd', 'dmdd', 'scrd', 'vued' tags.
In v4 profiles, these all use 'mluc' instead (except for 'scrd', which
is no longer part of the spec in v4).
2023-01-23 10:09:01 +00:00
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