diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 13:35:12 -0400 |
---|---|---|
committer | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 13:35:12 -0400 |
commit | 764ec513eecbebd12781bcc96ce81ed5e736ee92 (patch) | |
tree | 12763fde4be1f10ea1183d92185917b2b587e00b /core/fxge/skia/fx_skia_device.h | |
parent | 97da97662417085774f75c26e535c6fbe70266ae (diff) | |
download | pdfium-764ec513eecbebd12781bcc96ce81ed5e736ee92.tar.xz |
Move core/src/ up to core/.
This CL moves the core/src/ files up to core/ and fixes up the include guards,
includes and build files.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1800523005 .
Diffstat (limited to 'core/fxge/skia/fx_skia_device.h')
-rw-r--r-- | core/fxge/skia/fx_skia_device.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/core/fxge/skia/fx_skia_device.h b/core/fxge/skia/fx_skia_device.h new file mode 100644 index 0000000000..1a36fbe85b --- /dev/null +++ b/core/fxge/skia/fx_skia_device.h @@ -0,0 +1,149 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CORE_FXGE_SKIA_FX_SKIA_DEVICE_H_ +#define CORE_FXGE_SKIA_FX_SKIA_DEVICE_H_ + +#if defined(_SKIA_SUPPORT_) + +class SkCanvas; +class SkPaint; +class SkPath; +struct SkIRect; + +class CFX_SkiaDeviceDriver : public IFX_RenderDeviceDriver { + public: + CFX_SkiaDeviceDriver(CFX_DIBitmap* pBitmap, + int dither_bits, + FX_BOOL bRgbByteOrder, + CFX_DIBitmap* pOriDevice, + FX_BOOL bGroupKnockout); + ~CFX_SkiaDeviceDriver() override; + + /** Options */ + virtual int GetDeviceCaps(int caps_id); + + /** Save and restore all graphic states */ + virtual void SaveState(); + virtual void RestoreState(FX_BOOL bKeepSaved); + + /** Set clipping path using filled region */ + virtual FX_BOOL SetClip_PathFill( + const CFX_PathData* pPathData, // path info + const CFX_Matrix* pObject2Device, // optional transformation + int fill_mode); // fill mode, WINDING or ALTERNATE + + /** Set clipping path using stroked region */ + virtual FX_BOOL SetClip_PathStroke( + const CFX_PathData* pPathData, // path info + const CFX_Matrix* pObject2Device, // optional transformation + const CFX_GraphStateData* + pGraphState); // graphic state, for pen attributes + + /** Draw a path */ + virtual 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, + int blend_type = FXDIB_BLEND_NORMAL); + + virtual FX_BOOL SetPixel(int x, + int y, + FX_DWORD color, + int alpha_flag = 0, + void* pIccTransform = NULL); + + virtual FX_BOOL FillRect(const FX_RECT* pRect, + FX_DWORD fill_color, + int alpha_flag = 0, + void* pIccTransform = NULL, + int blend_type = FXDIB_BLEND_NORMAL); + + /** Draw a single pixel (device dependant) line */ + virtual FX_BOOL DrawCosmeticLine(FX_FLOAT x1, + FX_FLOAT y1, + FX_FLOAT x2, + FX_FLOAT y2, + FX_DWORD color, + int alpha_flag = 0, + void* pIccTransform = NULL, + int blend_type = FXDIB_BLEND_NORMAL) { + return FALSE; + } + + virtual FX_BOOL GetClipBox(FX_RECT* pRect); + + /** Load device buffer into a DIB */ + virtual FX_BOOL GetDIBits(CFX_DIBitmap* pBitmap, + int left, + int top, + void* pIccTransform = NULL, + FX_BOOL bDEdge = FALSE); + + virtual CFX_DIBitmap* GetBackDrop() { return m_pAggDriver->GetBackDrop(); } + + virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, + FX_DWORD color, + const FX_RECT* pSrcRect, + int dest_left, + int dest_top, + int blend_type, + int alpha_flag = 0, + void* pIccTransform = NULL); + virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, + FX_DWORD color, + int dest_left, + int dest_top, + int dest_width, + int dest_height, + const FX_RECT* pClipRect, + FX_DWORD flags, + int alpha_flag = 0, + void* pIccTransform = NULL, + int blend_type = FXDIB_BLEND_NORMAL); + + virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, + int bitmap_alpha, + FX_DWORD color, + const CFX_Matrix* pMatrix, + FX_DWORD flags, + void*& handle, + int alpha_flag = 0, + void* pIccTransform = NULL, + int blend_type = FXDIB_BLEND_NORMAL); + virtual FX_BOOL ContinueDIBits(void* handle, IFX_Pause* pPause); + virtual void CancelDIBits(void* handle); + + virtual FX_BOOL DrawDeviceText(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); + + virtual FX_BOOL RenderRasterizer(agg::rasterizer_scanline_aa& rasterizer, + FX_DWORD color, + FX_BOOL bFullCover, + FX_BOOL bGroupKnockout, + int alpha_flag, + void* pIccTransform); + void SetClipMask(agg::rasterizer_scanline_aa& rasterizer); + void SetClipMask(SkPath& skPath, SkPaint* spaint); + virtual uint8_t* GetBuffer() const { return m_pAggDriver->GetBuffer(); } + void PaintStroke(SkPaint* spaint, const CFX_GraphStateData* pGraphState); + + private: + CFX_AggDeviceDriver* m_pAggDriver; + SkCanvas* m_canvas; +}; +#endif // defined(_SKIA_SUPPORT_) + +#endif // CORE_FXGE_SKIA_FX_SKIA_DEVICE_H_ |