diff options
Diffstat (limited to 'src/render/openglx')
-rw-r--r-- | src/render/openglx/mglx.cpp | 32 | ||||
-rw-r--r-- | src/render/openglx/mglx.h | 35 | ||||
-rw-r--r-- | src/render/openglx/mglx.hpp | 27 | ||||
-rw-r--r-- | src/render/openglx/mglxinit.cpp | 43 | ||||
-rw-r--r-- | src/render/openglx/mglxinit.h | 33 | ||||
-rw-r--r-- | src/render/openglx/mglxtypes.h | 51 |
6 files changed, 221 insertions, 0 deletions
diff --git a/src/render/openglx/mglx.cpp b/src/render/openglx/mglx.cpp new file mode 100644 index 000000000..773192423 --- /dev/null +++ b/src/render/openglx/mglx.cpp @@ -0,0 +1,32 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "render/openglx/mglx.h" + +#if defined(USE_OPENGL) && defined(USE_X11) + +#include "debug.h" + +#define defName(name) name##_t m##name = nullptr + +// include function defines +#include "render/openglx/mglx.hpp" + +#endif diff --git a/src/render/openglx/mglx.h b/src/render/openglx/mglx.h new file mode 100644 index 000000000..591626bca --- /dev/null +++ b/src/render/openglx/mglx.h @@ -0,0 +1,35 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RENDER_OPENGLX_MGLX_H +#define RENDER_OPENGLX_MGLX_H + +#include "main.h" + +#if defined(USE_OPENGL) && defined(USE_X11) + +#include "render/openglx/mglxtypes.h" + +#define defName(name) extern name##_t m##name +#include "render/openglx/mglx.hpp" +#undef defName + +#endif // defined(USE_OPENGL) && defined(USE_X11) +#endif // RENDER_OPENGLX_MGLX_H diff --git a/src/render/openglx/mglx.hpp b/src/render/openglx/mglx.hpp new file mode 100644 index 000000000..b62dd25f4 --- /dev/null +++ b/src/render/openglx/mglx.hpp @@ -0,0 +1,27 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +defName(glXCreateContext); +defName(glXGetCurrentContext); +defName(glXCreateContextAttribs); +defName(glXChooseFBConfig); +defName(glXDestroyContext); +defName(glXMakeCurrent); +defName(glXSwapBuffers); diff --git a/src/render/openglx/mglxinit.cpp b/src/render/openglx/mglxinit.cpp new file mode 100644 index 000000000..09ab8d4fe --- /dev/null +++ b/src/render/openglx/mglxinit.cpp @@ -0,0 +1,43 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "render/openglx/mglxinit.h" + +#if defined(USE_OPENGL) && defined(USE_X11) + +#include "render/opengl/mglfunctions.h" + +#include "render/openglx/mglx.h" +#include "render/openglx/mglxtypes.h" + +#include "debug.h" + +void Glx::initFunctions() +{ + assignFunction(glXCreateContext); + assignFunction(glXGetCurrentContext); + assignFunctionARB(glXCreateContextAttribs); + assignFunction(glXChooseFBConfig); + assignFunction(glXDestroyContext); + assignFunction(glXMakeCurrent); + assignFunction(glXSwapBuffers); +} + +#endif diff --git a/src/render/openglx/mglxinit.h b/src/render/openglx/mglxinit.h new file mode 100644 index 000000000..512efdf7e --- /dev/null +++ b/src/render/openglx/mglxinit.h @@ -0,0 +1,33 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RENDER_OPENGLX_MGLXINIT_H +#define RENDER_OPENGLX_MGLXINIT_H + +#include "main.h" +#if defined(USE_OPENGL) && defined(USE_X11) + +namespace Glx +{ + void initFunctions(); +} // namespace Glx + +#endif // defined(USE_OPENGL) && defined(USE_X11) +#endif // RENDER_OPENGLX_MGLXINIT_H diff --git a/src/render/openglx/mglxtypes.h b/src/render/openglx/mglxtypes.h new file mode 100644 index 000000000..79b4afd7a --- /dev/null +++ b/src/render/openglx/mglxtypes.h @@ -0,0 +1,51 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RENDER_OPENGLX_MGLXTYPES_H +#define RENDER_OPENGLX_MGLXTYPES_H + +#include "main.h" + +#if defined(USE_OPENGL) && defined(USE_X11) + +#include <X11/Xlib.h> +#include <X11/Xutil.h> +#include <GL/glx.h> + +#if defined(__GXX_EXPERIMENTAL_CXX0X__) +#include <cstdint> +#else +#include <stdint.h> +#endif + +typedef void *(*glXCreateContext_t) (Display *dpy, XVisualInfo *vis, + void *shareList, bool direct); +typedef void *(*glXGetCurrentContext_t) (void); +typedef void *(*glXCreateContextAttribs_t) (Display *dpy, GLXFBConfig config, + void *share_context, bool direct, const int *attrib_list); +typedef GLXFBConfig *(*glXChooseFBConfig_t) (Display *dpy, int screen, + const int *attrib_list, int *nelements); +typedef void (*glXDestroyContext_t) (Display *dpy, void *ctx); +typedef bool (*glXMakeCurrent_t) (Display *dpy, + GLXDrawable drawable, void *ctx); +typedef void (*glXSwapBuffers_t) (Display *dpy, GLXDrawable drawable); + +#endif // USE_OPENGL +#endif // RENDER_OPENGLX_MGLXTYPES_H |