Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cgdi_device_driver.h
Go to the documentation of this file.
1// Copyright 2020 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef CORE_FXGE_WIN32_CGDI_DEVICE_DRIVER_H_
8#define CORE_FXGE_WIN32_CGDI_DEVICE_DRIVER_H_
9
10#include <windows.h>
11
12#include "core/fxcrt/retain_ptr.h"
13#include "core/fxge/renderdevicedriver_iface.h"
14#include "third_party/abseil-cpp/absl/types/optional.h"
15
16class CFX_DIBBase;
17
19 protected:
20 CGdiDeviceDriver(HDC hDC, DeviceType device_type);
21 ~CGdiDeviceDriver() override;
22
23 // RenderDeviceDriverIface:
24 DeviceType GetDeviceType() const override;
25 int GetDeviceCaps(int caps_id) const override;
26 void SaveState() override;
27 void RestoreState(bool bKeepSaved) override;
28 void SetBaseClip(const FX_RECT& rect) override;
29 bool SetClip_PathFill(const CFX_Path& path,
30 const CFX_Matrix* pObject2Device,
31 const CFX_FillRenderOptions& fill_options) override;
32 bool SetClip_PathStroke(const CFX_Path& path,
33 const CFX_Matrix* pObject2Device,
34 const CFX_GraphStateData* pGraphState) override;
35 bool DrawPath(const CFX_Path& path,
36 const CFX_Matrix* pObject2Device,
37 const CFX_GraphStateData* pGraphState,
38 uint32_t fill_color,
39 uint32_t stroke_color,
40 const CFX_FillRenderOptions& fill_options,
41 BlendMode blend_type) override;
42 bool FillRectWithBlend(const FX_RECT& rect,
43 uint32_t fill_color,
44 BlendMode blend_type) override;
45 bool DrawCosmeticLine(const CFX_PointF& ptMoveTo,
46 const CFX_PointF& ptLineTo,
47 uint32_t color,
48 BlendMode blend_type) override;
49 bool GetClipBox(FX_RECT* pRect) override;
50 bool MultiplyAlpha(float alpha) override;
51 bool MultiplyAlphaMask(const RetainPtr<const CFX_DIBBase>& mask) override;
52
53 void DrawLine(float x1, float y1, float x2, float y2);
54
55 bool GDI_SetDIBits(const RetainPtr<const CFX_DIBBase>& source,
56 const FX_RECT& src_rect,
57 int left,
58 int top);
59 bool GDI_StretchDIBits(RetainPtr<const CFX_DIBBase> source,
60 int dest_left,
61 int dest_top,
62 int dest_width,
63 int dest_height,
64 const FXDIB_ResampleOptions& options);
65 bool GDI_StretchBitMask(RetainPtr<const CFX_DIBBase> source,
66 int dest_left,
67 int dest_top,
68 int dest_width,
69 int dest_height,
70 uint32_t bitmap_color);
71
72 const HDC m_hDC;
80};
81
82#endif // CORE_FXGE_WIN32_CGDI_DEVICE_DRIVER_H_
WindowsPrintMode g_pdfium_print_mode
CFX_WindowsRenderDevice(HDC hDC, CFX_PSFontTracker *ps_font_tracker, const EncoderIface *encoder_iface)
~CFX_WindowsRenderDevice() override
bool MultiplyAlphaMask(const RetainPtr< const CFX_DIBBase > &mask) override
void SetBaseClip(const FX_RECT &rect) override
absl::optional< FX_RECT > m_BaseClipBox
const DeviceType m_DeviceType
bool SetClip_PathStroke(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_GraphStateData *pGraphState) override
void DrawLine(float x1, float y1, float x2, float y2)
~CGdiDeviceDriver() override
bool SetClip_PathFill(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_FillRenderOptions &fill_options) 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 GDI_SetDIBits(const RetainPtr< const CFX_DIBBase > &source, const FX_RECT &src_rect, int left, int top)
bool GetClipBox(FX_RECT *pRect) override
bool GDI_StretchDIBits(RetainPtr< const CFX_DIBBase > source, int dest_left, int dest_top, int dest_width, int dest_height, const FXDIB_ResampleOptions &options)
bool DrawCosmeticLine(const CFX_PointF &ptMoveTo, const CFX_PointF &ptLineTo, uint32_t color, BlendMode blend_type) override
int GetDeviceCaps(int caps_id) const override
bool MultiplyAlpha(float alpha) override
CGdiDeviceDriver(HDC hDC, DeviceType device_type)
void RestoreState(bool bKeepSaved) override
DeviceType GetDeviceType() const override
void SaveState() override
bool FillRectWithBlend(const FX_RECT &rect, uint32_t fill_color, BlendMode blend_type) override
bool GDI_StretchBitMask(RetainPtr< const CFX_DIBBase > source, int dest_left, int dest_top, int dest_width, int dest_height, uint32_t bitmap_color)
~CGdiDisplayDriver() override
int GetDeviceCaps(int caps_id) const override
bool SetDIBits(const RetainPtr< const CFX_DIBBase > &pBitmap, uint32_t color, const FX_RECT &src_rect, int left, int top, BlendMode blend_type) override
bool StretchDIBits(RetainPtr< const CFX_DIBBase > bitmap, 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 GetDIBits(const RetainPtr< CFX_DIBitmap > &pBitmap, int left, int top) override
bool StartDIBits(RetainPtr< const CFX_DIBBase > bitmap, float alpha, uint32_t color, const CFX_Matrix &matrix, const FXDIB_ResampleOptions &options, std::unique_ptr< CFX_ImageRenderer > *handle, BlendMode blend_type) override
BlendMode
Definition fx_dib.h:49