Index: core/fxge/win32/win32_int.h |
diff --git a/core/fxge/win32/win32_int.h b/core/fxge/win32/win32_int.h |
index ae090b72d3e63cbfd9e2c9dbe81382e287221eba..974a1200e622edcd55a13e1ecec0bdfb182f0d60 100644 |
--- a/core/fxge/win32/win32_int.h |
+++ b/core/fxge/win32/win32_int.h |
@@ -9,8 +9,12 @@ |
#include <windows.h> |
+#include <memory> |
+ |
#include "core/fxge/cfx_pathdata.h" |
#include "core/fxge/ifx_renderdevicedriver.h" |
+#include "core/fxge/win32/cfx_psrenderer.h" |
+#include "core/fxge/win32/cpsoutput.h" |
#include "core/fxge/win32/dwrite_int.h" |
struct FXTEXT_CHARPOS; |
@@ -260,4 +264,71 @@ class CGdiPrinterDriver : public CGdiDeviceDriver { |
const int m_VertSize; |
}; |
+class CPSPrinterDriver : public IFX_RenderDeviceDriver { |
+ public: |
+ CPSPrinterDriver(HDC hDC, int ps_level, bool bCmykOutput); |
+ ~CPSPrinterDriver() override; |
+ |
+ protected: |
+ // IFX_RenderDeviceDriver |
+ int GetDeviceCaps(int caps_id) const override; |
+ bool StartRendering() override; |
+ void EndRendering() override; |
+ void SaveState() override; |
+ void RestoreState(bool bKeepSaved) override; |
+ bool SetClip_PathFill(const CFX_PathData* pPathData, |
+ const CFX_Matrix* pObject2Device, |
+ int fill_mode) override; |
+ bool SetClip_PathStroke(const CFX_PathData* pPathData, |
+ const CFX_Matrix* pObject2Device, |
+ const CFX_GraphStateData* pGraphState) override; |
+ bool DrawPath(const CFX_PathData* pPathData, |
+ const CFX_Matrix* pObject2Device, |
+ const CFX_GraphStateData* pGraphState, |
+ uint32_t fill_color, |
+ uint32_t stroke_color, |
+ int fill_mode, |
+ int blend_type) override; |
+ bool GetClipBox(FX_RECT* pRect) override; |
+ bool SetDIBits(const CFX_DIBSource* pBitmap, |
+ uint32_t color, |
+ const FX_RECT* pSrcRect, |
+ int left, |
+ int top, |
+ int blend_type) override; |
+ bool StretchDIBits(const CFX_DIBSource* pBitmap, |
+ uint32_t color, |
+ int dest_left, |
+ int dest_top, |
+ int dest_width, |
+ int dest_height, |
+ const FX_RECT* pClipRect, |
+ uint32_t flags, |
+ int blend_type) override; |
+ bool StartDIBits(const CFX_DIBSource* pBitmap, |
+ int bitmap_alpha, |
+ uint32_t color, |
+ const CFX_Matrix* pMatrix, |
+ uint32_t render_flags, |
+ void*& handle, |
+ int blend_type) override; |
+ bool DrawDeviceText(int nChars, |
+ const FXTEXT_CHARPOS* pCharPos, |
+ CFX_Font* pFont, |
+ const CFX_Matrix* pObject2Device, |
+ FX_FLOAT font_size, |
+ uint32_t color) override; |
+ void* GetPlatformSurface() const override; |
+ |
+ HDC m_hDC; |
+ bool m_bCmykOutput; |
+ int m_Width; |
+ int m_Height; |
+ int m_nBitsPerPixel; |
+ int m_HorzSize; |
+ int m_VertSize; |
+ std::unique_ptr<CPSOutput> m_pPSOutput; |
+ CFX_PSRenderer m_PSRenderer; |
+}; |
+ |
#endif // CORE_FXGE_WIN32_WIN32_INT_H_ |