linebender / linebender/vello

Consider support for "inverse" blurred rounded rectangles

Open
#1,374 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-cpu C-research
Dominant language
Rust
Stars
4.3k
Forks
300
Avg merge
2d 13h
Merged PRs (30d)
61

Description

It can be desired to support blurred rounded rectangles where the inside of the rectangle is transparent, with the outside being opaque. Imagine for example that this is a blurred "cutout" into an infinite plane. This is not supported by our current blurred rounded rectangle code, as the "infinite outside extent" colour is always transparent. This would be used in "inset" box shadows.
I believe that this would be implemented as a paint type equivalent to `1-brr`, where `brr` is the current blurred rounded rectangle paint type.

Before implementing this, we will need to confirm that this is actually the correct semantics for an inset box shadow, because otherwise this paint type would likely not have any practical use.

[#vello > Inset box shadows](https://xi.zulipchat.com/#narrow/channel/197075-vello/topic/Inset.20box.20shadows/with/569523012)

See also #1373 for implementing blurred rounded rectangles in Vello Hybrid

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Zulip discussion on inset box shadows to confirm whether inverse blurred rounded rectangles have the intended semantics. Then compare the proposed paint type with issue #1373; the work is complete when the semantics are agreed and the corresponding inverse blurred rounded rectangle support is implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.