summaryrefslogtreecommitdiff
path: root/src/render/openglx
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-12-20 16:39:30 +0300
committerAndrei Karas <akaras@inbox.ru>2015-12-20 16:39:30 +0300
commitd34ed15b68108f92ce368c7878defc72ec046ee0 (patch)
tree89438b93b4e6bbb8e721601db55dd9267e19f741 /src/render/openglx
parentdcd7364559e20e7d89ffeee0740b60a65c8d5362 (diff)
downloadmv-d34ed15b68108f92ce368c7878defc72ec046ee0.tar.gz
mv-d34ed15b68108f92ce368c7878defc72ec046ee0.tar.bz2
mv-d34ed15b68108f92ce368c7878defc72ec046ee0.tar.xz
mv-d34ed15b68108f92ce368c7878defc72ec046ee0.zip
Move OpenGLX related files into openglx directory.
Diffstat (limited to 'src/render/openglx')
-rw-r--r--src/render/openglx/mglx.cpp32
-rw-r--r--src/render/openglx/mglx.h35
-rw-r--r--src/render/openglx/mglx.hpp27
-rw-r--r--src/render/openglx/mglxinit.cpp43
-rw-r--r--src/render/openglx/mglxinit.h33
-rw-r--r--src/render/openglx/mglxtypes.h51
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