void GLLinesShader::init() { addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shaders/simple.vs"); addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shaders/simple.fs"); link(); bind(); }
/** * Set a Vertex-/FragmentShader pair from file * @param filenameVertex path to the vertexshader * @param filenameFragment path to the fragmentshader */ bool SciIllLib::CGLShaderProgram::addShadersFromSourceFile(std::string filenameVertex, std::string filenameFragment) { return addShaderFromSourceFile(GL_VERTEX_SHADER, filenameVertex.c_str()) && addShaderFromSourceFile(GL_FRAGMENT_SHADER, filenameFragment.c_str()); }
/** * Set a Vertex-/FragmentShader pair from file * @param filenameVertex path to the vertexshader * @param filenameFragment path to the fragmentshader */ bool SciIllLib::CGLShaderProgram::addShadersFromSourceFile(const char* filenameVertex, const char* filenameFragment) { return addShaderFromSourceFile(GL_VERTEX_SHADER, filenameVertex) && addShaderFromSourceFile(GL_FRAGMENT_SHADER, filenameFragment); }
void Painter::initializeShaderPrograms() { auto gemProgram = new QOpenGLShaderProgram(this); gemProgram->addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shader/gem.vert"); gemProgram->addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shader/gem.frag"); if (!gemProgram->link()) { qDebug() << "Gem: Link failed"; } gemProgram->bindAttributeLocation("a_vertex", 0); gemProgram->bindAttributeLocation("a_normal", 1); auto lightRayProgram = new QOpenGLShaderProgram(this); lightRayProgram->addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shader/lightray.vert"); lightRayProgram->addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shader/lightray.frag"); if (!lightRayProgram->link()) { qDebug() << "LightRay: Link failed"; } lightRayProgram->bindAttributeLocation("a_vertex", 0); lightRayProgram->bindAttributeLocation("a_color", 1); m_shaderPrograms->insert(ShaderPrograms::GemProgram, gemProgram); m_shaderPrograms->insert(ShaderPrograms::LighRayProgram, lightRayProgram); auto sceneProgram = new QOpenGLShaderProgram(this); sceneProgram->addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shader/scene.vert"); sceneProgram->addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shader/scene.frag"); if (!sceneProgram->link()) { qDebug() << "Scene: Link failed"; } sceneProgram->bindAttributeLocation("a_vertex", 0); m_shaderPrograms->insert(ShaderPrograms::SceneProgram, sceneProgram); }
void ErrorShader::construct() { addShaderFileWithCommonHeaders(QOpenGLShader::Vertex, ":/model/shaders/errorshader.vert"); addShaderFromSourceFile(QOpenGLShader::Fragment, ":/model/shaders/errorshader.frag"); link(); }
/** * Add a Vertex- / Fragment or a GeometryShader from file * @param type Type of shader - GL_VERTEX_SHADER, GL_FRAGMENT_SHADER or GL_GEOMETRY_SHADER * @param filename filename of the shader to be loaded */ bool SciIllLib::CGLShaderProgram::addShaderFromSourceFile(GLenum type, std::string filename) { return addShaderFromSourceFile(type, filename.c_str()); }