diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-24 17:49:32 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-24 17:53:45 -0700 |
commit | 323b01cf131118ddcd0aa641c5762526f8654edc (patch) | |
tree | 204aac07960d3e0993530f7343afb945ba4ab203 /tests/sdl_canvas_alpha.c | |
parent | 4c845acc4c6e370825522076d1528df4daece274 (diff) |
sdl alpha test
Diffstat (limited to 'tests/sdl_canvas_alpha.c')
-rw-r--r-- | tests/sdl_canvas_alpha.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/sdl_canvas_alpha.c b/tests/sdl_canvas_alpha.c new file mode 100644 index 00000000..1a41d115 --- /dev/null +++ b/tests/sdl_canvas_alpha.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <stdlib.h> +#include <SDL/SDL.h> +#include <SDL/SDL_ttf.h> +#include <emscripten.h> + + +int main(int argc, char **argv) { + SDL_Init(SDL_INIT_VIDEO); + SDL_Surface *screen = SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE); + + printf("Init: %d\n", TTF_Init()); + + TTF_Font *font = TTF_OpenFont("sans-serif", 40); + printf("Font: %p\n", font); + + SDL_Color color = { 0xff, 0x99, 0x00, 0xff }; + SDL_Surface *text = TTF_RenderText_Solid(font, "hello orange world", color); + + // render + for (int i = 0; i < 255; i++) { + SDL_Rect dest = { i, i, 0, 0 }; + SDL_SetAlpha(text, 0, (((float)i)/255)*(((float)i)/255)*255); + SDL_BlitSurface (text, NULL, screen, &dest); + } + + SDL_Flip(screen); + + SDL_LockSurface(screen); + + int width, height, isFullscreen; + emscripten_get_canvas_size(&width, &height, &isFullscreen); + + if (width != 600 && height != 450) + { + printf("error: wrong width/height\n"); + abort(); + } + + SDL_Quit(); + + printf("done.\n"); + + return 0; +} + |