forked from Ponup/php-sdl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path008-shaped-window.php
41 lines (31 loc) · 992 Bytes
/
008-shaped-window.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
<?php
declare(strict_types=1);
require 'bootstrap.php';
const WINDOW_WIDTH = 640;
const WINDOW_HEIGHT = 640;
SDL_Init(SDL_INIT_VIDEO);
$window = SDL_CreateShapedWindow("Drawing points on screen", 10, 10, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN);
$renderer = SDL_CreateRenderer($window, 0, 0);
$surface = SDL_LoadBMP("p01_shape32alpha.bmp");
if ($surface === null) {
exit('Unable to load image');
}
$texture = SDL_CreateTextureFromSurface($renderer, $surface);
$mode = new SDL_WindowShapeMode(SDL_WindowShapeMode::BinarizeAlpha, 255);
SDL_SetWindowShape($window, $surface, $mode);
// Clear screen
SDL_SetRenderDrawColor($renderer, 100, 0, 0, 0);
SDL_RenderClear($renderer);
SDL_RenderPresent($renderer);
// Wait for quit event
$event = new SDL_Event;
$quit = false;
while (!$quit) {
while (SDL_PollEvent($event)) {
$quit = in_array($event->type, [SDL_QUIT, SDL_MOUSEBUTTONDOWN]);
}
SDL_Delay(20);
}
SDL_DestroyRenderer($renderer);
SDL_DestroyWindow($window);
SDL_Quit();