filipwasil / fillwave

Multiplatform C++14 graphics engine
https://filipwasildev.bitbucket.io/
MIT License
23 stars 6 forks source link

Creating QT editor #89

Closed filipwasil closed 7 years ago

filipwasil commented 7 years ago

There is an existing repository: https://github.com/filipwasil/fillwave-examples

which contains fillwave engine examples. The examples itself should derive from one base interface class (IExample lets say) which hadne IO operations as well. Example interface:

prepare(); render() = 0; finish(); ...

onMouseClick(); onKeyPress(); ...

std::vector getUILayout;

Ownership: IExample implementation should come to Context constructor as parameter (dependency injection).

It will make mocking the IExample possible.

Testing itself would be a subject of discussion.

Now the context should be actually a QT context (see examples).

http://plantuml.com/plantuml/png/ytIjICmjo4bLiAdHrLM0SW8IYqeoatDIYxayiKcxfgMb9fVWa0pFI2n9BKijukBoTCxFAqcjA5781yh2r78XT5affAUMX7hw95RcbvPeQ2hOAXWWIsRcPM8HJKd5BbwKcfUIMeGfdf6ObvAJwfjVMfoAIz8xjH8Y1G00

IExample may be splitted into IExampleModel and IExampleView. IContext will act as controller. Naming can be changed of course.

Basic UI of qt editor is already well defined:

https://github.com/filipwasil/fillwave_editor_particles

filipwasil commented 7 years ago

It can be added to sources to main directory as "editors", with separate build option in options.cmake

filipwasil commented 7 years ago

@MiOgonowski

Any questions ? ;)

KeramKeram commented 7 years ago

I'm starting analysis of current code, soon I be able to discuss about architecture etc.

KeramKeram commented 7 years ago

There is project on gerrit for editor(i downloaded it from git hub) there is need change in cmake from c++11 to 14 if we want code to compile.

filipwasil commented 7 years ago

Approved ! :)

sob., 29.10.2016, 20:37 użytkownik revcorey notifications@github.com napisał:

There is project on gerrit for editor(i downloaded it from git hub) there is need change in cmake from c++11 to 14 if we want code to compile.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/filipwasil/fillwave/issues/89#issuecomment-257108238, or mute the thread https://github.com/notifications/unsubscribe-auth/ABxGvfmL8V5e4SwJdhTYJHhZvHk7Teyvks5q45JygaJpZM4KBjOa .

KeramKeram commented 7 years ago

Ok, As I understand you want simple editor for examples, no full editor like in other enignes? There are some editors for engines in qt and I'm planing to check code.

filipwasil commented 7 years ago

Editor which will make possible to edit in runtime basic engine features would be probably the best option. Examples may guide you :)

2016-11-01 11:59 GMT+01:00 revcorey notifications@github.com:

Ok, As I understand you want simple editor for examples, no full editor like in other enignes? There are some editors for engines in qt and I'm planing to check code.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/filipwasil/fillwave/issues/89#issuecomment-257539408, or mute the thread https://github.com/notifications/unsubscribe-auth/ABxGvYHi2GAWXQ9GGnF-V9ookXt18zqtks5q5xuMgaJpZM4KBjOa .

Pozdrawiam serdecznie / Best Regards

Filip Wasil

filipwasil.bitbucket.org

KeramKeram commented 7 years ago

I tested intel driver on easy example from opengl cookbook. Ogl 3.3 context is created properly. As for editor example I have problem, It's look like the problem is during start of program:

