问题标签 [sdl-image]

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 投票
2 回答
100 浏览

c++ - 如何在 Visual Studio 2013 中本地使用 SDL

我想将 SDL 和 SDL_image 添加到我的 Visual Studio 项目中。但是我可以只为这个项目在本地做吗?我不想将 dll 放在 System32 文件夹中。

0 投票
0 回答
110 浏览

sdl - SDL:IMG_load 返回错误数据

问题来自 SDL_image 的“IMG_load”函数,使用语言 C。它在执行过程中没有引发错误,但是当涉及到该行时

该函数返回一个我不能使用的数据:例如,SDL_BlitSurface(image1, NULL, screen, &position)不会做任何事情。但是,在使用该函数时它工作正常,SDL_LoadBMP. 我使用调试器尝试了解两个函数返回的数据之间的差异:

这是 IMG_Load("image.bmp") 返回的内容:

这是 SDL_LoadBMP("image.bmp") 返回的内容:

(注意图片是一样的,都是40x40px的正方形)。

为什么我不能在函数 IMG_Load 返回的 SDL_Surface 上使用 SDL_BlitSurface?

编辑:您还必须知道这是第一次在程序中使用 SDL_Image 包中的函数。

0 投票
1 回答
300 浏览

c++ - 纹理映射期间程序崩溃

我目前正在测试我将在我的游戏项目中使用的 TextureManager 类,但我遇到的问题是当我尝试将 2d 纹理加载到 std::map 时 .exe 崩溃。我需要的是我有一个指向 SDL_Textures 的指针映射,以标准字符串为键

SDL 和 SDL_image 初始化正常(控制台中的 printfs 成功),但是一旦调用 load() 函数,纹理映射就会启动并且程序崩溃。下面实现函数

自然,纹理贴图是 TextureManager 类的私有成员。函数是由 TextureManager 的构造函数调用,还是稍后由指向 TextureManager 的指针调用并不重要——结果相同。这个加载器的先前版本没有映射纹理,根本没有使用贴图,它工作得很好。那么地图是罪魁祸首吗?这是版本之间的唯一区别...

编辑:我在最后一行代码中添加了额外的注释并将其“注释”掉,因为在我测试了建议后这是错误的原因,程序的行为没有改变,所以它必须是其他的。

EDIT2:好的,我已经解决了这个问题 - 碰巧其中一个表面是从 .jpg 文件加载的,并且由于某种原因 jpg sdl 库文件已损坏。因此,JPG 支持在运行时未初始化,并且尝试加载 jpg 文件会使 exe 崩溃。替换项目文件夹中的 .dll 已解决问题 - 现在一切正常

0 投票
2 回答
2179 浏览

opengl - 使用 SDL_image 加载并在 OpenGL 中使用的翻转纹理

我正在使用SDL2OpenGL创建上下文。我使用SDL_image加载图像,并将它们绑定到OpenGL纹理。但是因为坐标系不一样,所以纹理被翻转了。

我找到了两种解决方法:

加载后修改纹理

优点:每个纹理只做一次

缺点:使用 CPU 完成,这会减慢每个纹理的加载速度

渲染时在 Y 轴和 Z 轴上应用 180° 旋转

优点:使用超快速功能

缺点:每帧需要做多次

在使用SDL_Image加载纹理后,是否有另一种方法可以翻转纹理?如果不是,通常使用哪种方法?

0 投票
0 回答
279 浏览

c++ - SDL 应用程序无法在其他计算机上运行

我发现了问题,我基本上只是将所有 .dll 文件放入我的 System32 中,这样应用程序就会在其中查找 .dll。然后我把 exe 给了一个缺少 .dll 的朋友。对不起这个可怕的问题

我已经编译了几个 SDL 应用程序,除了编译它们的计算机之外,它们都没有在其他计算机上运行。我将 .dll 文件包含在 .exe 中,其他计算机具有可视 C++ 和未安装的内容。 这是依赖walker的图像

