SDL2 - 向曲面添加曲面,为纹理添加纹理或在其间添加某些内容

时间:2015-06-06 20:20:58

标签: c++ sdl sdl-2

基本上,我想要一个包含文本和图像的纹理。

我该怎么做呢? 我一直在谷歌,但我似乎无法找到一种方法将表面与其他表面,纹理与其他纹理,纹理与纹理结合。

编辑: 所以,我制作了一个简单的角色扮演游戏,我想拥有它,以便当你与NPC交谈时,NPC可以或者不能将图像附加到文本上。

理想情况下,我会通过将文本和图像发送到一个函数来实现这一点,该函数将生成我可以渲染的纹理,而不必担心渲染两个不同的纹理,以及它们应该放置在哪里。

这样的事情:

void setSayingText(std::string const& text, std::string const& imageLoc = "") {
   SDL_Surface* text = TTF_RenderText_Blended(font, text.c_str(), whiteColor);
   if (imageLoc != "") {
      SDL_Surface* image = IMG_Load(imageLoc);
      texture = SDL_CreateTextureFromSurface(renderer, text + image);
   } else {
      texture = SDL_CreateTextureFromSurface(renderer, text);
   }
}

1 个答案:

答案 0 :(得分:0)

将文本和图像作为曲面,然后调用https://wiki.libsdl.org/SDL_BlitSurface将一个曲面复制到另一个曲面上应该是微不足道的。之后,您可能希望将组合图像加载到纹理中以与渲染API一起使用。

也可以使用Render API使用https://wiki.libsdl.org/SDL_SetRenderTarget渲染到纹理,但如果我是你,我会坚持使用更简单的Surface API进行一次性合成。< / p>