mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-21 17:59:34 +00:00
Bug 1612440 - Add BlobImageHandler::create_similar. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D74297
This commit is contained in:
parent
ee478cb6d7
commit
be515a3296
@ -656,6 +656,13 @@ fn rasterize_blob(job: Job) -> (BlobImageRequest, BlobImageResult) {
|
||||
}
|
||||
|
||||
impl BlobImageHandler for Moz2dBlobImageHandler {
|
||||
fn create_similar(&self) -> Box<dyn BlobImageHandler> {
|
||||
Box::new(Self::new(
|
||||
Arc::clone(&self.workers),
|
||||
Arc::clone(&self.workers_low_priority),
|
||||
))
|
||||
}
|
||||
|
||||
fn add(&mut self, key: BlobImageKey, data: Arc<BlobImageData>, visible_rect: &DeviceIntRect, tile_size: TileSize) {
|
||||
{
|
||||
let index = BlobReader::new(&data);
|
||||
|
@ -133,6 +133,10 @@ impl CheckerboardRenderer {
|
||||
}
|
||||
|
||||
impl api::BlobImageHandler for CheckerboardRenderer {
|
||||
fn create_similar(&self) -> Box<dyn api::BlobImageHandler> {
|
||||
Box::new(CheckerboardRenderer::new(Arc::clone(&self.workers)))
|
||||
}
|
||||
|
||||
fn add(&mut self, key: api::BlobImageKey, cmds: Arc<api::BlobImageData>,
|
||||
_visible_rect: &DeviceIntRect, _: api::TileSize) {
|
||||
self.image_cmds
|
||||
|
@ -383,6 +383,11 @@ pub trait BlobImageHandler: Send {
|
||||
/// Creates a snapshot of the current state of blob images in the handler.
|
||||
fn create_blob_rasterizer(&mut self) -> Box<dyn AsyncBlobImageRasterizer>;
|
||||
|
||||
/// Creates an empty blob handler of the same type.
|
||||
///
|
||||
/// This is used to allow creating new API endpoints with blob handlers installed on them.
|
||||
fn create_similar(&self) -> Box<dyn BlobImageHandler>;
|
||||
|
||||
/// A hook to let the blob image handler update any state related to resources that
|
||||
/// are not bundled in the blob recording itself.
|
||||
fn prepare_resources(
|
||||
|
@ -128,6 +128,10 @@ impl CheckerboardRenderer {
|
||||
}
|
||||
|
||||
impl BlobImageHandler for CheckerboardRenderer {
|
||||
fn create_similar(&self) -> Box<dyn BlobImageHandler> {
|
||||
Box::new(CheckerboardRenderer::new(Arc::clone(&self.callbacks)))
|
||||
}
|
||||
|
||||
fn add(&mut self, key: BlobImageKey, cmds: Arc<BlobImageData>,
|
||||
_visible_rect: &DeviceIntRect, tile_size: TileSize) {
|
||||
self.image_cmds
|
||||
|
Loading…
x
Reference in New Issue
Block a user