blob: 878c0523f138948cca30f6f2b44343a39963b258 [file]
/*
* Copyright 2025 The Emscripten Authors. All rights reserved.
* Emscripten is available under two separate licenses, the MIT license and the
* University of Illinois/NCSA Open Source License. Both these licenses can be
* found in the LICENSE file.
*/
#include <stdio.h>
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
#include <SDL3_ttf/SDL_ttf.h>
SDL_Window *window;
SDL_Renderer *renderer;
TTF_Font *font;
#define WIDTH 640
#define HEIGHT 480
void render() {
SDL_Color colorA = { 0xff, 0x99, 0x00, 0xff };
SDL_Color colorB = { 0x11, 0xff, 0xff, 0xff };
SDL_FRect upperRect = {0, 0, WIDTH, HEIGHT / 2};
SDL_FRect lowerRect = {0, HEIGHT / 2, WIDTH, HEIGHT / 2};
SDL_Surface *helloSurface = TTF_RenderText_Shaded(font, "hello", 0, colorA, colorB);
SDL_Surface *worldSurface = TTF_RenderText_Shaded(font, "world", 0, colorB, colorA);
SDL_Texture *helloTexture = SDL_CreateTextureFromSurface(renderer, helloSurface);
SDL_Texture *worldTexture = SDL_CreateTextureFromSurface(renderer, worldSurface);
SDL_SetRenderDrawColor(renderer, 0xcc, 0xcc, 0xcc, 0xff);
SDL_RenderClear(renderer);
SDL_RenderTexture(renderer, helloTexture, NULL, &upperRect);
SDL_RenderTexture(renderer, worldTexture, NULL, &lowerRect);
SDL_RenderPresent(renderer);
SDL_DestroySurface(helloSurface);
SDL_DestroySurface(worldSurface);
SDL_DestroyTexture(helloTexture);
SDL_DestroyTexture(worldTexture);
}
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
if (!SDL_CreateWindowAndRenderer("SDL3 TTF", WIDTH, HEIGHT, 0, &window, &renderer)) {
printf("SDL_CreateWindowAndRenderer: %s\n", SDL_GetError());
return 1;
}
font = TTF_OpenFont("LiberationSansBold.ttf", 40);
if (!font) {
printf("TTF_OpenFont: %s\n", SDL_GetError());
return 1;
}
render();
return 0;
}