diff options
Diffstat (limited to 'core/fxge/win32/ctext_only_printer_driver.h')
-rw-r--r-- | core/fxge/win32/ctext_only_printer_driver.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/core/fxge/win32/ctext_only_printer_driver.h b/core/fxge/win32/ctext_only_printer_driver.h new file mode 100644 index 000000000..e029a7cc4 --- /dev/null +++ b/core/fxge/win32/ctext_only_printer_driver.h @@ -0,0 +1,80 @@ +// Copyright 2020 The PDFium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CORE_FXGE_WIN32_CTEXT_ONLY_PRINTER_DRIVER_H_ +#define CORE_FXGE_WIN32_CTEXT_ONLY_PRINTER_DRIVER_H_ + +#include <windows.h> + +#include <memory> + +#include "core/fxge/cfx_windowsrenderdevice.h" + +class CTextOnlyPrinterDriver final : public RenderDeviceDriverIface { + public: + explicit CTextOnlyPrinterDriver(HDC hDC); + ~CTextOnlyPrinterDriver() override; + + private: + // RenderDeviceDriverIface: + DeviceType GetDeviceType() const override; + int GetDeviceCaps(int caps_id) const override; + void SaveState() override; + void RestoreState(bool bKeepSaved) override; + bool SetClip_PathFill(const CFX_Path& path, + const CFX_Matrix* pObject2Device, + const CFX_FillRenderOptions& fill_options) override; + bool SetClip_PathStroke(const CFX_Path& path, + const CFX_Matrix* pObject2Device, + const CFX_GraphStateData* pGraphState) override; + bool DrawPath(const CFX_Path& path, + const CFX_Matrix* pObject2Device, + const CFX_GraphStateData* pGraphState, + uint32_t fill_color, + uint32_t stroke_color, + const CFX_FillRenderOptions& fill_options, + BlendMode blend_type) override; + bool GetClipBox(FX_RECT* pRect) override; + bool SetDIBits(const RetainPtr<CFX_DIBBase>& pBitmap, + uint32_t color, + const FX_RECT& src_rect, + int left, + int top, + BlendMode blend_type) override; + bool StretchDIBits(const RetainPtr<CFX_DIBBase>& pBitmap, + uint32_t color, + int dest_left, + int dest_top, + int dest_width, + int dest_height, + const FX_RECT* pClipRect, + const FXDIB_ResampleOptions& options, + BlendMode blend_type) override; + bool StartDIBits(const RetainPtr<CFX_DIBBase>& pBitmap, + int bitmap_alpha, + uint32_t color, + const CFX_Matrix& matrix, + const FXDIB_ResampleOptions& options, + std::unique_ptr<CFX_ImageRenderer>* handle, + BlendMode blend_type) override; + bool DrawDeviceText(pdfium::span<const TextCharPos> pCharPos, + CFX_Font* pFont, + const CFX_Matrix& mtObject2Device, + float font_size, + uint32_t color, + const CFX_TextRenderOptions& options) override; + bool MultiplyAlpha(float alpha) override; + bool MultiplyAlpha(const RetainPtr<CFX_DIBBase>& mask) override; + + HDC m_hDC; + const int m_Width; + const int m_Height; + int m_nBitsPerPixel; + const int m_HorzSize; + const int m_VertSize; + float m_OriginY; + bool m_SetOrigin; +}; + +#endif // CORE_FXGE_WIN32_CTEXT_ONLY_PRINTER_DRIVER_H_ |