Skip to content

Jittery text using TTF_DrawRendererText with float coordinates #587

@siteswapv4

Description

@siteswapv4

Here's a simple repro, tested with noto font and GNU Unifont

#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
#include <SDL3_ttf/SDL_ttf.h>

int main(int argc, char* argv[])
{
	SDL_Window* window;
	SDL_Renderer* renderer;
	SDL_Init(SDL_INIT_VIDEO);
	SDL_CreateWindowAndRenderer("test", 500, 500, 0, &window, &renderer);
	TTF_Init();
	TTF_Font* font = TTF_OpenFont("font.otf", 55.0f);
	TTF_TextEngine* engine = TTF_CreateRendererTextEngine(renderer);
	TTF_Text* text = TTF_CreateText(engine, font, "Hello, this is a long text I'm rendering to see if there are any issues with using float coordinates with SDL3_ttf", 0);
	TTF_SetTextWrapWidth(text, 500);
	
	while (true)
	{
		SDL_Event event;
		while (SDL_PollEvent(&event))
		{
			if (event.type == SDL_EVENT_QUIT) { return 0; }
		}
		SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
		SDL_RenderClear(renderer);
		SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
		TTF_DrawRendererText(text, 0.5f, 0.5f);
		SDL_RenderPresent(renderer);
		SDL_Delay(16);
	}
}

x:0.0f y:0.0f
Image
x:0.5f y:0.5f
Image

Lines rendered at non int coordinates are twisted
(look at the first H's middle bar)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions