// Author: Juan Carlos De Abreu (jcabreur@gmail.com)
//
// This file define a interface for a graphic API to be use to render the app.

#ifndef RENDERER_RENDERER_H__
#define RENDERER_RENDERER_H__

#include "../global.h"
#include "../app.h"
#include "../Base/Memory/MMObject.h"

BEGIN_TEG_NAMESPACE();

class IRenderer : public IMMObject {
 public:
  // IRenderer constructor and destructor.
  IRenderer();
  virtual ~IRenderer();

  // Methods to do the render and to set the windows size.
  virtual void render() = 0;
  virtual void resize(int width, int height) = 0;

 private:
  DISALLOW_COPY_AND_ASSIGN(IRenderer);
};

END_TEG_NAMESPACE();

#endif  // RENDERER_RENDERER_H__
