Advertisement
eliaspr

Untitled

Oct 13th, 2017
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. Texture::Texture(const std::string& path)
  2.     {
  3.         FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
  4.         FIBITMAP* dib = nullptr;
  5.  
  6.         fif = FreeImage_GetFileType(path.c_str(), 0);
  7.         if (fif == FIF_UNKNOWN)
  8.             fif = FreeImage_GetFIFFromFilename(path.c_str());
  9.         if (fif == FIF_UNKNOWN)
  10.             return;
  11.  
  12.         if (FreeImage_FIFSupportsReading(fif))
  13.             dib = FreeImage_Load(fif, path.c_str());
  14.         if (!dib)
  15.             return;
  16.  
  17.         FIBITMAP *dib_converted = FreeImage_ConvertTo32Bits(dib);
  18.         int width = FreeImage_GetWidth(dib_converted);
  19.         int height = FreeImage_GetHeight(dib_converted);
  20.         BYTE* bits = FreeImage_GetBits(dib_converted);
  21.  
  22.         if ((bits == 0) || (width == 0) || (height == 0))
  23.             return;
  24.  
  25.         float* data = new float[4 * 2 * 2 * 4]{
  26.             1.0f,0.3f,0.5f,1.0f,
  27.             0.0f,0.7f,0.5f,1.0f,
  28.             0.0f,0.5f,0.2f,1.0f,
  29.             0.0f,0.0f,0.0f,1.0f
  30.         };
  31.  
  32.         glGenTextures(1, &m_textureID);
  33.         glBindTexture(GL_TEXTURE_2D, m_textureID);
  34.         //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 2, 0, GL_RGBA, GL_FLOAT, (void*)data);
  35.         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_BGRA, GL_UNSIGNED_BYTE, (void*)bits);
  36.  
  37.         FreeImage_Unload(dib_converted);
  38.         FreeImage_Unload(dib);
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement