Метляков Андрей (deviaphan) wrote in coin3d_ru,
Метляков Андрей
deviaphan
coin3d_ru

"Чиним" coin

#UPD: Бяки.( Отправил разработчикам эту ошибку. В ответ получил: "Тех. поддержка оказывается только пользователям платных аккаунтов". Вот с каких пор, чтобы сообщить об ошибке, нужно осуществлять подписку? Ну и ладно, я всё равно умею эту ошибку исправлять.)


При каждой компиляции шейдера, выводится информационное сообщение об успешной или провальной компиляции.
По моему, видеть этот диалог при успешной компиляции вовсе не обязательно, поэтому мы от него избавимся.


Для исправления, откройте файл "SoGLSLShaderObject.cpp" и отредактируйте метод SoGLSLShaderObject::load как показано ниже. Пересоберите библиотеку.
SoGLSLShaderObject.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56    SbBool SoGLSLShaderObject::isLoaded(void) const { return (this->shaderHandle != 0); } void SoGLSLShaderObject::load(const char* srcStr) { this->unload(); this->setParametersDirty(TRUE); GLint flag; GLenum sType; switch (this->getShaderType()) { default: assert(0 &&" unknown shader type"); case VERTEX: sType = GL_VERTEX_SHADER_ARB; break; case FRAGMENT: sType = GL_FRAGMENT_SHADER_ARB; break; case GEOMETRY: sType = GL_GEOMETRY_SHADER_EXT; break; } this->shaderHandle = this->glctx->glCreateShaderObjectARB(sType); this->programid = 0; if (this->shaderHandle == 0) return; this->programid = soglshaderobject_idcounter++; this->glctx->glShaderSourceARB(this->shaderHandle, 1, (const COIN_GLchar **)&srcStr, NULL); this->glctx->glCompileShaderARB(this->shaderHandle); if (SoGLSLShaderObject::didOpenGLErrorOccur("SoGLSLShaderObject::load()")) { this->shaderHandle = 0; return; } this->glctx->glGetObjectParameterivARB(this->shaderHandle, GL_OBJECT_COMPILE_STATUS_ARB, &flag); //---------------------------- Исправление if (!flag) { SoGLSLShaderObject::printInfoLog(this->GLContext(), this->shaderHandle, this->getShaderType()); this->shaderHandle = 0; } //----------------------------- }
Tags: !раздел:info
Subscribe

  • Что случилось с оформлением?

    Как вы могли заметить, листинги с кодом перестали выглядеть красиво. Вот что мне ответили в саппорте: Запрет на использование атрибутов…

  • О записях...

    Записи в сообществе не статичны, по возможности я их корректирую, дополняю, исправляю ошибки. К сожалению, в сообществе нельзя выставлять…

  • Конфигурирование библиотеки перед сборкой

    Функционал, размер и производительность библиотеки Coin3D зависит от настроек сборки. Конфигурационные файлы позволяют настраивать, какие компоненты…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 7 comments