首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GLFW中启用帧缓冲区透明性?

如何在GLFW中启用帧缓冲区透明性?
EN

Stack Overflow用户
提问于 2019-07-17 16:58:28
回答 1查看 3.1K关注 0票数 2

在GLFW中,我被窗口的透明度困住了,我遵循了他们的窗口指南和例子,但是似乎没有什么效果.GLFW版本3.3与OpenGL 3.3以及。

我在GLFW的存储库中查看了齿轮示例,它引入了一个完全透明的窗口,复制了所需的窗口提示(GLFW_FRAMEBUFFER_TRANSPARENCY),并将其设置为true。这对我不管用

我正在使用以下方法初始化我的窗口:

代码语言:javascript
复制
if (!glfwInit()) {
    printf("Could not initialize GLFW\n");
    return 1;
}

GLFWwindow *window = glfwCreateWindow(500, 500, "opengl", NULL, NULL);
if (!window) {
    printf("Could not create GLFW window");
    return 1;
}

glfwWindowHint(GLFW_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, 1);
glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, 1);

glfwMakeContextCurrent(window);
glfwSwapInterval(1);
glfwSetFramebufferSizeCallback(window, resizeCallback);

然后我澄清这条路:

代码语言:javascript
复制
glClearColor(1.0, 1.0, 1.0, 0.1);
glClear(GL_COLOR_BUFFER_BIT);

我希望窗户是半透明的,我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-07-17 17:14:00

在创建窗口(在您提到的演示中可以看到)之前,glfwWindowHint必须被称为。否则,它们就没有任何效果。正确代码:

代码语言:javascript
复制
glfwWindowHint(GLFW_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, 1);
glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, 1);

GLFWwindow *window = glfwCreateWindow(500, 500, "opengl", NULL, NULL);
if (!window) {
    printf("Could not create GLFW window");
    return 1;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57080896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档