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

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

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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/dib/fx_dib_main.cpp ('k') | core/fxge/ge/fx_ge_device.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/fxge/dib/dib_int.h" 7 #include "core/fxge/dib/dib_int.h"
8 8
9 #include "core/include/fxge/fx_dib.h" 9 #include "core/include/fxge/fx_dib.h"
10 10
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 dest_step -= 2; 222 dest_step -= 2;
223 } 223 }
224 for (int row = row_start; row < row_end; row++) { 224 for (int row = row_start; row < row_end; row++) {
225 int dest_col = (bXFlip ? dest_clip.right - (row - row_start) - 1 : row) - 225 int dest_col = (bXFlip ? dest_clip.right - (row - row_start) - 1 : row) -
226 dest_clip.left; 226 dest_clip.left;
227 uint8_t* dest_scan = dest_buf + dest_col * nBytes; 227 uint8_t* dest_scan = dest_buf + dest_col * nBytes;
228 if (bYFlip) { 228 if (bYFlip) {
229 dest_scan += (result_height - 1) * dest_pitch; 229 dest_scan += (result_height - 1) * dest_pitch;
230 } 230 }
231 if (nBytes == 4) { 231 if (nBytes == 4) {
232 FX_DWORD* src_scan = (FX_DWORD*)GetScanline(row) + col_start; 232 uint32_t* src_scan = (uint32_t*)GetScanline(row) + col_start;
233 for (int col = col_start; col < col_end; col++) { 233 for (int col = col_start; col < col_end; col++) {
234 *(FX_DWORD*)dest_scan = *src_scan++; 234 *(uint32_t*)dest_scan = *src_scan++;
235 dest_scan += dest_step; 235 dest_scan += dest_step;
236 } 236 }
237 } else { 237 } else {
238 const uint8_t* src_scan = GetScanline(row) + col_start * nBytes; 238 const uint8_t* src_scan = GetScanline(row) + col_start * nBytes;
239 if (nBytes == 1) { 239 if (nBytes == 1) {
240 for (int col = col_start; col < col_end; col++) { 240 for (int col = col_start; col < col_end; col++) {
241 *dest_scan = *src_scan++; 241 *dest_scan = *src_scan++;
242 dest_scan += dest_step; 242 dest_scan += dest_step;
243 } 243 }
244 } else { 244 } else {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 } else { 292 } else {
293 rect.top = clip.left; 293 rect.top = clip.left;
294 rect.bottom = clip.right; 294 rect.bottom = clip.right;
295 } 295 }
296 rect.Normalize(); 296 rect.Normalize();
297 return rect; 297 return rect;
298 } 298 }
299 CFX_DIBitmap* CFX_DIBSource::TransformTo(const CFX_Matrix* pDestMatrix, 299 CFX_DIBitmap* CFX_DIBSource::TransformTo(const CFX_Matrix* pDestMatrix,
300 int& result_left, 300 int& result_left,
301 int& result_top, 301 int& result_top,
302 FX_DWORD flags, 302 uint32_t flags,
303 const FX_RECT* pDestClip) const { 303 const FX_RECT* pDestClip) const {
304 CFX_ImageTransformer transformer; 304 CFX_ImageTransformer transformer;
305 transformer.Start(this, pDestMatrix, flags, pDestClip); 305 transformer.Start(this, pDestMatrix, flags, pDestClip);
306 transformer.Continue(NULL); 306 transformer.Continue(NULL);
307 result_left = transformer.m_ResultLeft; 307 result_left = transformer.m_ResultLeft;
308 result_top = transformer.m_ResultTop; 308 result_top = transformer.m_ResultTop;
309 CFX_DIBitmap* pTransformed = transformer.m_Storer.Detach(); 309 CFX_DIBitmap* pTransformed = transformer.m_Storer.Detach();
310 return pTransformed; 310 return pTransformed;
311 } 311 }
312 CFX_DIBitmap* CFX_DIBSource::StretchTo(int dest_width, 312 CFX_DIBitmap* CFX_DIBSource::StretchTo(int dest_width,
313 int dest_height, 313 int dest_height,
314 FX_DWORD flags, 314 uint32_t flags,
315 const FX_RECT* pClip) const { 315 const FX_RECT* pClip) const {
316 FX_RECT clip_rect(0, 0, FXSYS_abs(dest_width), FXSYS_abs(dest_height)); 316 FX_RECT clip_rect(0, 0, FXSYS_abs(dest_width), FXSYS_abs(dest_height));
317 if (pClip) { 317 if (pClip) {
318 clip_rect.Intersect(*pClip); 318 clip_rect.Intersect(*pClip);
319 } 319 }
320 if (clip_rect.IsEmpty()) { 320 if (clip_rect.IsEmpty()) {
321 return NULL; 321 return NULL;
322 } 322 }
323 if (dest_width == m_Width && dest_height == m_Height) { 323 if (dest_width == m_Width && dest_height == m_Height) {
324 return Clone(&clip_rect); 324 return Clone(&clip_rect);
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 *dest_scan = *src_pixel; 616 *dest_scan = *src_pixel;
617 } 617 }
618 dest_scan++; 618 dest_scan++;
619 } 619 }
620 } 620 }
621 } 621 }
622 } else { 622 } else {
623 int Bpp = m_Storer.GetBitmap()->GetBPP() / 8; 623 int Bpp = m_Storer.GetBitmap()->GetBPP() / 8;
624 int destBpp = pTransformed->GetBPP() / 8; 624 int destBpp = pTransformed->GetBPP() / 8;
625 if (Bpp == 1) { 625 if (Bpp == 1) {
626 FX_DWORD argb[256]; 626 uint32_t argb[256];
627 FX_ARGB* pPal = m_Storer.GetBitmap()->GetPalette(); 627 FX_ARGB* pPal = m_Storer.GetBitmap()->GetPalette();
628 if (pPal) { 628 if (pPal) {
629 for (int i = 0; i < 256; i++) { 629 for (int i = 0; i < 256; i++) {
630 argb[i] = pPal[i]; 630 argb[i] = pPal[i];
631 } 631 }
632 } else { 632 } else {
633 if (m_Storer.GetBitmap()->IsCmykImage()) { 633 if (m_Storer.GetBitmap()->IsCmykImage()) {
634 for (int i = 0; i < 256; i++) { 634 for (int i = 0; i < 256; i++) {
635 argb[i] = 255 - i; 635 argb[i] = 255 - i;
636 } 636 }
(...skipping 23 matching lines...) Expand all
660 int src_col_r = src_col_l + 1; 660 int src_col_r = src_col_l + 1;
661 int src_row_r = src_row_l + 1; 661 int src_row_r = src_row_l + 1;
662 if (src_col_r == stretch_width) { 662 if (src_col_r == stretch_width) {
663 src_col_r--; 663 src_col_r--;
664 } 664 }
665 if (src_row_r == stretch_height) { 665 if (src_row_r == stretch_height) {
666 src_row_r--; 666 src_row_r--;
667 } 667 }
668 int row_offset_l = src_row_l * stretch_pitch; 668 int row_offset_l = src_row_l * stretch_pitch;
669 int row_offset_r = src_row_r * stretch_pitch; 669 int row_offset_r = src_row_r * stretch_pitch;
670 FX_DWORD r_bgra_cmyk = argb[bilinear_interpol( 670 uint32_t r_bgra_cmyk = argb[bilinear_interpol(
671 stretch_buf, row_offset_l, row_offset_r, src_col_l, src_col_r, 671 stretch_buf, row_offset_l, row_offset_r, src_col_l, src_col_r,
672 res_x, res_y, 1, 0)]; 672 res_x, res_y, 1, 0)];
673 if (transformF == FXDIB_Rgba) { 673 if (transformF == FXDIB_Rgba) {
674 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24); 674 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24);
675 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16); 675 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16);
676 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8); 676 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8);
677 } else { 677 } else {
678 *(FX_DWORD*)dest_pos = r_bgra_cmyk; 678 *(uint32_t*)dest_pos = r_bgra_cmyk;
679 } 679 }
680 } 680 }
681 dest_pos += destBpp; 681 dest_pos += destBpp;
682 } 682 }
683 } 683 }
684 } else if (m_Flags & FXDIB_BICUBIC_INTERPOL) { 684 } else if (m_Flags & FXDIB_BICUBIC_INTERPOL) {
685 CFX_BilinearMatrix result2stretch_fix(result2stretch, 8); 685 CFX_BilinearMatrix result2stretch_fix(result2stretch, 8);
686 for (int row = 0; row < m_ResultHeight; row++) { 686 for (int row = 0; row < m_ResultHeight; row++) {
687 uint8_t* dest_pos = (uint8_t*)pTransformed->GetScanline(row); 687 uint8_t* dest_pos = (uint8_t*)pTransformed->GetScanline(row);
688 for (int col = 0; col < m_ResultWidth; col++) { 688 for (int col = 0; col < m_ResultWidth; col++) {
689 int src_col_l, src_row_l, res_x, res_y; 689 int src_col_l, src_row_l, res_x, res_y;
690 result2stretch_fix.Transform(col, row, src_col_l, src_row_l, res_x, 690 result2stretch_fix.Transform(col, row, src_col_l, src_row_l, res_x,
691 res_y); 691 res_y);
692 if (src_col_l >= 0 && src_col_l <= stretch_width && 692 if (src_col_l >= 0 && src_col_l <= stretch_width &&
693 src_row_l >= 0 && src_row_l <= stretch_height) { 693 src_row_l >= 0 && src_row_l <= stretch_height) {
694 int pos_pixel[8]; 694 int pos_pixel[8];
695 int u_w[4], v_w[4]; 695 int u_w[4], v_w[4];
696 if (src_col_l == stretch_width) { 696 if (src_col_l == stretch_width) {
697 src_col_l--; 697 src_col_l--;
698 } 698 }
699 if (src_row_l == stretch_height) { 699 if (src_row_l == stretch_height) {
700 src_row_l--; 700 src_row_l--;
701 } 701 }
702 bicubic_get_pos_weight(pos_pixel, u_w, v_w, src_col_l, src_row_l, 702 bicubic_get_pos_weight(pos_pixel, u_w, v_w, src_col_l, src_row_l,
703 res_x, res_y, stretch_width, 703 res_x, res_y, stretch_width,
704 stretch_height); 704 stretch_height);
705 FX_DWORD r_bgra_cmyk = 705 uint32_t r_bgra_cmyk =
706 argb[bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel, 706 argb[bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel,
707 u_w, v_w, res_x, res_y, 1, 0)]; 707 u_w, v_w, res_x, res_y, 1, 0)];
708 if (transformF == FXDIB_Rgba) { 708 if (transformF == FXDIB_Rgba) {
709 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24); 709 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24);
710 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16); 710 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16);
711 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8); 711 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8);
712 } else { 712 } else {
713 *(FX_DWORD*)dest_pos = r_bgra_cmyk; 713 *(uint32_t*)dest_pos = r_bgra_cmyk;
714 } 714 }
715 } 715 }
716 dest_pos += destBpp; 716 dest_pos += destBpp;
717 } 717 }
718 } 718 }
719 } else { 719 } else {
720 CPDF_FixedMatrix result2stretch_fix(result2stretch, 8); 720 CPDF_FixedMatrix result2stretch_fix(result2stretch, 8);
721 for (int row = 0; row < m_ResultHeight; row++) { 721 for (int row = 0; row < m_ResultHeight; row++) {
722 uint8_t* dest_pos = (uint8_t*)pTransformed->GetScanline(row); 722 uint8_t* dest_pos = (uint8_t*)pTransformed->GetScanline(row);
723 for (int col = 0; col < m_ResultWidth; col++) { 723 for (int col = 0; col < m_ResultWidth; col++) {
724 int src_col, src_row; 724 int src_col, src_row;
725 result2stretch_fix.Transform(col, row, src_col, src_row); 725 result2stretch_fix.Transform(col, row, src_col, src_row);
726 if (src_col >= 0 && src_col <= stretch_width && src_row >= 0 && 726 if (src_col >= 0 && src_col <= stretch_width && src_row >= 0 &&
727 src_row <= stretch_height) { 727 src_row <= stretch_height) {
728 if (src_col == stretch_width) { 728 if (src_col == stretch_width) {
729 src_col--; 729 src_col--;
730 } 730 }
731 if (src_row == stretch_height) { 731 if (src_row == stretch_height) {
732 src_row--; 732 src_row--;
733 } 733 }
734 FX_DWORD r_bgra_cmyk = 734 uint32_t r_bgra_cmyk =
735 argb[stretch_buf[src_row * stretch_pitch + src_col]]; 735 argb[stretch_buf[src_row * stretch_pitch + src_col]];
736 if (transformF == FXDIB_Rgba) { 736 if (transformF == FXDIB_Rgba) {
737 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24); 737 dest_pos[0] = (uint8_t)(r_bgra_cmyk >> 24);
738 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16); 738 dest_pos[1] = (uint8_t)(r_bgra_cmyk >> 16);
739 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8); 739 dest_pos[2] = (uint8_t)(r_bgra_cmyk >> 8);
740 } else { 740 } else {
741 *(FX_DWORD*)dest_pos = r_bgra_cmyk; 741 *(uint32_t*)dest_pos = r_bgra_cmyk;
742 } 742 }
743 } 743 }
744 dest_pos += destBpp; 744 dest_pos += destBpp;
745 } 745 }
746 } 746 }
747 } 747 }
748 } else { 748 } else {
749 FX_BOOL bHasAlpha = m_Storer.GetBitmap()->HasAlpha(); 749 FX_BOOL bHasAlpha = m_Storer.GetBitmap()->HasAlpha();
750 int destBpp = pTransformed->GetBPP() / 8; 750 int destBpp = pTransformed->GetBPP() / 8;
751 if (!(m_Flags & FXDIB_DOWNSAMPLE) && 751 if (!(m_Flags & FXDIB_DOWNSAMPLE) &&
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 if (bHasAlpha) { 787 if (bHasAlpha) {
788 if (transformF != FXDIB_Argb) { 788 if (transformF != FXDIB_Argb) {
789 if (transformF == FXDIB_Rgba) { 789 if (transformF == FXDIB_Rgba) {
790 dest_pos[0] = r_pos_blue_c_r; 790 dest_pos[0] = r_pos_blue_c_r;
791 dest_pos[1] = r_pos_green_m_r; 791 dest_pos[1] = r_pos_green_m_r;
792 dest_pos[2] = r_pos_red_y_r; 792 dest_pos[2] = r_pos_red_y_r;
793 } else { 793 } else {
794 r_pos_k_r = bilinear_interpol( 794 r_pos_k_r = bilinear_interpol(
795 stretch_buf, row_offset_l, row_offset_r, src_col_l, 795 stretch_buf, row_offset_l, row_offset_r, src_col_l,
796 src_col_r, res_x, res_y, Bpp, 3); 796 src_col_r, res_x, res_y, Bpp, 3);
797 *(FX_DWORD*)dest_pos = 797 *(uint32_t*)dest_pos =
798 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r, 798 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r,
799 r_pos_red_y_r, r_pos_k_r)); 799 r_pos_red_y_r, r_pos_k_r));
800 } 800 }
801 } else { 801 } else {
802 uint8_t r_pos_a_r = bilinear_interpol( 802 uint8_t r_pos_a_r = bilinear_interpol(
803 stretch_buf, row_offset_l, row_offset_r, src_col_l, 803 stretch_buf, row_offset_l, row_offset_r, src_col_l,
804 src_col_r, res_x, res_y, Bpp, 3); 804 src_col_r, res_x, res_y, Bpp, 3);
805 *(FX_DWORD*)dest_pos = FXARGB_TODIB( 805 *(uint32_t*)dest_pos = FXARGB_TODIB(
806 FXARGB_MAKE(r_pos_a_r, r_pos_red_y_r, r_pos_green_m_r, 806 FXARGB_MAKE(r_pos_a_r, r_pos_red_y_r, r_pos_green_m_r,
807 r_pos_blue_c_r)); 807 r_pos_blue_c_r));
808 } 808 }
809 } else { 809 } else {
810 r_pos_k_r = 0xff; 810 r_pos_k_r = 0xff;
811 if (transformF == FXDIB_Cmyka) { 811 if (transformF == FXDIB_Cmyka) {
812 r_pos_k_r = bilinear_interpol( 812 r_pos_k_r = bilinear_interpol(
813 stretch_buf, row_offset_l, row_offset_r, src_col_l, 813 stretch_buf, row_offset_l, row_offset_r, src_col_l,
814 src_col_r, res_x, res_y, Bpp, 3); 814 src_col_r, res_x, res_y, Bpp, 3);
815 *(FX_DWORD*)dest_pos = 815 *(uint32_t*)dest_pos =
816 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r, 816 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r,
817 r_pos_red_y_r, r_pos_k_r)); 817 r_pos_red_y_r, r_pos_k_r));
818 } else { 818 } else {
819 *(FX_DWORD*)dest_pos = FXARGB_TODIB( 819 *(uint32_t*)dest_pos = FXARGB_TODIB(
820 FXARGB_MAKE(r_pos_k_r, r_pos_red_y_r, r_pos_green_m_r, 820 FXARGB_MAKE(r_pos_k_r, r_pos_red_y_r, r_pos_green_m_r,
821 r_pos_blue_c_r)); 821 r_pos_blue_c_r));
822 } 822 }
823 } 823 }
824 } 824 }
825 dest_pos += destBpp; 825 dest_pos += destBpp;
826 } 826 }
827 } 827 }
828 } else if (m_Flags & FXDIB_BICUBIC_INTERPOL) { 828 } else if (m_Flags & FXDIB_BICUBIC_INTERPOL) {
829 CFX_BilinearMatrix result2stretch_fix(result2stretch, 8); 829 CFX_BilinearMatrix result2stretch_fix(result2stretch, 8);
(...skipping 28 matching lines...) Expand all
858 if (bHasAlpha) { 858 if (bHasAlpha) {
859 if (transformF != FXDIB_Argb) { 859 if (transformF != FXDIB_Argb) {
860 if (transformF == FXDIB_Rgba) { 860 if (transformF == FXDIB_Rgba) {
861 dest_pos[0] = r_pos_blue_c_r; 861 dest_pos[0] = r_pos_blue_c_r;
862 dest_pos[1] = r_pos_green_m_r; 862 dest_pos[1] = r_pos_green_m_r;
863 dest_pos[2] = r_pos_red_y_r; 863 dest_pos[2] = r_pos_red_y_r;
864 } else { 864 } else {
865 r_pos_k_r = 865 r_pos_k_r =
866 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel, 866 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel,
867 u_w, v_w, res_x, res_y, Bpp, 3); 867 u_w, v_w, res_x, res_y, Bpp, 3);
868 *(FX_DWORD*)dest_pos = 868 *(uint32_t*)dest_pos =
869 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r, 869 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r,
870 r_pos_red_y_r, r_pos_k_r)); 870 r_pos_red_y_r, r_pos_k_r));
871 } 871 }
872 } else { 872 } else {
873 uint8_t r_pos_a_r = 873 uint8_t r_pos_a_r =
874 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel, 874 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel,
875 u_w, v_w, res_x, res_y, Bpp, 3); 875 u_w, v_w, res_x, res_y, Bpp, 3);
876 *(FX_DWORD*)dest_pos = FXARGB_TODIB( 876 *(uint32_t*)dest_pos = FXARGB_TODIB(
877 FXARGB_MAKE(r_pos_a_r, r_pos_red_y_r, r_pos_green_m_r, 877 FXARGB_MAKE(r_pos_a_r, r_pos_red_y_r, r_pos_green_m_r,
878 r_pos_blue_c_r)); 878 r_pos_blue_c_r));
879 } 879 }
880 } else { 880 } else {
881 r_pos_k_r = 0xff; 881 r_pos_k_r = 0xff;
882 if (transformF == FXDIB_Cmyka) { 882 if (transformF == FXDIB_Cmyka) {
883 r_pos_k_r = 883 r_pos_k_r =
884 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel, 884 bicubic_interpol(stretch_buf, stretch_pitch, pos_pixel,
885 u_w, v_w, res_x, res_y, Bpp, 3); 885 u_w, v_w, res_x, res_y, Bpp, 3);
886 *(FX_DWORD*)dest_pos = 886 *(uint32_t*)dest_pos =
887 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r, 887 FXCMYK_TODIB(CmykEncode(r_pos_blue_c_r, r_pos_green_m_r,
888 r_pos_red_y_r, r_pos_k_r)); 888 r_pos_red_y_r, r_pos_k_r));
889 } else { 889 } else {
890 *(FX_DWORD*)dest_pos = FXARGB_TODIB( 890 *(uint32_t*)dest_pos = FXARGB_TODIB(
891 FXARGB_MAKE(r_pos_k_r, r_pos_red_y_r, r_pos_green_m_r, 891 FXARGB_MAKE(r_pos_k_r, r_pos_red_y_r, r_pos_green_m_r,
892 r_pos_blue_c_r)); 892 r_pos_blue_c_r));
893 } 893 }
894 } 894 }
895 } 895 }
896 dest_pos += destBpp; 896 dest_pos += destBpp;
897 } 897 }
898 } 898 }
899 } else { 899 } else {
900 CPDF_FixedMatrix result2stretch_fix(result2stretch, 8); 900 CPDF_FixedMatrix result2stretch_fix(result2stretch, 8);
(...skipping 12 matching lines...) Expand all
913 } 913 }
914 const uint8_t* src_pos = 914 const uint8_t* src_pos =
915 stretch_buf + src_row * stretch_pitch + src_col * Bpp; 915 stretch_buf + src_row * stretch_pitch + src_col * Bpp;
916 if (bHasAlpha) { 916 if (bHasAlpha) {
917 if (transformF != FXDIB_Argb) { 917 if (transformF != FXDIB_Argb) {
918 if (transformF == FXDIB_Rgba) { 918 if (transformF == FXDIB_Rgba) {
919 dest_pos[0] = src_pos[0]; 919 dest_pos[0] = src_pos[0];
920 dest_pos[1] = src_pos[1]; 920 dest_pos[1] = src_pos[1];
921 dest_pos[2] = src_pos[2]; 921 dest_pos[2] = src_pos[2];
922 } else { 922 } else {
923 *(FX_DWORD*)dest_pos = FXCMYK_TODIB(CmykEncode( 923 *(uint32_t*)dest_pos = FXCMYK_TODIB(CmykEncode(
924 src_pos[0], src_pos[1], src_pos[2], src_pos[3])); 924 src_pos[0], src_pos[1], src_pos[2], src_pos[3]));
925 } 925 }
926 } else { 926 } else {
927 *(FX_DWORD*)dest_pos = FXARGB_TODIB(FXARGB_MAKE( 927 *(uint32_t*)dest_pos = FXARGB_TODIB(FXARGB_MAKE(
928 src_pos[3], src_pos[2], src_pos[1], src_pos[0])); 928 src_pos[3], src_pos[2], src_pos[1], src_pos[0]));
929 } 929 }
930 } else { 930 } else {
931 if (transformF == FXDIB_Cmyka) { 931 if (transformF == FXDIB_Cmyka) {
932 *(FX_DWORD*)dest_pos = FXCMYK_TODIB(CmykEncode( 932 *(uint32_t*)dest_pos = FXCMYK_TODIB(CmykEncode(
933 src_pos[0], src_pos[1], src_pos[2], src_pos[3])); 933 src_pos[0], src_pos[1], src_pos[2], src_pos[3]));
934 } else { 934 } else {
935 *(FX_DWORD*)dest_pos = FXARGB_TODIB( 935 *(uint32_t*)dest_pos = FXARGB_TODIB(
936 FXARGB_MAKE(0xff, src_pos[2], src_pos[1], src_pos[0])); 936 FXARGB_MAKE(0xff, src_pos[2], src_pos[1], src_pos[0]));
937 } 937 }
938 } 938 }
939 } 939 }
940 dest_pos += destBpp; 940 dest_pos += destBpp;
941 } 941 }
942 } 942 }
943 } 943 }
944 } 944 }
945 } 945 }
946 m_Storer.Replace(pTransformed); 946 m_Storer.Replace(pTransformed);
947 return FALSE; 947 return FALSE;
948 } 948 }
OLDNEW
« no previous file with comments | « core/fxge/dib/fx_dib_main.cpp ('k') | core/fxge/ge/fx_ge_device.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698