Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有方法更改现有GLFW窗口的MSAA样本数? 我现在正在用C++、OpenGL和GLFW编写游戏。我希望允许用户更改游戏用于抗锯齿的样本数量,因为使用旧系统的用户可能希望出于性能原因完全禁用抗锯齿_C++_Opengl_Glfw_Msaa - Fatal编程技术网

是否有方法更改现有GLFW窗口的MSAA样本数? 我现在正在用C++、OpenGL和GLFW编写游戏。我希望允许用户更改游戏用于抗锯齿的样本数量,因为使用旧系统的用户可能希望出于性能原因完全禁用抗锯齿

是否有方法更改现有GLFW窗口的MSAA样本数? 我现在正在用C++、OpenGL和GLFW编写游戏。我希望允许用户更改游戏用于抗锯齿的样本数量,因为使用旧系统的用户可能希望出于性能原因完全禁用抗锯齿,c++,opengl,glfw,msaa,C++,Opengl,Glfw,Msaa,问题在于GLFW_示例是一个窗口创建提示,这意味着它在创建窗口时应用: //使用4个样本进行抗锯齿 glfwWindowHintGLFW_样本,4个; //上面的提示应用于下面创建的窗口 GLFWwindow*myWindow=glfwCreateWindowwidthInPix,heightInPix,title.c_str,glfwGetPrimaryMonitor,nullptr; //禁用抗锯齿 //此提示不应用于以前创建的窗口 glfwWindowHintGLFW_样本,4个; GLF

问题在于GLFW_示例是一个窗口创建提示,这意味着它在创建窗口时应用:

//使用4个样本进行抗锯齿 glfwWindowHintGLFW_样本,4个; //上面的提示应用于下面创建的窗口 GLFWwindow*myWindow=glfwCreateWindowwidthInPix,heightInPix,title.c_str,glfwGetPrimaryMonitor,nullptr; //禁用抗锯齿 //此提示不应用于以前创建的窗口 glfwWindowHintGLFW_样本,4个;
GLFW文档不包含有关如何更改现有窗口的样本数的任何信息。以前有人遇到过这个问题吗?

没有,您必须创建一个新窗口并销毁旧窗口。最好共享这两个上下文,这样就不会在洗牌过程中丢失


或者,可以创建多采样纹理或渲染缓冲层,渲染到FBO,然后将渲染数据blit到非多采样窗口。这样,您就可以完全控制样本数量,您可以轻松地销毁和重新创建此类图像。

否,您必须创建一个新窗口并销毁旧窗口。最好共享这两个上下文,这样就不会在洗牌过程中丢失

或者,可以创建多采样纹理或渲染缓冲层,渲染到FBO,然后将渲染数据blit到非多采样窗口。这样,您就可以完全控制样本的数量,并且可以轻松地销毁和重新创建此类图像