public OpenGLBaseShaderManager(OpenGLBaseStateChangeWrapper glStateChanger, ShaderVersion shaderVersion)
        {
            d_glStateChanger = glStateChanger;
            d_shaderVersion  = shaderVersion;

            d_shadersInitialised = false;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates and loads shader programs from the two strings supplied to it
        /// </summary>
        /// <param name="vertex_shader_source"></param>
        /// <param name="fragment_shader_source"></param>
        /// <param name="glStateChanger"></param>
        public OpenGLBaseShader(string vertex_shader_source,
                                string fragment_shader_source,
                                OpenGLBaseStateChangeWrapper glStateChanger)
        {
            d_glStateChanger      = glStateChanger;
            d_createdSuccessfully = false;
            d_vertexShader        = 0;
            d_fragmentShader      = 0;
            d_geometryShader      = 0;
            d_program             = 0;


            // Compile the shaders

            d_vertexShader = Compile(OpenGL.ShaderType.VertexShader, vertex_shader_source);
            if (d_vertexShader == 0)
            {
                return;
            }

            OpenGLRendererBase.CheckGLErrors();

            if (!string.IsNullOrWhiteSpace(fragment_shader_source))
            {
                d_fragmentShader = Compile(OpenGL.ShaderType.FragmentShader, fragment_shader_source);

                if (d_fragmentShader == 0)
                {
                    return;
                }
            }

            OpenGLRendererBase.CheckGLErrors();

            d_program = OpenGL.GL.CreateProgram();
        }
Exemplo n.º 3
0
 public OpenGLBaseShaderWrapper(OpenGLBaseShader shader,
                                OpenGLBaseStateChangeWrapper stateChangeWrapper)
 {
     d_shader = shader;
     d_glStateChangeWrapper = stateChangeWrapper;
 }