44 lines
		
	
	
		
			830 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			830 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| #include <SDL_render.h>
 | |
| #include <string>
 | |
| 
 | |
| namespace KapitanGame {
 | |
| 	//Texture wrapper class
 | |
| 	class KTexture {
 | |
| 	public:
 | |
| 		KTexture();
 | |
| 
 | |
| 		~KTexture();
 | |
| 
 | |
| 		KTexture(const KTexture& other) = default;
 | |
| 
 | |
| 		KTexture(KTexture&& other) noexcept;
 | |
| 
 | |
| 		KTexture& operator=(const KTexture& other);
 | |
| 
 | |
| 		KTexture& operator=(KTexture&& other) noexcept;
 | |
| 
 | |
| 		//Loads image at specified path
 | |
| 		bool LoadFromFile(const std::string& path, SDL_Renderer* renderer);
 | |
| 
 | |
| 		//Deallocates texture
 | |
| 		void Free();
 | |
| 
 | |
| 		//Renders texture at given point
 | |
| 		void Render(SDL_Renderer* renderer, int x, int y, SDL_Rect* clip = nullptr, float scale = 1.f) const;
 | |
| 
 | |
| 		//Gets image dimensions
 | |
| 		int GetWidth() const;
 | |
| 		int GetHeight() const;
 | |
| 
 | |
| 	private:
 | |
| 		//The actual hardware texture
 | |
| 		SDL_Texture* Texture;
 | |
| 
 | |
| 		//Image dimensions
 | |
| 		int Width;
 | |
| 		int Height;
 | |
| 	};
 | |
| 
 | |
| }
 |