Решение от Ibrahim CS работает.
Позвольте мне расширить это решение и предоставить код.
Еще одна вещь, на которую стоит обратить внимание, это вычисление новой позиции (x, y) с верхним левым краем, это источник для визуализации масштабированной текстуры.
Я делаю это так
// calculate new x and y
int new_x = (x + texture->w/2) - (texture->w/2 * new_scale);
int new_y = (y + texture->h/2) - (texture->h/2 * new_scale);
// form new destination rect
SDL_Rect dest_rect = { new_x, new_y, texture->w * scale, texture->h * scale };
// render
SDL_RenderCopy(renderer, texture, NULL, &dest_rect);
Предположим, что texture
равно SDL_Texture
, а renderer
равно SDL_Renderer
, и вы полностью отрисовываете текстуру ввода до места назначения.