Files
rk35xx-android14/external/pdfium/core/fxge/cfx_defaultrenderdevice.cpp
T
hmz007 36ed224bac Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ib87fdbe7a0be7dc961af3500fe9ea4589a127f9f
2024-10-29 18:12:02 +08:00

85 lines
2.5 KiB
C++

// Copyright 2022 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fxge/cfx_defaultrenderdevice.h"
#include <utility>
#include "core/fxge/dib/cfx_dibitmap.h"
namespace {
// When build variant is Skia then it is assumed as the default, but might be
// overridden at runtime.
#if defined(_SKIA_SUPPORT_)
CFX_DefaultRenderDevice::RendererType g_default_renderer_type =
CFX_DefaultRenderDevice::RendererType::kSkia;
#endif
} // namespace
// static
bool CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() {
#if defined(_SKIA_SUPPORT_)
return g_default_renderer_type == RendererType::kSkia;
#else
return false;
#endif
}
#if defined(_SKIA_SUPPORT_)
// static
void CFX_DefaultRenderDevice::SetDefaultRenderer(RendererType renderer_type) {
g_default_renderer_type = renderer_type;
}
#endif
CFX_DefaultRenderDevice::CFX_DefaultRenderDevice() = default;
CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() = default;
bool CFX_DefaultRenderDevice::Attach(RetainPtr<CFX_DIBitmap> pBitmap) {
return AttachWithRgbByteOrder(std::move(pBitmap), false);
}
bool CFX_DefaultRenderDevice::AttachWithRgbByteOrder(
RetainPtr<CFX_DIBitmap> pBitmap,
bool bRgbByteOrder) {
return AttachImpl(std::move(pBitmap), bRgbByteOrder, nullptr, false);
}
bool CFX_DefaultRenderDevice::AttachWithBackdropAndGroupKnockout(
RetainPtr<CFX_DIBitmap> pBitmap,
RetainPtr<CFX_DIBitmap> pBackdropBitmap,
bool bGroupKnockout) {
return AttachImpl(std::move(pBitmap), false, std::move(pBackdropBitmap),
bGroupKnockout);
}
bool CFX_DefaultRenderDevice::CFX_DefaultRenderDevice::AttachImpl(
RetainPtr<CFX_DIBitmap> pBitmap,
bool bRgbByteOrder,
RetainPtr<CFX_DIBitmap> pBackdropBitmap,
bool bGroupKnockout) {
#if defined(_SKIA_SUPPORT_)
if (SkiaIsDefaultRenderer()) {
return AttachSkiaImpl(std::move(pBitmap), bRgbByteOrder,
std::move(pBackdropBitmap), bGroupKnockout);
}
#endif
return AttachAggImpl(std::move(pBitmap), bRgbByteOrder,
std::move(pBackdropBitmap), bGroupKnockout);
}
bool CFX_DefaultRenderDevice::Create(int width,
int height,
FXDIB_Format format,
RetainPtr<CFX_DIBitmap> pBackdropBitmap) {
#if defined(_SKIA_SUPPORT_)
if (SkiaIsDefaultRenderer())
return CreateSkia(width, height, format, pBackdropBitmap);
#endif
return CreateAgg(width, height, format, pBackdropBitmap);
}