#include "cc/raster/bitmap_raster_buffer_provider.h"
#include <stddef.h>
#include <stdint.h>
#include <utility>
#include "base/memory/raw_ptr.h"
#include "base/memory/shared_memory_mapping.h"
#include "base/trace_event/process_memory_dump.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/traced_value.h"
#include "cc/trees/layer_tree_frame_sink.h"
#include "components/viz/client/client_resource_provider.h"
#include "components/viz/common/resources/bitmap_allocation.h"
#include "components/viz/common/resources/shared_image_format.h"
#include "gpu/command_buffer/client/client_shared_image.h"
#include "gpu/command_buffer/common/shared_image_usage.h"
#include "gpu/ipc/client/client_shared_image_interface.h"
#include "ui/gfx/color_space.h"
namespace cc {
namespace {
class BitmapSoftwareBacking : public ResourcePool::SoftwareBacking { … };
class BitmapRasterBufferImpl : public RasterBuffer { … };
}
BitmapRasterBufferProvider::BitmapRasterBufferProvider(
LayerTreeFrameSink* frame_sink)
: … { … }
BitmapRasterBufferProvider::~BitmapRasterBufferProvider() = default;
std::unique_ptr<RasterBuffer>
BitmapRasterBufferProvider::AcquireBufferForRaster(
const ResourcePool::InUsePoolResource& resource,
uint64_t resource_content_id,
uint64_t previous_content_id,
bool depends_on_at_raster_decodes,
bool depends_on_hardware_accelerated_jpeg_candidates,
bool depends_on_hardware_accelerated_webp_candidates) { … }
void BitmapRasterBufferProvider::Flush() { … }
viz::SharedImageFormat BitmapRasterBufferProvider::GetFormat() const { … }
bool BitmapRasterBufferProvider::IsResourcePremultiplied() const { … }
bool BitmapRasterBufferProvider::CanPartialRasterIntoProvidedResource() const { … }
bool BitmapRasterBufferProvider::IsResourceReadyToDraw(
const ResourcePool::InUsePoolResource& resource) { … }
uint64_t BitmapRasterBufferProvider::SetReadyToDrawCallback(
const std::vector<const ResourcePool::InUsePoolResource*>& resources,
base::OnceClosure callback,
uint64_t pending_callback_id) { … }
void BitmapRasterBufferProvider::Shutdown() { … }
}