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 "../../../include/fxcrt/fx_ext.h" | 7 #include "../../../include/fxcrt/fx_ext.h" |
8 #include "../../../include/fxge/fx_ge.h" | 8 #include "../../../include/fxge/fx_ge.h" |
9 #include "../agg/include/fxfx_agg_clip_liang_barsky.h" | 9 #include "../agg/include/fxfx_agg_clip_liang_barsky.h" |
10 #include "../ge/text_int.h" | 10 #include "../ge/text_int.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 bmpInfo); | 41 bmpInfo); |
42 CGColorSpaceRelease(colorSpace); | 42 CGColorSpaceRelease(colorSpace); |
43 return context; | 43 return context; |
44 } | 44 } |
45 void CQuartz2D::destroyGraphics(void* graphics) | 45 void CQuartz2D::destroyGraphics(void* graphics) |
46 { | 46 { |
47 if (graphics) { | 47 if (graphics) { |
48 CGContextRelease((CGContextRef) graphics); | 48 CGContextRelease((CGContextRef) graphics); |
49 } | 49 } |
50 } | 50 } |
51 void* CQuartz2D::CreateFont(FX_LPCBYTE pFontData, FX_DWORD dwFontSize) | 51 void* CQuartz2D::CreateFont(const uint8_t* pFontData, FX_DWORD dwFontSize) |
52 { | 52 { |
53 CGDataProviderRef pDataProvider = CGDataProviderCreateWithData(NULL, pFontDa
ta, (size_t)dwFontSize, NULL); | 53 CGDataProviderRef pDataProvider = CGDataProviderCreateWithData(NULL, pFontDa
ta, (size_t)dwFontSize, NULL); |
54 if (NULL == pDataProvider) { | 54 if (NULL == pDataProvider) { |
55 return NULL; | 55 return NULL; |
56 } | 56 } |
57 CGFontRef pCGFont = CGFontCreateWithDataProvider(pDataProvider); | 57 CGFontRef pCGFont = CGFontCreateWithDataProvider(pDataProvider); |
58 CGDataProviderRelease(pDataProvider); | 58 CGDataProviderRelease(pDataProvider); |
59 return pCGFont; | 59 return pCGFont; |
60 } | 60 } |
61 void CQuartz2D::DestroyFont(void* pFont) | 61 void CQuartz2D::DestroyFont(void* pFont) |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 height)); | 534 height)); |
535 CGContextRef context = createContextWithBitmap(bitmap); | 535 CGContextRef context = createContextWithBitmap(bitmap); |
536 CGRect rect = CGContextGetClipBoundingBox(context); | 536 CGRect rect = CGContextGetClipBoundingBox(context); |
537 CGContextClearRect(context, rect); | 537 CGContextClearRect(context, rect); |
538 CGContextDrawImage(context, rect, subImage); | 538 CGContextDrawImage(context, rect, subImage); |
539 CGContextRelease(context); | 539 CGContextRelease(context); |
540 CGImageRelease(subImage); | 540 CGImageRelease(subImage); |
541 CGImageRelease(image); | 541 CGImageRelease(image); |
542 if (bitmap->HasAlpha()) { | 542 if (bitmap->HasAlpha()) { |
543 for (int row = 0; row < bitmap->GetHeight(); row ++) { | 543 for (int row = 0; row < bitmap->GetHeight(); row ++) { |
544 FX_LPBYTE pScanline = (FX_LPBYTE)bitmap->GetScanline(row); | 544 uint8_t* pScanline = (uint8_t*)bitmap->GetScanline(row); |
545 for (int col = 0; col < bitmap->GetWidth(); col ++) { | 545 for (int col = 0; col < bitmap->GetWidth(); col ++) { |
546 if (pScanline[3] > 0) { | 546 if (pScanline[3] > 0) { |
547 pScanline[0] = (pScanline[0] * 255.f / pScanline[3] + .5f); | 547 pScanline[0] = (pScanline[0] * 255.f / pScanline[3] + .5f); |
548 pScanline[1] = (pScanline[1] * 255.f / pScanline[3] + .5f); | 548 pScanline[1] = (pScanline[1] * 255.f / pScanline[3] + .5f); |
549 pScanline[2] = (pScanline[2] * 255.f / pScanline[3] + .5f); | 549 pScanline[2] = (pScanline[2] * 255.f / pScanline[3] + .5f); |
550 } | 550 } |
551 pScanline += 4; | 551 pScanline += 4; |
552 } | 552 } |
553 } | 553 } |
554 } | 554 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 } | 647 } |
648 if (pBitmap1->HasAlpha()) { | 648 if (pBitmap1->HasAlpha()) { |
649 if (pBitmap1 == pBitmap) { | 649 if (pBitmap1 == pBitmap) { |
650 pBitmap1 = pBitmap->Clone(); | 650 pBitmap1 = pBitmap->Clone(); |
651 if (!pBitmap1) { | 651 if (!pBitmap1) { |
652 RestoreState(FALSE); | 652 RestoreState(FALSE); |
653 return FALSE; | 653 return FALSE; |
654 } | 654 } |
655 } | 655 } |
656 for (int row = 0; row < pBitmap1->GetHeight(); row ++) { | 656 for (int row = 0; row < pBitmap1->GetHeight(); row ++) { |
657 FX_LPBYTE pScanline = (FX_LPBYTE)pBitmap1->GetScanline(row); | 657 uint8_t* pScanline = (uint8_t*)pBitmap1->GetScanline(row); |
658 for (int col = 0; col < pBitmap1->GetWidth(); col ++) { | 658 for (int col = 0; col < pBitmap1->GetWidth(); col ++) { |
659 pScanline[0] = (uint8_t)(pScanline[0] * pScanline[3] / 255.f + .
5f); | 659 pScanline[0] = (uint8_t)(pScanline[0] * pScanline[3] / 255.f + .
5f); |
660 pScanline[1] = (uint8_t)(pScanline[1] * pScanline[3] / 255.f + .
5f); | 660 pScanline[1] = (uint8_t)(pScanline[1] * pScanline[3] / 255.f + .
5f); |
661 pScanline[2] = (uint8_t)(pScanline[2] * pScanline[3] / 255.f + .
5f); | 661 pScanline[2] = (uint8_t)(pScanline[2] * pScanline[3] / 255.f + .
5f); |
662 pScanline += 4; | 662 pScanline += 4; |
663 } | 663 } |
664 } | 664 } |
665 } | 665 } |
666 CGContextRef ctx = createContextWithBitmap(pBitmap1); | 666 CGContextRef ctx = createContextWithBitmap(pBitmap1); |
667 CGImageRef image = CGBitmapContextCreateImage(ctx); | 667 CGImageRef image = CGBitmapContextCreateImage(ctx); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 } | 772 } |
773 if (pBitmap1->HasAlpha()) { | 773 if (pBitmap1->HasAlpha()) { |
774 if (pBitmap1 == pBitmap) { | 774 if (pBitmap1 == pBitmap) { |
775 pBitmap1 = pBitmap->Clone(); | 775 pBitmap1 = pBitmap->Clone(); |
776 if (!pBitmap1) { | 776 if (!pBitmap1) { |
777 RestoreState(FALSE); | 777 RestoreState(FALSE); |
778 return FALSE; | 778 return FALSE; |
779 } | 779 } |
780 } | 780 } |
781 for (int row = 0; row < pBitmap1->GetHeight(); row ++) { | 781 for (int row = 0; row < pBitmap1->GetHeight(); row ++) { |
782 FX_LPBYTE pScanline = (FX_LPBYTE)pBitmap1->GetScanline(row); | 782 uint8_t* pScanline = (uint8_t*)pBitmap1->GetScanline(row); |
783 for (int col = 0; col < pBitmap1->GetWidth(); col ++) { | 783 for (int col = 0; col < pBitmap1->GetWidth(); col ++) { |
784 pScanline[0] = (uint8_t)(pScanline[0] * pScanline[3] / 255.f + .
5f); | 784 pScanline[0] = (uint8_t)(pScanline[0] * pScanline[3] / 255.f + .
5f); |
785 pScanline[1] = (uint8_t)(pScanline[1] * pScanline[3] / 255.f + .
5f); | 785 pScanline[1] = (uint8_t)(pScanline[1] * pScanline[3] / 255.f + .
5f); |
786 pScanline[2] = (uint8_t)(pScanline[2] * pScanline[3] / 255.f + .
5f); | 786 pScanline[2] = (uint8_t)(pScanline[2] * pScanline[3] / 255.f + .
5f); |
787 pScanline += 4; | 787 pScanline += 4; |
788 } | 788 } |
789 } | 789 } |
790 } | 790 } |
791 CGContextRef ctx = createContextWithBitmap(pBitmap1); | 791 CGContextRef ctx = createContextWithBitmap(pBitmap1); |
792 CGImageRef image = CGBitmapContextCreateImage(ctx); | 792 CGImageRef image = CGBitmapContextCreateImage(ctx); |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1119 } | 1119 } |
1120 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; | 1120 CFX_DIBitmap* pBitmap = new CFX_DIBitmap; |
1121 if (!pBitmap->Create(width, height, format)) { | 1121 if (!pBitmap->Create(width, height, format)) { |
1122 delete pBitmap; | 1122 delete pBitmap; |
1123 return FALSE; | 1123 return FALSE; |
1124 } | 1124 } |
1125 m_bOwnedBitmap = TRUE; | 1125 m_bOwnedBitmap = TRUE; |
1126 return Attach(pBitmap); | 1126 return Attach(pBitmap); |
1127 } | 1127 } |
1128 #endif | 1128 #endif |
OLD | NEW |