// 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

#ifndef _FX_GE_APPLE_H_
#define _FX_GE_APPLE_H_
#if _FXM_PLATFORM_  == _FXM_PLATFORM_APPLE_
class CFX_QuartzDevice : public CFX_RenderDevice
{
public:
    CFX_QuartzDevice();
    ~CFX_QuartzDevice();
    FX_BOOL Attach(CGContextRef context, FX_INT32 nDeviceClass = FXDC_DISPLAY);
    FX_BOOL Attach(CFX_DIBitmap* pBitmap);
    FX_BOOL Create(FX_INT32 width, FX_INT32 height, FXDIB_Format format);

    CGContextRef GetContext();

protected:
    CGContextRef m_pContext;
    FX_BOOL m_bOwnedBitmap;
};
#endif
#endif
