#ifndef BLUECORE_RENDERDEVICE_H #define BLUECORE_RENDERDEVICE_H #include "RenderWindow.h" #include "Utilities/Buffer.h" #include "Utilities/Referenced.h" #include "Utilities/sigslot.h" namespace BlueCore { class RenderDevice : public Referenced, public sigslot::has_slots<> { public: class RenderItem { public: //virtual void render ( RenderPass pass ) = 0; virtual ~RenderItem() {}; }; private: int _ViewportWidth, _ViewportHeight; void WindowResizeSlot(int width, int height); void WindowCloseSlot(); ref_ptr _RenderWindow; public: RenderDevice(RenderWindow* renderWindow); ~RenderDevice(); int getViewportWidth(); int getViewportHeight(); void begin2D(); void end2D(); void clear(); void setAmbientLight(float r, float g, float b); void setTexture(unsigned int unit, unsigned int texture); sigslot::signal0<> DeviceShutdownSignal; //Buffer &_ShadowFaces; }; } // namespaced BlueCore #endif // BLUECORE_RENDERDEVICE_H