GLFW SetWindowIcon

时间:2017-06-02 06:06:16

标签: c++ opengl glfw

所以,我正在尝试为我的glfw窗口设置窗口图标(显然),但我这样做有困难,因为我不知道如何使用GLFWimage设置图标。 文档中的代码如下所示:

GLFWimage images[2];
images[0] = load_icon("my_icon.png");
images[1] = load_icon("my_icon_small.png");
glfwSetWindowIcon(window, 2, images);

但是,它并没有显示如何使用或创建一个" load_icon"功能。 所以,任何人都可以帮忙,因为我已经搜索了几个月。

2 个答案:

答案 0 :(得分:2)

glfwSetWindowIcon(GLFWwindow * window, int count, const GLFWimage * images)

我认为第一个参数2是明确的,第三个是GLFWimage,它是一个带有字段int width, int height, unsigned char * pixels的结构,但是你的任务是为它提供数据,GLFW不会给你带来的好处加载你的图像,但有几个库,或你可以编写自己的功能来获取图像数据。

我不是真正的c ++家伙,所以我现在还没有意识到最新/最好的图书馆,但有土壤可以正常工作。像这样:

GLFWimage icons[1];
icons[0].pixels = SOIL_load_image("icon.png", &icons[0].width, &icons[0].height, 0, SOIL_LOAD_RGBA);
glfwSetWindowIcon(window.window, 1, icons);
SOIL_free_image_data(icons[0].pixels);

答案 1 :(得分:1)

如果您使用的是“ stb_image.h”,则应使用以下代码:

GLFWimage images[1]; 
images[0].pixels = stbi_load("PATH", &images[0].width, &images[0].height, 0, 4); //rgba channels 
glfwSetWindowIcon(window, 1, images); 
stbi_image_free(images[0].pixels);