// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#include "../include/fsdk_rendercontext.h"

void CRenderContext::Clear() {
  m_pDevice = NULL;
  m_pContext = NULL;
  m_pRenderer = NULL;
  m_pAnnots = NULL;
  m_pOptions = NULL;
#ifdef _WIN32_WCE
  m_pBitmap = NULL;
  m_hBitmap = NULL;
#endif
}

CRenderContext::~CRenderContext() {
  delete m_pRenderer;
  delete m_pContext;
  delete m_pDevice;
  delete m_pAnnots;
  delete m_pOptions->m_pOCContext;
  delete m_pOptions;
#ifdef _WIN32_WCE
  delete m_pBitmap;
  if (m_hBitmap)
    DeleteObject(m_hBitmap);
#endif
}

IFSDK_PAUSE_Adapter::IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause) {
  m_IPause = IPause;
}

FX_BOOL IFSDK_PAUSE_Adapter::NeedToPauseNow() {
  if (m_IPause->NeedToPauseNow) {
    return m_IPause->NeedToPauseNow(m_IPause);
  }
  return FALSE;
}
