/**
 * @file  BCNativeImage.h
 *
 * AstroNav TQTVD Header of BCNativeImage class.
 *
 */

#ifndef BCNativeImage_H
#define BCNativeImage_H

#include "BINativeImage.h"
#include <graphics/IntSize.h>

#include <directfb.h>


namespace BAL {

class BCNativeImage : public BINativeImage {

friend class BCGraphicsDeviceDirectFB;
friend class BTFont;

public:
    BCNativeImage(IDirectFBSurface*);
    BCNativeImage(IDirectFBSurface*, RGBA32Array*);
    virtual ~BCNativeImage();

    virtual IntSize size() const;

    virtual bool hasAlpha();

protected:
     IDirectFBSurface* getNativeDirectFB() const { return m_surface; }

private:

    /* the primary surface (surface of primary layer) */
    IDirectFBSurface* m_surface;
    RGBA32Array* m_ownArray;
    bool m_hasAlpha;
    IntSize m_size;
};

}
#endif

