chore: Clean up use of gfx and constellation types (#31981)

This change contains three semi-related clean ups:

1. the `to_webrender()` and `from_webrender()` functions on Pipeline are
   turned into more-idiomatic `From` and `Into` implementations.
2. `combine_id_with_fragment_type` now returns a `u64` as that is what is
   expected for all callers and not a `usize`.
3. The `query_scroll_id` query is removed entirely. The
   `ExternalScrollId` that this queries is easily generated directly
   from the node's opaque id. Querying into layout isn't necessary at
   all.
This commit is contained in:
Martin Robinson 2024-04-09 08:43:48 +02:00 committed by GitHub
parent b79e2a0b65
commit dd9f62adcc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 62 additions and 119 deletions

View file

@ -223,14 +223,14 @@ impl PipelineId {
})
}
pub fn to_webrender(&self) -> WebRenderPipelineId {
let PipelineNamespaceId(namespace_id) = self.namespace_id;
let PipelineIndex(index) = self.index;
WebRenderPipelineId(namespace_id, index.get())
pub fn root_scroll_id(&self) -> webrender_api::ExternalScrollId {
ExternalScrollId(0, self.into())
}
}
impl From<WebRenderPipelineId> for PipelineId {
#[allow(unsafe_code)]
pub fn from_webrender(pipeline: WebRenderPipelineId) -> PipelineId {
fn from(pipeline: WebRenderPipelineId) -> Self {
let WebRenderPipelineId(namespace_id, index) = pipeline;
unsafe {
PipelineId {
@ -239,9 +239,19 @@ impl PipelineId {
}
}
}
}
pub fn root_scroll_id(&self) -> webrender_api::ExternalScrollId {
ExternalScrollId(0, self.to_webrender())
impl From<PipelineId> for WebRenderPipelineId {
fn from(value: PipelineId) -> Self {
let PipelineNamespaceId(namespace_id) = value.namespace_id;
let PipelineIndex(index) = value.index;
WebRenderPipelineId(namespace_id, index.get())
}
}
impl From<&PipelineId> for WebRenderPipelineId {
fn from(value: &PipelineId) -> Self {
(*value).into()
}
}