mirror of
https://github.com/servo/servo.git
synced 2025-08-26 07:38:21 +01:00
compostor: Move duplicated code for generating a batch of FontKey
s into a function (#38804)
The code was duplicated for handling in normal messages and handling while shutting down messages. This cleans it up and puts them into a function. Testing: Does not change functionality. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
This commit is contained in:
parent
8778f2d1f2
commit
011b314478
1 changed files with 32 additions and 25 deletions
|
@ -26,7 +26,7 @@ use crossbeam_channel::{Receiver, Sender};
|
|||
use dpi::PhysicalSize;
|
||||
use embedder_traits::{CompositorHitTestResult, InputEvent, ShutdownState, ViewportDetails};
|
||||
use euclid::{Point2D, Rect, Scale, Size2D, Transform3D};
|
||||
use ipc_channel::ipc::{self, IpcSharedMemory};
|
||||
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
||||
use log::{debug, info, trace, warn};
|
||||
use pixels::{CorsStatus, ImageFrame, ImageMetadata, PixelFormat, RasterImage};
|
||||
use profile_traits::mem::{ProcessReports, ProfilerRegistration, Report, ReportKind};
|
||||
|
@ -741,18 +741,11 @@ impl IOCompositor {
|
|||
number_of_font_instance_keys,
|
||||
result_sender,
|
||||
) => {
|
||||
let font_keys = (0..number_of_font_keys)
|
||||
.map(|_| self.global.borrow().webrender_api.generate_font_key())
|
||||
.collect();
|
||||
let font_instance_keys = (0..number_of_font_instance_keys)
|
||||
.map(|_| {
|
||||
self.global
|
||||
.borrow()
|
||||
.webrender_api
|
||||
.generate_font_instance_key()
|
||||
})
|
||||
.collect();
|
||||
let _ = result_sender.send((font_keys, font_instance_keys));
|
||||
self.handle_generate_font_keys(
|
||||
number_of_font_keys,
|
||||
number_of_font_instance_keys,
|
||||
result_sender,
|
||||
);
|
||||
},
|
||||
CompositorMsg::Viewport(webview_id, viewport_description) => {
|
||||
if let Some(webview) = self.webview_renderers.get_mut(webview_id) {
|
||||
|
@ -790,18 +783,11 @@ impl IOCompositor {
|
|||
number_of_font_instance_keys,
|
||||
result_sender,
|
||||
) => {
|
||||
let font_keys = (0..number_of_font_keys)
|
||||
.map(|_| self.global.borrow().webrender_api.generate_font_key())
|
||||
.collect();
|
||||
let font_instance_keys = (0..number_of_font_instance_keys)
|
||||
.map(|_| {
|
||||
self.global
|
||||
.borrow()
|
||||
.webrender_api
|
||||
.generate_font_instance_key()
|
||||
})
|
||||
.collect();
|
||||
let _ = result_sender.send((font_keys, font_instance_keys));
|
||||
self.handle_generate_font_keys(
|
||||
number_of_font_keys,
|
||||
number_of_font_instance_keys,
|
||||
result_sender,
|
||||
);
|
||||
},
|
||||
CompositorMsg::NewWebRenderFrameReady(..) => {
|
||||
// Subtract from the number of pending frames, but do not do any compositing.
|
||||
|
@ -813,6 +799,27 @@ impl IOCompositor {
|
|||
}
|
||||
}
|
||||
|
||||
/// Generate the font keys and send them to the `result_sender`.
|
||||
fn handle_generate_font_keys(
|
||||
&self,
|
||||
number_of_font_keys: usize,
|
||||
number_of_font_instance_keys: usize,
|
||||
result_sender: IpcSender<(Vec<FontKey>, Vec<FontInstanceKey>)>,
|
||||
) {
|
||||
let font_keys = (0..number_of_font_keys)
|
||||
.map(|_| self.global.borrow().webrender_api.generate_font_key())
|
||||
.collect();
|
||||
let font_instance_keys = (0..number_of_font_instance_keys)
|
||||
.map(|_| {
|
||||
self.global
|
||||
.borrow()
|
||||
.webrender_api
|
||||
.generate_font_instance_key()
|
||||
})
|
||||
.collect();
|
||||
let _ = result_sender.send((font_keys, font_instance_keys));
|
||||
}
|
||||
|
||||
/// Queue a new frame in the transaction and increase the pending frames count.
|
||||
pub(crate) fn generate_frame(&mut self, transaction: &mut Transaction, reason: RenderReasons) {
|
||||
self.pending_frames += 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue