Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: core/fxge/dib/fx_dib_composite.cpp

Issue 1876023003: Remove ICodec_* Interfaces. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fxge/agg/fx_agg_driver.cpp ('k') | core/fxge/dib/fx_dib_convert.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/fxcodec/include/fx_codec.h" 7 #include "core/fxcodec/include/fx_codec.h"
8 #include "core/fxge/dib/dib_int.h" 8 #include "core/fxge/dib/dib_int.h"
9 #include "core/fxge/include/fx_ge.h" 9 #include "core/fxge/include/fx_ge.h"
10 10
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 280 }
281 } 281 }
282 void _CompositeRow_Argb2Graya(uint8_t* dest_scan, 282 void _CompositeRow_Argb2Graya(uint8_t* dest_scan,
283 const uint8_t* src_scan, 283 const uint8_t* src_scan,
284 int pixel_count, 284 int pixel_count,
285 int blend_type, 285 int blend_type,
286 const uint8_t* clip_scan, 286 const uint8_t* clip_scan,
287 const uint8_t* src_alpha_scan, 287 const uint8_t* src_alpha_scan,
288 uint8_t* dst_alpha_scan, 288 uint8_t* dst_alpha_scan,
289 void* pIccTransform) { 289 void* pIccTransform) {
290 ICodec_IccModule* pIccModule = nullptr; 290 CCodec_IccModule* pIccModule = nullptr;
291 if (pIccTransform) 291 if (pIccTransform)
292 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 292 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
293 293
294 if (blend_type) { 294 if (blend_type) {
295 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE; 295 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE;
296 if (src_alpha_scan) { 296 if (src_alpha_scan) {
297 for (int col = 0; col < pixel_count; col++) { 297 for (int col = 0; col < pixel_count; col++) {
298 uint8_t back_alpha = *dst_alpha_scan; 298 uint8_t back_alpha = *dst_alpha_scan;
299 if (back_alpha == 0) { 299 if (back_alpha == 0) {
300 int src_alpha = *src_alpha_scan++; 300 int src_alpha = *src_alpha_scan++;
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 } 483 }
484 } 484 }
485 485
486 inline void _CompositeRow_Argb2Gray(uint8_t* dest_scan, 486 inline void _CompositeRow_Argb2Gray(uint8_t* dest_scan,
487 const uint8_t* src_scan, 487 const uint8_t* src_scan,
488 int pixel_count, 488 int pixel_count,
489 int blend_type, 489 int blend_type,
490 const uint8_t* clip_scan, 490 const uint8_t* clip_scan,
491 const uint8_t* src_alpha_scan, 491 const uint8_t* src_alpha_scan,
492 void* pIccTransform) { 492 void* pIccTransform) {
493 ICodec_IccModule* pIccModule = NULL; 493 CCodec_IccModule* pIccModule = nullptr;
494 uint8_t gray; 494 uint8_t gray;
495 if (pIccTransform) 495 if (pIccTransform)
496 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 496 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
497 497
498 if (blend_type) { 498 if (blend_type) {
499 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE; 499 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE;
500 if (src_alpha_scan) { 500 if (src_alpha_scan) {
501 for (int col = 0; col < pixel_count; col++) { 501 for (int col = 0; col < pixel_count; col++) {
502 int src_alpha = *src_alpha_scan++; 502 int src_alpha = *src_alpha_scan++;
503 if (clip_scan) 503 if (clip_scan)
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 } 579 }
580 } 580 }
581 581
582 inline void _CompositeRow_Rgb2Gray(uint8_t* dest_scan, 582 inline void _CompositeRow_Rgb2Gray(uint8_t* dest_scan,
583 const uint8_t* src_scan, 583 const uint8_t* src_scan,
584 int src_Bpp, 584 int src_Bpp,
585 int pixel_count, 585 int pixel_count,
586 int blend_type, 586 int blend_type,
587 const uint8_t* clip_scan, 587 const uint8_t* clip_scan,
588 void* pIccTransform) { 588 void* pIccTransform) {
589 ICodec_IccModule* pIccModule = NULL; 589 CCodec_IccModule* pIccModule = nullptr;
590 uint8_t gray; 590 uint8_t gray;
591 if (pIccTransform) { 591 if (pIccTransform) {
592 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 592 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
593 } 593 }
594 if (blend_type) { 594 if (blend_type) {
595 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE; 595 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE;
596 for (int col = 0; col < pixel_count; col++) { 596 for (int col = 0; col < pixel_count; col++) {
597 if (pIccTransform) { 597 if (pIccTransform) {
598 pIccModule->TranslateScanline(pIccTransform, &gray, src_scan, 1); 598 pIccModule->TranslateScanline(pIccTransform, &gray, src_scan, 1);
599 } else { 599 } else {
(...skipping 29 matching lines...) Expand all
629 } 629 }
630 } 630 }
631 void _CompositeRow_Rgb2Graya(uint8_t* dest_scan, 631 void _CompositeRow_Rgb2Graya(uint8_t* dest_scan,
632 const uint8_t* src_scan, 632 const uint8_t* src_scan,
633 int src_Bpp, 633 int src_Bpp,
634 int pixel_count, 634 int pixel_count,
635 int blend_type, 635 int blend_type,
636 const uint8_t* clip_scan, 636 const uint8_t* clip_scan,
637 uint8_t* dest_alpha_scan, 637 uint8_t* dest_alpha_scan,
638 void* pIccTransform) { 638 void* pIccTransform) {
639 ICodec_IccModule* pIccModule = NULL; 639 CCodec_IccModule* pIccModule = nullptr;
640 if (pIccTransform) { 640 if (pIccTransform) {
641 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 641 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
642 } 642 }
643 if (blend_type) { 643 if (blend_type) {
644 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE; 644 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE;
645 for (int col = 0; col < pixel_count; col++) { 645 for (int col = 0; col < pixel_count; col++) {
646 int back_alpha = *dest_alpha_scan; 646 int back_alpha = *dest_alpha_scan;
647 if (back_alpha == 0) { 647 if (back_alpha == 0) {
648 if (pIccTransform) { 648 if (pIccTransform) {
649 pIccModule->TranslateScanline(pIccTransform, dest_scan, src_scan, 1); 649 pIccModule->TranslateScanline(pIccTransform, dest_scan, src_scan, 1);
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 void _CompositeRow_Argb2Argb_Transform(uint8_t* dest_scan, 1435 void _CompositeRow_Argb2Argb_Transform(uint8_t* dest_scan,
1436 const uint8_t* src_scan, 1436 const uint8_t* src_scan,
1437 int pixel_count, 1437 int pixel_count,
1438 int blend_type, 1438 int blend_type,
1439 const uint8_t* clip_scan, 1439 const uint8_t* clip_scan,
1440 uint8_t* dest_alpha_scan, 1440 uint8_t* dest_alpha_scan,
1441 const uint8_t* src_alpha_scan, 1441 const uint8_t* src_alpha_scan,
1442 uint8_t* src_cache_scan, 1442 uint8_t* src_cache_scan,
1443 void* pIccTransform) { 1443 void* pIccTransform) {
1444 uint8_t* dp = src_cache_scan; 1444 uint8_t* dp = src_cache_scan;
1445 ICodec_IccModule* pIccModule = 1445 CCodec_IccModule* pIccModule =
1446 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1446 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1447 if (src_alpha_scan) { 1447 if (src_alpha_scan) {
1448 if (dest_alpha_scan) { 1448 if (dest_alpha_scan) {
1449 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, pixel_count); 1449 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, pixel_count);
1450 } else { 1450 } else {
1451 for (int col = 0; col < pixel_count; col++) { 1451 for (int col = 0; col < pixel_count; col++) {
1452 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1452 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1453 dp[3] = *src_alpha_scan++; 1453 dp[3] = *src_alpha_scan++;
1454 src_scan += 3; 1454 src_scan += 3;
1455 dp += 4; 1455 dp += 4;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 clip_scan, dest_alpha_scan, src_alpha_scan); 1529 clip_scan, dest_alpha_scan, src_alpha_scan);
1530 } 1530 }
1531 void _CompositeRow_Rgb2Argb_Blend_NoClip_Transform(uint8_t* dest_scan, 1531 void _CompositeRow_Rgb2Argb_Blend_NoClip_Transform(uint8_t* dest_scan,
1532 const uint8_t* src_scan, 1532 const uint8_t* src_scan,
1533 int width, 1533 int width,
1534 int blend_type, 1534 int blend_type,
1535 int src_Bpp, 1535 int src_Bpp,
1536 uint8_t* dest_alpha_scan, 1536 uint8_t* dest_alpha_scan,
1537 uint8_t* src_cache_scan, 1537 uint8_t* src_cache_scan,
1538 void* pIccTransform) { 1538 void* pIccTransform) {
1539 ICodec_IccModule* pIccModule = 1539 CCodec_IccModule* pIccModule =
1540 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1540 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1541 if (src_Bpp == 3) { 1541 if (src_Bpp == 3) {
1542 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1542 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1543 width); 1543 width);
1544 } else { 1544 } else {
1545 uint8_t* dp = src_cache_scan; 1545 uint8_t* dp = src_cache_scan;
1546 for (int col = 0; col < width; col++) { 1546 for (int col = 0; col < width; col++) {
1547 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1547 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1548 src_scan += 4; 1548 src_scan += 4;
1549 dp += 3; 1549 dp += 3;
1550 } 1550 }
1551 } 1551 }
1552 _CompositeRow_Rgb2Argb_Blend_NoClip(dest_scan, src_cache_scan, width, 1552 _CompositeRow_Rgb2Argb_Blend_NoClip(dest_scan, src_cache_scan, width,
1553 blend_type, 3, dest_alpha_scan); 1553 blend_type, 3, dest_alpha_scan);
1554 } 1554 }
1555 inline void _CompositeRow_Rgb2Argb_Blend_Clip_Transform( 1555 inline void _CompositeRow_Rgb2Argb_Blend_Clip_Transform(
1556 uint8_t* dest_scan, 1556 uint8_t* dest_scan,
1557 const uint8_t* src_scan, 1557 const uint8_t* src_scan,
1558 int width, 1558 int width,
1559 int blend_type, 1559 int blend_type,
1560 int src_Bpp, 1560 int src_Bpp,
1561 const uint8_t* clip_scan, 1561 const uint8_t* clip_scan,
1562 uint8_t* dest_alpha_scan, 1562 uint8_t* dest_alpha_scan,
1563 uint8_t* src_cache_scan, 1563 uint8_t* src_cache_scan,
1564 void* pIccTransform) { 1564 void* pIccTransform) {
1565 ICodec_IccModule* pIccModule = 1565 CCodec_IccModule* pIccModule =
1566 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1566 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1567 if (src_Bpp == 3) { 1567 if (src_Bpp == 3) {
1568 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1568 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1569 width); 1569 width);
1570 } else { 1570 } else {
1571 uint8_t* dp = src_cache_scan; 1571 uint8_t* dp = src_cache_scan;
1572 for (int col = 0; col < width; col++) { 1572 for (int col = 0; col < width; col++) {
1573 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1573 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1574 src_scan += 4; 1574 src_scan += 4;
1575 dp += 3; 1575 dp += 3;
1576 } 1576 }
1577 } 1577 }
1578 _CompositeRow_Rgb2Argb_Blend_Clip(dest_scan, src_cache_scan, width, 1578 _CompositeRow_Rgb2Argb_Blend_Clip(dest_scan, src_cache_scan, width,
1579 blend_type, 3, clip_scan, dest_alpha_scan); 1579 blend_type, 3, clip_scan, dest_alpha_scan);
1580 } 1580 }
1581 inline void _CompositeRow_Rgb2Argb_NoBlend_Clip_Transform( 1581 inline void _CompositeRow_Rgb2Argb_NoBlend_Clip_Transform(
1582 uint8_t* dest_scan, 1582 uint8_t* dest_scan,
1583 const uint8_t* src_scan, 1583 const uint8_t* src_scan,
1584 int width, 1584 int width,
1585 int src_Bpp, 1585 int src_Bpp,
1586 const uint8_t* clip_scan, 1586 const uint8_t* clip_scan,
1587 uint8_t* dest_alpha_scan, 1587 uint8_t* dest_alpha_scan,
1588 uint8_t* src_cache_scan, 1588 uint8_t* src_cache_scan,
1589 void* pIccTransform) { 1589 void* pIccTransform) {
1590 ICodec_IccModule* pIccModule = 1590 CCodec_IccModule* pIccModule =
1591 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1591 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1592 if (src_Bpp == 3) { 1592 if (src_Bpp == 3) {
1593 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1593 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1594 width); 1594 width);
1595 } else { 1595 } else {
1596 uint8_t* dp = src_cache_scan; 1596 uint8_t* dp = src_cache_scan;
1597 for (int col = 0; col < width; col++) { 1597 for (int col = 0; col < width; col++) {
1598 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1598 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1599 src_scan += 4; 1599 src_scan += 4;
1600 dp += 3; 1600 dp += 3;
1601 } 1601 }
1602 } 1602 }
1603 _CompositeRow_Rgb2Argb_NoBlend_Clip(dest_scan, src_cache_scan, width, 3, 1603 _CompositeRow_Rgb2Argb_NoBlend_Clip(dest_scan, src_cache_scan, width, 3,
1604 clip_scan, dest_alpha_scan); 1604 clip_scan, dest_alpha_scan);
1605 } 1605 }
1606 inline void _CompositeRow_Rgb2Argb_NoBlend_NoClip_Transform( 1606 inline void _CompositeRow_Rgb2Argb_NoBlend_NoClip_Transform(
1607 uint8_t* dest_scan, 1607 uint8_t* dest_scan,
1608 const uint8_t* src_scan, 1608 const uint8_t* src_scan,
1609 int width, 1609 int width,
1610 int src_Bpp, 1610 int src_Bpp,
1611 uint8_t* dest_alpha_scan, 1611 uint8_t* dest_alpha_scan,
1612 uint8_t* src_cache_scan, 1612 uint8_t* src_cache_scan,
1613 void* pIccTransform) { 1613 void* pIccTransform) {
1614 ICodec_IccModule* pIccModule = 1614 CCodec_IccModule* pIccModule =
1615 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1615 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1616 if (src_Bpp == 3) { 1616 if (src_Bpp == 3) {
1617 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1617 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1618 width); 1618 width);
1619 } else { 1619 } else {
1620 uint8_t* dp = src_cache_scan; 1620 uint8_t* dp = src_cache_scan;
1621 for (int col = 0; col < width; col++) { 1621 for (int col = 0; col < width; col++) {
1622 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1622 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1623 src_scan += 4; 1623 src_scan += 4;
1624 dp += 3; 1624 dp += 3;
1625 } 1625 }
1626 } 1626 }
1627 _CompositeRow_Rgb2Argb_NoBlend_NoClip(dest_scan, src_cache_scan, width, 3, 1627 _CompositeRow_Rgb2Argb_NoBlend_NoClip(dest_scan, src_cache_scan, width, 3,
1628 dest_alpha_scan); 1628 dest_alpha_scan);
1629 } 1629 }
1630 inline void _CompositeRow_Argb2Rgb_Blend_Transform( 1630 inline void _CompositeRow_Argb2Rgb_Blend_Transform(
1631 uint8_t* dest_scan, 1631 uint8_t* dest_scan,
1632 const uint8_t* src_scan, 1632 const uint8_t* src_scan,
1633 int width, 1633 int width,
1634 int blend_type, 1634 int blend_type,
1635 int dest_Bpp, 1635 int dest_Bpp,
1636 const uint8_t* clip_scan, 1636 const uint8_t* clip_scan,
1637 const uint8_t* src_alpha_scan, 1637 const uint8_t* src_alpha_scan,
1638 uint8_t* src_cache_scan, 1638 uint8_t* src_cache_scan,
1639 void* pIccTransform) { 1639 void* pIccTransform) {
1640 ICodec_IccModule* pIccModule = 1640 CCodec_IccModule* pIccModule =
1641 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1641 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1642 if (src_alpha_scan) { 1642 if (src_alpha_scan) {
1643 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1643 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1644 width); 1644 width);
1645 } else { 1645 } else {
1646 int blended_colors[3]; 1646 int blended_colors[3];
1647 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE; 1647 FX_BOOL bNonseparableBlend = blend_type >= FXDIB_BLEND_NONSEPARABLE;
1648 int dest_gap = dest_Bpp - 3; 1648 int dest_gap = dest_Bpp - 3;
1649 for (int col = 0; col < width; col++) { 1649 for (int col = 0; col < width; col++) {
1650 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1); 1650 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1);
(...skipping 30 matching lines...) Expand all
1681 } 1681 }
1682 inline void _CompositeRow_Argb2Rgb_NoBlend_Transform( 1682 inline void _CompositeRow_Argb2Rgb_NoBlend_Transform(
1683 uint8_t* dest_scan, 1683 uint8_t* dest_scan,
1684 const uint8_t* src_scan, 1684 const uint8_t* src_scan,
1685 int width, 1685 int width,
1686 int dest_Bpp, 1686 int dest_Bpp,
1687 const uint8_t* clip_scan, 1687 const uint8_t* clip_scan,
1688 const uint8_t* src_alpha_scan, 1688 const uint8_t* src_alpha_scan,
1689 uint8_t* src_cache_scan, 1689 uint8_t* src_cache_scan,
1690 void* pIccTransform) { 1690 void* pIccTransform) {
1691 ICodec_IccModule* pIccModule = 1691 CCodec_IccModule* pIccModule =
1692 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1692 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1693 if (src_alpha_scan) { 1693 if (src_alpha_scan) {
1694 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1694 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1695 width); 1695 width);
1696 } else { 1696 } else {
1697 int dest_gap = dest_Bpp - 3; 1697 int dest_gap = dest_Bpp - 3;
1698 for (int col = 0; col < width; col++) { 1698 for (int col = 0; col < width; col++) {
1699 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1); 1699 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1);
1700 uint8_t src_alpha; 1700 uint8_t src_alpha;
1701 if (clip_scan) { 1701 if (clip_scan) {
(...skipping 28 matching lines...) Expand all
1730 } 1730 }
1731 inline void _CompositeRow_Rgb2Rgb_Blend_NoClip_Transform( 1731 inline void _CompositeRow_Rgb2Rgb_Blend_NoClip_Transform(
1732 uint8_t* dest_scan, 1732 uint8_t* dest_scan,
1733 const uint8_t* src_scan, 1733 const uint8_t* src_scan,
1734 int width, 1734 int width,
1735 int blend_type, 1735 int blend_type,
1736 int dest_Bpp, 1736 int dest_Bpp,
1737 int src_Bpp, 1737 int src_Bpp,
1738 uint8_t* src_cache_scan, 1738 uint8_t* src_cache_scan,
1739 void* pIccTransform) { 1739 void* pIccTransform) {
1740 ICodec_IccModule* pIccModule = 1740 CCodec_IccModule* pIccModule =
1741 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1741 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1742 if (src_Bpp == 3) { 1742 if (src_Bpp == 3) {
1743 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1743 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1744 width); 1744 width);
1745 } else { 1745 } else {
1746 uint8_t* dp = src_cache_scan; 1746 uint8_t* dp = src_cache_scan;
1747 for (int col = 0; col < width; col++) { 1747 for (int col = 0; col < width; col++) {
1748 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1748 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1749 src_scan += 4; 1749 src_scan += 4;
1750 dp += 3; 1750 dp += 3;
1751 } 1751 }
1752 } 1752 }
1753 _CompositeRow_Rgb2Rgb_Blend_NoClip(dest_scan, src_cache_scan, width, 1753 _CompositeRow_Rgb2Rgb_Blend_NoClip(dest_scan, src_cache_scan, width,
1754 blend_type, dest_Bpp, 3); 1754 blend_type, dest_Bpp, 3);
1755 } 1755 }
1756 inline void _CompositeRow_Rgb2Rgb_Blend_Clip_Transform(uint8_t* dest_scan, 1756 inline void _CompositeRow_Rgb2Rgb_Blend_Clip_Transform(uint8_t* dest_scan,
1757 const uint8_t* src_scan, 1757 const uint8_t* src_scan,
1758 int width, 1758 int width,
1759 int blend_type, 1759 int blend_type,
1760 int dest_Bpp, 1760 int dest_Bpp,
1761 int src_Bpp, 1761 int src_Bpp,
1762 const uint8_t* clip_scan, 1762 const uint8_t* clip_scan,
1763 uint8_t* src_cache_scan, 1763 uint8_t* src_cache_scan,
1764 void* pIccTransform) { 1764 void* pIccTransform) {
1765 ICodec_IccModule* pIccModule = 1765 CCodec_IccModule* pIccModule =
1766 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1766 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1767 if (src_Bpp == 3) { 1767 if (src_Bpp == 3) {
1768 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1768 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1769 width); 1769 width);
1770 } else { 1770 } else {
1771 uint8_t* dp = src_cache_scan; 1771 uint8_t* dp = src_cache_scan;
1772 for (int col = 0; col < width; col++) { 1772 for (int col = 0; col < width; col++) {
1773 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1773 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1774 src_scan += 4; 1774 src_scan += 4;
1775 dp += 3; 1775 dp += 3;
1776 } 1776 }
1777 } 1777 }
1778 _CompositeRow_Rgb2Rgb_Blend_Clip(dest_scan, src_cache_scan, width, blend_type, 1778 _CompositeRow_Rgb2Rgb_Blend_Clip(dest_scan, src_cache_scan, width, blend_type,
1779 dest_Bpp, 3, clip_scan); 1779 dest_Bpp, 3, clip_scan);
1780 } 1780 }
1781 inline void _CompositeRow_Rgb2Rgb_NoBlend_NoClip_Transform( 1781 inline void _CompositeRow_Rgb2Rgb_NoBlend_NoClip_Transform(
1782 uint8_t* dest_scan, 1782 uint8_t* dest_scan,
1783 const uint8_t* src_scan, 1783 const uint8_t* src_scan,
1784 int width, 1784 int width,
1785 int dest_Bpp, 1785 int dest_Bpp,
1786 int src_Bpp, 1786 int src_Bpp,
1787 uint8_t* src_cache_scan, 1787 uint8_t* src_cache_scan,
1788 void* pIccTransform) { 1788 void* pIccTransform) {
1789 ICodec_IccModule* pIccModule = 1789 CCodec_IccModule* pIccModule =
1790 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1790 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1791 if (src_Bpp == 3) { 1791 if (src_Bpp == 3) {
1792 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1792 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1793 width); 1793 width);
1794 } else { 1794 } else {
1795 uint8_t* dp = src_cache_scan; 1795 uint8_t* dp = src_cache_scan;
1796 for (int col = 0; col < width; col++) { 1796 for (int col = 0; col < width; col++) {
1797 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1797 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1798 src_scan += 4; 1798 src_scan += 4;
1799 dp += 3; 1799 dp += 3;
1800 } 1800 }
1801 } 1801 }
1802 _CompositeRow_Rgb2Rgb_NoBlend_NoClip(dest_scan, src_cache_scan, width, 1802 _CompositeRow_Rgb2Rgb_NoBlend_NoClip(dest_scan, src_cache_scan, width,
1803 dest_Bpp, 3); 1803 dest_Bpp, 3);
1804 } 1804 }
1805 inline void _CompositeRow_Rgb2Rgb_NoBlend_Clip_Transform( 1805 inline void _CompositeRow_Rgb2Rgb_NoBlend_Clip_Transform(
1806 uint8_t* dest_scan, 1806 uint8_t* dest_scan,
1807 const uint8_t* src_scan, 1807 const uint8_t* src_scan,
1808 int width, 1808 int width,
1809 int dest_Bpp, 1809 int dest_Bpp,
1810 int src_Bpp, 1810 int src_Bpp,
1811 const uint8_t* clip_scan, 1811 const uint8_t* clip_scan,
1812 uint8_t* src_cache_scan, 1812 uint8_t* src_cache_scan,
1813 void* pIccTransform) { 1813 void* pIccTransform) {
1814 ICodec_IccModule* pIccModule = 1814 CCodec_IccModule* pIccModule =
1815 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 1815 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
1816 if (src_Bpp == 3) { 1816 if (src_Bpp == 3) {
1817 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan, 1817 pIccModule->TranslateScanline(pIccTransform, src_cache_scan, src_scan,
1818 width); 1818 width);
1819 } else { 1819 } else {
1820 uint8_t* dp = src_cache_scan; 1820 uint8_t* dp = src_cache_scan;
1821 for (int col = 0; col < width; col++) { 1821 for (int col = 0; col < width; col++) {
1822 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1); 1822 pIccModule->TranslateScanline(pIccTransform, dp, src_scan, 1);
1823 src_scan += 4; 1823 src_scan += 4;
1824 dp += 3; 1824 dp += 3;
(...skipping 2133 matching lines...) Expand 10 before | Expand all | Expand 10 after
3958 } 3958 }
3959 } 3959 }
3960 inline FX_BOOL _ScanlineCompositor_InitSourceMask(FXDIB_Format dest_format, 3960 inline FX_BOOL _ScanlineCompositor_InitSourceMask(FXDIB_Format dest_format,
3961 int alpha_flag, 3961 int alpha_flag,
3962 uint32_t mask_color, 3962 uint32_t mask_color,
3963 int& mask_alpha, 3963 int& mask_alpha,
3964 int& mask_red, 3964 int& mask_red,
3965 int& mask_green, 3965 int& mask_green,
3966 int& mask_blue, 3966 int& mask_blue,
3967 int& mask_black, 3967 int& mask_black,
3968 void* icc_module, 3968 CCodec_IccModule* pIccModule,
3969 void* pIccTransform) { 3969 void* pIccTransform) {
3970 ICodec_IccModule* pIccModule = (ICodec_IccModule*)icc_module;
3971 if (alpha_flag >> 8) { 3970 if (alpha_flag >> 8) {
3972 mask_alpha = alpha_flag & 0xff; 3971 mask_alpha = alpha_flag & 0xff;
3973 mask_red = FXSYS_GetCValue(mask_color); 3972 mask_red = FXSYS_GetCValue(mask_color);
3974 mask_green = FXSYS_GetMValue(mask_color); 3973 mask_green = FXSYS_GetMValue(mask_color);
3975 mask_blue = FXSYS_GetYValue(mask_color); 3974 mask_blue = FXSYS_GetYValue(mask_color);
3976 mask_black = FXSYS_GetKValue(mask_color); 3975 mask_black = FXSYS_GetKValue(mask_color);
3977 } else { 3976 } else {
3978 mask_alpha = FXARGB_A(mask_color); 3977 mask_alpha = FXARGB_A(mask_color);
3979 mask_red = FXARGB_R(mask_color); 3978 mask_red = FXARGB_R(mask_color);
3980 mask_green = FXARGB_G(mask_color); 3979 mask_green = FXARGB_G(mask_color);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
4021 mask_green = mask_color_p[1]; 4020 mask_green = mask_color_p[1];
4022 mask_blue = mask_color_p[0]; 4021 mask_blue = mask_color_p[0];
4023 } 4022 }
4024 } 4023 }
4025 return TRUE; 4024 return TRUE;
4026 } 4025 }
4027 inline void _ScanlineCompositor_InitSourcePalette(FXDIB_Format src_format, 4026 inline void _ScanlineCompositor_InitSourcePalette(FXDIB_Format src_format,
4028 FXDIB_Format dest_format, 4027 FXDIB_Format dest_format,
4029 uint32_t*& pDestPalette, 4028 uint32_t*& pDestPalette,
4030 uint32_t* pSrcPalette, 4029 uint32_t* pSrcPalette,
4031 void* icc_module, 4030 CCodec_IccModule* pIccModule,
4032 void* pIccTransform) { 4031 void* pIccTransform) {
4033 ICodec_IccModule* pIccModule = (ICodec_IccModule*)icc_module;
4034 FX_BOOL isSrcCmyk = !!(src_format & 0x0400); 4032 FX_BOOL isSrcCmyk = !!(src_format & 0x0400);
4035 FX_BOOL isDstCmyk = !!(dest_format & 0x0400); 4033 FX_BOOL isDstCmyk = !!(dest_format & 0x0400);
4036 pDestPalette = NULL; 4034 pDestPalette = NULL;
4037 if (pIccTransform) { 4035 if (pIccTransform) {
4038 if (pSrcPalette) { 4036 if (pSrcPalette) {
4039 if ((dest_format & 0xff) == 8) { 4037 if ((dest_format & 0xff) == 8) {
4040 int pal_count = 1 << (src_format & 0xff); 4038 int pal_count = 1 << (src_format & 0xff);
4041 uint8_t* gray_pal = FX_Alloc(uint8_t, pal_count); 4039 uint8_t* gray_pal = FX_Alloc(uint8_t, pal_count);
4042 pDestPalette = (uint32_t*)gray_pal; 4040 pDestPalette = (uint32_t*)gray_pal;
4043 for (int i = 0; i < pal_count; i++) { 4041 for (int i = 0; i < pal_count; i++) {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
4179 uint32_t mask_color, 4177 uint32_t mask_color,
4180 int blend_type, 4178 int blend_type,
4181 FX_BOOL bClip, 4179 FX_BOOL bClip,
4182 FX_BOOL bRgbByteOrder, 4180 FX_BOOL bRgbByteOrder,
4183 int alpha_flag, 4181 int alpha_flag,
4184 void* pIccTransform) { 4182 void* pIccTransform) {
4185 m_SrcFormat = src_format; 4183 m_SrcFormat = src_format;
4186 m_DestFormat = dest_format; 4184 m_DestFormat = dest_format;
4187 m_BlendType = blend_type; 4185 m_BlendType = blend_type;
4188 m_bRgbByteOrder = bRgbByteOrder; 4186 m_bRgbByteOrder = bRgbByteOrder;
4189 ICodec_IccModule* pIccModule = NULL; 4187 CCodec_IccModule* pIccModule = nullptr;
4190 if (CFX_GEModule::Get()->GetCodecModule()) { 4188 if (CFX_GEModule::Get()->GetCodecModule()) {
4191 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 4189 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
4192 } 4190 }
4193 if (!pIccModule) { 4191 if (!pIccModule) {
4194 pIccTransform = NULL; 4192 pIccTransform = NULL;
4195 } 4193 }
4196 m_pIccTransform = pIccTransform; 4194 m_pIccTransform = pIccTransform;
4197 if ((dest_format & 0xff) == 1) { 4195 if ((dest_format & 0xff) == 1) {
4198 return FALSE; 4196 return FALSE;
4199 } 4197 }
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
4796 dst_color = FXCMYK_TODIB(color); 4794 dst_color = FXCMYK_TODIB(color);
4797 } else { 4795 } else {
4798 dst_color = FXARGB_TODIB(color); 4796 dst_color = FXARGB_TODIB(color);
4799 } 4797 }
4800 uint8_t* color_p = (uint8_t*)&dst_color; 4798 uint8_t* color_p = (uint8_t*)&dst_color;
4801 if (m_bpp == 8) { 4799 if (m_bpp == 8) {
4802 uint8_t gray = 255; 4800 uint8_t gray = 255;
4803 if (!IsAlphaMask()) { 4801 if (!IsAlphaMask()) {
4804 if (pIccTransform && CFX_GEModule::Get()->GetCodecModule() && 4802 if (pIccTransform && CFX_GEModule::Get()->GetCodecModule() &&
4805 CFX_GEModule::Get()->GetCodecModule()->GetIccModule()) { 4803 CFX_GEModule::Get()->GetCodecModule()->GetIccModule()) {
4806 ICodec_IccModule* pIccModule = 4804 CCodec_IccModule* pIccModule =
4807 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 4805 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
4808 pIccModule->TranslateScanline(pIccTransform, &gray, color_p, 1); 4806 pIccModule->TranslateScanline(pIccTransform, &gray, color_p, 1);
4809 } else { 4807 } else {
4810 if (alpha_flag >> 8) { 4808 if (alpha_flag >> 8) {
4811 uint8_t r, g, b; 4809 uint8_t r, g, b;
4812 AdobeCMYK_to_sRGB1(color_p[0], color_p[1], color_p[2], color_p[3], r, 4810 AdobeCMYK_to_sRGB1(color_p[0], color_p[1], color_p[2], color_p[3], r,
4813 g, b); 4811 g, b);
4814 gray = FXRGB2GRAY(r, g, b); 4812 gray = FXRGB2GRAY(r, g, b);
4815 } else { 4813 } else {
4816 gray = (uint8_t)FXRGB2GRAY((int)color_p[2], color_p[1], color_p[0]); 4814 gray = (uint8_t)FXRGB2GRAY((int)color_p[2], color_p[1], color_p[0]);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
4870 } 4868 }
4871 } 4869 }
4872 } 4870 }
4873 return TRUE; 4871 return TRUE;
4874 } 4872 }
4875 ASSERT(m_bpp >= 24); 4873 ASSERT(m_bpp >= 24);
4876 if (m_bpp < 24) { 4874 if (m_bpp < 24) {
4877 return FALSE; 4875 return FALSE;
4878 } 4876 }
4879 if (pIccTransform && CFX_GEModule::Get()->GetCodecModule()) { 4877 if (pIccTransform && CFX_GEModule::Get()->GetCodecModule()) {
4880 ICodec_IccModule* pIccModule = 4878 CCodec_IccModule* pIccModule =
4881 CFX_GEModule::Get()->GetCodecModule()->GetIccModule(); 4879 CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
4882 pIccModule->TranslateScanline(pIccTransform, color_p, color_p, 1); 4880 pIccModule->TranslateScanline(pIccTransform, color_p, color_p, 1);
4883 } else { 4881 } else {
4884 if (alpha_flag >> 8 && !IsCmykImage()) { 4882 if (alpha_flag >> 8 && !IsCmykImage()) {
4885 AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color), 4883 AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color),
4886 FXSYS_GetYValue(color), FXSYS_GetKValue(color), 4884 FXSYS_GetYValue(color), FXSYS_GetKValue(color),
4887 color_p[2], color_p[1], color_p[0]); 4885 color_p[2], color_p[1], color_p[0]);
4888 } else if (!(alpha_flag >> 8) && IsCmykImage()) { 4886 } else if (!(alpha_flag >> 8) && IsCmykImage()) {
4889 return FALSE; 4887 return FALSE;
4890 } 4888 }
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
5171 } 5169 }
5172 src_alpha_scan = m_pScanlineAlphaV; 5170 src_alpha_scan = m_pScanlineAlphaV;
5173 dest_alpha_scan = dest_alpha_buf; 5171 dest_alpha_scan = dest_alpha_buf;
5174 if (dest_alpha_scan) { 5172 if (dest_alpha_scan) {
5175 for (i = 0; i < m_DestHeight; i++) { 5173 for (i = 0; i < m_DestHeight; i++) {
5176 *dest_alpha_scan = *src_alpha_scan++; 5174 *dest_alpha_scan = *src_alpha_scan++;
5177 dest_alpha_scan += y_alpha_step; 5175 dest_alpha_scan += y_alpha_step;
5178 } 5176 }
5179 } 5177 }
5180 } 5178 }
OLDNEW
« no previous file with comments | « core/fxge/agg/fx_agg_driver.cpp ('k') | core/fxge/dib/fx_dib_convert.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698