summaryrefslogtreecommitdiff
path: root/core/fpdfapi/fpdf_render
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/fpdf_render')
-rw-r--r--core/fpdfapi/fpdf_render/fpdf_render.cpp56
-rw-r--r--core/fpdfapi/fpdf_render/fpdf_render_image.cpp2
-rw-r--r--core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h4
-rw-r--r--core/fpdfapi/fpdf_render/render_int.h72
4 files changed, 44 insertions, 90 deletions
diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp
index c8fa406a08..4f83370ad2 100644
--- a/core/fpdfapi/fpdf_render/fpdf_render.cpp
+++ b/core/fpdfapi/fpdf_render/fpdf_render.cpp
@@ -22,13 +22,12 @@
#include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
#include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
-#include "core/fpdfapi/fpdf_parser/ipdf_occontext.h"
#include "core/fpdfapi/fpdf_render/cpdf_pagerendercache.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_progressiverenderer.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_textrenderer.h"
#include "core/fpdfapi/include/cpdf_modulemgr.h"
-#include "core/fpdfapi/ipdf_rendermodule.h"
+#include "core/fpdfdoc/include/fpdf_doc.h"
#include "core/fxge/include/fx_ge.h"
CPDF_DocRenderData::CPDF_DocRenderData(CPDF_Document* pPDFDoc)
@@ -88,37 +87,6 @@ void CPDF_DocRenderData::ReleaseCachedType3(CPDF_Type3Font* pFont) {
it->second->RemoveRef();
}
-class CPDF_RenderModule : public IPDF_RenderModule {
- public:
- CPDF_RenderModule() {}
-
- private:
- ~CPDF_RenderModule() override {}
-
- CPDF_DocRenderData* CreateDocData(CPDF_Document* pDoc) override;
- void DestroyDocData(CPDF_DocRenderData* p) override;
- void ClearDocData(CPDF_DocRenderData* p) override;
-
- CPDF_DocRenderData* GetRenderData() override { return &m_RenderData; }
-
- CPDF_DocRenderData m_RenderData;
-};
-
-CPDF_DocRenderData* CPDF_RenderModule::CreateDocData(CPDF_Document* pDoc) {
- return new CPDF_DocRenderData(pDoc);
-}
-void CPDF_RenderModule::DestroyDocData(CPDF_DocRenderData* pDocData) {
- delete pDocData;
-}
-void CPDF_RenderModule::ClearDocData(CPDF_DocRenderData* p) {
- if (p) {
- p->Clear(FALSE);
- }
-}
-void CPDF_ModuleMgr::InitRenderModule() {
- m_pRenderModule.reset(new CPDF_RenderModule);
-}
-
CPDF_RenderOptions::CPDF_RenderOptions()
: m_ColorMode(RENDER_COLOR_NORMAL),
m_Flags(RENDER_CLEARTYPE),
@@ -242,7 +210,7 @@ FX_BOOL CPDF_RenderStatus::Initialize(CPDF_RenderContext* pContext,
} else {
m_InitialStates.DefaultStates();
}
- m_pObjectRenderer.reset();
+ m_pImageRenderer.reset();
m_Transparency = transparency;
return TRUE;
}
@@ -295,13 +263,13 @@ void CPDF_RenderStatus::RenderSingleObject(const CPDF_PageObject* pObj,
FX_BOOL CPDF_RenderStatus::ContinueSingleObject(const CPDF_PageObject* pObj,
const CFX_Matrix* pObj2Device,
IFX_Pause* pPause) {
- if (m_pObjectRenderer) {
- if (m_pObjectRenderer->Continue(pPause))
+ if (m_pImageRenderer) {
+ if (m_pImageRenderer->Continue(pPause))
return TRUE;
- if (!m_pObjectRenderer->m_Result)
+ if (!m_pImageRenderer->m_Result)
DrawObjWithBackground(pObj, pObj2Device);
- m_pObjectRenderer.reset();
+ m_pImageRenderer.reset();
return FALSE;
}
@@ -316,11 +284,11 @@ FX_BOOL CPDF_RenderStatus::ContinueSingleObject(const CPDF_PageObject* pObj,
return FALSE;
if (pObj->IsImage()) {
- m_pObjectRenderer.reset(IPDF_ObjectRenderer::Create());
- if (!m_pObjectRenderer->Start(this, pObj, pObj2Device, FALSE)) {
- if (!m_pObjectRenderer->m_Result)
+ m_pImageRenderer.reset(new CPDF_ImageRenderer);
+ if (!m_pImageRenderer->Start(this, pObj, pObj2Device, FALSE)) {
+ if (!m_pImageRenderer->m_Result)
DrawObjWithBackground(pObj, pObj2Device);
- m_pObjectRenderer.reset();
+ m_pImageRenderer.reset();
return FALSE;
}
return ContinueSingleObject(pObj, pObj2Device, pPause);
@@ -330,10 +298,6 @@ FX_BOOL CPDF_RenderStatus::ContinueSingleObject(const CPDF_PageObject* pObj,
return FALSE;
}
-IPDF_ObjectRenderer* IPDF_ObjectRenderer::Create() {
- return new CPDF_ImageRenderer;
-}
-
FX_BOOL CPDF_RenderStatus::GetObjectClippedRect(const CPDF_PageObject* pObj,
const CFX_Matrix* pObj2Device,
FX_BOOL bLogical,
diff --git a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
index aedf8036cb..528ad78d2b 100644
--- a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
+++ b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
@@ -19,10 +19,10 @@
#include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
#include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
-#include "core/fpdfapi/fpdf_parser/ipdf_occontext.h"
#include "core/fpdfapi/fpdf_render/cpdf_pagerendercache.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_rendercontext.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h"
+#include "core/fpdfdoc/include/fpdf_doc.h"
#include "core/fxcodec/include/fx_codec.h"
#include "core/fxcrt/include/fx_safe_types.h"
#include "core/fxge/include/fx_ge.h"
diff --git a/core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h b/core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h
index 6935d695be..2590dbbd2d 100644
--- a/core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h
+++ b/core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/include/fx_system.h"
#include "core/fxge/include/fx_dib.h"
-class IPDF_OCContext;
+class CPDF_OCContext;
#define RENDER_COLOR_NORMAL 0
#define RENDER_COLOR_GRAY 1
@@ -44,7 +44,7 @@ class CPDF_RenderOptions {
uint32_t m_Flags;
int m_Interpolation;
uint32_t m_AddFlags;
- IPDF_OCContext* m_pOCContext;
+ CPDF_OCContext* m_pOCContext;
uint32_t m_dwLimitCacheSize;
int m_HalftoneLimit;
};
diff --git a/core/fpdfapi/fpdf_render/render_int.h b/core/fpdfapi/fpdf_render/render_int.h
index a94820ab8e..464ca38784 100644
--- a/core/fpdfapi/fpdf_render/render_int.h
+++ b/core/fpdfapi/fpdf_render/render_int.h
@@ -16,32 +16,33 @@
#include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h"
#include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h"
-class CPDF_PageObjectHolder;
-class CPDF_PageRenderCache;
-class CPDF_RenderStatus;
+class CCodec_ScanlineDecoder;
+class CFX_FontCache;
class CFX_GlyphBitmap;
class CFX_ImageTransformer;
+class CPDF_Color;
+class CPDF_Dictionary;
+class CPDF_Document;
+class CPDF_Font;
+class CPDF_FormObject;
class CPDF_ImageCacheEntry;
class CPDF_ImageLoaderHandle;
-class CCodec_ScanlineDecoder;
-class CPDF_Type3Font;
-class CPDF_Type3Cache;
-class CPDF_Type3Char;
-class CPDF_TransferFunc;
-class CPDF_Document;
+class CPDF_ImageObject;
+class CPDF_ImageRenderer;
class CPDF_Object;
-class CFX_FontCache;
-class CPDF_Font;
class CPDF_PageObject;
+class CPDF_PageObjectHolder;
+class CPDF_PageRenderCache;
class CPDF_PathObject;
+class CPDF_RenderStatus;
class CPDF_ShadingObject;
-class CPDF_FormObject;
class CPDF_ShadingPattern;
-class CPDF_TilingPattern;
-class CPDF_Color;
-class CPDF_Dictionary;
-class CPDF_ImageObject;
class CPDF_Stream;
+class CPDF_TilingPattern;
+class CPDF_TransferFunc;
+class CPDF_Type3Cache;
+class CPDF_Type3Char;
+class CPDF_Type3Font;
#define TYPE3_MAX_BLUES 16
@@ -118,19 +119,6 @@ class CPDF_DocRenderData {
CPDF_TransferFuncMap m_TransferFuncMap;
};
-class IPDF_ObjectRenderer {
- public:
- static IPDF_ObjectRenderer* Create();
- virtual ~IPDF_ObjectRenderer() {}
- virtual FX_BOOL Start(CPDF_RenderStatus* pRenderStatus,
- const CPDF_PageObject* pObj,
- const CFX_Matrix* pObj2Device,
- FX_BOOL bStdCS,
- int blendType = FXDIB_BLEND_NORMAL) = 0;
- virtual FX_BOOL Continue(IFX_Pause* pPause) = 0;
- FX_BOOL m_Result;
-};
-
class CPDF_RenderStatus {
public:
CPDF_RenderStatus();
@@ -275,7 +263,7 @@ class CPDF_RenderStatus {
const CPDF_PageObject* m_pStopObj;
CPDF_GraphicStates m_InitialStates;
int m_HalftoneLimit;
- std::unique_ptr<IPDF_ObjectRenderer> m_pObjectRenderer;
+ std::unique_ptr<CPDF_ImageRenderer> m_pImageRenderer;
FX_BOOL m_bPrint;
int m_Transparency;
int m_DitherBits;
@@ -342,18 +330,17 @@ class CPDF_ImageLoaderHandle {
int32_t m_nDownsampleHeight;
};
-class CPDF_ImageRenderer : public IPDF_ObjectRenderer {
+class CPDF_ImageRenderer {
public:
CPDF_ImageRenderer();
- ~CPDF_ImageRenderer() override;
+ ~CPDF_ImageRenderer();
- // IPDF_ObjectRenderer
FX_BOOL Start(CPDF_RenderStatus* pStatus,
const CPDF_PageObject* pObj,
const CFX_Matrix* pObj2Device,
FX_BOOL bStdCS,
- int blendType = FXDIB_BLEND_NORMAL) override;
- FX_BOOL Continue(IFX_Pause* pPause) override;
+ int blendType = FXDIB_BLEND_NORMAL);
+ FX_BOOL Continue(IFX_Pause* pPause);
FX_BOOL Start(CPDF_RenderStatus* pStatus,
const CFX_DIBSource* pDIBSource,
@@ -364,7 +351,16 @@ class CPDF_ImageRenderer : public IPDF_ObjectRenderer {
FX_BOOL bStdCS,
int blendType = FXDIB_BLEND_NORMAL);
+ FX_BOOL m_Result;
+
protected:
+ FX_BOOL StartBitmapAlpha();
+ FX_BOOL StartDIBSource();
+ FX_BOOL StartRenderDIBSource();
+ FX_BOOL StartLoadDIBSource();
+ FX_BOOL DrawMaskedImage();
+ FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device);
+
CPDF_RenderStatus* m_pRenderStatus;
const CPDF_ImageObject* m_pImageObject;
int m_Status;
@@ -383,12 +379,6 @@ class CPDF_ImageRenderer : public IPDF_ObjectRenderer {
CPDF_ImageLoaderHandle* m_LoadHandle;
FX_BOOL m_bStdCS;
int m_BlendType;
- FX_BOOL StartBitmapAlpha();
- FX_BOOL StartDIBSource();
- FX_BOOL StartRenderDIBSource();
- FX_BOOL StartLoadDIBSource();
- FX_BOOL DrawMaskedImage();
- FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device);
};
class CPDF_ScaledRenderBuffer {