aboutsummaryrefslogtreecommitdiff
path: root/tests/sdl_canvas_proxy.c
blob: 27ef3bb485319f999dffa9df91485527dc4c9fa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <assert.h>
#include <emscripten.h>

int main(int argc, char **argv) {
  FILE *f = fopen("data.txt", "rb");
  assert(f);
  assert(fgetc(f) == 'd');
  assert(fgetc(f) == 'a');
  assert(fgetc(f) == 't');
  assert(fgetc(f) == 'u');
  assert(fgetc(f) == 'm');
  fclose(f);

  SDL_Init(SDL_INIT_VIDEO);
  SDL_Surface *screen = SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE);

  SDL_LockSurface(screen);
  unsigned int *pixels = (unsigned int *)screen->pixels;
  for (int x = 0; x < screen->w; x++) {
    for (int y = 0; y < screen->h; y++) {
      pixels[x + y*screen->h] = x < 300 ? (y < 200 ? 0x3377AA88 : 0xAA3377CC) : (y < 200 ? 0x0066AA77 : 0xAA006699);
    }
  }
  SDL_UnlockSurface(screen);

  SDL_Quit();

  EM_ASM(window.close());
  return 0;
}