aboutsummaryrefslogtreecommitdiff
path: root/core/fxge/win32/ctext_only_printer_driver.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxge/win32/ctext_only_printer_driver.h')
-rw-r--r--core/fxge/win32/ctext_only_printer_driver.h80
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_