Fix build break
[platform/core/api/mediavision.git] / test / testsuites / common / visualizer / include / mv_util_shader.h
1 /**
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef __MEDIA_VISION_UTIL_SHADER_H__
18 #define __MEDIA_VISION_UTIL_SHADER_H__
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif /* __cplusplus */
23
24 #include <cstdlib>
25 #include <EGL/egl.h>
26 #include <EGL/eglext.h>
27 #include <GLES2/gl2.h>
28 #include <GLES2/gl2ext.h>
29
30 typedef struct shader_obj_t {
31         GLuint program;
32         GLint loc_vtx;
33         GLint loc_nrm;
34         GLint loc_clr;
35         GLint loc_uv;
36         GLint loc_tex;
37         GLint loc_mtx;
38         GLint loc_mtx_nrm;
39 } shader_obj_t;
40
41 typedef struct _mesh_obj_t {
42         float *vtx_array;
43         float *uv_array;
44         unsigned short *idx_array;
45
46         GLuint vbo_vtx;
47         GLuint vbo_uv;
48         GLuint vbo_idx;
49
50         int num_tile_w;
51         int num_tile_h;
52         int num_idx;
53 } mesh_obj_t;
54
55 GLuint compile_shader_text(GLenum shaderType, const char *text);
56 GLuint link_shaders(GLuint vertShader, GLuint fragShader);
57 int generate_shader(shader_obj_t *sobj, char *str_vs, char *str_fs);
58
59 #ifdef __cplusplus
60 }
61 #endif /* __cplusplus */
62
63 #endif /* __MEDIA_VISION_UTIL_SHADER_H__*/