1 #ifndef __SHADER_CONTROLLER_H__
2 #define __SHADER_CONTROLLER_H__
7 #include <glm/gtc/matrix_transform.hpp>
8 #include <glm/gtc/type_ptr.hpp>
12 #define VIS2_MAX_NR_SHADER_TYPES 20
14 #define VIS2_SHADER_TYPE_BASIC 0
15 #define VIS2_SHADER_TYPE_BASIC_TEXTURED 1
16 #define VIS2_SHADER_TYPE_SOLID_COLOR 2
17 #define VIS2_SHADER_TYPE_PHONG_TEXTURED 3
19 #define VIS2_SHADER_TYPE_EDGE_DETECT_H 4
20 #define VIS2_SHADER_TYPE_EDGE_DETECT_V 5
22 #define VIS2_SHADER_TYPE_BLUR_H 6
23 #define VIS2_SHADER_TYPE_BLUR_V 7
25 #define VIS2_SHADER_TYPE_MASK 8
27 #define VIS2_SHADER_TYPE_DEPTH_PEEL 9
28 #define VIS2_SHADER_TYPE_DEPTH_PEEL_BLEND 10
29 #define VIS2_SHADER_TYPE_COMPLEX_BLEND 11
32 #define VIS2_SHADER_INVARS_SETUP_SUCCESS 0
33 #define VIS2_SHADER_INVARS_SETUP_INCOMPLETE 1
34 #define VIS2_SHADER_INVARS_SETUP_FAIL -1
36 #define VIS2_SHADER_UNIFORMS_SETUP_SUCCESS 0
37 #define VIS2_SHADER_UNIFORMS_SETUP_INCOMPLETE 1
38 #define VIS2_SHADER_UNIFORMS_SETUP_FAIL -1
40 #define VIS2_NR_TEXTURE_SLOTS 5
41 #define VIS2_TEXTURE_DIFFUSE_SLOT 0
42 #define VIS2_TEXTURE_1 1
43 #define VIS2_TEXTURE_2 2
44 #define VIS2_TEXTURE_3 3
45 #define VIS2_TEXTURE_4 4
47 #define VIS2_LIGHT_0 0
48 #define VIS2_LIGHT_1 1
82 GLuint _normal_buffer_handle,
83 GLuint _uv_buffer_handle,
84 GLuint _index_buffer_handle);
102 void setLightSource(
const glm::vec3 _light_pos,
const glm::vec3 _light_col,
const unsigned int _slot);
109 void setViewData(
const glm::vec3 _viewer_pos,
const glm::vec3 _viewer_lookAt);
125 const int _gauss_kernel_size,
126 const int _blur_dist);
136 const glm::vec3 _exculde_color,
137 const float _masking_tolerance,
138 const int _use_prev_pass);
169 glm::mat4 & _modelMatrix,
170 const glm::vec3 & _obj_color,
171 const glm::vec3 & _contour_color);