问题标签 [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 投票
1 回答
3577 浏览

c - SDL2 - 如何使用一个缓冲区而不是两个进行渲染?

在 SDL2 中,我希望能够将更改绘制到一个缓冲区,而不是像我的设置那样将整个图像重绘到两个不同的缓冲区。下面是一个非常快速的测试,它显示了不需要的行为:

其输出是两个交替的屏幕。它显然使用了双缓冲区,这意味着我必须清除并重绘才能获得我想要的输出。在 for...loop 的每个循环之后,我想在缓冲区中添加一行 - 在程序运行结束时应该有 8 行。在这种情况下,我在一个缓冲区上得到 4 个,在另一个缓冲区上得到 4 个。我也不想再次重绘前面的行,因此需要一个缓冲区:

屏幕一

屏幕 2

0 投票
1 回答
775 浏览

c - SDL2 - 纹理和频繁变化的图片

我陷入了某种“合乎逻辑”的常规。我的代码从我的相机接收实时预览图片,这些图片被转换为 RWops 结构,最后作为纹理加载到 SDL。现在我的问题是:如何在不破坏和重建纹理的情况下更新纹理?一些使用 atm 的代码:

如您所见,以及我的猜测,那是完全低效的。我注意到的是,对于这 100 张图片,我需要大约 12 秒才能显示它们(jpg)。如果我只是让捕获和转换运行,它会在 4.5 秒内完成。因此,它使我的日常工作与构建和破坏纹理相结合,这一切都在减慢。

有什么建议吗?

0 投票
1 回答
1225 浏览

windows - 为什么 mingw 对“glUseProgram”给出未定义的引用?

该程序使用 SDL2 和 openGL 用 C 语言编写。只要我注释掉

程序编译并运行并显示 glCleared 颜色。包括 gl 版本检查:

哪个打印出来:

和 gl 错误检查:

打印:

但是当 glUseProgram(0) 未注释时,我收到以下错误:

我也得到:

包含的文件是:

该程序在 Windows XP 上使用 .bat 文件执行。.bat 是:

如果您不知道 .bats,命令中的 %file% 和 %libs% 只是简单地替换变量中的字符串。

问题似乎是上下文不支持后来的 glUseProgram 函数,除了上下文是支持该函数的 3.2 版这一事实。在这种情况下,问题似乎与 SDL_opengl.h 相关,包括选择了错误的 -lopengl32。但坦率地说,我真的不明白为什么我要问这个问题。

0 投票
1 回答
2379 浏览

sdl-2 - SDL_mixer:Mix_LoadMUS 不工作

所以当我加载这样的音乐时:

它返回 NULL 并且不播放声音。

但是,如果我使用相同的路径加载 wav:

它播放声音。

更糟糕的是,它以前可以工作,而我没有触及这部分代码。

有人可以帮助我,我将不胜感激。

0 投票
1 回答
701 浏览

c++ - 有没有人有 PBO + SDL2.0 + OpenGL 的例子

有没有人有 PBO(像素缓冲区对象)+ SDL2.0(简单 DirectMedia 层)+ OpenGL 的工作示例?

原因是使用 GLGetPixels 获得异步 GPU -> CPU 下载,从而获得性能提升。

这是我的尝试。use_pbo = false 或 true 根本没有测量差异。而且我之前在同一台机器上使用过带有 GLUT 的 PBO,所以我知道我的硬件支持它。

我看了很多http://www.songho.ca/opengl/gl_pbo.html教程,但没有看到我做错了什么。

0 投票
2 回答
926 浏览

c++ - 无法使用 SDL_LoadBMP 加载图像

我在 SDL1.2 方面的经验非常有限,我也在尝试迁移到 SDL2.0。这是一个简单的井字游戏,下面的类在初始化时加载我的图像。我无法准确指出我的问题,但我得到了一个带有代码 -1 的退出,因为它无法加载我的位图。我想要的结果是返回 TRUE。代码最初来自http://www.sdltutorials.com/sdl-tutorial-tic-tac-toe但我为迁移到 SDL2.0 做了一些更改。

我认为问题出在 CSurface::Onload() 上,所以我在函数中插入了一个断点,但项目没有到达我的断点就用完了。似乎没有调用 CSurface::Onload() 函数。

CSurface::Onload():

知道我在这里做错了什么吗???

0 投票
1 回答
607 浏览

antialiasing - 是否保证 SDL_RenderCopy 不会抗锯齿?

SDL_RenderCopy 的 SDL 文档说纹理将被拉伸,但我绝对找不到有关如何进行拉伸的信息。

我在 Linux 上的实验表明拉伸不是抗锯齿的。我可以依靠这个吗?它在其他平台上的行为方式是否相同?在未来的版本中不会改变吗?

在 SDL Wiki 中搜索anti-aliasing仅得到 1 个结果,它指的是 OpenGL 配置;Wiki 似乎对如何完成纹理的拉伸保持沉默。我正在编写一个像素艺术游戏,如果应用抗锯齿,它看起来不会很好,所以我想确保它永远不会被抗锯齿。

0 投票
1 回答
11657 浏览

sdl - 如何在 SDL 2.0 中绘制矩形轮廓

我试图在 SDL 2.0 中绘制一个矩形轮廓以用作选择框。有谁知道如何在 SDL 2.0 中制作一个?

0 投票
1 回答
2288 浏览

sdl - 在 SDL 2 中重定向输出

我在我的项目中使用 SDL 库,并且正在 Windows 平台上工作。

当我决定将我的项目迁移到 SDL 2 时,我遇到了一个问题:

SDL 1.2 中有一个选项可以将 stdout/stderr 的输出打印到控制台窗口,而不是通过定义NO_STDIO_REDIRECT宏来打印文件。但是,我还没有在 SDL 2 中找到该宏。

有没有办法将 SDL 2 输出打印到控制台而不是标准文件?

0 投票
2 回答
1285 浏览

c++ - SDL2 内存泄漏 C++

因此,当我运行该应用程序时,一切都运行顺利,但运行得越多,运行速度就越慢。我查看了它正在使用的内存,当它达到 400 mb 时,它完全停止 30 秒,然后回落到 200。

我对 SDL2 很陌生,我认为这是因为我调用的每一帧:

例如,我有很多。

问题是我不知道如何正确删除每一帧的对象,因为如果我执行 SDL_FreeSurface 我会收到错误消息。

我不会发布我的整个代码,因为它很乱,但如果你想要它,请随时询问。

你知道怎么解决吗?