| Index: xfa/fde/fde_render.cpp
|
| diff --git a/xfa/fde/fde_render.cpp b/xfa/fde/fde_render.cpp
|
| index b4259f71d990e5b09ebdde951fc41c1387fecad0..74c19f60cf120ae959d512b26bcb8daed07c96fe 100644
|
| --- a/xfa/fde/fde_render.cpp
|
| +++ b/xfa/fde/fde_render.cpp
|
| @@ -6,97 +6,13 @@
|
|
|
| #include "xfa/fde/fde_render.h"
|
|
|
| +#include "xfa/fde/fde_gedevice.h"
|
| #include "xfa/fde/fde_object.h"
|
| -#include "xfa/fde/fde_renderdevice.h"
|
| #include "xfa/fgas/crt/fgas_memory.h"
|
|
|
| #define FDE_PATHRENDER_Stroke 1
|
| #define FDE_PATHRENDER_Fill 2
|
|
|
| -namespace {
|
| -
|
| -class CFDE_RenderContext : public IFDE_RenderContext, public CFX_Target {
|
| - public:
|
| - CFDE_RenderContext();
|
| - virtual ~CFDE_RenderContext();
|
| - virtual void Release() { delete this; }
|
| - virtual FX_BOOL StartRender(IFDE_RenderDevice* pRenderDevice,
|
| - IFDE_CanvasSet* pCanvasSet,
|
| - const CFX_Matrix& tmDoc2Device);
|
| - virtual FDE_RENDERSTATUS GetStatus() const { return m_eStatus; }
|
| - virtual FDE_RENDERSTATUS DoRender(IFX_Pause* pPause = nullptr);
|
| - virtual void StopRender();
|
| - void RenderText(IFDE_TextSet* pTextSet, FDE_HVISUALOBJ hText);
|
| - FX_BOOL ApplyClip(IFDE_VisualSet* pVisualSet,
|
| - FDE_HVISUALOBJ hObj,
|
| - FDE_HDEVICESTATE& hState);
|
| - void RestoreClip(FDE_HDEVICESTATE hState);
|
| -
|
| - protected:
|
| - FDE_RENDERSTATUS m_eStatus;
|
| - IFDE_RenderDevice* m_pRenderDevice;
|
| - CFDE_Brush* m_pBrush;
|
| - CFX_Matrix m_Transform;
|
| - FXTEXT_CHARPOS* m_pCharPos;
|
| - int32_t m_iCharPosCount;
|
| - IFDE_VisualSetIterator* m_pIterator;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void FDE_GetPageMatrix(CFX_Matrix& pageMatrix,
|
| - const CFX_RectF& docPageRect,
|
| - const CFX_Rect& devicePageRect,
|
| - int32_t iRotate,
|
| - uint32_t dwCoordinatesType) {
|
| - FXSYS_assert(iRotate >= 0 && iRotate <= 3);
|
| - FX_BOOL bFlipX = (dwCoordinatesType & 0x01) != 0;
|
| - FX_BOOL bFlipY = (dwCoordinatesType & 0x02) != 0;
|
| - CFX_Matrix m;
|
| - m.Set((bFlipX ? -1.0f : 1.0f), 0, 0, (bFlipY ? -1.0f : 1.0f), 0, 0);
|
| - if (iRotate == 0 || iRotate == 2) {
|
| - m.a *= (FX_FLOAT)devicePageRect.width / docPageRect.width;
|
| - m.d *= (FX_FLOAT)devicePageRect.height / docPageRect.height;
|
| - } else {
|
| - m.a *= (FX_FLOAT)devicePageRect.height / docPageRect.width;
|
| - m.d *= (FX_FLOAT)devicePageRect.width / docPageRect.height;
|
| - }
|
| - m.Rotate(iRotate * 1.57079632675f);
|
| - switch (iRotate) {
|
| - case 0:
|
| - m.e = bFlipX ? (FX_FLOAT)devicePageRect.right()
|
| - : (FX_FLOAT)devicePageRect.left;
|
| - m.f = bFlipY ? (FX_FLOAT)devicePageRect.bottom()
|
| - : (FX_FLOAT)devicePageRect.top;
|
| - break;
|
| - case 1:
|
| - m.e = bFlipY ? (FX_FLOAT)devicePageRect.left
|
| - : (FX_FLOAT)devicePageRect.right();
|
| - m.f = bFlipX ? (FX_FLOAT)devicePageRect.bottom()
|
| - : (FX_FLOAT)devicePageRect.top;
|
| - break;
|
| - case 2:
|
| - m.e = bFlipX ? (FX_FLOAT)devicePageRect.left
|
| - : (FX_FLOAT)devicePageRect.right();
|
| - m.f = bFlipY ? (FX_FLOAT)devicePageRect.top
|
| - : (FX_FLOAT)devicePageRect.bottom();
|
| - break;
|
| - case 3:
|
| - m.e = bFlipY ? (FX_FLOAT)devicePageRect.right()
|
| - : (FX_FLOAT)devicePageRect.left;
|
| - m.f = bFlipX ? (FX_FLOAT)devicePageRect.top
|
| - : (FX_FLOAT)devicePageRect.bottom();
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| - pageMatrix = m;
|
| -}
|
| -
|
| -IFDE_RenderContext* IFDE_RenderContext::Create() {
|
| - return new CFDE_RenderContext;
|
| -}
|
| -
|
| CFDE_RenderContext::CFDE_RenderContext()
|
| : m_eStatus(FDE_RENDERSTATUS_Reset),
|
| m_pRenderDevice(nullptr),
|
| @@ -112,7 +28,7 @@ CFDE_RenderContext::~CFDE_RenderContext() {
|
| StopRender();
|
| }
|
|
|
| -FX_BOOL CFDE_RenderContext::StartRender(IFDE_RenderDevice* pRenderDevice,
|
| +FX_BOOL CFDE_RenderContext::StartRender(CFDE_RenderDevice* pRenderDevice,
|
| IFDE_CanvasSet* pCanvasSet,
|
| const CFX_Matrix& tmDoc2Device) {
|
| if (m_pRenderDevice)
|
| @@ -125,10 +41,9 @@ FX_BOOL CFDE_RenderContext::StartRender(IFDE_RenderDevice* pRenderDevice,
|
| m_eStatus = FDE_RENDERSTATUS_Paused;
|
| m_pRenderDevice = pRenderDevice;
|
| m_Transform = tmDoc2Device;
|
| - if (!m_pIterator) {
|
| - m_pIterator = IFDE_VisualSetIterator::Create();
|
| - FXSYS_assert(m_pIterator);
|
| - }
|
| + if (!m_pIterator)
|
| + m_pIterator = new CFDE_VisualSetIterator;
|
| +
|
| return m_pIterator->AttachCanvas(pCanvasSet) && m_pIterator->FilterObjects();
|
| }
|
|
|
|
|