#ifndef GP1_DIRECTX_TEXTURE_H
#define GP1_DIRECTX_TEXTURE_H

#include <iostream>
#include <string>
#include <d3d11.h>
#include "Texture.h"
#include "SDL_surface.h"
#include "SDL_image.h"


class Texture {
public:
    ~Texture();

    static Texture* LoadFromFile(const std::string& path, ID3D11Device* devicePtr);

    inline ID3D11ShaderResourceView* GetSrv() const { return m_TextureResourceViewPtr; }

private:
    Texture(SDL_Surface* surfacePtr, ID3D11Device* devicePtr);

    ID3D11ShaderResourceView* m_TextureResourceViewPtr{};
    ID3D11Texture2D* m_TexturePtr{};
};


#endif //GP1_DIRECTX_TEXTURE_H
