int main(){ triangle* numbers1 = load_triangle("../resource/problem18ex.grid"); assert(largest_sum(numbers1) == 23); free_triangle(numbers1); triangle* numbers2 = load_triangle("../resource/problem18.grid"); printf("%u\n", largest_sum(numbers2)); free_triangle(numbers2); return 0; }
void init_graphics(void) { // create a vertex buffer interface called v_buffer d3ddev->CreateVertexBuffer(3 * sizeof(CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &v_buffer, NULL); load_triangle(SCREEN_WIDTH, SCREEN_HEIGHT, v_buffer); }
int parse_line(FILE* f) { char buf[64*1024]; if (feof(f)) return 1; fgets(buf, 64*1024, f); if (strlen(buf)<2) return 1; int res; switch (buf[0]) { case 'c': res = load_camera(buf+2); break; case 'l': res = load_light(buf+2); break; case 't': res = load_triangle(buf+2); break; default: res = 0; } return res; }
int main(int argc, char **argv) { bool fullscreen = false; if (SDL_Init(0) != 0){ ERR("SDL_Init\n"); return 1; } SDL_Window* Window = SDL_CreateWindow("SDL Nine", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE ); if (!Window) { ERR("SDL_CreateWindow\n"); return 1; } d3d = SDL_Direct3DCreate9Ex(Window); if (!d3d) { ERR("X11_Direct3DCreate9\n"); return 1; } { HWND FakeWnd= (HWND)Window; D3DDISPLAYMODEEX mode; D3DPRESENT_PARAMETERS d3dpp; fillin_present_parameters(Window, SCREEN_WIDTH, SCREEN_HEIGHT, fullscreen, d3dpp, mode); // create a device class using this information and the info from the d3dpp stuct HRESULT hr = d3d->CreateDeviceEx(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, FakeWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &mode, &d3ddev); if (FAILED(hr)) { ERR("X11_Direct3DCreate9\n"); return 1; } } init_graphics(); // call the function to initialize the triangle Uint32 MainWindowID = SDL_GetWindowID(Window); bool quit = false; SDL_Event e; //While application is running while (!quit) { //Handle events on queue while (SDL_PollEvent(&e) != 0) { //User requests quit if (e.type == SDL_QUIT) { quit = true; } else if (e.type == SDL_WINDOWEVENT && e.window.windowID == MainWindowID) { switch (e.window.event) { case SDL_WINDOWEVENT_SIZE_CHANGED: { int width = e.window.data1; int height = e.window.data2; bool ok = set_window_size(Window, width, height, fullscreen); if (ok) load_triangle(width, height, v_buffer); } break; } } else if (e.type == SDL_KEYDOWN && e.window.windowID == MainWindowID && e.key.keysym.sym == SDLK_F11 && e.key.state == SDL_PRESSED) { fullscreen = !fullscreen; bool ok = set_window_size(Window, SCREEN_WIDTH, SCREEN_HEIGHT, fullscreen); if (ok) load_triangle(SCREEN_WIDTH, SCREEN_HEIGHT, v_buffer); } } //Render quad render_frame(); } // clean up DirectX { v_buffer->Release(); // close and release the vertex buffer d3ddev->Release(); // close and release the 3D device d3d->Release(); // close and release Direct3D } SDL_Quit(); return 0; }