#ifndef _CRENDERER_HPP_ #define _CRENDERER_HPP_ /*** SDL Header Files ***/ #include /*** DLL Header File ***/ #include "dllExport.h" /*** Custom Header Files ***/ #include "../UtilityEngine/cString.hpp" using UtilityEngine::cString; namespace VideoEngine { /* Singleton */ class EXPORT_FROM_MYDLL cRenderer { private: cRenderer(); ~cRenderer(); public: static cRenderer& Inst(); static void Delete(); /* Creates the Renderer */ const bool Setup(); /* Uses */ void CleanUp(); void Render( SDL_Texture* texture, SDL_Rect* srcrect, SDL_Rect* dstrect ); void Render( SDL_Surface* surface, SDL_Rect* srcrect, SDL_Rect* dstrect ); void Render( SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect ); void Render( SDL_Texture* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect ); void Render( SDL_Texture* src, const SDL_Rect* srcrect, SDL_Renderer* dst, SDL_Rect* dstrect ); void RenderToTexture( SDL_Texture* src, SDL_Rect* srcrect, SDL_Texture* dst, SDL_Rect* dstrect ); void RenderDrawColor( const SDL_Colour& colour ); void RenderDrawRect( const SDL_Rect& rect, SDL_Texture* dst = nullptr ); void ScreenShot(const cString& filename, const cString& dir = ""); void SaveSurface( SDL_Surface* surface, const cString& fileName, const cString& dir = "" ); void SaveTexture( SDL_Texture* texture, const cString& fileName, const cString& dir = "" ); SDL_Texture* SurfaceToTexture( SDL_Surface* surface ); SDL_Surface* TextureToSurface( SDL_Texture* texture ); void CopyTexture( SDL_Texture* src, SDL_Texture* dst ); SDL_Surface* CopySurface( SDL_Surface* src ); SDL_Surface* NewSurface( long int width = -1, long int height = -1 ) const; SDL_Texture* NewTexture( long int width = -1, long int height = -1, const unsigned long int access = SDL_TEXTUREACCESS_TARGET ) const; void SetRenderTarget( SDL_Texture* target = nullptr ); void ResetRenderTarget(); ///Sets ///Gets SDL_Renderer* getRenderer(); private: SDL_Renderer* mp_renderer; static cRenderer* sp_inst;// = nullptr };/// END CLASS DEFINITION cRenderer }/// END NAMESPACE DEFINITION VideoEngine #endif/// END IFNDEF _CRENDERER_HPP_