src/video/wayland/SDL_waylandwindow.h
author Gabriel Jacobo <gabomdq@gmail.com>
Sat, 14 Dec 2013 20:18:43 -0300
changeset 8062 4fc5f66d63cc
child 8082 5b83ad3f01ac
permissions -rw-r--r--
Wayland support

Based on the original port to Wayland by: Joel Teichroeb, Benjamin Franzke, Scott Moreau, et al.

Additional changes in this commit, done by me:

* Wayland uses the common EGL framework
* EGL can now create a desktop OpenGL context
* testgl2 loads GL functions dynamically, no need to link to libGL anymore
* Assorted fixes to the Wayland backend

Tested on the Weston Compositor (v1.0.5) that ships with Ubuntu 13.10,
running Weston under X. Tests ran: testrendercopyex (all backends), testgl2, testgles2,testintersections
gabomdq@8062
     1
/*
gabomdq@8062
     2
  Simple DirectMedia Layer
gabomdq@8062
     3
  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
gabomdq@8062
     4
gabomdq@8062
     5
  This software is provided 'as-is', without any express or implied
gabomdq@8062
     6
  warranty.  In no event will the authors be held liable for any damages
gabomdq@8062
     7
  arising from the use of this software.
gabomdq@8062
     8
gabomdq@8062
     9
  Permission is granted to anyone to use this software for any purpose,
gabomdq@8062
    10
  including commercial applications, and to alter it and redistribute it
gabomdq@8062
    11
  freely, subject to the following restrictions:
gabomdq@8062
    12
gabomdq@8062
    13
  1. The origin of this software must not be misrepresented; you must not
gabomdq@8062
    14
     claim that you wrote the original software. If you use this software
gabomdq@8062
    15
     in a product, an acknowledgment in the product documentation would be
gabomdq@8062
    16
     appreciated but is not required.
gabomdq@8062
    17
  2. Altered source versions must be plainly marked as such, and must not be
gabomdq@8062
    18
     misrepresented as being the original software.
gabomdq@8062
    19
  3. This notice may not be removed or altered from any source distribution.
gabomdq@8062
    20
*/
gabomdq@8062
    21
gabomdq@8062
    22
#include "SDL_config.h"
gabomdq@8062
    23
gabomdq@8062
    24
#ifndef _SDL_waylandwindow_h
gabomdq@8062
    25
#define _SDL_waylandwindow_h
gabomdq@8062
    26
gabomdq@8062
    27
#include "../SDL_sysvideo.h"
gabomdq@8062
    28
#include "SDL_syswm.h"
gabomdq@8062
    29
gabomdq@8062
    30
#include "SDL_waylandvideo.h"
gabomdq@8062
    31
gabomdq@8062
    32
struct SDL_WaylandInput;
gabomdq@8062
    33
gabomdq@8062
    34
typedef struct {
gabomdq@8062
    35
    SDL_Window *sdlwindow;
gabomdq@8062
    36
    SDL_VideoData *waylandData;
gabomdq@8062
    37
    struct wl_surface *surface;
gabomdq@8062
    38
    struct wl_shell_surface *shell_surface;
gabomdq@8062
    39
    struct wl_egl_window *egl_window;
gabomdq@8062
    40
    struct SDL_WaylandInput *keyboard_device;
gabomdq@8062
    41
gabomdq@8062
    42
    EGLSurface egl_surface;
gabomdq@8062
    43
} SDL_WindowData;
gabomdq@8062
    44
gabomdq@8062
    45
extern void Wayland_ShowWindow(_THIS, SDL_Window *window);
gabomdq@8062
    46
extern void Wayland_SetWindowFullscreen(_THIS, SDL_Window * window,
gabomdq@8062
    47
                                        SDL_VideoDisplay * _display,
gabomdq@8062
    48
                                        SDL_bool fullscreen);
gabomdq@8062
    49
extern int Wayland_CreateWindow(_THIS, SDL_Window *window);
gabomdq@8062
    50
extern void Wayland_SetWindowSize(_THIS, SDL_Window * window);
gabomdq@8062
    51
extern void Wayland_DestroyWindow(_THIS, SDL_Window *window);
gabomdq@8062
    52
gabomdq@8062
    53
extern SDL_bool
gabomdq@8062
    54
Wayland_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info);
gabomdq@8062
    55
gabomdq@8062
    56
#endif /* _SDL_waylandwindow_h */
gabomdq@8062
    57
gabomdq@8062
    58
/* vi: set ts=4 sw=4 expandtab: */