[2016-11-02 22:45:06.853] [Engine] [critical] glewInit returned INVALID_ENUM ... It may happen [2016-11-02 22:45:06.853] [Engine] [info] OpenGL Version: 4.3 (Core Profile) Mesa 12.0.3 [2016-11-02 22:45:06.854] [TextureSystem] [info] GL_EXT_texture_compression_rgtc supported [2016-11-02 22:45:06.854] [TextureSystem] [info] GL_EXT_texture_compression_s3tc supported [2016-11-02 22:45:06.854] [Shader] [info] Compilation status: 1 [2016-11-02 22:45:06.854] [Shader] [info] Compilation status: 1 [2016-11-02 22:45:06.856] [Program] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2016-11-02 22:45:06.860] [Shader] [info] Compilation status: 1 [2016-11-02 22:45:06.861] [Shader] [info] Compilation status: 1 [2016-11-02 22:45:06.864] [Program] [info] Uniform name=uPostProcessingSampler, location=0, type=35678, num=1 [2016-11-02 22:45:06.864] [Texture] [info] Reload [2016-11-02 22:45:06.864] [Texture2D] [info] Reload [2016-11-02 22:45:06.864] [Texture] [info] Reload [2016-11-02 22:45:06.866] [Engine] [critical] [CORE ERROR: 0x0502] [2016-11-02 22:45:06.866] [Engine] [critical] glReadPixels Aborted (core dumped)

KeramKeram commented 7 years ago

I removed abort() from fLogC for test, editor starts but I see only qt window with controls but no 3d graphics in widget. After some time everything crash(I have instaled freesans). bash-4.3$ ./fillwave_qt_example [2016-11-15 20:40:32.876] [Engine] [critical] glewInit returned INVALID_ENUM ... It may happen [2016-11-15 20:40:32.876] [Engine] [info] OpenGL Version: 4.3 (Core Profile) Mesa 12.0.3 [2016-11-15 20:40:32.876] [TextureSystem] [info] GL_EXT_texture_compression_rgtc supported [2016-11-15 20:40:32.876] [TextureSystem] [info] GL_EXT_texture_compression_s3tc supported [2016-11-15 20:40:32.877] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.877] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.880] [Program] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2016-11-15 20:40:32.884] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.885] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.888] [Program] [info] Uniform name=uPostProcessingSampler, location=0, type=35678, num=1 [2016-11-15 20:40:32.888] [Texture] [info] Reload [2016-11-15 20:40:32.888] [Texture2D] [info] Reload [2016-11-15 20:40:32.888] [Texture] [info] Reload [2016-11-15 20:40:32.890] [Engine] [critical] [CORE ERROR: 0x0502] [2016-11-15 20:40:32.890] [Engine] [critical] glReadPixels [2016-11-15 20:40:32.891] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.891] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.893] [Program] [info] Uniform name=uTextureUnit, location=0, type=35678, num=1 [2016-11-15 20:40:32.893] [Program] [info] Uniform name=uNearplane, location=1, type=5126, num=1 [2016-11-15 20:40:32.893] [Program] [info] Uniform name=uFarPlane, location=2, type=5126, num=1 [2016-11-15 20:40:32.894] [TextureLoader] [info] Texture ./assets/alphaMask.png loading ... [2016-11-15 20:40:32.924] [TextureLoader] [info] Image ./assets/alphaMask.png size 1024x1024 pixel 4 bytes per pixel [2016-11-15 20:40:32.924] [TextureLoader] [info] Flipping Texture ./assets/alphaMask.png ... [2016-11-15 20:40:32.939] [TextureSystem] [info] Texture ./assets/alphaMask.png added to manager [2016-11-15 20:40:32.939] [Texture] [info] Reload [2016-11-15 20:40:32.939] [Texture2D] [info] Reload [2016-11-15 20:40:32.939] [Texture] [info] Reload [2016-11-15 20:40:32.944] [Emiter] [critical] Legacy features may cause a GL_INVALID_ENUM on core profile. It may happen. [2016-11-15 20:40:32.945] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.946] [Shader] [info] Compilation status: 1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uModelMatrix, location=0, type=35676, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uViewProjectionMatrix, location=1, type=35676, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uPosition, location=2, type=35665, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uTimeElapsed, location=3, type=5126, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uPointSize, location=4, type=5126, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uLifeTime, location=5, type=5126, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uAcceleration, location=6, type=35665, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uCameraPosition, location=7, type=35665, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uTextureUnit, location=8, type=35678, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uAlphaCutOff, location=9, type=5126, num=1 [2016-11-15 20:40:32.954] [Program] [info] Uniform name=uColor, location=10, type=35666, num=1 [2016-11-15 20:40:32.954] [TextureLoader] [info] Texture ./FreeSans.png loading ... [2016-11-15 20:40:32.954] [TextureLoader] [critical] Texture ./FreeSans.png not found [2016-11-15 20:40:32.954] [TextureSystem] [info] Texture ./FreeSans.png not found Could not open .ttf file Could not open .ttf file [2016-11-15 20:40:32.954] [TextureLoader] [info] Texture ./FreeSans.png loading ... [2016-11-15 20:40:32.954] [TextureLoader] [critical] Texture ./FreeSans.png not found [2016-11-15 20:40:32.954] [TextureSystem] [info] Texture ./FreeSans.png not found [2016-11-15 20:40:32.954] [Engine] [critical] No text added. Could not write to metadata file: FreeSans.meta Aborted (zrzut pamięci)

KeramKeram commented 7 years ago

We can base code editor on http://doc.qt.io/qt-5/qtopengl-hellogl2-example.html with my Q_Property changes.

KeramKeram commented 7 years ago

Basing on example_simple I had prepare simple test before I will go forward.code

void Renderer::initializeGL()
{
    mEngine = unique_ptr<Engine>(new Engine(mArgc, mArgv));

    mEngine->setCurrentScene(make_unique<Scene>());

    mEngine->getCurrentScene()->setCamera(
       make_unique<CameraPerspective>(glm::vec3(0.0, 0.0, 16.0),
                                      glm::quat(),
                                      glm::radians(90.0),
                                      1.0,
                                      0.1,
                                      1000.0));
    /* Models */
    mEngine->getCurrentScene()->attach(make_unique<Model>
          (mEngine.get(),
           ProgramLoader(mEngine.get()).getDefault(),
           "meshes/sphere.obj", "255_255_255.color"));
now = 0;

}

void Renderer::paintGL()
{
    GLfloat timeSinceLastFrameInSec;
    if (mTimeExpired == 0.0f) {
        mTimeExpired = now;
    }
    timeSinceLastFrameInSec = now - mTimeExpired;
    mTimeExpired = now;

    mEngine->draw(timeSinceLastFrameInSec);
    now +=1;
    //mEngine->drawLines(0.0f);
    update();
}

But it's fail with log [2016-12-27 19:50:11.500] [Mesh] [critical] [CORE ERROR: 0x0502] [2016-12-27 19:50:11.500] [Mesh] [critical] glDrawElements failed I see that .obj file is load corectly(logs show this).

I'm missing something?

KeramKeram commented 7 years ago

There is need for connection between menu and scene. Prerequisites:

  1. Deriveded class from standard types like QSlider.
  2. Controller class 3.Scene with opengl instructions. Example in pseudocode:
    class QSliderExtended : public QSlider
    {
    public:
    setControler(Controller* cont) // We connect Controller slot prepareCommand with updateScene //signal. this implementation can be in constructor or not.
    signal:
    updateScene(QString s1, int value);
    slot:
    prepareMessage(int value);
    }

    we connect signal changeValue in QSliderExtended with slot prepareMessage in QSliderExtended . in prepareMessage slot:

    auto nameOfWidget = this->accessibleName();
    enit (nameOfWidget, value);

    Now controler:

    Class Controller
    {
    slot:
    prepareCommand(QString s1, int value);
    private:
    QObject* scene;
    }

    In controler class, prepareCommand slot:

    scene->setProperty("name", s1);
    scene->setProperty("value" value); // In real code should be std:pair

    Perhaps some kind of observer? Edit: We can have another implementation without Controller. In this case menu widgets have pointer for scenerio and they use directly property system or signal/slot system for example:

    class QSliderExtended : public QSlider
    {
    public:
    setScene(QObject* scene)
    slot:
    prepareMessage(int value);
    private:
    QObject* mScene;
    }

    we connect signal changeValue in QSliderExtended with slot prepareMessage in QSliderExtended . in prepareMessage:

    pair data = make_pair(this->accessibleName(),value)
    scene->setproperty("data", data); // or we can use signal/slot system instead of property
