mirror of
https://github.com/encounter/SDL.git
synced 2025-07-11 23:55:57 +00:00
A port of the ANGLE library (OpenGL ES 2.0 for Direct3D) to WinRT, via https://github.com/stammen/angleproject, is used as a base. To enable, clone 'angleproject' into the directory one above where SDL/WinRT is, open the file SDL/include/SDL_config_winrt.h, and uncomment the #defines that begin with 'SDL_VIDEO_OPENGL'. From there, apps can create an OpenGL capable SDL_Window via the flag, SDL_WINDOW_OPENGL, and an OpenGL ES 2 context via SDL_GL_CreateContext. The Direct3D 11.1 renderer cannot be used alongside SDL_WINDOW_OPENGL. Only Windows 8/8.1 is supported for now. Shaders may need to be precompiled, in some (all?) cases.
56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
/*
|
|
Simple DirectMedia Layer
|
|
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any damages
|
|
arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
including commercial applications, and to alter it and redistribute it
|
|
freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you must not
|
|
claim that you wrote the original software. If you use this software
|
|
in a product, an acknowledgment in the product documentation would be
|
|
appreciated but is not required.
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
misrepresented as being the original software.
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
*/
|
|
#include "SDL_config.h"
|
|
|
|
// TODO: WinRT, make this file compile via C code
|
|
|
|
#if SDL_VIDEO_DRIVER_WINRT && SDL_VIDEO_OPENGL_EGL
|
|
|
|
/* EGL implementation of SDL OpenGL support */
|
|
|
|
// TODO, WinRT: Try to include these here, or via something else (rather than redefining key parts of them)
|
|
//#include <GLES2/gl2.h>
|
|
//#include <EGL/egl.h>
|
|
//#include <EGL/eglext.h>
|
|
|
|
#include "SDL_winrtvideo_cpp.h"
|
|
extern "C" {
|
|
#include "SDL_winrtopengles.h"
|
|
}
|
|
|
|
#define EGL_D3D11_ONLY_DISPLAY_ANGLE ((NativeDisplayType) -3)
|
|
|
|
extern "C" int
|
|
WINRT_GLES_LoadLibrary(_THIS, const char *path) {
|
|
return SDL_EGL_LoadLibrary(_this, path, EGL_D3D11_ONLY_DISPLAY_ANGLE);
|
|
}
|
|
|
|
extern "C" {
|
|
SDL_EGL_CreateContext_impl(WINRT)
|
|
SDL_EGL_SwapWindow_impl(WINRT)
|
|
SDL_EGL_MakeCurrent_impl(WINRT)
|
|
}
|
|
|
|
#endif /* SDL_VIDEO_DRIVER_WINRT && SDL_VIDEO_OPENGL_EGL */
|
|
|
|
/* vi: set ts=4 sw=4 expandtab: */
|
|
|