Нашел способ сделать это, используя SDL_SetTextureColorMod: (* https://wiki.libsdl.org/SDL_SetTextureColorMod)
SDL_SetTextureColorMod(font->texture, 255, 0, 0);
, например, поменяет шрифт на красный.
Мой оригинальный код использует это:
while (*text) {
if (*text >= 32 && *text < 128) {
stbtt_aligned_quad q;
stbtt_GetBakedQuad(font->cdata, 512, 512, *text - 32, &x, &y, &q, 1);
SDL_Rect src_rect = {.x = (int)512 * q.s0 - 1,
.y = (int)512 * (q.t0) - 1,
.w = (int)512 * (q.s1 - q.s0) + 1,
.h = (int)512 * (q.t1 - q.t0) + 1};
SDL_Rect dst_rect = {
.x = q.x0, .y = q.y0, .w = q.x1 - q.x0, .h = q.y1 - q.y0};
// set the font texture to display red.
SDL_SetTextureColorMod(font->texture, 255, 0, 0);
SDL_RenderCopy(renderer, font->texture, &src_rect, &dst_rect);
}
++text;
}