2013-07-21 3 views
1

누군가가 무료 이미지 (opengl로)와 glfw3로 간단한 예제를 제공 할 수 있습니까?opengl 예제가있는 간단한 무료 이미지

프로그램에 image er("io.png"); er->gen(); 만 blackscree이 렌더링

코드를 사용하여

class image 
    { 
    public: 
     FREE_IMAGE_FORMAT format; 
     FIBITMAP * img; 
     GLubyte* texture; 
     char* pixels; 
     GLuint texID; 
     int w,h; 
     image(char* cr){ 
      format = FreeImage_GetFileType(cr); 
      img = FreeImage_Load(format,cr); 

      w = FreeImage_GetWidth(img); 
      h = FreeImage_GetHeight(img); 
      cout << w << " " << h << endl; 
      pixels = (char*)FreeImage_GetBits(img); 
     } 
     void gen() 
     { 
      glGenTextures(1,&texID); 
      glBindTexture(GL_TEXTURE_2D,texID); 
      glTexImage2D(GL_TEXTURE_2D,0,GL_BGR,w,h,0,GL_BGR,GL_TEXTURE_2D,pixels); 
      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 

     } 
    }; 

나는 기능은 데이터에 대한 포인터를 반환

답변

0

FreeImage_GetBits() 배경 OpenGL을 응용 프로그램으로 이미지를 사용하려고 해요 FreeImage 내부 형식으로 저장됩니다. 각 주사선은 일반적으로 4 바이트 경계로 정렬됩니다. 두 개의 텍스처가있는 동안 이것은 잘 동작합니다. 그러나 NPOT 텍스처의 경우 OpenGL의 올바른 언팩 정렬을 지정해야합니다.

FreeImage에는 정렬되지 않은 긴밀하게 압축 된 픽셀 배열 인 FreeImage_ConvertToRawBits()을 사용할 수있는 또 다른 기능이 있습니다. 그걸 써.