erebus

annotate liberebus/src/texture.h @ 12:ea4bcf186d66

whatever
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 24 May 2014 21:52:19 +0300
parents 4abdce1361b9
children
rev   line source
nuclear@2 1 #ifndef TEXTURE_H_
nuclear@2 2 #define TEXTURE_H_
nuclear@2 3
nuclear@2 4 #include "image.h"
nuclear@2 5 #include "color.h"
nuclear@2 6
nuclear@2 7 class Texture {
nuclear@2 8 public:
nuclear@2 9 Image<float> img;
nuclear@2 10
nuclear@2 11 inline Color lookup(float u, float v) const;
nuclear@2 12
nuclear@2 13 bool load(const char *fname) { return img.load(fname); }
nuclear@2 14 };
nuclear@2 15
nuclear@2 16
nuclear@2 17 inline Color Texture::lookup(float u, float v) const
nuclear@2 18 {
nuclear@2 19 int xsz = img.get_width();
nuclear@2 20 int ysz = img.get_height();
nuclear@2 21
nuclear@2 22 int x = (float)u / (float)xsz;
nuclear@2 23 int y = (float)v / (float)ysz;
nuclear@2 24
nuclear@2 25 float *pix = img.get_pixels() + ((y % ysz) * xsz + (x % xsz)) * 4;
nuclear@2 26 return Color(pix[0], pix[1], pix[2]);
nuclear@2 27 }
nuclear@2 28
nuclear@2 29
nuclear@2 30 #endif // TEXTURE_H_