#include "rendering/FileTexture.h"
#include "images/PNGReader.h"
#include "utils/List.h"

FileTexture::FileTexture(const char* path, int maxMipMaps)
    : texture(maxMipMaps) {
    PNGReader png(path);
    if(png.hasError()) {
        return;
    }
    List<ColorChannel> buffer;
    buffer.resize(png.getBufferSize());
    if(!png.readData(buffer.begin())) {
        texture.setFormat(TextureFormat::color8(png.getChannels()));
        texture.setData(png.getWidth(), png.getHeight(), buffer.begin());
    }
}

void FileTexture::bindTo(int index) const {
    texture.bindTo(index);
}