Skip to content

SDL_RenderTextureRotated ignores logical presentation with software renderer #14051

@siteswapv4

Description

@siteswapv4

Here is a repro :

#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
#include <SDL3_image/SDL_image.h>

int main(int argc, char* argv[])
{
	SDL_Window* window;
	SDL_Renderer* renderer;
	SDL_Init(SDL_INIT_VIDEO);
	SDL_CreateWindowAndRenderer("test", 1920, 1080, SDL_WINDOW_RESIZABLE, &window, &renderer);
	SDL_SetRenderLogicalPresentation(renderer, 1920, 1080, SDL_LOGICAL_PRESENTATION_LETTERBOX);
	
	SDL_Texture* texture = IMG_LoadTexture(renderer, "image.png"); 
	double rotation = 0.0;
	
	SDL_FRect rect = {100.0f, 100.0f, texture->w, texture->h};
	
	while (true)
	{
		rotation += 0.5;
		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, 100, 100, 255);
		SDL_RenderFillRect(renderer, &rect);
		SDL_RenderTextureRotated(renderer, texture, NULL, &rect, rotation, NULL, SDL_FLIP_NONE);
		SDL_RenderPresent(renderer);
		SDL_Delay(16);
	} 
}
SDL_RENDER_DRIVER=opengl ./main

Renders fine

SDL_RENDER_DRIVER=software ./main

Rotating image drifts away when window is resized

Image The arrow should be on the red rectangle here

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions