]> git.tdb.fi Git - libs/gl.git/blobdiff - source/program.cpp
Don't expose the shader type enum
[libs/gl.git] / source / program.cpp
index f11206677b94890ebe7d89dfdeefbc5af425e7f4..84b3cdd16f4e5e2f6fdfbca6c07f812917f3f07d 100644 (file)
@@ -79,9 +79,10 @@ const char *standard_fragment_src[] =
        "e",   "\tvec4 reflection = textureCube(environment, n_normal*(dot(n_normal, v_eye_dir)*2.0)-v_eye_dir);\n",
        "t",   "\tvec4 tex_sample = texture2D(texture, v_texcoord);\n",
         0,    "\tgl_FragColor.rgb = ",
-       "!t!l!m", "vec3(1.0)",
+       "!t!m",  "vec3(1.0)",
        "t",     "tex_sample.rgb",
        "l|mt",  "*",
+       "l!m!t",  "*",
        "!lm",   "v_color.rgb",
        "l",     "((l_diffuse",
        "lm",    "*gl_FrontLightProduct[0].diffuse.rgb",
@@ -94,10 +95,11 @@ const char *standard_fragment_src[] =
        "e",     "+reflection.rgb*reflectivity",
         0,      ";\n",
         0,    "\tgl_FragColor.a = ",
-       "!m",    "1.0",
+       "!t!m",  "1.0",
+       "t",     "tex_sample.a",
+       "tm",    "*",
        "!lm",   "v_color.a",
        "lm",    "gl_FrontMaterial.diffuse.a",
-       "t",     "*tex_sample.a",
         0,      ";\n",
         0,    "}\n",
        0, 0
@@ -126,8 +128,8 @@ Program::Program(const string &vert, const string &frag)
 {
        init();
 
-       attach_shader_owned(new Shader(VERTEX_SHADER, vert));
-       attach_shader_owned(new Shader(FRAGMENT_SHADER, frag));
+       attach_shader_owned(new VertexShader(vert));
+       attach_shader_owned(new FragmentShader(frag));
        link();
 }
 
@@ -177,8 +179,8 @@ void Program::add_standard_shaders(const StandardFeatures &features)
        string flags = features.create_flags();
        string vertex_src = process_standard_source(standard_vertex_src, flags);
        string fragment_src = process_standard_source(standard_fragment_src, flags);
-       attach_shader_owned(new Shader(VERTEX_SHADER, vertex_src));
-       attach_shader_owned(new Shader(FRAGMENT_SHADER, fragment_src));
+       attach_shader_owned(new VertexShader(vertex_src));
+       attach_shader_owned(new FragmentShader(fragment_src));
 }
 
 string Program::process_standard_source(const char **source, const string &flags)
@@ -475,7 +477,7 @@ void Program::Loader::attribute(unsigned i, const string &n)
 
 void Program::Loader::fragment_shader(const string &src)
 {
-       obj.attach_shader_owned(new Shader(FRAGMENT_SHADER, src));
+       obj.attach_shader_owned(new FragmentShader(src));
 }
 
 void Program::Loader::standard()
@@ -487,7 +489,7 @@ void Program::Loader::standard()
 
 void Program::Loader::vertex_shader(const string &src)
 {
-       obj.attach_shader_owned(new Shader(VERTEX_SHADER, src));
+       obj.attach_shader_owned(new VertexShader(src));
 }