5#include "core/fxge/cfx_defaultrenderdevice.h"
9#include "core/fxge/agg/fx_agg_driver.h"
10#include "core/fxge/dib/cfx_dibitmap.h"
12#if defined(PDF_USE_SKIA)
13#include "core/fxge/skia/fx_skia_device.h"
20#if defined(PDF_USE_SKIA)
21CFX_DefaultRenderDevice::RendererType g_renderer_type =
22 CFX_DefaultRenderDevice::kDefaultRenderer;
29#if defined(PDF_USE_SKIA)
30 return g_renderer_type == RendererType::kSkia;
36#if defined(PDF_USE_SKIA)
38void CFX_DefaultRenderDevice::SetRendererType(RendererType renderer_type) {
39 g_renderer_type = renderer_type;
54 return AttachImpl(
std::move(pBitmap), bRgbByteOrder,
nullptr,
false);
60 bool bGroupKnockout) {
61 return AttachImpl(
std::move(pBitmap),
false,
std::move(pBackdropBitmap),
65bool CFX_DefaultRenderDevice::CFX_DefaultRenderDevice::AttachImpl(
69 bool bGroupKnockout) {
70#if defined(PDF_USE_SKIA)
71 if (UseSkiaRenderer()) {
72 return AttachSkiaImpl(std::move(pBitmap), bRgbByteOrder,
73 std::move(pBackdropBitmap), bGroupKnockout);
76 return AttachAggImpl(
std::move(pBitmap), bRgbByteOrder,
77 std::move(pBackdropBitmap), bGroupKnockout);
80bool CFX_DefaultRenderDevice::
Create(
int width,
83 RetainPtr<CFX_DIBitmap> pBackdropBitmap) {
84#if defined(PDF_USE_SKIA)
85 if (UseSkiaRenderer()) {
86 return CreateSkia(width, height, format, pBackdropBitmap);
89 return CreateAgg(width, height, format, pBackdropBitmap);
92void CFX_DefaultRenderDevice::
Clear(uint32_t color) {
93#if defined(PDF_USE_SKIA)
94 if (UseSkiaRenderer()) {
95 static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver())->Clear(color);
static bool UseSkiaRenderer()
bool Create(int width, int height, FXDIB_Format format, RetainPtr< CFX_DIBitmap > pBackdropBitmap)
bool Attach(RetainPtr< CFX_DIBitmap > pBitmap)
~CFX_DefaultRenderDevice() override
bool AttachWithBackdropAndGroupKnockout(RetainPtr< CFX_DIBitmap > pBitmap, RetainPtr< CFX_DIBitmap > pBackdropBitmap, bool bGroupKnockout)
bool AttachWithRgbByteOrder(RetainPtr< CFX_DIBitmap > pBitmap, bool bRgbByteOrder)
CFX_DefaultRenderDevice()
void Clear(uint32_t color)
RenderDeviceDriverIface * GetDeviceDriver() const
void Clear(uint32_t color)