本来网上有简单的加载图片 dds纹理的例子,不过不支持minimap?找了一个简单的c语言库。。。没办法,看c++的类我就晕,不然ogl sample pack也不错的
https://github.com/kbranigan/Simple-OpenGL-Image-Library
自行下载编译,codeblocks+mingw visual c++的项目文件都有的,自己编译成库,然后复制SOIL.h到你用便的include目录,现在就简单多了,加载纹理图片dds纹理
#define GLEW_STATIC
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <SOIL.h>
GLFWwindow* window;
GLint width,height;
GLfloat ratio = 1.0f;
static char msg[128] = {0};
GLfloat xpos,ypos;
GLuint tex_ID;
GLfloat xrot=0.0f;
GLfloat yrot=0.0f;
GLfloat zrot=0.0f;
static void error_callback(int error, const char* description)
{
return;
}
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
if (action != GLFW_PRESS)
return;
switch (key)
{
case GLFW_KEY_ESCAPE:
glfwSetWindowShouldClose(window, GL_TRUE);
break;
case GLFW_KEY_D:
xrot+=0.5f;
break;
case GLFW_KEY_A:
xrot-=0.5f;
break;
case GLFW_KEY_W:
yrot+=0.5f;
break;
case GLFW_KEY_S:
yrot-=0.5f;
break;
default:
break;
}
}
void mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
{
if (action == GLFW_PRESS) switch(button)
{
case GLFW_MOUSE_BUTTON_LEFT:
strcpy(msg,"Mosue left button clicked!");
break;
case GLFW_MOUSE_BUTTON_MIDDLE:
strcpy(msg,"Mosue middle butto