ZIm/crates/gpui/src
Max Brunsfeld 295da0757e Respect paths' content masks when copying them from MSAA texture to drawable (#35688)
Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/34992

Paths are rendered first to an intermediate MSAA texture, and then
copied to the final drawable. Because paths can have transparency, it's
important that pixels are not copied repeatedly if paths have
overlapping bounding boxes. When N paths have the same draw order, we
infer that they must have disjoint bounding boxes, so that we can copy
them each individually (as opposed to copying a single rect that
contains them all). Previously, the bounding box that we were using to
copy paths was not accounting for the path's content mask (but it is
accounted for in the bounds tree that determines their draw order).

This cause bugs like this, where certain path pixels spuriously had
their opacity doubled:

https://github.com/user-attachments/assets/d792e60c-790b-49ad-b435-6695daba430f

This PR fixes that bug.

* [x] mac
* [x] linux
* [x] windows

Release Notes:

- Fixed a bug where a selection's opacity was computed incorrectly when
it overlapped with another editor's selections in a certain way.
2025-08-05 20:41:47 -07:00
..
app Add an editor: diff clipboard with selection action (#33283) 2025-07-23 02:39:32 +00:00
elements gpui: Add scroll_to_item_with_offset to UniformListScrollState (#35064) 2025-07-25 05:13:09 +05:30
keymap Update keymap context binding behavior of > and ! (#34664) 2025-07-18 09:25:18 -06:00
platform Respect paths' content masks when copying them from MSAA texture to drawable (#35688) 2025-08-05 20:41:47 -07:00
text_system Improve terminal rendering performance (#33345) 2025-07-08 09:05:01 -06:00
window gpui: Improve window.prompt to support ESC with non-English cancel text on macOS (#29538) 2025-05-30 15:26:27 +00:00
action.rs gpui: Reduce manual shifting & other minor improvements (#34407) 2025-07-15 16:39:33 +02:00
app.rs client: Send User-Agent header on WebSocket connection requests (#35280) 2025-07-29 16:53:56 +00:00
arena.rs chore: Bump Rust version to 1.88 (#33439) 2025-06-26 20:54:19 +02:00
asset_cache.rs gpui: Relax AssetLogger trait bounds (#29450) 2025-04-29 12:43:54 -07:00
assets.rs chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00
bounds_tree.rs gpui: Optimize the ordering update in the BoundsTree (#31025) 2025-05-30 08:23:27 -07:00
color.rs gpui: Reduce manual shifting & other minor improvements (#34407) 2025-07-15 16:39:33 +02:00
colors.rs gpui: Add a standard text example (#30747) 2025-05-16 17:35:44 +02:00
element.rs gpui: Add use state APIs (#34741) 2025-07-19 01:27:54 +00:00
executor.rs Add a test for remote tool use by the agent (#30289) 2025-05-08 16:53:04 -04:00
geometry.rs Migrate to schemars version 1.0 (#33635) 2025-06-30 21:07:28 +00:00
global.rs Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
gpui.rs gpui: Add tab focus support (#33008) 2025-07-20 16:38:54 -07:00
input.rs Implement character index for point (#23989) 2025-02-04 20:15:43 +00:00
inspector.rs Add a live Rust style editor to inspector to edit a sequence of no-argument style modifiers (#31443) 2025-05-26 17:43:57 +00:00
interactive.rs gpui: Simplify Action macros + support doc comments in actions! (#33263) 2025-06-24 04:34:51 +00:00
key_dispatch.rs gpui: Simplify bindings_for_action API (#34857) 2025-07-22 10:59:51 -04:00
keymap.rs gpui: Simplify bindings_for_action API (#34857) 2025-07-22 10:59:51 -04:00
path_builder.rs Revert "gpui: Improve path rendering & global multisample anti-aliasing" (#34722) 2025-07-18 16:03:08 +00:00
platform.rs Revert "gpui: Implement support for wlr layer shell (#32651)" (#35331) 2025-07-30 13:36:22 +00:00
prelude.rs Sketch in a table for the keybindings UI (#32436) 2025-06-30 19:25:11 -04:00
scene.rs Respect paths' content masks when copying them from MSAA texture to drawable (#35688) 2025-08-05 20:41:47 -07:00
shared_string.rs Migrate to schemars version 1.0 (#33635) 2025-06-30 21:07:28 +00:00
shared_uri.rs Rework loading images from files (#7088) 2024-01-30 11:26:02 -05:00
style.rs Add a live Rust style editor to inspector to edit a sequence of no-argument style modifiers (#31443) 2025-05-26 17:43:57 +00:00
styled.rs Add a live Rust style editor to inspector to edit a sequence of no-argument style modifiers (#31443) 2025-05-26 17:43:57 +00:00
subscription.rs gpui: Replace Mutex with RefCell for SubscriberSet (#30907) 2025-05-19 11:08:04 +02:00
svg_renderer.rs gpui: Use static keyword with LazyLock when loading system fonts (#34555) 2025-07-18 12:35:38 +02:00
tab_stop.rs gpui: Ensure first tab index is selected on first focus (#35247) 2025-07-29 10:30:38 +00:00
taffy.rs Re-land taffy 0.8.3 (#34939) 2025-07-24 00:33:43 +02:00
test.rs Add seed argument to #[gpui::test] attribute macro (#26764) 2025-03-14 13:40:02 -03:00
text_system.rs Improve terminal rendering performance (#33345) 2025-07-08 09:05:01 -06:00
util.rs chore: Bump Rust version to 1.88 (#33439) 2025-06-26 20:54:19 +02:00
view.rs Add initial element inspector for Zed development (#31315) 2025-05-23 23:08:59 +00:00
window.rs gpui: Ensure tab index handles are properly reused across frames (#35235) 2025-07-28 23:33:20 +02:00