emscripten-core / emscripten-core/emscripten
Render wrapped texts with SDL TTF library
- Dominant language
- C++
- Stars
- 27.6k
- Forks
- 3.6k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 105
Description
### **Version of emscripten/emsdk:**
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.13 (531257621816c200bc7c3be53129494afd029aec)
clang version 15.0.0 (https://github.com/llvm/llvm-project 5c6ed60c517c47b25b6b25d8ac3666d0e746b0c3)
Target: wasm32-unknown-emscripten
Thread model: posix
### **Compiled with**
`emcc main.cpp -sUSE_SDL=2 -sUSE_SDL_TTF=2 -o Web/index.html --preload-file Resources --use-preload-plugins`
### **Problem**
When I render a wrapped text with SDL's ttf library, on the web version, instead of rendering a new line it renders the text with a strange symbol in the place where it should be a '\n'. It works fine in the native version.
### **Reproducible example**
```
#include
#include
#include
SDL_Window* window = nullptr;
SDL_Renderer* renderer = nullptr;
void loop()
{
SDL_RenderClear(renderer);
{// Draw Font
TTF_Font* font = TTF_OpenFont("Resources/Font.ttf", 20);
SDL_Surface* textSurface = nullptr;
textSurface = TTF_RenderText_Blended_Wrapped(font, "Hello\nWorld!", {255, 255, 255, 255}, 0);
SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface);
SDL_FreeSurface(textSurface);
SDL_Point textSize = { 0, 0 };
TTF_SizeText(font, "Hello\nWorld!", &textSize.x, &textSize.y);
TTF_CloseFont(font);
SDL_FRect textRect = { 10, 10, float(textSize.x), float(textSize.y) };
SDL_RenderCopyF(renderer, textTexture, NULL, &textRect);
SDL_DestroyTexture(textTexture);
}
SDL_RenderPresent(renderer);
}
int main(int, char**)
{
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("New Line Text", 10, 10, 200, 200, SDL_WINDOW_HIDDEN);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
TTF_Init();
SDL_ShowWindow(window);
emscripten_set_main_loop(loop, -1, 1);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
TTF_Quit();
SDL_Quit();
return 0;
}
```
### **Strange Symbol**

Here is [the zip](https://drive.google.com/file/d/1lQKUZDjG0vXH7-BSQMr6Wk78LdI_TJuf/view?usp=sharing) with the font used
Contributor guide
Assessment
This issue has not been assessed yet.