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

Side by Side Diff: core/src/fpdfapi/fpdf_render/fpdf_render_image.cpp

Issue 1644633003: Member function name refactoring (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 11 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
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 "render_int.h" 7 #include "render_int.h"
8 8
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 m_pImageObject->m_pImage->GetStream()->GetDict()->GetElementValue( 399 m_pImageObject->m_pImage->GetStream()->GetDict()->GetElementValue(
400 "Filter"); 400 "Filter");
401 if (pFilters) { 401 if (pFilters) {
402 if (pFilters->IsName()) { 402 if (pFilters->IsName()) {
403 CFX_ByteStringC bsDecodeType = pFilters->GetConstString(); 403 CFX_ByteStringC bsDecodeType = pFilters->GetConstString();
404 if (bsDecodeType == "DCTDecode" || bsDecodeType == "JPXDecode") { 404 if (bsDecodeType == "DCTDecode" || bsDecodeType == "JPXDecode") {
405 m_Flags |= FXRENDER_IMAGE_LOSSY; 405 m_Flags |= FXRENDER_IMAGE_LOSSY;
406 } 406 }
407 } else if (CPDF_Array* pArray = pFilters->AsArray()) { 407 } else if (CPDF_Array* pArray = pFilters->AsArray()) {
408 for (FX_DWORD i = 0; i < pArray->GetCount(); i++) { 408 for (FX_DWORD i = 0; i < pArray->GetCount(); i++) {
409 CFX_ByteStringC bsDecodeType = pArray->GetConstString(i); 409 CFX_ByteStringC bsDecodeType = pArray->GetConstStringAt(i);
410 if (bsDecodeType == "DCTDecode" || bsDecodeType == "JPXDecode") { 410 if (bsDecodeType == "DCTDecode" || bsDecodeType == "JPXDecode") {
411 m_Flags |= FXRENDER_IMAGE_LOSSY; 411 m_Flags |= FXRENDER_IMAGE_LOSSY;
412 break; 412 break;
413 } 413 }
414 } 414 }
415 } 415 }
416 } 416 }
417 } 417 }
418 if (m_pRenderStatus->m_Options.m_Flags & RENDER_NOIMAGESMOOTH) { 418 if (m_pRenderStatus->m_Options.m_Flags & RENDER_NOIMAGESMOOTH) {
419 m_Flags |= FXDIB_NOSMOOTH; 419 m_Flags |= FXDIB_NOSMOOTH;
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 const CPDF_Dictionary* pParams); 864 const CPDF_Dictionary* pParams);
865 CFX_DIBitmap* CPDF_RenderStatus::LoadSMask(CPDF_Dictionary* pSMaskDict, 865 CFX_DIBitmap* CPDF_RenderStatus::LoadSMask(CPDF_Dictionary* pSMaskDict,
866 FX_RECT* pClipRect, 866 FX_RECT* pClipRect,
867 const CFX_Matrix* pMatrix) { 867 const CFX_Matrix* pMatrix) {
868 if (!pSMaskDict) { 868 if (!pSMaskDict) {
869 return NULL; 869 return NULL;
870 } 870 }
871 int width = pClipRect->right - pClipRect->left; 871 int width = pClipRect->right - pClipRect->left;
872 int height = pClipRect->bottom - pClipRect->top; 872 int height = pClipRect->bottom - pClipRect->top;
873 FX_BOOL bLuminosity = FALSE; 873 FX_BOOL bLuminosity = FALSE;
874 bLuminosity = pSMaskDict->GetConstString("S") != "Alpha"; 874 bLuminosity = pSMaskDict->GetConstStringBy("S") != "Alpha";
875 CPDF_Stream* pGroup = pSMaskDict->GetStream("G"); 875 CPDF_Stream* pGroup = pSMaskDict->GetStreamBy("G");
876 if (!pGroup) { 876 if (!pGroup) {
877 return NULL; 877 return NULL;
878 } 878 }
879 std::unique_ptr<CPDF_Function> pFunc; 879 std::unique_ptr<CPDF_Function> pFunc;
880 CPDF_Object* pFuncObj = pSMaskDict->GetElementValue("TR"); 880 CPDF_Object* pFuncObj = pSMaskDict->GetElementValue("TR");
881 if (pFuncObj && (pFuncObj->IsDictionary() || pFuncObj->IsStream())) 881 if (pFuncObj && (pFuncObj->IsDictionary() || pFuncObj->IsStream()))
882 pFunc.reset(CPDF_Function::Load(pFuncObj)); 882 pFunc.reset(CPDF_Function::Load(pFuncObj));
883 883
884 CFX_Matrix matrix = *pMatrix; 884 CFX_Matrix matrix = *pMatrix;
885 matrix.TranslateI(-pClipRect->left, -pClipRect->top); 885 matrix.TranslateI(-pClipRect->left, -pClipRect->top);
886 CPDF_Form form(m_pContext->GetDocument(), m_pContext->GetPageResources(), 886 CPDF_Form form(m_pContext->GetDocument(), m_pContext->GetPageResources(),
887 pGroup); 887 pGroup);
888 form.ParseContent(NULL, NULL, NULL, NULL); 888 form.ParseContent(NULL, NULL, NULL, NULL);
889 CFX_FxgeDevice bitmap_device; 889 CFX_FxgeDevice bitmap_device;
890 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ 890 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
891 if (!bitmap_device.Create(width, height, 891 if (!bitmap_device.Create(width, height,
892 bLuminosity ? FXDIB_Rgb32 : FXDIB_8bppMask)) { 892 bLuminosity ? FXDIB_Rgb32 : FXDIB_8bppMask)) {
893 return NULL; 893 return NULL;
894 } 894 }
895 #else 895 #else
896 if (!bitmap_device.Create(width, height, 896 if (!bitmap_device.Create(width, height,
897 bLuminosity ? FXDIB_Rgb : FXDIB_8bppMask)) { 897 bLuminosity ? FXDIB_Rgb : FXDIB_8bppMask)) {
898 return NULL; 898 return NULL;
899 } 899 }
900 #endif 900 #endif
901 CFX_DIBitmap& bitmap = *bitmap_device.GetBitmap(); 901 CFX_DIBitmap& bitmap = *bitmap_device.GetBitmap();
902 CPDF_Object* pCSObj = NULL; 902 CPDF_Object* pCSObj = NULL;
903 CPDF_ColorSpace* pCS = NULL; 903 CPDF_ColorSpace* pCS = NULL;
904 if (bLuminosity) { 904 if (bLuminosity) {
905 CPDF_Array* pBC = pSMaskDict->GetArray("BC"); 905 CPDF_Array* pBC = pSMaskDict->GetArrayBy("BC");
906 FX_ARGB back_color = 0xff000000; 906 FX_ARGB back_color = 0xff000000;
907 if (pBC) { 907 if (pBC) {
908 CPDF_Dictionary* pDict = pGroup->GetDict(); 908 CPDF_Dictionary* pDict = pGroup->GetDict();
909 if (pDict && pDict->GetDict("Group")) 909 if (pDict && pDict->GetDictBy("Group"))
910 pCSObj = pDict->GetDict("Group")->GetElementValue("CS"); 910 pCSObj = pDict->GetDictBy("Group")->GetElementValue("CS");
911 else 911 else
912 pCSObj = NULL; 912 pCSObj = NULL;
913 pCS = m_pContext->GetDocument()->LoadColorSpace(pCSObj); 913 pCS = m_pContext->GetDocument()->LoadColorSpace(pCSObj);
914 if (pCS) { 914 if (pCS) {
915 FX_FLOAT R, G, B; 915 FX_FLOAT R, G, B;
916 FX_DWORD comps = 8; 916 FX_DWORD comps = 8;
917 if (pCS->CountComponents() > static_cast<int32_t>(comps)) { 917 if (pCS->CountComponents() > static_cast<int32_t>(comps)) {
918 comps = (FX_DWORD)pCS->CountComponents(); 918 comps = (FX_DWORD)pCS->CountComponents();
919 } 919 }
920 CFX_FixedBufGrow<FX_FLOAT, 8> float_array(comps); 920 CFX_FixedBufGrow<FX_FLOAT, 8> float_array(comps);
921 FX_FLOAT* pFloats = float_array; 921 FX_FLOAT* pFloats = float_array;
922 FX_SAFE_DWORD num_floats = comps; 922 FX_SAFE_DWORD num_floats = comps;
923 num_floats *= sizeof(FX_FLOAT); 923 num_floats *= sizeof(FX_FLOAT);
924 if (!num_floats.IsValid()) { 924 if (!num_floats.IsValid()) {
925 return NULL; 925 return NULL;
926 } 926 }
927 FXSYS_memset(pFloats, 0, num_floats.ValueOrDie()); 927 FXSYS_memset(pFloats, 0, num_floats.ValueOrDie());
928 int count = pBC->GetCount() > 8 ? 8 : pBC->GetCount(); 928 int count = pBC->GetCount() > 8 ? 8 : pBC->GetCount();
929 for (int i = 0; i < count; i++) { 929 for (int i = 0; i < count; i++) {
930 pFloats[i] = pBC->GetNumber(i); 930 pFloats[i] = pBC->GetNumberAt(i);
931 } 931 }
932 pCS->GetRGB(pFloats, R, G, B); 932 pCS->GetRGB(pFloats, R, G, B);
933 back_color = 0xff000000 | ((int32_t)(R * 255) << 16) | 933 back_color = 0xff000000 | ((int32_t)(R * 255) << 16) |
934 ((int32_t)(G * 255) << 8) | (int32_t)(B * 255); 934 ((int32_t)(G * 255) << 8) | (int32_t)(B * 255);
935 m_pContext->GetDocument()->GetPageData()->ReleaseColorSpace(pCSObj); 935 m_pContext->GetDocument()->GetPageData()->ReleaseColorSpace(pCSObj);
936 } 936 }
937 } 937 }
938 bitmap.Clear(back_color); 938 bitmap.Clear(back_color);
939 } else { 939 } else {
940 bitmap.Clear(0); 940 bitmap.Clear(0);
941 } 941 }
942 CPDF_Dictionary* pFormResource = NULL; 942 CPDF_Dictionary* pFormResource = NULL;
943 if (form.m_pFormDict) { 943 if (form.m_pFormDict) {
944 pFormResource = form.m_pFormDict->GetDict("Resources"); 944 pFormResource = form.m_pFormDict->GetDictBy("Resources");
945 } 945 }
946 CPDF_RenderOptions options; 946 CPDF_RenderOptions options;
947 options.m_ColorMode = bLuminosity ? RENDER_COLOR_NORMAL : RENDER_COLOR_ALPHA; 947 options.m_ColorMode = bLuminosity ? RENDER_COLOR_NORMAL : RENDER_COLOR_ALPHA;
948 CPDF_RenderStatus status; 948 CPDF_RenderStatus status;
949 status.Initialize(m_pContext, &bitmap_device, NULL, NULL, NULL, NULL, 949 status.Initialize(m_pContext, &bitmap_device, NULL, NULL, NULL, NULL,
950 &options, 0, m_bDropObjects, pFormResource, TRUE, NULL, 0, 950 &options, 0, m_bDropObjects, pFormResource, TRUE, NULL, 0,
951 pCS ? pCS->GetFamily() : 0, bLuminosity); 951 pCS ? pCS->GetFamily() : 0, bLuminosity);
952 status.RenderObjectList(&form, &matrix); 952 status.RenderObjectList(&form, &matrix);
953 std::unique_ptr<CFX_DIBitmap> pMask(new CFX_DIBitmap); 953 std::unique_ptr<CFX_DIBitmap> pMask(new CFX_DIBitmap);
954 if (!pMask->Create(width, height, FXDIB_8bppMask)) 954 if (!pMask->Create(width, height, FXDIB_8bppMask))
(...skipping 30 matching lines...) Expand all
985 } else if (pFunc) { 985 } else if (pFunc) {
986 int size = dest_pitch * height; 986 int size = dest_pitch * height;
987 for (int i = 0; i < size; i++) { 987 for (int i = 0; i < size; i++) {
988 dest_buf[i] = transfers[src_buf[i]]; 988 dest_buf[i] = transfers[src_buf[i]];
989 } 989 }
990 } else { 990 } else {
991 FXSYS_memcpy(dest_buf, src_buf, dest_pitch * height); 991 FXSYS_memcpy(dest_buf, src_buf, dest_pitch * height);
992 } 992 }
993 return pMask.release(); 993 return pMask.release();
994 } 994 }
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_render/fpdf_render.cpp ('k') | core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698