| // 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. | |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| #ifndef _FX_GE_WIN32_H_ | |
| #define _FX_GE_WIN32_H_ | |
| #ifdef _WIN32 | |
| #ifndef _WINDOWS_ | |
| #include <windows.h> | |
| #endif | |
| #define WINDIB_OPEN_MEMORY 0x1 | |
| #define WINDIB_OPEN_PATHNAME 0x2 | |
| typedef struct WINDIB_Open_Args_ { | |
| int flags; | |
| const FX_BYTE* memory_base; | |
| size_t memory_size; | |
| FX_LPCWSTR path_name; | |
| } WINDIB_Open_Args_; | |
| class CFX_WindowsDIB : public CFX_DIBitmap | |
| { | |
| public: | |
| static CFX_ByteString GetBitmapInfo(const CFX_DIBitmap* pBitmap); | |
| static CFX_DIBitmap* LoadFromBuf(BITMAPINFO* pbmi, void* pData); | |
| static HBITMAP GetDDBitmap(const CFX_DIBitmap* pBitmap, HDC hDC); | |
| static CFX_DIBitmap* LoadFromDDB(HDC hDC, HBITMAP hBitmap, FX_DWORD* pPalette = NULL, FX_DWORD size = 256); | |
| static CFX_DIBitmap* LoadFromFile(FX_LPCWSTR filename); | |
| static CFX_DIBitmap* LoadFromFile(FX_LPCSTR filename) | |
| { | |
| return LoadFromFile(CFX_WideString::FromLocal(filename)); | |
| } | |
| static CFX_DIBitmap* LoadDIBitmap(WINDIB_Open_Args_ args); | |
| CFX_WindowsDIB(HDC hDC, int width, int height); | |
| ~CFX_WindowsDIB(); | |
| HDC GetDC() const | |
| { | |
| return m_hMemDC; | |
| } | |
| HBITMAP GetWindowsBitmap() const | |
| { | |
| return m_hBitmap; | |
| } | |
| void LoadFromDevice(HDC hDC, int left, int top); | |
| void SetToDevice(HDC hDC, int left, int top); | |
| protected: | |
| HDC m_hMemDC; | |
| HBITMAP m_hBitmap; | |
| HBITMAP m_hOldBitmap; | |
| }; | |
| class CFX_WindowsDevice : public CFX_RenderDevice | |
| { | |
| public: | |
| static IFX_RenderDeviceDriver* CreateDriver(HDC hDC, FX_BOOL bCmykOutput = FALSE); | |
| CFX_WindowsDevice(HDC hDC, FX_BOOL bCmykOutput = FALSE, FX_BOOL bForcePSOutput = FALSE, int psLevel = 2); | |
| HDC GetDC() const; | |
| FX_BOOL m_bForcePSOutput; | |
| static int m_psLevel; | |
| }; | |
| class CFX_WinBitmapDevice : public CFX_RenderDevice | |
| { | |
| public: | |
| CFX_WinBitmapDevice(int width, int height, FXDIB_Format format); | |
| ~CFX_WinBitmapDevice(); | |
| HDC GetDC() | |
| { | |
| return m_hDC; | |
| } | |
| protected: | |
| HBITMAP m_hBitmap; | |
| HBITMAP m_hOldBitmap; | |
| HDC m_hDC; | |
| }; | |
| #endif | |
| #endif |