KeramKeram commented 7 years ago

Ok, I have idea. But first I will define the problem. What we want? 1) Scene want information what parameter should be change(with value) 2)Elements of menu interface are not aware about existence of scene, they simply changes their values, and give us information about that, and that is everything. How to achieve this? I think about two different solutions. Solution 1 with some kind of controller ad. 1) In scene we add function(updateValue) or property system to update parameter in scene, and argument will be std::pair<Name,Value> , why pair? We must know what value should be change(first in pair), and value(second). How updateValue(pair) function will be implemented depends on who programming the scene. In example Scene class.

Scene::updateValue(std:pair<QString,QString> up) // or Scene::updateValue(std:pair<QString,QVariant> up)
{
if (!mValueMap.contains(up.first))
{
return;
}
mValueMap[up.first] = up.second;  //In this map we have all values relevant to scene, for example how much sphere to display
}

I'm not proud of this mValueMap variable, but thanks of that we can easy change values. Perhaps I can try to use property system to change values. ad. 2) We create controller class. This class have slot called updateValue(QWidget * value). Every menu element have connected his valueChanged first to QSignalMapper and this mapper is connected to updateValue. Why I need to map signal? I need the object who changed his value, I can't simply connect valueChanged to controller I need too know who send that signal.

updateValue(QWidget * value)
{
auto Name = value->property("objectName") //It is property from QWidget
auto Value = value->property("value") //property in derivative class QSlider,QDial etc.
//We need to check isValid because above we have QVariant
//Now update scene
auto pair = pair{ Name.toString(), Value.toString()}; // or pair{ Name.toString(), Value};
scene->updateValue(pair);
}

Scenario 2 This scenario is similar to first one. We do not have controller here, we have updateValue(QWidget* value) inside of scene. I'm not prefer this but is possible.

Another solutions. We can create controller like in point 2 in first scenario but we will try to set values not by some special function but by QProperty, we will try to use QMetaObject to take all possible properties from scene class and we will find interesting property.

updateValue(QWidget * value)
{
    const QMetaObject* metaObject = scene->metaObject();
    QStringList properties;
    for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i)
        properties << QString::fromLatin1(metaObject->property(i).name());
auto Name = value->property("objectName") //It is property from QWidget
auto Value = value->property("value") //property in derivative class QSlider,QDial etc.
if(properties.contains(Name.toString()))
{
//set value by property system
}
}

It can be harder to maintain, and code in my opinion.

filipwasil commented 7 years ago

Good job @revcorey

filipwasil commented 7 years ago

On ubuntu 16.04 we have such error

In file included from /home/filip/Projects/fillwave/InteractiveDemo/src/common/MainWidget.cpp:6:0: /home/filip/Projects/fillwave/InteractiveDemo/src/./scene/sceneImp/TextScene.h:9:91: error: macro "Q_PROPERTY" passed 2 arguments, but takes just 1 Q_PROPERTY(QMap<QString, QVariant> sceneParameter READ getParameters WRITE setParameters) ^ /home/filip/Projects/fillwave/InteractiveDemo/src/./scene/sceneImp/TextScene.h:9:3: error: ‘Q_PROPERTY’ does not name a type Q_PROPERTY(QMap<QString, QVariant> sceneParameter READ getParameters WRITE setParameters) ^ src/CMakeFiles/fillwaveInteractiveDemo.dir/build.make:110: recipe for target 'src/CMakeFiles/fillwaveInteractiveDemo.dir/common/MainWidget.cpp.o' failed make[2]: [src/CMakeFiles/fillwaveInteractiveDemo.dir/common/MainWidget.cpp.o] Error 1 CMakeFiles/Makefile2:127: recipe for target 'src/CMakeFiles/fillwaveInteractiveDemo.dir/all' failed make[1]: [src/CMakeFiles/fillwaveInteractiveDemo.dir/all] Error 2 Makefile:149: recipe for target 'all' failed make: *** [all] Error 2

