Remove remaining #version from compatibility glsl and use compatibility shaders in basic_viewer

This commit is contained in:
Maxime Gimeno 2019-03-15 13:36:36 +01:00
parent 713c672326
commit f39fce13e3
12 changed files with 115 additions and 14 deletions

View File

@ -141,6 +141,89 @@ const char fragment_source_p_l[] =
"} \n"
"\n"
};
//------------------------------------------------------------------------------
// compatibility shaders
const char vertex_source_color_comp[] =
{
"attribute highp vec4 vertex;\n"
"attribute highp vec3 normal;\n"
"attribute highp vec3 color;\n"
"uniform highp mat4 mvp_matrix;\n"
"uniform highp mat4 mv_matrix; \n"
"varying highp vec4 fP; \n"
"varying highp vec3 fN; \n"
"varying highp vec4 fColor; \n"
"uniform highp float point_size; \n"
"void main(void)\n"
"{\n"
" fP = mv_matrix * vertex; \n"
" fN = mat3(mv_matrix)* normal; \n"
" fColor = vec4(color, 1.0); \n"
" gl_PointSize = point_size;\n"
" gl_Position = mvp_matrix * vertex;\n"
"}"
};
const char fragment_source_color_comp[] =
{
"varying highp vec4 fP; \n"
"varying highp vec3 fN; \n"
"varying highp vec4 fColor; \n"
"uniform vec4 light_pos; \n"
"uniform vec4 light_diff; \n"
"uniform vec4 light_spec; \n"
"uniform vec4 light_amb; \n"
"uniform float spec_power ; \n"
"void main(void) { \n"
" vec3 L = light_pos.xyz - fP.xyz; \n"
" vec3 V = -fP.xyz; \n"
" vec3 N = normalize(fN); \n"
" L = normalize(L); \n"
" V = normalize(V); \n"
" vec3 R = reflect(-L, N); \n"
" vec4 diffuse = max(dot(N,L), 0.0) * light_diff * fColor; \n"
" vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec; \n"
"gl_FragColor = light_amb*fColor + diffuse ; \n"
"} \n"
"\n"
};
const char vertex_source_p_l_comp[] =
{
"attribute highp vec4 vertex;\n"
"attribute highp vec3 color;\n"
"uniform highp mat4 mvp_matrix;\n"
"varying highp vec4 fColor; \n"
"uniform highp float point_size; \n"
"void main(void)\n"
"{\n"
" gl_PointSize = point_size;\n"
" fColor = vec4(color, 1.0); \n"
" gl_Position = mvp_matrix * vertex;\n"
"}"
};
const char fragment_source_p_l_comp[] =
{
"varying highp vec4 fColor; \n"
"void main(void) { \n"
"gl_FragColor = fColor; \n"
"} \n"
"\n"
};
//------------------------------------------------------------------------------
inline CGAL::Color get_random_color(CGAL::Random& random)
{
@ -344,12 +427,21 @@ protected:
}
// Vertices and segments shader
const char* source_ = isOpenGL_4_3()
? vertex_source_p_l
: vertex_source_p_l_comp;
QOpenGLShader *vertex_shader_p_l = new QOpenGLShader(QOpenGLShader::Vertex);
if(!vertex_shader_p_l->compileSourceCode(vertex_source_p_l))
if(!vertex_shader_p_l->compileSourceCode(source_))
{ std::cerr<<"Compiling vertex source FAILED"<<std::endl; }
source_ = isOpenGL_4_3()
? fragment_source_p_l
: fragment_source_p_l_comp;
QOpenGLShader *fragment_shader_p_l= new QOpenGLShader(QOpenGLShader::Fragment);
if(!fragment_shader_p_l->compileSourceCode(fragment_source_p_l))
if(!fragment_shader_p_l->compileSourceCode(source_))
{ std::cerr<<"Compiling fragmentsource FAILED"<<std::endl; }
if(!rendering_program_p_l.addShader(vertex_shader_p_l))
@ -360,10 +452,19 @@ protected:
{ std::cerr<<"linking Program FAILED"<<std::endl; }
// Faces shader
source_ = isOpenGL_4_3()
? vertex_source_color
: vertex_source_color_comp;
QOpenGLShader *vertex_shader_face = new QOpenGLShader(QOpenGLShader::Vertex);
if(!vertex_shader_face->compileSourceCode(vertex_source_color))
if(!vertex_shader_face->compileSourceCode(source_))
{ std::cerr<<"Compiling vertex source FAILED"<<std::endl; }
source_ = isOpenGL_4_3()
? fragment_source_color
: fragment_source_color_comp;
QOpenGLShader *fragment_shader_face= new QOpenGLShader(QOpenGLShader::Fragment);
if(!fragment_shader_face->compileSourceCode(fragment_source_color))
{ std::cerr<<"Compiling fragmentsource FAILED"<<std::endl; }

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp float out_dist;
void main(void) {

View File

@ -1,4 +1,4 @@
#version 120
attribute highp vec4 vertex;
attribute highp vec3 normals;
attribute highp vec3 colors;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp vec4 fP;
varying highp vec3 fN;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
void main(void)
{

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp float dist[6];
uniform bool is_clipbox_on;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp vec4 fP;
uniform highp vec4 light_pos;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
uniform highp vec3 dirView;
uniform highp vec3 plane_normal;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp vec4 fP;
varying highp vec3 fN;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec3 fColors;
varying highp vec2 f_texCoord;
uniform sampler2D s_texture;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec3 fColors;
varying highp vec2 f_texCoord;
uniform highp sampler2D s_texture;

View File

@ -1,4 +1,4 @@
#version 120
varying highp vec4 color;
varying highp float dist[6];
uniform bool is_selected;