cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

testnativex11.c (1158B)


      1/*
      2  Copyright (C) 1997-2014 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
     17static void *CreateWindowX11(int w, int h);
     18static void DestroyWindowX11(void *window);
     19
     20NativeWindowFactory X11WindowFactory = {
     21    "x11",
     22    CreateWindowX11,
     23    DestroyWindowX11
     24};
     25
     26static Display *dpy;
     27
     28static void *
     29CreateWindowX11(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
     44static void
     45DestroyWindowX11(void *window)
     46{
     47    if (dpy) {
     48        XDestroyWindow(dpy, (Window) window);
     49        XCloseDisplay(dpy);
     50    }
     51}
     52
     53#endif