filipwasil commented 7 years ago

Also on ubuntu 16.04 we have:

CMake Error at src/CMakeLists.txt:31 (if): if given arguments:

"STREQUAL" "ON"

Unknown arguments specified

Probably we should check version of cmake before doing so

KeramKeram commented 7 years ago

Hey, In order to prepare correct cpack files I must turn off tests(gtest), turn on cpack(developers do not need to generete pkg every time) and choose correct pkg type. I added 3 variables to cmake. for example for relase(from script file in /scripts). cmake .. -DTESTSTATUS=FALSE -DPKGSTATUS=ON -DPKGTYPE=DEB

KeramKeram commented 7 years ago

problem with engine, patch on https://1drv.ms/u/s!AtcBAjYs2dSMhGAgqYjDlOGc0you. My log ''' /home/radek/fillwave/InteractiveDemo/cmake-build-debug/fillwaveInteractiveDemo [2017-04-29 17:26:51.386] [Engine] [critical] glewInit returned INVALID_ENUM ... It may happen [2017-04-29 17:26:51.386] [Engine] [info] OpenGL Version: 3.3 (Core Profile) Mesa 12.0.6 [2017-04-29 17:26:51.386] [TextureSystem] [info] GL_EXT_texture_compression_rgtc supported [2017-04-29 17:26:51.387] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.387] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.388] [Program.cpp] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2017-04-29 17:26:51.392] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.393] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.393] [Program.cpp] [info] Uniform name=uPostProcessingSampler, location=0, type=35678, num=1 [2017-04-29 17:26:51.394] [Texture] [info] Reload [2017-04-29 17:26:51.394] [Texture2D] [info] Reload [2017-04-29 17:26:51.394] [Texture] [info] Reload [2017-04-29 17:26:51.410] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.410] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.412] [Program.cpp] [info] Uniform name=uTextureUnit, location=0, type=35678, num=1 [2017-04-29 17:26:51.412] [Program.cpp] [info] Uniform name=uNearplane, location=1, type=5126, num=1 [2017-04-29 17:26:51.412] [Program.cpp] [info] Uniform name=uFarPlane, location=2, type=5126, num=1 [2017-04-29 17:26:51.420] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.421] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.442] [Program.cpp] [info] Uniform name=uModelMatrix, location=0, type=35676, num=1 [2017-04-29 17:26:51.442] [Program.cpp] [info] Uniform name=uViewProjectionMatrix, location=1, type=35676, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uCameraPosition, location=2, type=35665, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[0].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[0].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[0].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[1].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[1].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[1].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[2].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[2].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[2].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[3].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[3].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[3].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[4].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[4].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.443] [Program.cpp] [info] Uniform name=uSpotLights[4].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[5].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[5].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[5].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[6].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[6].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[6].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[7].position, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[7].intensity, location=-1, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uSpotLights[7].mvp, location=-1, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uLightAmbientIntensity, location=27, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uLightDiffuseIntensity, location=28, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uLightSpecularIntensity, location=29, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[0].position, location=30, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[0].intensity, location=31, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[0].mvp, location=32, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[1].position, location=33, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[1].intensity, location=34, type=35666, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[1].mvp, location=35, type=35676, num=1 [2017-04-29 17:26:51.444] [Program.cpp] [info] Uniform name=uPointLights[2].position, location=36, type=35666, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointLights[2].intensity, location=37, type=35666, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointLights[2].mvp, location=38, type=35676, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointLights[3].position, location=39, type=35666, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointLights[3].intensity, location=40, type=35666, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointLights[3].mvp, location=41, type=35676, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uNumberOfPointLights, location=42, type=5124, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uNumberOfSpotLights, location=43, type=5124, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointShadowMap0, location=44, type=35680, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointShadowMap1, location=45, type=35680, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointShadowMap2, location=46, type=35680, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uPointShadowMap3, location=47, type=35680, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap0, location=48, type=35678, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap1, location=49, type=35678, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap2, location=50, type=35678, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap3, location=51, type=35678, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap4, location=52, type=35678, num=1 [2017-04-29 17:26:51.445] [Program.cpp] [info] Uniform name=uShadowMap5, location=53, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uShadowMap6, location=54, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uShadowMap7, location=55, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uColorPicking, location=56, type=35670, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uFogEffect, location=57, type=35670, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uFogColor, location=58, type=35665, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uFogNearDistance, location=59, type=5126, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uFogFarDistance, location=60, type=5126, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uPainterEffect, location=61, type=35670, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uPainterColor, location=62, type=35666, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uTextureOnlyEffect, location=63, type=35670, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uBoostColorEffect, location=64, type=35670, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uBoostColorFactor, location=65, type=5126, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uDiffuseTextureUnit, location=66, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uNormalTextureUnit, location=67, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform name=uSpecularTextureUnit, location=68, type=35678, num=1 [2017-04-29 17:26:51.446] [Program.cpp] [info] Uniform block name=uSpotLightsUBO, index=0, size=768 [2017-04-29 17:26:51.447] [Engine] [info] Reading model meshes/sphere.obj [2017-04-29 17:26:51.449] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.450] [Program.cpp] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2017-04-29 17:26:51.450] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.451] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.452] [Program.cpp] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2017-04-29 17:26:51.452] [Program.cpp] [info] Uniform name=uModelMatrix, location=1, type=35676, num=1 [2017-04-29 17:26:51.452] [Program.cpp] [info] Uniform name=uLightPosition, location=2, type=35665, num=1 [2017-04-29 17:26:51.452] [TextureLoader] [info] Texture /home/radek/fillwave/InteractiveDemo/cmake-build-debug/255_255_255.color loading ... [2017-04-29 17:26:51.452] [TextureLoader] [info] Color texture /home/radek/fillwave/InteractiveDemo/cmake-build-debug/255_255_255.color generation and loading ... [2017-04-29 17:26:51.454] [TextureSystem] [info] Texture /home/radek/fillwave/InteractiveDemo/cmake-build-debug/255_255_255.color added to manager [2017-04-29 17:26:51.455] [Texture] [info] Reload [2017-04-29 17:26:51.455] [Texture2D] [info] Reload [2017-04-29 17:26:51.455] [Texture] [info] Reload [2017-04-29 17:26:51.461] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.461] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.463] [Program.cpp] [info] Uniform name=uPositionMap, location=0, type=35678, num=1 [2017-04-29 17:26:51.466] [Program.cpp] [info] Uniform name=uSampleRadius, location=1, type=5126, num=1 [2017-04-29 17:26:51.466] [Program.cpp] [info] Uniform name=uP, location=2, type=35676, num=1 [2017-04-29 17:26:51.466] [Program.cpp] [info] Uniform name=uRandomVectors[0], location=3, type=35665, num=64 [2017-04-29 17:26:51.466] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.467] [Shader] [info] Compilation status: 1 [2017-04-29 17:26:51.468] [Program.cpp] [info] Uniform name=uMVP, location=0, type=35676, num=1 [2017-04-29 17:26:51.468] [Program.cpp] [info] Uniform name=uMVPosition, location=1, type=35676, num=1 [2017-04-29 17:26:51.713] [Mesh] [critical] [CORE ERROR: 0x0502] [2017-04-29 17:26:51.713] [Mesh] [critical] glDrawElements failed

'''

KeramKeram commented 7 years ago

As for ubuntu 16.04 I know what to do. Fix soon.

KeramKeram commented 7 years ago

Error on windows 10 on intel HD card. [2017-05-14 17:15:01.120] [Shader] [critical] Compilation: ERROR: 0:109: 'texture2D' : function is removed in Forward Compatible context