当前位置: 首页 > 知识库问答 >
问题:

glfw openGL C++窗口背景和标题

步致远
2023-03-14
//#include <stdio.h>
//#include <stdlib.h>

#include <GL/glew.h>
#include <GL/glfw.h>
#include <glm/glm.hpp>
using namespace glm;

#include <iostream>
using namespace std;



int main()
{

    if( !glfwInit() )
    {
        fprintf( stderr, "Failed to initialize GLFW\n" );
        return -1;
    }

    glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4); // 4x antialiasing
    glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); // We want OpenGL 3.3
    glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
    glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //We don't want the old OpenGL

    // Open a window and create its OpenGL context
    if( !glfwOpenWindow( 1024, 768, 0,0,0,0, 32,0, GLFW_WINDOW ) )
    {
        fprintf( stderr, "Failed to open GLFW window\n" );
        glfwTerminate();
        return -1;
    }
    else
    {
        glfwSetWindowTitle( "Tutorial 01" );
    }

    // Initialize GLEW
    glewExperimental=true; // Needed in core profile
    if (glewInit() != GLEW_OK) {
        fprintf(stderr, "Failed to initialize GLEW\n");
        return -1;
    }



    glfwEnable( GLFW_STICKY_KEYS );

    do{
        // Draw nothing, see you in tutorial 2 !

        // Swap buffers
        glfwSwapBuffers();

    } // Check if the ESC key was pressed or the window was closed
    while( glfwGetKey( GLFW_KEY_ESC ) != GLFW_PRESS &&
    glfwGetWindowParam( GLFW_OPENED ) );

    return 0;
}

共有1个答案

隆飞宇
2023-03-14

我在ATI FirePro V5700上得到了相同的行为(甚至在IDE之外运行exe版本)。如果您真的为此烦恼,请下载GLFW源代码并更改carbon_window.c的第764行、win32_window.c的第1210行和x11_window.c的第962行。

.\lib\carb\carbon_window.c

(void)SetWindowTitleWithCFString( _glfwWin.window, CFSTR( "GLFW Window" ) );

.\lib\win32\win32_window.c

_glfwWin.window = CreateWindowEx( _glfwWin.dwExStyle,    // Extended style
                                  _GLFW_WNDCLASSNAME,    // Class name
                                  "GLFW Window",         // Window title
                                  _glfwWin.dwStyle,      // Defined window style
                                  wa.left, wa.top,       // Window position
                                  fullWidth,             // Decorated window width
                                  fullHeight,            // Decorated window height
                                  NULL,                  // No parent window
                                  NULL,                  // No menu
                                  _glfwLibrary.instance, // Instance
                                  NULL );                // Nothing to WM_CREATE
_glfwPlatformSetWindowTitle( "GLFW Window" );
 类似资料:
  • 问题内容: 有没有一种方法可以使用Tkinter在Python 3.x中创建“加载屏幕”?我的意思是像Adobe Photoshop的加载屏幕一样,具有透明度等。我设法摆脱已经使用的框架边框: 但是,如果我这样做: 图像显示正常,但背景为灰色而不是透明。 有没有一种方法可以增加窗口的透明度,但仍可以正确显示图像? 问题答案: 在tkinter中,没有跨平台的方法可以使背景透明。

  • 我正在使用Linux并试图学习OpenGL。我参考了learnopengl.com网站,并在这里编译了第一个可用的程序。 我似乎在编译程序时没有遇到命令问题 但是当我运行程序时,它会从后面显示东西,而不是像这样的空白窗口 但是请注意,此窗口不透明,因为如果我移动窗口,背景是相同的。但是,如果我最小化并重新打开窗口,则背景是新创建的。专用和集成 GPU 都会发生这种情况。 我需要做什么才能使它正常工

  • 如何使亲爱的ImGui创建的窗口完全适合“背景”?我的意思是当我们创建一个窗口时,它也在一些渲染场景或背景中。我想模仿Qt等其他框架创建的窗口,使其更像桌面应用程序,而不仅仅是在一些游戏中。

  • 我必须设计如下内容: > 包含“n”个孩子的父容器很可能超出窗口的宽度,在这种情况下,页面应该滚动,而不是换行到下一行。 上面的容器将在另一个容器下面渲染多次。 页面应该作为一个整体滚动,即滚动应该在包装器(div with class)级别,而不是在单独的父级。 在下面的片段中水平滚动以查看行为。 现在的问题是,父对象上的灰色背景不会溢出到窗口宽度以外的子对象后面。 如何实现这一点(使所有其子级

  • 我有一个JButton,我想设置背景的颜色。 我在mac电脑上用了这个,它显示了我想要的样子。然而,在windows上试用时,前景是白色的(正如它应该的那样),但背景是空的。 将背景色设置为JButton 表示添加

  • 我正在尝试在Frame窗口的背景中播放音频文件,我发现它比添加图片要复杂得多。 我找到了一个“教程”,应该如何添加音乐,它似乎相当简单,至少在所需的代码量方面。但是,我无法播放音频文件,它在说两件事…… 我试图播放一个我复制到我的java项目中的音频文件,它告诉我它找不到那个文件或目录。 第二-我给了这个方法一个音频文件的路径,它告诉我… 请记住,我很新,这个教程没有给很多帮助,所以我不知道这个游