src/video/winrt/SDL_winrtvideo_cpp.h
author Sam Lantinga <slouken@libsdl.org>
Thu, 13 Mar 2014 00:40:08 -0700
changeset 8615 097646deaef2
parent 8582 c3e9a2b93517
child 8663 308e74493106
permissions -rw-r--r--
Fixed the copyright date on files contributed by David Ludwig
     1 /*
     2   Simple DirectMedia Layer
     3   Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
     4 
     5   This software is provided 'as-is', without any express or implied
     6   warranty.  In no event will the authors be held liable for any damages
     7   arising from the use of this software.
     8 
     9   Permission is granted to anyone to use this software for any purpose,
    10   including commercial applications, and to alter it and redistribute it
    11   freely, subject to the following restrictions:
    12 
    13   1. The origin of this software must not be misrepresented; you must not
    14      claim that you wrote the original software. If you use this software
    15      in a product, an acknowledgment in the product documentation would be
    16      appreciated but is not required.
    17   2. Altered source versions must be plainly marked as such, and must not be
    18      misrepresented as being the original software.
    19   3. This notice may not be removed or altered from any source distribution.
    20 */
    21 
    22 /* Windows includes: */
    23 #include <windows.h>
    24 #ifdef __cplusplus_winrt
    25 #include <agile.h>
    26 #endif
    27 
    28 /* SDL includes: */
    29 #include "SDL_video.h"
    30 #include "SDL_events.h"
    31 
    32 extern "C" {
    33 #include "../SDL_sysvideo.h"
    34 #include "../SDL_egl_c.h"
    35 }
    36 
    37 
    38 /* The global, WinRT, SDL Window.
    39    For now, SDL/WinRT only supports one window (due to platform limitations of
    40    WinRT.
    41 */
    42 extern SDL_Window * WINRT_GlobalSDLWindow;
    43 
    44 /* The global, WinRT, video device. */
    45 extern SDL_VideoDevice * WINRT_GlobalSDLVideoDevice;
    46 
    47 /* Creates a display mode for Plain Direct3D (non-XAML) apps, using the lone, native window's settings.
    48 
    49    Pass in an allocated SDL_DisplayMode field to store the data in.
    50 
    51    This function will return 0 on success, -1 on failure.
    52 
    53    If this function succeeds, be sure to call SDL_free on the
    54    SDL_DisplayMode's driverdata field.
    55 */
    56 extern int WINRT_CalcDisplayModeUsingNativeWindow(SDL_DisplayMode * mode);
    57 
    58 /* Duplicates a display mode, copying over driverdata as necessary */
    59 extern int WINRT_DuplicateDisplayMode(SDL_DisplayMode * dest, const SDL_DisplayMode * src);
    60 
    61 /* Display mode internals */
    62 typedef struct
    63 {
    64     Windows::Graphics::Display::DisplayOrientations currentOrientation;
    65 } SDL_DisplayModeData;
    66 
    67 #ifdef __cplusplus_winrt
    68 
    69 /* Internal window data */
    70 struct SDL_WindowData
    71 {
    72     SDL_Window *sdlWindow;
    73     Platform::Agile<Windows::UI::Core::CoreWindow> coreWindow;
    74 #ifdef SDL_VIDEO_OPENGL_EGL
    75     EGLSurface egl_surface;
    76 #endif
    77 };
    78 
    79 #endif // ifdef __cplusplus_winrt