FileTexture.cpp 720 B

12345678910111213141516171819202122232425262728
  1. #include "rendering/FileTexture.h"
  2. #include "images/PNGReader.h"
  3. #include "utils/List.h"
  4. Error FileTexture::load(const char* path, int maxMipMaps) {
  5. PNGReader png;
  6. Error error = png.load(path);
  7. if(error.has()) {
  8. return error;
  9. }
  10. List<ColorChannel> buffer;
  11. buffer.resize(png.getBufferSize());
  12. error = png.readData(buffer.begin());
  13. if(error.has()) {
  14. return error;
  15. }
  16. texture.init(TextureFormat::color8(png.getChannels()), maxMipMaps);
  17. texture.setData(png.getWidth(), png.getHeight(), buffer.begin());
  18. return {};
  19. }
  20. void FileTexture::bindTo(int index) const {
  21. texture.bindTo(index);
  22. }
  23. void FileTexture::setLinearFilter() {
  24. texture.setLinearFilter();
  25. }