splitted into 2 projects, see sparrowEditor project
BIN
data/noise.png
Before Width: | Height: | Size: 327 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 12 KiB |
1281
data/sphere.obj
@ -1,15 +0,0 @@
|
|||||||
#
|
|
||||||
# generated by kHED
|
|
||||||
#
|
|
||||||
newmtl steel
|
|
||||||
d 1.0
|
|
||||||
Ka 1.0 1.0 1.0
|
|
||||||
Ks 0.9 0.9 0.9
|
|
||||||
Kd 0.3 0.3 0.3
|
|
||||||
map_Kd res/textures/steel.jpg
|
|
||||||
newmtl leather
|
|
||||||
d 1.0
|
|
||||||
Ka 1.0 1.0 1.0
|
|
||||||
Ks 0.4 0.4 0.4
|
|
||||||
Kd 0.9 0.9 0.9
|
|
||||||
map_Kd res/textures/leather.jpg
|
|
2167
data/sword.obj
7
framebuffer.cpp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include "framebuffer.h"
|
||||||
|
|
||||||
|
FrameBuffer::FrameBuffer()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
11
framebuffer.h
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#ifndef FRAMEBUFFER_H
|
||||||
|
#define FRAMEBUFFER_H
|
||||||
|
|
||||||
|
|
||||||
|
class FrameBuffer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FrameBuffer();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FRAMEBUFFER_H
|
11
main.cpp
@ -1,11 +0,0 @@
|
|||||||
#include "mainwindow.h"
|
|
||||||
#include <QApplication>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication a(argc, argv);
|
|
||||||
MainWindow w;
|
|
||||||
w.show();
|
|
||||||
|
|
||||||
return a.exec();
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
#include "mainwindow.h"
|
|
||||||
#include <QtCore/QVariant>
|
|
||||||
#include <QtWidgets/QAction>
|
|
||||||
#include <QtWidgets/QApplication>
|
|
||||||
#include <QtWidgets/QButtonGroup>
|
|
||||||
#include <QtWidgets/QHBoxLayout>
|
|
||||||
#include <QtWidgets/QHeaderView>
|
|
||||||
#include <QtWidgets/QMainWindow>
|
|
||||||
#include <QtWidgets/QMenu>
|
|
||||||
#include <QtWidgets/QMenuBar>
|
|
||||||
#include <QtWidgets/QVBoxLayout>
|
|
||||||
#include <QtWidgets/QWidget>
|
|
||||||
#include "modulewidget.h"
|
|
||||||
#include "resourcewidget.h"
|
|
||||||
#include "myglwidget.h"
|
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
|
||||||
{
|
|
||||||
setWindowTitle("SparrowRenderer");
|
|
||||||
resize(800, 600);
|
|
||||||
|
|
||||||
// modules widget
|
|
||||||
moduleWidget = new ModuleWidget(this);
|
|
||||||
addDockWidget(Qt::LeftDockWidgetArea, moduleWidget);
|
|
||||||
|
|
||||||
// resources widget
|
|
||||||
resourceWidget = new ResourceWidget(this);
|
|
||||||
addDockWidget(Qt::RightDockWidgetArea, resourceWidget);
|
|
||||||
|
|
||||||
// opengl widget
|
|
||||||
openGLWidget = new OpenGLWidget(this);
|
|
||||||
openGLWidget->setRenderer(moduleWidget);
|
|
||||||
setCentralWidget(openGLWidget);
|
|
||||||
|
|
||||||
// actions
|
|
||||||
actionExit = new QAction(this);
|
|
||||||
actionExit->setText("Exit");
|
|
||||||
|
|
||||||
actionShowModuleWidget = new QAction(this);
|
|
||||||
actionShowModuleWidget->setText("Modules");
|
|
||||||
actionShowModuleWidget->setEnabled(false);
|
|
||||||
|
|
||||||
// menubar
|
|
||||||
menuBar = new QMenuBar(this);
|
|
||||||
menuBar->setGeometry(QRect(0, 0, 800, 22));
|
|
||||||
menuMenu = new QMenu(menuBar);
|
|
||||||
menuMenu->setTitle("Main menu");
|
|
||||||
menuMenu->addAction(actionShowModuleWidget);
|
|
||||||
menuMenu->addAction(actionExit);
|
|
||||||
menuBar->addAction(menuMenu->menuAction());
|
|
||||||
menuBar->setNativeMenuBar(false);
|
|
||||||
setMenuBar(menuBar);
|
|
||||||
|
|
||||||
// connect signals to slots
|
|
||||||
QObject::connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
|
|
||||||
QObject::connect(moduleWidget, SIGNAL(visibilityChanged(bool)), actionShowModuleWidget, SLOT(setDisabled(bool)));
|
|
||||||
QObject::connect(actionShowModuleWidget, SIGNAL(triggered()), this, SLOT(reopenModuleWidget()));
|
|
||||||
QObject::connect(openGLWidget, SIGNAL(modulesChanged()), moduleWidget, SLOT(updateList()));
|
|
||||||
QObject::connect(openGLWidget, SIGNAL(modulesChanged()), resourceWidget, SLOT(updateList()));
|
|
||||||
|
|
||||||
QMetaObject::connectSlotsByName(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::reopenModuleWidget()
|
|
||||||
{
|
|
||||||
emit(moduleWidget->setVisible(true));
|
|
||||||
}
|
|
34
mainwindow.h
@ -1,34 +0,0 @@
|
|||||||
#ifndef MAINWINDOW_H
|
|
||||||
#define MAINWINDOW_H
|
|
||||||
|
|
||||||
#include <QMainWindow>
|
|
||||||
|
|
||||||
class OpenGLWidget;
|
|
||||||
class ModuleWidget;
|
|
||||||
class ResourceWidget;
|
|
||||||
|
|
||||||
namespace Ui {
|
|
||||||
class MainWindow;
|
|
||||||
}
|
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit MainWindow(QWidget *parent = 0);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QAction *actionExit;
|
|
||||||
QAction *actionShowModuleWidget;
|
|
||||||
QMenuBar *menuBar;
|
|
||||||
QMenu *menuMenu;
|
|
||||||
OpenGLWidget *openGLWidget;
|
|
||||||
ModuleWidget *moduleWidget;
|
|
||||||
ResourceWidget *resourceWidget;
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void reopenModuleWidget();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
|
@ -1,33 +0,0 @@
|
|||||||
#include "modulewidget.h"
|
|
||||||
#include "ui_modulewidget.h"
|
|
||||||
|
|
||||||
ModuleWidget::ModuleWidget(QWidget *parent) :
|
|
||||||
QDockWidget(parent),
|
|
||||||
ui(new Ui::ModuleWidget)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleWidget::~ModuleWidget()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ModuleWidget::updateList()
|
|
||||||
{
|
|
||||||
QListWidget* list = ui->listWidget;
|
|
||||||
list->clear();
|
|
||||||
for(ModuleNode& m : modules)
|
|
||||||
list->addItem(new QListWidgetItem(QString(m.name.c_str())));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*void ModuleWidget::moduleSetEnabled(QTreeWidgetItem* item, int button)
|
|
||||||
{
|
|
||||||
SparrowRenderer* renderer = ui->openGLWidget->getRenderer();
|
|
||||||
std::string name = item->text(0).toStdString();
|
|
||||||
if(renderer->isModuleEnabled(name))
|
|
||||||
renderer->disableModule(name);
|
|
||||||
else
|
|
||||||
renderer->enableModule(name);
|
|
||||||
ui->openGLWidget->updateGL();
|
|
||||||
}*/
|
|
@ -1,26 +0,0 @@
|
|||||||
#ifndef MODULEWIDGET_H
|
|
||||||
#define MODULEWIDGET_H
|
|
||||||
|
|
||||||
#include <QDockWidget>
|
|
||||||
#include "sparrowrenderer.h"
|
|
||||||
|
|
||||||
namespace Ui {
|
|
||||||
class ModuleWidget;
|
|
||||||
}
|
|
||||||
|
|
||||||
class ModuleWidget : public QDockWidget, public SparrowRenderer
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit ModuleWidget(QWidget *parent = 0);
|
|
||||||
~ModuleWidget();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::ModuleWidget *ui;
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void updateList();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MODULEWIDGET_H
|
|
@ -1,63 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>ModuleWidget</class>
|
|
||||||
<widget class="QDockWidget" name="ModuleWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>141</width>
|
|
||||||
<height>392</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="allowedAreas">
|
|
||||||
<set>Qt::LeftDockWidgetArea</set>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Modules</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="dockWidgetContents">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QListWidget" name="listWidget"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="widget" native="true">
|
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>157</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
150
myglwidget.cpp
@ -1,150 +0,0 @@
|
|||||||
#include <glew/glew.h>
|
|
||||||
#include "myglwidget.h"
|
|
||||||
#include "glassert.h"
|
|
||||||
#include "camera.h"
|
|
||||||
#include "sphere.h"
|
|
||||||
#include "phongmaterial.h"
|
|
||||||
#include "skyboxmodule.h"
|
|
||||||
#include "entity.h"
|
|
||||||
#include "phongmodule.h"
|
|
||||||
#include "resourcebase.h"
|
|
||||||
#include "utils.h"
|
|
||||||
#include "lights.h"
|
|
||||||
#include "texture.h"
|
|
||||||
#include "gridmesh.h"
|
|
||||||
#include "sparrowrenderer.h"
|
|
||||||
#include "focuscontroller.h"
|
|
||||||
#include <iostream>
|
|
||||||
#include <glm/glm.hpp>
|
|
||||||
#include <glm/ext.hpp>
|
|
||||||
#include <QKeyEvent>
|
|
||||||
#include <QMouseEvent>
|
|
||||||
|
|
||||||
OpenGLWidget::OpenGLWidget(QWidget *parent) :
|
|
||||||
QGLWidget(parent),
|
|
||||||
renderer(NULL),
|
|
||||||
controller(NULL)
|
|
||||||
{}
|
|
||||||
|
|
||||||
OpenGLWidget::~OpenGLWidget()
|
|
||||||
{
|
|
||||||
renderer->destroyGL();
|
|
||||||
if(controller != NULL)
|
|
||||||
delete(controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::setRenderer(SparrowRenderer* myRenderer)
|
|
||||||
{
|
|
||||||
renderer = myRenderer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::loadResources()
|
|
||||||
{
|
|
||||||
std::string filenames[6] = {
|
|
||||||
"../data/skybox_ft", "../data/skybox_bk",
|
|
||||||
"../data/skybox_up", "../data/skybox_dn",
|
|
||||||
"../data/skybox_lf", "../data/skybox_rt"
|
|
||||||
};
|
|
||||||
ResourceBase::setTexture("skybox", new Texture(filenames));
|
|
||||||
ResourceBase::setTexture("textureNoise", new Texture("../data/noise.png"));
|
|
||||||
ResourceBase::setTexture("perlinNoise", new Texture());
|
|
||||||
|
|
||||||
ResourceBase::setMesh("grid", new GridMesh(10, 10, true));
|
|
||||||
ResourceBase::setMesh("sword", Utils::loadOBJ("../data/sword.obj"));
|
|
||||||
ResourceBase::setMesh("sphere", new Sphere(4));
|
|
||||||
|
|
||||||
std::string vertSource = Utils::fileToString("../phong.vert");
|
|
||||||
std::string fragSource = Utils::fileToString("../phong.frag");
|
|
||||||
ResourceBase::setShader("phong", new Shader(vertSource, fragSource));
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::buildScene()
|
|
||||||
{
|
|
||||||
// camera positionning
|
|
||||||
Camera* cam = renderer->getCamera();
|
|
||||||
cam->moveTo(glm::vec3(0, 0, 3));
|
|
||||||
cam->lookAt(glm::vec2(0, 0));
|
|
||||||
|
|
||||||
// create skybox module
|
|
||||||
SkyboxModule* skybox = new SkyboxModule(ResourceBase::getTexture("skybox"));
|
|
||||||
renderer->addModule(skybox, "skybox");
|
|
||||||
|
|
||||||
// create phong module
|
|
||||||
Lights* directionnalLights = new Lights();
|
|
||||||
Lights* pointLights = new Lights();
|
|
||||||
directionnalLights->addLight(glm::vec3(6, 4, -4), glm::vec3(0.7f, 0.6f, 0.4f)); // sun
|
|
||||||
|
|
||||||
PhongModule* myPhongModule = new PhongModule(directionnalLights, pointLights, ResourceBase::getShader("phong"));
|
|
||||||
renderer->addModule(myPhongModule, "phong");
|
|
||||||
|
|
||||||
// create a material
|
|
||||||
PhongMaterial* mat = new PhongMaterial(glm::vec3(1), glm::vec3(1), 20.0f);
|
|
||||||
mat->setTexture(ResourceBase::getTexture("textureNoise"));
|
|
||||||
ResourceBase::setMaterial("basicMat", mat);
|
|
||||||
|
|
||||||
// create an entity
|
|
||||||
Mesh* myMesh = ResourceBase::getMesh("sphere");
|
|
||||||
myMesh->initGL();
|
|
||||||
Entity* myEntity = new Entity(myMesh, ResourceBase::getMaterial("basicMat"));
|
|
||||||
glm::mat4* transform = myEntity->getTransform();
|
|
||||||
*transform = glm::rotate(*transform, 3.14f, glm::vec3(0, 1, 0));
|
|
||||||
myPhongModule->addEntity(myEntity);
|
|
||||||
|
|
||||||
emit modulesChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::initializeGL()
|
|
||||||
{
|
|
||||||
renderer->initGL(width(), height());
|
|
||||||
loadResources();
|
|
||||||
buildScene();
|
|
||||||
controller = new FocusController(new glm::vec3(0));
|
|
||||||
controller->setCamera(renderer->getCamera());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::resizeGL(int width, int height)
|
|
||||||
{
|
|
||||||
renderer->resize(width, height);
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::paintGL()
|
|
||||||
{
|
|
||||||
renderer->render();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::mouseMoveEvent(QMouseEvent *e)
|
|
||||||
{
|
|
||||||
controller->mouseMove(e->pos().x() - last.x(), e->pos().y() - last.y());
|
|
||||||
last = e->pos();
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::mousePressEvent(QMouseEvent* e)
|
|
||||||
{
|
|
||||||
controller->mouseEvent(e->button(), true);
|
|
||||||
last = e->pos();
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
void OpenGLWidget::mouseReleaseEvent(QMouseEvent* e)
|
|
||||||
{
|
|
||||||
controller->mouseEvent(e->button(), false);
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::wheelEvent(QWheelEvent *e)
|
|
||||||
{
|
|
||||||
controller->mouseWheelEvent(e->delta());
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenGLWidget::keyPressEvent(QKeyEvent *e)
|
|
||||||
{
|
|
||||||
controller->mouseEvent(e->key(), true);
|
|
||||||
updateGL();
|
|
||||||
}
|
|
||||||
void OpenGLWidget::keyReleaseEvent(QKeyEvent *e)
|
|
||||||
{
|
|
||||||
controller->mouseEvent(e->key(), false);
|
|
||||||
updateGL();
|
|
||||||
}
|
|
46
myglwidget.h
@ -1,46 +0,0 @@
|
|||||||
#ifndef MYGLWIDGET_H
|
|
||||||
#define MYGLWIDGET_H
|
|
||||||
|
|
||||||
#include <QGLWidget>
|
|
||||||
|
|
||||||
class SparrowRenderer;
|
|
||||||
class SceneController;
|
|
||||||
|
|
||||||
namespace Ui {
|
|
||||||
class MyGLWidget;
|
|
||||||
}
|
|
||||||
|
|
||||||
class OpenGLWidget : public QGLWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
SparrowRenderer* renderer;
|
|
||||||
SceneController* controller;
|
|
||||||
QPoint last;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit OpenGLWidget(QWidget *parent = 0);
|
|
||||||
~OpenGLWidget();
|
|
||||||
void setRenderer(SparrowRenderer* myRenderer);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void initializeGL();
|
|
||||||
void loadResources();
|
|
||||||
void buildScene();
|
|
||||||
void resizeGL(int width, int height);
|
|
||||||
void paintGL();
|
|
||||||
|
|
||||||
private:
|
|
||||||
// handle events
|
|
||||||
void mouseMoveEvent(QMouseEvent *e);
|
|
||||||
void mousePressEvent(QMouseEvent* e);
|
|
||||||
void mouseReleaseEvent(QMouseEvent* e);
|
|
||||||
void wheelEvent(QWheelEvent *e);
|
|
||||||
void keyPressEvent(QKeyEvent *e);
|
|
||||||
void keyReleaseEvent(QKeyEvent *e);
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void modulesChanged();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MYGLWIDGET_H
|
|
@ -1,76 +0,0 @@
|
|||||||
#include "resourcewidget.h"
|
|
||||||
#include "ui_resourcewidget.h"
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
ResourceWidget::ResourceWidget(QWidget *parent) :
|
|
||||||
QDockWidget(parent),
|
|
||||||
ui(new Ui::ResourceWidget)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
ui->treeWidget->resresizeColumnToContents(0);
|
|
||||||
ui->treeWidget->header()->setStretchLastSection(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
ResourceWidget::~ResourceWidget()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ResourceWidget::updateList()
|
|
||||||
{
|
|
||||||
QTreeWidget* tree = ui->treeWidget;
|
|
||||||
for(QTreeWidgetItemIterator it(tree); *it; ++it)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* item = *it;
|
|
||||||
if(item->parent())
|
|
||||||
continue;
|
|
||||||
item->setBackgroundColor(0, QColor(180, 220, 255));
|
|
||||||
item->setExpanded(true);
|
|
||||||
QString text = item->text(0);
|
|
||||||
if (text == "Textures")
|
|
||||||
{
|
|
||||||
for(std::string &name : textures.names)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* myItem = new QTreeWidgetItem(item);
|
|
||||||
myItem->setText(0, QString(name.c_str()));
|
|
||||||
tree->addTopLevelItem(myItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(text == "Meshes")
|
|
||||||
{
|
|
||||||
for(std::string &name : meshes.names)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* myItem = new QTreeWidgetItem(item);
|
|
||||||
myItem->setText(0, QString(name.c_str()));
|
|
||||||
tree->addTopLevelItem(myItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(text == "Materials")
|
|
||||||
{
|
|
||||||
for(std::string &name : materials.names)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* myItem = new QTreeWidgetItem(item);
|
|
||||||
myItem->setText(0, QString(name.c_str()));
|
|
||||||
tree->addTopLevelItem(myItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(text == "Shaders")
|
|
||||||
{
|
|
||||||
for(std::string &name : shaders.names)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* myItem = new QTreeWidgetItem(item);
|
|
||||||
myItem->setText(0, QString(name.c_str()));
|
|
||||||
tree->addTopLevelItem(myItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(text == "Entities")
|
|
||||||
{
|
|
||||||
for(std::string &name : entities.names)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* myItem = new QTreeWidgetItem(item);
|
|
||||||
myItem->setText(0, QString(name.c_str()));
|
|
||||||
tree->addTopLevelItem(myItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
#ifndef RESOURCEWIDGET_H
|
|
||||||
#define RESOURCEWIDGET_H
|
|
||||||
|
|
||||||
#include <QDockWidget>
|
|
||||||
#include "resourcebase.h"
|
|
||||||
|
|
||||||
namespace Ui {
|
|
||||||
class ResourceWidget;
|
|
||||||
}
|
|
||||||
|
|
||||||
class ResourceWidget : public QDockWidget, public ResourceBase
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit ResourceWidget(QWidget *parent = 0);
|
|
||||||
~ResourceWidget();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::ResourceWidget *ui;
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void updateList();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // RESOURCEWIDGET_H
|
|
@ -1,93 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>ResourceWidget</class>
|
|
||||||
<widget class="QDockWidget" name="ResourceWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>171</width>
|
|
||||||
<height>411</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="allowedAreas">
|
|
||||||
<set>Qt::RightDockWidgetArea</set>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Resources</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="dockWidgetContents">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QTreeWidget" name="treeWidget">
|
|
||||||
<property name="alternatingRowColors">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoExpandDelay">
|
|
||||||
<number>-1</number>
|
|
||||||
</property>
|
|
||||||
<property name="indentation">
|
|
||||||
<number>20</number>
|
|
||||||
</property>
|
|
||||||
<property name="rootIsDecorated">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<attribute name="headerVisible">
|
|
||||||
<bool>false</bool>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="headerStretchLastSection">
|
|
||||||
<bool>false</bool>
|
|
||||||
</attribute>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>name</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Textures</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Meshes</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Materials</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Shaders</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Entities</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -4,10 +4,10 @@
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
|
||||||
QT += core gui opengl widgets
|
QT += core
|
||||||
|
|
||||||
TARGET = sparrowRenderer
|
TARGET = sparrowRenderer
|
||||||
TEMPLATE = app
|
TEMPLATE = lib
|
||||||
CONFIG += c++11
|
CONFIG += c++11
|
||||||
|
|
||||||
INCLUDEPATH += ../cpp_dependencies/include
|
INCLUDEPATH += ../cpp_dependencies/include
|
||||||
@ -20,11 +20,7 @@ unix {
|
|||||||
LIBS += -lGL -lGLEW -lGLU
|
LIBS += -lGL -lGLEW -lGLU
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SOURCES += shader.cpp \
|
||||||
SOURCES += main.cpp\
|
|
||||||
mainwindow.cpp \
|
|
||||||
myglwidget.cpp \
|
|
||||||
shader.cpp \
|
|
||||||
mesh.cpp \
|
mesh.cpp \
|
||||||
camera.cpp \
|
camera.cpp \
|
||||||
gridmesh.cpp \
|
gridmesh.cpp \
|
||||||
@ -41,12 +37,9 @@ SOURCES += main.cpp\
|
|||||||
phongmodule.cpp \
|
phongmodule.cpp \
|
||||||
skyboxmodule.cpp \
|
skyboxmodule.cpp \
|
||||||
basicmodule.cpp \
|
basicmodule.cpp \
|
||||||
resourcewidget.cpp \
|
framebuffer.cpp
|
||||||
modulewidget.cpp
|
|
||||||
|
|
||||||
HEADERS += mainwindow.h \
|
HEADERS += shader.h \
|
||||||
myglwidget.h \
|
|
||||||
shader.h \
|
|
||||||
mesh.h \
|
mesh.h \
|
||||||
camera.h \
|
camera.h \
|
||||||
glassert.h \
|
glassert.h \
|
||||||
@ -67,12 +60,7 @@ HEADERS += mainwindow.h \
|
|||||||
basicmodule.h \
|
basicmodule.h \
|
||||||
module.h \
|
module.h \
|
||||||
resource.h \
|
resource.h \
|
||||||
resourcewidget.h \
|
framebuffer.h
|
||||||
modulewidget.h
|
|
||||||
|
|
||||||
FORMS += \
|
|
||||||
resourcewidget.ui \
|
|
||||||
modulewidget.ui
|
|
||||||
|
|
||||||
OTHER_FILES += *.frag *.vert *.glsl *.todo
|
OTHER_FILES += *.frag *.vert *.glsl *.todo
|
||||||
|
|
||||||
|