| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/fxge/include/fx_ge.h" | 7 #include "core/fxge/include/fx_ge.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 1390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1401 } | 1401 } |
| 1402 CFX_DIBExtractor temp(pSource); | 1402 CFX_DIBExtractor temp(pSource); |
| 1403 CFX_DIBitmap* pBitmap = temp; | 1403 CFX_DIBitmap* pBitmap = temp; |
| 1404 if (pBitmap) { | 1404 if (pBitmap) { |
| 1405 return GDI_StretchDIBits(pBitmap, dest_left, dest_top, dest_width, | 1405 return GDI_StretchDIBits(pBitmap, dest_left, dest_top, dest_width, |
| 1406 dest_height, flags, pIccTransform); | 1406 dest_height, flags, pIccTransform); |
| 1407 } | 1407 } |
| 1408 return FALSE; | 1408 return FALSE; |
| 1409 } | 1409 } |
| 1410 | 1410 |
| 1411 // static | 1411 CFX_WindowsDevice::CFX_WindowsDevice(HDC hDC) { |
| 1412 int CFX_WindowsDevice::m_psLevel = 2; | 1412 SetDeviceDriver(CreateDriver(hDC)); |
| 1413 } |
| 1413 | 1414 |
| 1414 CFX_WindowsDevice::CFX_WindowsDevice(HDC hDC, | 1415 CFX_WindowsDevice::~CFX_WindowsDevice() {} |
| 1415 FX_BOOL bCmykOutput, | |
| 1416 FX_BOOL bForcePSOutput, | |
| 1417 int psLevel) { | |
| 1418 m_bForcePSOutput = bForcePSOutput; | |
| 1419 m_psLevel = psLevel; | |
| 1420 if (bForcePSOutput) { | |
| 1421 IFX_RenderDeviceDriver* pDriver = new CPSPrinterDriver; | |
| 1422 ((CPSPrinterDriver*)pDriver)->Init(hDC, psLevel, bCmykOutput); | |
| 1423 SetDeviceDriver(pDriver); | |
| 1424 return; | |
| 1425 } | |
| 1426 SetDeviceDriver(CreateDriver(hDC, bCmykOutput)); | |
| 1427 } | |
| 1428 | 1416 |
| 1429 HDC CFX_WindowsDevice::GetDC() const { | 1417 HDC CFX_WindowsDevice::GetDC() const { |
| 1430 IFX_RenderDeviceDriver* pRDD = GetDeviceDriver(); | 1418 IFX_RenderDeviceDriver* pRDD = GetDeviceDriver(); |
| 1431 return pRDD ? reinterpret_cast<HDC>(pRDD->GetPlatformSurface()) : nullptr; | 1419 return pRDD ? reinterpret_cast<HDC>(pRDD->GetPlatformSurface()) : nullptr; |
| 1432 } | 1420 } |
| 1433 | 1421 |
| 1434 IFX_RenderDeviceDriver* CFX_WindowsDevice::CreateDriver(HDC hDC, | 1422 // static |
| 1435 FX_BOOL bCmykOutput) { | 1423 IFX_RenderDeviceDriver* CFX_WindowsDevice::CreateDriver(HDC hDC) { |
| 1436 int device_type = ::GetDeviceCaps(hDC, TECHNOLOGY); | 1424 int device_type = ::GetDeviceCaps(hDC, TECHNOLOGY); |
| 1437 int obj_type = ::GetObjectType(hDC); | 1425 int obj_type = ::GetObjectType(hDC); |
| 1438 bool use_printer = device_type == DT_RASPRINTER || | 1426 bool use_printer = device_type == DT_RASPRINTER || |
| 1439 device_type == DT_PLOTTER || obj_type == OBJ_ENHMETADC; | 1427 device_type == DT_PLOTTER || obj_type == OBJ_ENHMETADC; |
| 1440 if (use_printer) | 1428 if (use_printer) |
| 1441 return new CGdiPrinterDriver(hDC); | 1429 return new CGdiPrinterDriver(hDC); |
| 1442 return new CGdiDisplayDriver(hDC); | 1430 return new CGdiDisplayDriver(hDC); |
| 1443 } | 1431 } |
| 1444 | 1432 |
| 1445 CFX_WinBitmapDevice::CFX_WinBitmapDevice(int width, | 1433 CFX_WinBitmapDevice::CFX_WinBitmapDevice(int width, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1472 if (m_hDC) { | 1460 if (m_hDC) { |
| 1473 SelectObject(m_hDC, m_hOldBitmap); | 1461 SelectObject(m_hDC, m_hOldBitmap); |
| 1474 DeleteDC(m_hDC); | 1462 DeleteDC(m_hDC); |
| 1475 } | 1463 } |
| 1476 if (m_hBitmap) | 1464 if (m_hBitmap) |
| 1477 DeleteObject(m_hBitmap); | 1465 DeleteObject(m_hBitmap); |
| 1478 delete GetBitmap(); | 1466 delete GetBitmap(); |
| 1479 } | 1467 } |
| 1480 | 1468 |
| 1481 #endif // _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_ | 1469 #endif // _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_ |
| OLD | NEW |