emscripten-core / emscripten-core/emscripten

Render wrapped texts with SDL TTF library

Open
#17,657 2 comments 0 reactions 0 assignees View on GitHub
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**
![ScrnSht](https://user-images.githubusercontent.com/103512727/184960859-1a017938-a9c6-459d-bd3f-12de4aa4f6e1.png)

Here is [the zip](https://drive.google.com/file/d/1lQKUZDjG0vXH7-BSQMr6Wk78LdI_TJuf/view?usp=sharing) with the font used

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.