Index: core/include/fpdfapi/fpdf_render.h |
diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h |
index b4178a7f864acaaa365b93070d6f38c64db51e56..2637dd3252aa3256bc007e4a2de40840953cc178 100644 |
--- a/core/include/fpdfapi/fpdf_render.h |
+++ b/core/include/fpdfapi/fpdf_render.h |
@@ -20,8 +20,6 @@ class CPDF_FormObject; |
class CPDF_ImageCacheEntry; |
class CPDF_ImageObject; |
class CPDF_PathObject; |
-class CPDF_RenderContext; |
-class CPDF_RenderOptions; |
class CPDF_RenderStatus; |
class CPDF_ShadingObject; |
class CPDF_TextObject; |
@@ -55,69 +53,65 @@ class IPDF_OCContext { |
#define RENDER_NOPATHSMOOTH 0x20000000 |
#define RENDER_NOIMAGESMOOTH 0x40000000 |
#define RENDER_LIMITEDIMAGECACHE 0x80000000 |
+ |
class CPDF_RenderOptions { |
public: |
CPDF_RenderOptions(); |
+ FX_ARGB TranslateColor(FX_ARGB argb) const; |
int m_ColorMode; |
- |
FX_COLORREF m_BackColor; |
- |
FX_COLORREF m_ForeColor; |
- |
FX_DWORD m_Flags; |
- |
int m_Interpolation; |
- |
FX_DWORD m_AddFlags; |
- |
IPDF_OCContext* m_pOCContext; |
- |
FX_DWORD m_dwLimitCacheSize; |
- |
int m_HalftoneLimit; |
- |
- FX_ARGB TranslateColor(FX_ARGB argb) const; |
}; |
+ |
class CPDF_RenderContext { |
public: |
+ class Layer { |
+ public: |
+ CPDF_PageObjectList* m_pObjectList; |
+ CFX_Matrix m_Matrix; |
+ }; |
+ |
explicit CPDF_RenderContext(CPDF_Page* pPage); |
CPDF_RenderContext(CPDF_Document* pDoc, CPDF_PageRenderCache* pPageCache); |
~CPDF_RenderContext(); |
- void AppendObjectList(CPDF_PageObjectList* pObjs, |
- const CFX_Matrix* pObject2Device); |
+ void AppendLayer(CPDF_PageObjectList* pObjectList, |
+ const CFX_Matrix* pObject2Device); |
void Render(CFX_RenderDevice* pDevice, |
- const CPDF_RenderOptions* pOptions = NULL, |
- const CFX_Matrix* pFinalMatrix = NULL); |
+ const CPDF_RenderOptions* pOptions, |
+ const CFX_Matrix* pFinalMatrix); |
- void DrawObjectList(CFX_RenderDevice* pDevice, |
- CPDF_PageObjectList* pObjs, |
- const CFX_Matrix* pObject2Device, |
- const CPDF_RenderOptions* pOptions); |
+ void Render(CFX_RenderDevice* pDevice, |
+ const CPDF_PageObject* pStopObj, |
+ const CPDF_RenderOptions* pOptions, |
+ const CFX_Matrix* pFinalMatrix); |
void GetBackground(CFX_DIBitmap* pBuffer, |
const CPDF_PageObject* pObj, |
const CPDF_RenderOptions* pOptions, |
CFX_Matrix* pFinalMatrix); |
+ FX_DWORD CountLayers() const { return m_Layers.GetSize(); } |
+ Layer* GetLayer(FX_DWORD index) { return m_Layers.GetDataPtr(index); } |
+ |
+ CPDF_Document* GetDocument() const { return m_pDocument; } |
+ CPDF_Dictionary* GetPageResources() const { return m_pPageResources; } |
CPDF_PageRenderCache* GetPageCache() const { return m_pPageCache; } |
protected: |
- void Render(CFX_RenderDevice* pDevice, |
- const CPDF_PageObject* pStopObj, |
- const CPDF_RenderOptions* pOptions, |
- const CFX_Matrix* pFinalMatrix); |
- |
CPDF_Document* const m_pDocument; |
CPDF_Dictionary* m_pPageResources; |
CPDF_PageRenderCache* m_pPageCache; |
- CFX_ArrayTemplate<struct _PDF_RenderItem> m_ContentList; |
FX_BOOL m_bFirstLayer; |
- |
- friend class CPDF_RenderStatus; |
- friend class CPDF_ProgressiveRenderer; |
+ CFX_ArrayTemplate<Layer> m_Layers; |
}; |
class CPDF_ProgressiveRenderer { |