SDL 2通过SpriteManager在屏幕上显示图像,获得指针中断
SDL 2 Showing an image on screen via a SpriteManager, getting a pointer break
我对SDL 2完全陌生,我希望能找到一些帮助,为其中的一个类制作我的第一个合适的程序。我们已经获得了一些在这个项目中使用的代码,这就是为什么我不简单地使用BlitSurface函数来制作这个解决方案。如果这确实是更好的解决方案,我会转而使用它。这是程序运行时要使用的状态的一部分,显示标题图像。
由于以下代码中的指针问题,我得到了一个中断错误:
void MenuState::Enter()
{
//Is to load the title image used for the State
Sprite* extBackgroundSprite = met_extSystem.met_pointextSpriteManager- >CreateSprite("../assets/Testimage1.bmp" , 0 , 0 , 768 , 1024);
}
它指的是由SpriteManager类和CreateSprite函数生成的Sprite,如下所示:
Sprite * SpriteManager::CreateSprite(const std::string & point_stringFilePath, int point_intX, int point_intY, int point_intWidth, int point_intHeight)
{
auto iter = met_arraypointextTextures.find(point_stringFilePath); //breaks here
if (iter == met_arraypointextTextures.end())
//If the iterator cannot locate the sprite we need in our already loaded memory,
//it needs to be loaded into our map to create pointers
{
SDL_Surface* extSurface = SDL_LoadBMP(point_stringFilePath.c_str());
SDL_Texture* extTexture = SDL_CreateTextureFromSurface(met_pointextRenderer, extSurface);
SDL_FreeSurface(extSurface);
met_arraypointextTextures.insert(std::pair<std::string, SDL_Texture*>(point_stringFilePath, extTexture));
iter = met_arraypointextTextures.find(point_stringFilePath);
}
//Creates the sprite, adds a new index point via pushback
Sprite* extSprite = new Sprite(iter->second, point_intX, point_intY, point_intWidth, point_intHeight);
met_arraypointextSprites.push_back(extSprite);
return extSprite;
}
我希望这是足够的信息和代码来提出我的问题。如果没有,请告诉我!并提前感谢您。
事实证明,用我提供的信息无法解决这个问题。指针确实需要初始化,但在构造函数中找到了参数,我在这里没有提供。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 类成员和中断
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- SDL 2通过SpriteManager在屏幕上显示图像,获得指针中断