/* * Josh Holtrop * 2008-12-11 * barebones SDL program */ #include #include #include using namespace std; #define PROGNAME "Josh's CS677 Final : MPI Fractal Generator" bool createWindow(int width, int height, SDL_Surface ** screen, Uint32 ** pixels); void getSizes(int * rank, int * size); int main(int argc, char * argv[]) { int width = 800; int height = 600; int my_rank; int world_size; SDL_Surface * screen; Uint32 * pixels; MPI_Init(&argc, &argv); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { *pixels++ = (((x * 255 / width) & 0xFF) << 8) + ((y * 255 / height) & 0xFF); } } SDL_UpdateRect(screen, 0, 0, 0, 0); bool going = true; SDL_Event event; while (going && SDL_WaitEvent(&event) != 0) { switch (event.type) { case SDL_QUIT: going = false; break; case SDL_KEYDOWN: if (event.key.keysym.sym == SDLK_q) going = false; break; } } MPI_Finalize(); return 0; } bool createWindow(int width, int height, SDL_Surface ** screen, Uint32 ** pixels) { if (SDL_Init(SDL_INIT_VIDEO)) { cerr << "Failed to initialize SDL!" << endl; return false; } atexit(SDL_Quit); if (!(*screen = SDL_SetVideoMode(width, height, 32, 0))) { cerr << "Failed to set video mode!" << endl; return false; } SDL_WM_SetCaption(PROGNAME, PROGNAME); *pixels = (Uint32 *) screen->pixels; return true; } void getSizes(int * rank, int * size) { MPI_Comm_rank(rank); MPI_Comm_size(size, MPI_COMM_WORLD); }