OpenGL ES SDK for Android ARM Developer Center
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
common.hpp
Go to the documentation of this file.
1 /* Copyright (c) 2015-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #ifndef COMMON_HPP__
22 #define COMMON_HPP__
23 
24 #include <stddef.h>
25 #include <stdio.h>
26 #include <string>
27 #include <string.h>
28 
29 #include "EGLRuntime.h"
30 #include "Platform.h"
31 using namespace MaliSDK;
32 
33 #define GL_GLEXT_PROTOTYPES
34 #include <GLES3/gl31.h>
35 #include <GLES2/gl2ext.h>
36 
37 GLuint common_compile_shader(const char *vs_source, const char *fs_source);
38 GLuint common_compile_shader(const char *vs_source,
39  const char *tc_source, const char *te_source, const char *geom_source,
40  const char *fs_source);
41 
42 GLuint common_compile_compute_shader(const char *cs_source);
43 
44 GLuint common_compile_shader_from_file(const char *vs_source, const char *fs_source);
45 GLuint common_compile_shader_from_file(const char *vs_source,
46  const char *tc_source, const char *te_source, const char *geom_source,
47  const char *fs_source);
48 GLuint common_compile_compute_shader_from_file(const char *cs_source);
49 
50 void common_set_basedir(const char *basedir);
51 FILE *common_fopen(const char *path, const char *mode);
52 
53 std::string common_get_path(const char *basepath);
54 
55 bool common_read_file_string(const char *path, char **out_buf);
56 
57 inline bool common_has_extension(const char *ext)
58 {
59  GL_CHECK(bool ret = strstr((const char*)glGetString(GL_EXTENSIONS), ext) != nullptr);
60  if (ret)
61  {
62  LOGI("Extension %s is supported.\n", ext);
63  }
64  else
65  {
66  LOGI("Extension %s is unsupported.\n", ext);
67  }
68  return ret;
69 }
70 
71 #endif
#define LOGI(...)
Definition: AstcTextures.h:29
std::string common_get_path(const char *basepath)
Definition: common.cpp:337
bool common_read_file_string(const char *path, char **out_buf)
Definition: common.cpp:204
GLuint common_compile_shader(const char *vs_source, const char *fs_source)
Definition: common.cpp:74
GLenum mode
Definition: gl2ext.h:302
bool common_has_extension(const char *ext)
Definition: common.hpp:57
#define GL_CHECK(x)
Definition: AstcTextures.h:59
GLuint common_compile_shader_from_file(const char *vs_source, const char *fs_source)
Definition: common.cpp:241
GLuint common_compile_compute_shader_from_file(const char *cs_source)
Definition: common.cpp:317
FILE * common_fopen(const char *path, const char *mode)
Definition: common.cpp:349
typedef GLuint(GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC)(GLuint count
GLuint common_compile_compute_shader(const char *cs_source)
Definition: common.cpp:180
void common_set_basedir(const char *basedir)
Definition: common.cpp:332