#ifndef INCLUDED_NATIVEROOTWINDOW
#define INCLUDED_NATIVEROOTWINDOW

#include <Math/Point.h>

#include <EGL/egl.h>

//////////////////////////////////////////////////////////////
namespace Dubious {
namespace Utility {

// @brief Abstraction of a root window
//
// This class is to hold the bits to represent the root
// window in a native app.  It's mostly just a container.
// Applications should not inherit from it or use it in
// any serious way.
class NativeRootWindow
{
public:
	NativeRootWindow( ANativeWindow* Window );
	~NativeRootWindow();

	void				SwapBuffers();

	Dubious::Math::Size Dimensions() const { return m_Dimensions; }
	bool&				Animate() { return m_Animate; }
private:
	NativeRootWindow( const NativeRootWindow& );
	NativeRootWindow& operator=( const NativeRootWindow& );
	void 				Destroy();

	Dubious::Math::Size m_Dimensions;
	bool				m_Animate;
    EGLDisplay 			m_Display;
    EGLSurface 			m_Surface;
    EGLContext 			m_Context;

};

}}

#endif
