1 | /* |
2 | Copyright (C) 1997-2021 Sam Lantinga <slouken@libsdl.org> |
3 | |
4 | This software is provided 'as-is', without any express or implied |
5 | warranty. In no event will the authors be held liable for any damages |
6 | arising from the use of this software. |
7 | |
8 | Permission is granted to anyone to use this software for any purpose, |
9 | including commercial applications, and to alter it and redistribute it |
10 | freely. |
11 | */ |
12 | |
13 | #include "testnative.h" |
14 | |
15 | #ifdef TEST_NATIVE_X11 |
16 | |
17 | static void *CreateWindowX11(int w, int h); |
18 | static void DestroyWindowX11(void *window); |
19 | |
20 | NativeWindowFactory X11WindowFactory = { |
21 | "x11" , |
22 | CreateWindowX11, |
23 | DestroyWindowX11 |
24 | }; |
25 | |
26 | static Display *dpy; |
27 | |
28 | static void * |
29 | CreateWindowX11(int w, int h) |
30 | { |
31 | Window window = 0; |
32 | |
33 | dpy = XOpenDisplay(NULL); |
34 | if (dpy) { |
35 | window = |
36 | XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, w, h, 0, 0, |
37 | 0); |
38 | XMapRaised(dpy, window); |
39 | XSync(dpy, False); |
40 | } |
41 | return (void *) window; |
42 | } |
43 | |
44 | static void |
45 | DestroyWindowX11(void *window) |
46 | { |
47 | if (dpy) { |
48 | XDestroyWindow(dpy, (Window) window); |
49 | XCloseDisplay(dpy); |
50 | } |
51 | } |
52 | |
53 | #endif |
54 | |