问题标签 [sdl-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
14231 浏览

c - SDL_Overlay 的 SDL2.0 替代方案

所以我一直在尝试通过以下关于 ffmpeg 的教程:http: //dranger.com/ffmpeg/tutorial02.html

但是,当我尝试使用 gcc 进行编译时,我得到以下输出:

现在,我读到 SDL2 中不再使用 SDL_Overlay,所以问题就在这里。我一直在四处寻找,但似乎找不到任何有用的东西。SDL_Overlay 有替代品吗?有必要吗?

SDL_Overlay 在以下上下文中使用:

0 投票
1 回答
1562 浏览

opengl - 如何创建和初始化 SDL 2.0 窗口以支持 OpenGL 3.0+ 的 3D 渲染?

我对 SDL 还很陌生,我只尝试使用 2.0 版。我相信在以前的 SDL 版本(1.2 和 1.3)中创建一个窗口SDL_SetVideoMode用. 那么如何使用 SDL 2.0 创建一个用于渲染 3D OpenGL 3.0+ 的窗口?(当然有可编程的流水线)

SDL_CreatWindow然后我的第一个 gess 就是SDL_GetWindowSurface下面SDL_CreateRenderer的代码:

但是,文档上SDL_GetWindowSurface说它不能用于“3D 或此窗口上的渲染 API”

是否有其他方法可以在 SDL 2.0 中渲染 3D OpenGL 3.0+,或者我应该只使用 SDL 1.2,因为 SDL 2.0 仅处于候选发布状态?

0 投票
1 回答
43656 浏览

sdl - SDL2 库的静态链接

我正在使用 Windows 7、Code::Blocks 和 MinGW。在编译/构建任何东西时,我几乎没有经验,尤其是当 Code::Blocks 不使用 makefile 时。

我从http://www.libsdl.org/tmp/download-2.0.php下载了 SDL2-devel-2.0.0-mingw.tar.gz (SDL 开发库),我想创建一个独立的可执行文件使用SDL2 库,但到目前为止,我总是必须将 SDL2.dll 文件与可执行文件捆绑在一起才能使其工作。

我听说我不能静态链接动态库,所以我唯一的选择似乎是使用上面提到的链接中的文件 SDL2-2.0.0.tar.gz(源代码)对源文件做一些事情。但是,我不知道我应该如何处理这些。

我设法使用源文件尝试将 Visual Studio 项目导入 Code::Blocks 并构建它,但它告诉我“sdl-config 没有这样的文件或目录”(我不知道是什么触发了它)。我也不确定构建是否只是给了我一个可执行文件,我不知道我可以做些什么来将它链接到我自己的可执行文件。

一个万无一失的白痴的分步指南将是解决此案的最佳选择。

编辑:

我设法使用 Jonas 提供的指南编译了 SDL 库,并获得了一个 libSDL2.a 文件。

起初我只将 libSDL2.a 的路径添加到“链接库:”-Code::Blocks 部分,但我遇到了一堆错误,例如“SDL_Init() 未在此范围内声明”。

除了 libSDL2.a 路径,我还添加了 SDL2-2.0.0\include 的路径到 Compiler 的搜索目录,以及 SDL2-2.0.0\build.libs 的路径到 Linker 的搜索目录。我还将它写到我的测试文件中:#include "SDL.h"。我的测试文件现在看起来像这样:

看来它确实解决了声明问题,但现在 Code::Blocks 打开了一个 SDL_mmjoystick.c 文件并给了我更多错误:“未定义对'waveInClose@4'的引用”、“对'waveOutClose@4'的未定义引用”、 “对'joyGetNumDevs@0'的未定义引用”和其他大量引用。

这是正在发生的事情的屏幕截图,注意#include 文本的不同颜色,我不确定为什么会发生这种情况:http: //gyazo.com/00656a9c1e57a2bd0db1414fa7d68ced.png

我不确定如何正确使用这个库。在这种情况下有什么帮助,还是我应该为此提出另一个问题?

编辑:

我将 -lSDL2 添加到链接器选项并删除了其他参数。现在它构建良好:

但是当我尝试运行它时,它说我的计算机缺少 SDL2.dll,而重点是静态链接。

因此,目前我的链接库 -settings 中有 build/.libs 的路径,其他链接器选项中有 -lSDL2,对于搜索目录,我有编译器和 SDL2-2.0 的 SDL2-2.0.0/include 的路径。 0/build/.libs 用于链接器。

在 build/.libs 目录中我还可以看到 libSDL2.a、libSDL2.dll.a、libSDL2.la 和 libSDL2.lai 文件,我不知道它们是什么。

0 投票
3 回答
3240 浏览

sdl - SDL_GetMouseState 无法获取初始鼠标位置

有没有办法在SDL 2.0中获得鼠标的初始位置?
我尝试通过 获取鼠标坐标SDL_GetMouseState(&mouse_x,&mouse_y),但是只有在使用该函数后才能得到预期的结果,而且除了自程序开始以来鼠标至少没有移动一次SDL_PollEvent()之外,我看不到其他值。虽然我不(0,0)'不检查SDL_MOUSEMOTION并连接SDL_GetMouseState()到它,我只有在鼠标移动时才能获得鼠标坐标。那么有什么问题?还是SDL_GetMouseState()适合这样做?
编辑:为什么,为什么没有任何答案?

0 投票
2 回答
4260 浏览

c - Cygwin 和 SDL 2.0:如何编译?

我已经像这样下载了 SDL2.0:

然后我解压它,进入目录,然后./configure && make && make install. 一切都很顺利。现在我制作了一个非常简单的示例(见下文)。我的问题是当我尝试编译时它不起作用,所以我将 SDL2.dll 复制到当前目录并尝试了所有我知道的组合但没有成功:

所有错误都是:

或者:

你会怎么做?

这是我尝试编译的源代码:

0 投票
2 回答
3544 浏览

c++ - 如何在 SDL 2.0 中使用 SDL_MapRGB

我正在尝试从 rgb 值中获取 24 位颜色。我想使用SDL_MapRGB,但我不知道像素格式是什么。由于它的 SDL 2.0 我正在使用SDL_Windowand SDL_Renderer

0 投票
2 回答
584 浏览

sdl - 带参数的 D 语言函数调用

我正在学习 D 并且主要有 C# 方面的经验。具体来说,我正在尝试使用Derelict3 绑定到 SDL2。我已经能够让一些基本功能正常工作,但我对如何为特定调用创建数组参数感到困惑。

该库包含一个调用

而且我一直无法正确地形成论据

此函数的 SDL 文档指出此参数是 的数组SDL_Point,但我不清楚如何创建适当的数组以传递给此函数。

这是我目前拥有的示例:

并且编译器抱怨我没有为const(SDL_Point)*in传递正确类型的参数points

我怀疑这是我的一个基本误解,所以任何帮助将不胜感激。

0 投票
6 回答
17601 浏览

c++ - 无法打开文件“SDL2.lib”

我正在尝试在 Visual C++ 2012 上的项目中打开 sdl2,但我不断收到此错误:

错误 LNK1104:无法打开文件“SDL2.lib”

我添加了其他库和包含文件夹但没有运气..我通过链接器添加了库的链接,但我得到了同样的错误..

我应该怎么办?

0 投票
2 回答
1587 浏览

c++ - 在 C++ 中传递 SDL 对象的最佳方法

我使用 SDL 在 C++ 中开始了一个小游戏。我一直在研究指针和参考资料,我理解其中的区别。

这是我程序的一部分,现在我需要将渲染器和字体对象传递给 renderText() 函数。我的问题是,我应该将它们作为指针(它们已经是)还是作为参考传递?

这就是我认为的样子:

或者

同样稍后在 renderText() func 中,我必须将 SDL_Renderer 的指针传递给其他 SDL 函数,因此在第二种情况下我必须再次使用 &。

0 投票
2 回答
3977 浏览

android - 为什么 SDL_Window 是不完整的类型?

我正在将一个使用 SDL 1.2 的 C++ 游戏移植到 SDL2 和 Android 平台。到目前为止一切都很顺利,除了一件事:当我尝试访问 SDL_Window 的字段时,编译器告诉我

我认为我的 SDL 安装可能有问题。我使用以下命令从 libsdl.org 上的源代码编译了 SDL 2.0.0:

然后,我复制了新构建libSDL2.so$ANDROID_TOOLCHAIN/sysroot/usr/lib文件include/$ANDROID_TOOLCHAIN/sysroot/usr/include/SDL. 这些文件被提供给 CMake 并被游戏代码引用。我设法转换了每个 SDL 调用,现在我被这个 SDL_Window 问题困住了。

我在 SDL 的源代码中进行了快速搜索,发现SDL.hincludeSDL_video.h包含一个 typedef SDL_Windowon struct SDL_Window。然后我搜索了这个结构,除了在原始源存档中的一个名为src/video/SDL_sysvideo.h. 由于它不是 API 的文件,我怀疑我必须将它包含在我的代码中。

那么,如何在 SDL2 中为 Android 找到 SDL_Window 的定义(如果这是相关的)?