OpenGL如何读取并使用两张纹理
1、读取一张纹理图片
virtual unsigned loadTexture(const char* fileName)
{
unsigned textureId = 0;
//1 获取图片格式
FREE_IMAGE_FORMAT fifmt = FreeImage_GetFileType(fileName, 0);
//2 加载图片
FIBITMAP *dib = FreeImage_Load(fifmt, fileName, 0);
//3 转化为rgb 24色
dib = FreeImage_ConvertTo32Bits(dib);
//4 获取数据指针
BYTE *pixels = (BYTE*)FreeImage_GetBits(dib);
int width = FreeImage_GetWidth(dib);
int height = FreeImage_GetHeight(dib);
for (size_t i = 0; i < width * height * 4; i += 4)
{
BYTE temp = pixels[i];
pixels[i] = pixels[i + 2];
pixels[i + 2] = temp;
}
/**
* 产生一个纹理Id,可以认为是纹理句柄,后面的操作将书用这个纹理id
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures)
n:用来生成纹理的数量;textures:存储纹理索引的第一个元素指针
*/
glGenTextures(1, &textureId);
/**