Example #1
0
void MainWindow::applyMaterial()
{
    ui->logPanel->clear();
    Ogre::GpuProgramPtr vProgram;
    Ogre::GpuProgramPtr fProgram;
    if (!ui->VP->getShaderName().isEmpty()) {
         vProgram =
                Ogre::GpuProgramManager::getSingleton().getByName(ui->VP->getShaderName().toStdString());
        Ogre::LogManager::getSingleton().logMessage(vProgram->getName());
        vProgram->setSource(ui->VP->text().toStdString());
        vProgram->reload();
    }

    if (!ui->FP->getShaderName().isEmpty()) {
        fProgram =
                Ogre::GpuProgramManager::getSingleton().getByName(ui->FP->getShaderName().toStdString());
        fProgram->setSource(ui->FP->text().toStdString());
        fProgram->reload();
    }

    QString mat = this->removeWhiteSpaceCharacters();

    if (mat.isEmpty()) {
        return ;
    }

    ui->OgreWidget->setMaterial(mat.toStdString(), currMatName.toStdString());
}