diff options
author | Lei Zhang <thestig@chromium.org> | 2015-12-22 14:37:03 -0800 |
---|---|---|
committer | Lei Zhang <thestig@chromium.org> | 2015-12-22 14:37:03 -0800 |
commit | be9095d0b2819cdc88785b0b4fdfccf837eb96a9 (patch) | |
tree | 8c81760b66d1e8da186bddc52d38f350f4e85bf1 /core/include/fxge | |
parent | 2d63eaaa39bb3d402c658b2a6e0eae50a30f1d89 (diff) | |
download | pdfium-be9095d0b2819cdc88785b0b4fdfccf837eb96a9.tar.xz |
Revert "Cleanup: Remove unused CFX_PSRenderer and various encoders it used."
This reverts commit 2d63eaaa39bb3d402c658b2a6e0eae50a30f1d89.
Broke the Windows build, though it is likely the code is unused on
Windows too.
Review URL: https://codereview.chromium.org/1540993004 .
Diffstat (limited to 'core/include/fxge')
-rw-r--r-- | core/include/fxge/fx_ge.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/core/include/fxge/fx_ge.h b/core/include/fxge/fx_ge.h index e2a400e83d..01a1c72a8f 100644 --- a/core/include/fxge/fx_ge.h +++ b/core/include/fxge/fx_ge.h @@ -608,4 +608,123 @@ class IFX_RenderDeviceDriver { virtual void ClearDriver() {} }; +class IFX_PSOutput { + public: + virtual void Release() = 0; + virtual void OutputPS(const FX_CHAR* string, int len) = 0; + + protected: + virtual ~IFX_PSOutput() {} +}; + +class CPSFont; +class CFX_PSRenderer { + public: + CFX_PSRenderer(); + + ~CFX_PSRenderer(); + + void Init(IFX_PSOutput* pOutput, + int ps_level, + int width, + int height, + FX_BOOL bCmykOutput); + FX_BOOL StartRendering(); + void EndRendering(); + + void SaveState(); + + void RestoreState(FX_BOOL bKeepSaved = FALSE); + + void SetClip_PathFill(const CFX_PathData* pPathData, + const CFX_Matrix* pObject2Device, + int fill_mode); + + void SetClip_PathStroke(const CFX_PathData* pPathData, + const CFX_Matrix* pObject2Device, + const CFX_GraphStateData* pGraphState); + + FX_RECT GetClipBox() { return m_ClipBox; } + + FX_BOOL DrawPath(const CFX_PathData* pPathData, + const CFX_Matrix* pObject2Device, + const CFX_GraphStateData* pGraphState, + FX_DWORD fill_color, + FX_DWORD stroke_color, + int fill_mode, + int alpha_flag = 0, + void* pIccTransform = NULL); + + FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, + FX_DWORD color, + int dest_left, + int dest_top, + int alpha_flag = 0, + void* pIccTransform = NULL); + + FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, + FX_DWORD color, + int dest_left, + int dest_top, + int dest_width, + int dest_height, + FX_DWORD flags, + int alpha_flag = 0, + void* pIccTransform = NULL); + + FX_BOOL DrawDIBits(const CFX_DIBSource* pBitmap, + FX_DWORD color, + const CFX_Matrix* pMatrix, + FX_DWORD flags, + int alpha_flag = 0, + void* pIccTransform = NULL); + + FX_BOOL DrawText(int nChars, + const FXTEXT_CHARPOS* pCharPos, + CFX_Font* pFont, + CFX_FontCache* pCache, + const CFX_Matrix* pObject2Device, + FX_FLOAT font_size, + FX_DWORD color, + int alpha_flag = 0, + void* pIccTransform = NULL); + + private: + IFX_PSOutput* m_pOutput; + + int m_PSLevel; + + CFX_GraphStateData m_CurGraphState; + + FX_BOOL m_bGraphStateSet; + + FX_BOOL m_bCmykOutput; + + FX_BOOL m_bColorSet; + + FX_DWORD m_LastColor; + + FX_RECT m_ClipBox; + + CFX_ArrayTemplate<CPSFont*> m_PSFontList; + + CFX_ArrayTemplate<FX_RECT> m_ClipBoxStack; + FX_BOOL m_bInited; + + void OutputPath(const CFX_PathData* pPathData, + const CFX_Matrix* pObject2Device); + + void SetGraphState(const CFX_GraphStateData* pGraphState); + + void SetColor(FX_DWORD color, int alpha_flag, void* pIccTransform); + + void FindPSFontGlyph(CFX_FaceCache* pFaceCache, + CFX_Font* pFont, + const FXTEXT_CHARPOS& charpos, + int& ps_fontnum, + int& ps_glyphindex); + + void WritePSBinary(const uint8_t* data, int len); +}; + #endif // CORE_INCLUDE_FXGE_FX_GE_H_ |