QOpenGLShaderProgram * GLView::erstelleShaderProgramAusDateien( QString const & p_filenameVertexShader, QString const & p_filenameFragmentShader ) { QOpenGLShaderProgram * shaderProgram = new QOpenGLShaderProgram( this ); if( !shaderProgram ) { qWarning( ) << "Shader Programm konnte nicht erzeugt werden.\n"; return 0; } if( !shaderProgram->addShaderFromSourceFile( QOpenGLShader::Vertex, shadersPath + "/" + p_filenameVertexShader ) ){ shaderProgram->removeAllShaders( ); delete shaderProgram; shaderProgram = 0; qWarning( ) << "Vertex Shader konnte nicht geladen oder kompiliert werden.\n"; return 0; } if( !shaderProgram->addShaderFromSourceFile( QOpenGLShader::Fragment, shadersPath + "/" + p_filenameFragmentShader ) ){ shaderProgram->removeAllShaders( ); delete shaderProgram; shaderProgram = 0; qWarning( ) << "Fragment Shader konnte nicht geladen oder kompiliert werden.\n"; return 0; } if( !shaderProgram->link( ) ){ qWarning( ) << "Shader Programm konnte nicht gelinkt werden.\n"; return 0; } return shaderProgram; }