草庐IT

SDL_GL_SetAttribute

全部标签

C++链接器错误LNK2005已在SDL中定义

我正在使用VS2005编译我的程序。我正在链接到SDL静态库并收到以下链接器错误;1>LIBCMTD.lib(fpinit.obj):errorLNK2005:__fltusedalreadydefinedinSDL2d.lib(SDL_stdlib.obj)1>LIBCMTD.lib(ftol2.obj):errorLNK2005:__ftol2_ssealreadydefinedinSDL2d.lib(SDL_stdlib.obj)1>Creatinglibrary..\..\..\product\VS2005\libs\\Standalone.libandobject..\..\

c++ - 如何在 SDL2/C++/Visual Studio 2012 Express 程序中设置窗口标题栏图标和 alt-tab 图标?

我已经在我的项目中添加了一个.rc文件,其中包含以下内容:IDI_MAIN_ICONICON"..\\..\\icon_artwork\\windows_icons\\project.ico".ico文件包含16x16、32x32、48x48和256x256分辨率的图标。我在任务栏和资源管理器中看到图标(所以毫无疑问.ico已成功嵌入到.exe中),但我在应用程序自己的标题栏中看到默认的Windows7应用程序图标,并且在alt-标签。有没有办法让操作系统在所有情况下都能自己看到嵌入的图标,或者我是否需要为此编写一些应用程序代码?我注意到有一个SDL2函数voidSDL_SetWind

c++ - 写入 gl_FragDepth,同时仍然执行深度预测试

给定深度预渲染渲染器,我有给定片段可能包含的最小深度值-因此,考虑任何比指示更远的片段是没有意义的。现在,我有一个写入gl_FragDepth的着色器,但保证写入的值大于或等于其多边形面的深度值。我如何仍然执行深度预测试(即,如果片段深度比缓冲区值更远,则在不执行着色器的情况下丢弃),但允许我写入一个不同于(大于)插值面深度的值(如果它通过了预测试)测试? 最佳答案 从OpenGL4.2(GLSL4.20)开始,您正在寻找的功能可作为gl_FragDepth上的布局限定符使用。它允许您指定您将如何修改片段着色器中的深度输出的意图。例

c++ - SDL - 获取原生屏幕分辨率

我的代码:window.cppWindow::Window(intw,inth,constchar*title,constchar*icon){height=h;width=w;if(SDL_Init(SDL_INIT_EVERYTHING)==0){SDL_WM_SetCaption(title,NULL);SDL_WM_SetIcon(SDL_LoadBMP(icon),NULL);screen=SDL_SetVideoMode(width,height,32,SDL_SWSURFACE|SDL_RESIZABLE|SDL_DOUBLEBUF);if(screen==NULL){r

c++ - 为什么我在所有像素的双 for 循环中使用 SDL2 和 SDL_RenderCopy 时性能不佳?

我正在使用SDL2编写光线转换游戏。绘制地板时,我需要按像素调用SDL_RenderCopy。这会导致帧率下降到10fps以下的瓶颈。我正在寻找性能提升,但似乎找不到。以下是性能下降的粗略概述:intmain(){while(true){for(x=0;x 最佳答案 您可能应该为此使用纹理流。基本上,您将创建一个SDL_TEXTUREACCESS_STREAMING类型的SDL_Texture,然后在每一帧“锁定”纹理,更新您需要的像素,然后再次“解锁”纹理。然后在单个SDL_RenderCopy调用中渲染纹理。LazyFoo示例-

c++ - glPolygonMode(GL_FRONT_AND_BACK, GL_LINES) 不工作

我正在尝试以正常填充模式渲染图元,然后将其渲染为线框。渲染代码:glClear(GL_COLOR_BUFFER_BIT);glClearColor(0.9f,0.9f,0.9f,1);//resetmatrixglLoadIdentity();//filldisplaylistglColor3c(150,255,255);glCallList(lDList);//wireframedisplaylistglColor3f(0,0,0);glLineWidth(10);glPolygonMode(GL_FRONT_AND_BACK,GL_LINES);glCallList(lDList)

c++ - OpenGL 3.3/GLSL 和 C++ 错误 : "must write to gl_Position"

我目前正在尝试使用OpenGL3.3和C++以及GLM、GLFW3和GLEW库来渲染一个三角形,但在尝试创建我的着色器程序时出现错误。Vertexinfo(0):errorC5145:mustwritetogl_Position我已经尝试找出发生这种情况的原因并在其他论坛上询问过,但没有人知道原因是什么。这个错误可能起源于三个可能的点-在我的main.cpp中,我在其中创建窗口、上下文、程序、vao等......#include#include#include#include#include#include"util/shaderutil.hpp"#defineWIDTH800#def

c++ - 如何在从 Linux 移植的 C++ 项目中使用 Open GL

我刚刚尝试在我的Mac上编译一个开源C++应用程序。我收到错误GL/gl.h文件未找到。我知道这意味着它找不到需要编译和运行的开放式GL库。我对下一步该做什么感到困惑,因为似乎OSX包含对opengl的内置支持。有nothing去下载。对于OSX和Linux上的OpenGL,头文件名称似乎可能不同(OpenGLheadersforOSX&Linux)所以我对下一步该做什么感到困惑。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用native版本的OpenGL?我要更改标题吗?有人可以提供更多指导吗?这个答案给出了windows/linux的答案——但不是OSX:

c++ - 在 Open GL 2.0 和 glm 中创建第一人称相机

我对OpenGL和c++还很陌生,遇到过创建第一人称相机的问题。我不懂矩阵数学,所以这对我来说更加困难。到目前为止,为了计算相机的旋转,我已经这样做了:voidCameraFP::calculate_view(){m_view=glm::rotate(m_view,this->get_rotation_x(),glm::vec3(1,0,0));m_view=glm::rotate(m_view,this->get_rotation_y(),glm::vec3(0,1,0));}每次更新调用都会调用该函数。为了通过鼠标处理相机的旋转,我做了以下操作:voidCameraFP::proc

c++ - SDL_RENDERER_PRESENTVSYNC 显示不一致

我最近决定开始使用SDL作为我的库之一来编写C++游戏。在我编写程序和学习SDL的过程中,我偶然发现了我的程序中的一个特殊错误,并决定在SSCCE中复制它以确保我没有发疯。问题似乎是当我将SDL_RENDERER_PRESENTVSYNC作为标志传递给SDL_CreateRenderer时,我得到不一致的渲染。为了进行比较,我在有标志的情况下运行了程序50次,在没有标志的情况下运行了50次,并且在每种情况下都对我的程序进行了唯一更改。没有标志,显示器在100%的时间内工作。启用标志后,50次中只有13次渲染成功。程序如下:#include#includeintmain(intargc,