我目前正在开发SDL2应用程序(C++),我有一个问题。正如标题所示,我正在尝试将SDL用作Web应用程序。我想知道解决这个问题的最佳方法是什么。我已经对此进行了一些研究,采取的途径是:与python交互将Wt用作工具包并在其之上分层SDL2。使用QTcreator并在其之上分层SDL2。显然必须有其他方法可以做到这一点,但我最关心的是SDL2需要某种形式的窗口(SDL_Window)和渲染器(SDL_Renderer),我的选择是否可以帮助我克服障碍?或者我是否必须直接将SDL2编码到python中并尝试将其与Django(或其他形式的网络应用程序API)一起使用以按照我的需要进行操
当我像这样编写我的SDL2OpenGL程序时(使用VSync):SDL_GL_SetSwapInterval(1);while(isRunning){while(SDL_PollEvent(&e)){if(e.type==SDL_Quit){isRunning=false;}}SDL_GL_SwapWindow(window);}对于这个实际上什么都不做的单个程序,我的CPU使用率高达39%-50%而当我在计算时间差后将sleep时间传递给SDL_Delay()时,我的程序将完全卡住并出现“无响应”。我不想使用SDL_WaitEvent(),因为我的程序将显示无论输入事件如何都会运行的
我正在尝试使用SDL在C++中制作游戏。我想在图形中实现抗锯齿功能,但我在网上搜索到的有关该主题的所有内容都建议使用外部库或也涉及OpenGL的解决方案。有没有办法在没有OpenGL的情况下进行抗锯齿处理(例如事先修改图形,或者可能是我没有找到的某些功能)?如果不是,将用SDL编写的游戏转换为也使用OpenGL有多难(我以前没有使用过OpenGL...)? 最佳答案 一个老问题,但我有同样的问题。让我解决未回答的部分。"Isthereawaytodoanti-aliaswithoutOpenGL(suchasmodifyingthe
当我使用SDL2.0编译一个简单示例时,在命令SDL_CreateWindow之后,出现以下错误:“传递了一个NULL互斥量”。我正在使用静态库项目。我也在OSX10.8.3上进行测试。此通知在命令行编译时遗漏了什么?下面是生成程序的命令行和代码示例。编译器:clang++-I"TestSDL/sdl/include"-Wall-c-xc++-archx86_64-std=c++11-stdlib=libc++-MMD-MP-MF"src/main.d"-MT"src/main.d"-o"src/main.o""../src/main.cpp"链接器:clang++-L"TestSDL
我最近开始从使用SDL(1.2.15)迁移到SDL2(2.0.0),之前依赖于使用扩展库SDL_ttf(2.0.11)来呈现字体。当我尝试使用与第一版SDL和SDL2(诚然尚未正式发布)相同的文本库时,它编译得很好。但是,当我运行可执行文件时(我目前使用的是桌面版VS2012),出现以下错误:Unhandledexceptionat0x6C7D8C24(SDL2.dll)intest.exe:0xC0000005:Accessviolationreadinglocation0x00000045.据我所知,这是由于以下代码造成的。我创建了一个Window类来封装一些常用的SDL函数:窗口
我学习SDL二维编程已有一段时间了,现在我想创建一个结合使用SDL和OpenGL的程序。我是这样设置的:SDL_Init(SDL_INIT_VIDEO);window=SDL_CreateWindow("SDLandOpenGL",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,width,height,SDL_WINDOW_OPENGL);context=SDL_GL_CreateContext(window);该程序目前只是一个使用OpenGl显示的带有白线的黑色窗口。这是渲染的代码:glClearColor(0,0,0,0);glCle
我正尝试在SDL2中为嵌入式项目创建动态绘图仪。目前,代码在x86和ARM两种架构上执行。在x86上,我得到了一个运行平稳的绘图仪,但是,在ARM上,它运行得非常慢,只有我在x86上获得的帧的一小部分。我很确定这是因为我重新渲染了表面上的每个像素,因为这是嵌入式设备上的严重过热。我尝试将新内容渲染到纹理,将其复制到渲染器然后渲染,但这根本不起作用。由于双缓冲,我必须清除每一帧。否则,我将“放弃”更改。但我还需要渲染旧数据点,并且仅在绘图仪再次到达它们时覆盖它们。在SDL2中有没有一种方法可以将这些数据点保存到某种Canvas上,并且只添加(重绘)新添加的数据点?这是我的源代码:绘图仪.
我想将由IMG_Load()加载的SDL_Surface转换为OpenGL纹理的其他像素格式(rgba8)。我怎样才能做到这一点?我在文档中读到了有关SDL_ConvertSurface()的信息,但我不知道如何将它组合在一起。 最佳答案 给"HowToLoadanOpenGLTexturefromanSDL_Surface"一个镜头:GLuinttexture;//ThisisahandletoourtextureobjectSDL_Surface*surface;//Thissurfacewilltellusthedetails
好的,我一直在研究SDL中的文本输入(如何将击键数据转换为字母并将它们附加到名为Text的std::string中)并且大多数教程都是这样介绍的://Ifakeywaspressedif(event->type==SDL_KEYDOWN){//Ifthekeyisalowercaseletterelseif((event->key.keysym.unicode>=(Uint16)'a')&&(event->key.keysym.unicodekey.keysym.unicode;}}然而,经过一番搜索后,我在SDLheader中发现了一条注释,说明.unicode已弃用并使用SDL_T
当我退出全屏SDL应用程序时,我的计算机分辨率更改为640x480。我的应用程序分辨率是1024x768。如何在退出应用程序后将分辨率切换回原来的分辨率?我使用SDL1.2和Ubuntu10.04 最佳答案 这听起来像是X驱动程序问题或窗口管理器问题。您可以在不同的发行版或不同的ubuntu版本上尝试吗?除非您的程序崩溃,否则您应该调用SDL_Quit(),或SDL_QuitSubSystem(SDL_INIT_VIDEO),或者直接退出全屏。那应该恢复原始设置。 关于c++-SDL退出