forked from Ponup/php-sdl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path010-draw-lines.php
48 lines (36 loc) · 1.11 KB
/
010-draw-lines.php
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
declare(strict_types=1);
require 'bootstrap.php';
const WINDOW_WIDTH = 800;
const WINDOW_HEIGHT = 800;
SDL_Init(SDL_INIT_VIDEO);
$window = SDL_CreateWindow("Drawing lines on screen", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN);
$renderer = SDL_CreateRenderer($window, 0, SDL_RENDERER_ACCELERATED);
// Clear screen
SDL_SetRenderDrawColor($renderer, 100, 0, 0, 0);
SDL_RenderClear($renderer);
// Draw lines
SDL_SetRenderDrawColor($renderer, 255, 0, 0, 255);
$offset = WINDOW_WIDTH;
$x1 = $y1 = 0;
for ($iteration = 0; $offset > 0; ++$iteration) {
$side = $iteration % 4;
$sign = $side < 2 ? 1 : -1;
$x2 = $side % 2 ? $x1 + $sign * $offset : $x1;
$y2 = $side % 2 ? $y1 : $y1 + $sign * $offset;
SDL_RenderDrawLine($renderer, $x1, $y1, $x2, $y2);
$x1 = $x2;
$y1 = $y2;
$offset -= 10;
}
SDL_RenderPresent($renderer);
// Wait for quit event
$event = new SDL_Event;
while (true) {
if (SDL_PollEvent($event) && $event->type == SDL_QUIT) {
break;
}
}
SDL_DestroyRenderer($renderer);
SDL_DestroyWindow($window);
SDL_Quit();