summaryrefslogtreecommitdiff
path: root/src/render/nacl
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/nacl')
-rw-r--r--src/render/nacl/naclfunctions.h35
-rw-r--r--src/render/nacl/naclgles.cpp53
-rw-r--r--src/render/nacl/naclgles.h32
3 files changed, 120 insertions, 0 deletions
diff --git a/src/render/nacl/naclfunctions.h b/src/render/nacl/naclfunctions.h
new file mode 100644
index 000000000..212970776
--- /dev/null
+++ b/src/render/nacl/naclfunctions.h
@@ -0,0 +1,35 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 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_NACL_NACLFUNCTIONS_H
+#define RENDER_NACL_NACLFUNCTIONS_H
+
+#if defined(__native_client__) && defined(USE_OPENGL)
+
+#include <ppapi/c/ppb_graphics_3d.h>
+
+extern const struct PPB_Graphics3D_1_0 *graphics3dInterface;
+extern PP_Resource gles2Context;
+
+#define naclResizeBuffers(...) \
+ graphics3dInterface->ResizeBuffers(gles2Context, __VA_ARGS__)
+
+#endif // defined(__native_client__) && defined(USE_OPENGL)
+#endif // RENDER_NACL_NACLFUNCTIONS_H
diff --git a/src/render/nacl/naclgles.cpp b/src/render/nacl/naclgles.cpp
new file mode 100644
index 000000000..44020386d
--- /dev/null
+++ b/src/render/nacl/naclgles.cpp
@@ -0,0 +1,53 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 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/>.
+ */
+
+#if defined(__native_client__) && defined(USE_OPENGL)
+
+#include "render/nacl/naclgles.h"
+
+#include "logger.h"
+
+#include "render/opengl/mglfunctions.h"
+
+#include <ppapi_simple/ps.h>
+
+#include <ppapi/c/ppb_graphics_3d.h>
+#include <ppapi/c/ppb_opengles2.h>
+
+#include <ppapi/gles2/gl2ext_ppapi.h>
+
+#include "debug.h"
+
+const struct PPB_OpenGLES2* gles2Interface = nullptr;
+PP_Resource gles2Context = nullptr;
+const struct PPB_Graphics3D_1_0 *graphics3dInterface = nullptr;
+
+void NaclGles::initGles()
+{
+ gles2Interface = static_cast<const PPB_OpenGLES2*>(
+ PSGetInterface(PPB_OPENGLES2_INTERFACE));
+ graphics3dInterface = static_cast<const PPB_Graphics3D_1_0*>(
+ PSGetInterface(PPB_GRAPHICS_3D_INTERFACE_1_0));
+ gles2Context = glGetCurrentContextPPAPI();
+
+ logger->log("InitGles: %p, %d", gles2Interface, gles2Context);
+}
+
+#endif // defined(__native_client__) && defined(USE_OPENGL)
diff --git a/src/render/nacl/naclgles.h b/src/render/nacl/naclgles.h
new file mode 100644
index 000000000..cba5d1403
--- /dev/null
+++ b/src/render/nacl/naclgles.h
@@ -0,0 +1,32 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2014-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_NACL_NACLGLES_H
+#define RENDER_NACL_NACLGLES_H
+
+#if defined(__native_client__) && defined(USE_OPENGL)
+
+namespace NaclGles
+{
+ void initGles();
+} // namespace NaclGles
+
+#endif // defined(__native_client__) && defined(USE_OPENGL)
+#endif // RENDER_NACL_NACLGLES_H