opengl利用SOIL加载图片dds纹理

本文介绍如何借助Simple OpenGL Image Library (SOIL)在OpenGL项目中加载DDS纹理。由于原始的加载示例不支持minimap,作者选择了SOIL库,并提供了编译和使用的简单说明。
摘要由CSDN通过智能技术生成

本来网上有简单的加载图片 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值