当我告诉它检查我的 .exe 时,这就是依赖 walker 吐出的内容,我在谷歌上找不到任何有用的信息。所有的程序在我自己的电脑上都可以正常运行,而且大部分都是简单的。我的编译器是根据“Lazy Foo”的本教程设置的,我只链接 -lmingw32 -lSDL2main -lSDL2 并且只在 SDL 的目录中搜索。

如果有人可以翻译错误消息或帮助找出问题所在,我将不胜感激,我很确定问题出在依赖关系上。

0 投票
3 回答
2549 浏览

c++ - CLion 无法识别 SDL2_image

我在 /usr/include/SDL2 上安装了 SDL2_image 库(在这个目录中我可以找到 SDL_image.h)。

当我用 CLion 编译时,一切正常,但是在编辑器中,SDL2_image 库的包含和函数出现错误(编译器找到了这个库,但编辑器没有找到它)。

这是我的 CMake:

问题是什么?

0 投票
1 回答
4281 浏览

c - 如何链接 gcc 和 SDL_image 库?

我有以下脚本:

成功编译以下源代码:

我的问题是如何使用添加的库 SDL_image 编译它?会是这样吗?

当我尝试这个时,我收到以下错误:

0 投票
4 回答
12481 浏览

c++ - 未找到 SDL2_image

我正在尝试编译以下具有标头的代码:

但是在运行以下生成文件后:

我收到以下错误:

有什么建议么?不完全确定我安装的 SDL_image。我在 Ubuntu 上运行它。

0 投票
1 回答
2117 浏览

c++ - SDL 错误:SDL_CreateTextureFromSurface 上的渲染器无效

好吧,根据我的研究,无效的渲染器错误似乎适用于各种情况,我不知道为什么我的代码会创建它。我已将其缩小到特定的代码区域

特别是在线路上,

导致 SDL 返回无效的渲染器错误。在我的 init 类中,渲染器完美地初始化,只有当我尝试使用它来加载图像时,我才会收到 Invalid Renderer 错误。任何有关如何解决此错误的帮助表示赞赏。

编辑:: 这是来自与渲染器相关的 Init 类的一些代码,

希望这有助于发现问题。

0 投票
1 回答
670 浏览

c++ - 0x00000000 处的访问冲突使用 SDL_image 库加载 PNG 文件

我在 Visual C++ 2010 Express 中使用 SDL2 2.0.3 库和 SDL_image 库 2.0.0。我正在利用 SDL_image 库从资源文件夹中加载各种 PNG 和 JPEG 文件。虽然库初始化没有任何错误并加载 BMP 和 JPEG 文件,但在给定 PNG 文件时它会中断。

“appname.exe 中 0x00000000 处未处理的异常:0xC0000005:访问冲突。”

在我的纹理管理器(为程序存储和管理纹理的对象)内部,是一个从给定文件名字符串加载纹理的函数。这是代码,包括我在实现 SDL_image 进行加载之前使用的注释行。bitmapSurface = IMG_Load(...上面的异常是在该行内抛出的。

调用堆栈:

这是我的 TextureManager 的构造函数:

供您参考,我使用的是最新的 Windows 10 x64。双 NVidia GTX 550ti 的图形驱动程序也是最新的。所有 DLL 文件(包括 pnglib dll)都在调试文件夹中并进行加载。如果我从程序中删除 DLL 文件,则图像无法加载并提供上面为 NULL 表面编码的消息。没有异常发生。

问题摘要:为什么会抛出这个异常,为什么只为 PNG 文件抛出异常,以及当调用堆栈的详细信息在我的调用似乎正常工作时结束时如何跟踪它?我做错了什么,还是我可能错过了配置步骤?

编辑:感谢@Nandu,我重新编译了 DLL SDL_image,并在此处获得了更好的调用堆栈输出:

这表明问题发生在 IMG_png.c 的第 374 行:

VS 报告lib此时为 NULL,这将解释错误!问题变成了,为什么它是NULL?似乎这段代码应该对此进行检查,但尽管如此,在万能的互联网上似乎没有其他人遇到这个问题。