#pragma once

#include "gpuBuffer.hpp"
#include "managedObject.hpp"

#include <psp2/gxm.h>

namespace render::kernel
{

class Texture : public ManagedObject
{
private:
    SceGxmTexture texture;
    GpuBuffer *buffer;

    void Load(const char *path);

public:
    Texture(const char *path);
    virtual ~Texture();

    void BindVertex(unsigned int slot);
    void BindFragment(unsigned int slot) const;
};

} // namespace render::kernel