diff options
Diffstat (limited to 'src/render/nacl')
-rw-r--r-- | src/render/nacl/naclfunctions.h | 35 | ||||
-rw-r--r-- | src/render/nacl/naclgles.cpp | 53 | ||||
-rw-r--r-- | src/render/nacl/naclgles.h | 32 |
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 |