From f199963867406fefd5acaf8e2c06181734ab9814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Sat, 17 Aug 2013 18:08:37 +0200 Subject: [PATCH] Several fixes and small changes --- data/ui_pictures.qrc | 1 + src/editing/common/freeformhelper.cpp | 6 ++-- src/editing/common/freelayerhelper.cpp | 34 +++++++++++++++++++++-- src/editing/common/mainwindow.cpp | 7 +---- src/editing/textures/maintexturesform.cpp | 17 ++++++------ src/editing/textures/maintexturesform.ui | 28 +++++++++++-------- src/rendering/render.c | 22 ++++++--------- 7 files changed, 70 insertions(+), 45 deletions(-) diff --git a/data/ui_pictures.qrc b/data/ui_pictures.qrc index 1a0f84c..4e7e83e 100644 --- a/data/ui_pictures.qrc +++ b/data/ui_pictures.qrc @@ -14,6 +14,7 @@ images/layer_down.png images/layer_rename.png images/layer_up.png + images/auto.png images/tab_atmosphere.png diff --git a/src/editing/common/freeformhelper.cpp b/src/editing/common/freeformhelper.cpp index 8d191d6..5ea3724 100644 --- a/src/editing/common/freeformhelper.cpp +++ b/src/editing/common/freeformhelper.cpp @@ -39,15 +39,15 @@ bool FreeFormHelper::eventFilter(QObject* object, QEvent* event) if (form_size.width() > 1400 && form_size.height() > 900) { - preview_size = QSize(300, 300); + preview_size = QSize(320, 320); } else if (form_size.width() < 1000 || form_size.height() < 700) { - preview_size = QSize(160, 160); + preview_size = QSize(200, 200); } else { - preview_size = QSize(220, 220); + preview_size = QSize(260, 260); } for (int i = 0; i < _previews.size(); i++) diff --git a/src/editing/common/freelayerhelper.cpp b/src/editing/common/freelayerhelper.cpp index a9a95e7..9e92ac6 100644 --- a/src/editing/common/freelayerhelper.cpp +++ b/src/editing/common/freelayerhelper.cpp @@ -67,12 +67,26 @@ void FreeLayerHelper::setDelButton(QPushButton* button) void FreeLayerHelper::setDownButton(QPushButton* button) { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerDown())); + if (_reverse) + { + connect(button, SIGNAL(clicked()), this, SLOT(moveLayerDown())); + } + else + { + connect(button, SIGNAL(clicked()), this, SLOT(moveLayerUp())); + } } void FreeLayerHelper::setUpButton(QPushButton* button) { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerUp())); + if (_reverse) + { + connect(button, SIGNAL(clicked()), this, SLOT(moveLayerUp())); + } + else + { + connect(button, SIGNAL(clicked()), this, SLOT(moveLayerDown())); + } } void FreeLayerHelper::addLayer() @@ -88,16 +102,30 @@ void FreeLayerHelper::deleteLayer() { layersDeleteLayer(_layers, _selected); emit(layersChanged()); + refreshLayers(); } - refreshLayers(); } void FreeLayerHelper::moveLayerDown() { + if (_selected > 0) + { + layersMove(_layers, _selected, _selected - 1); + _selected--; + emit(layersChanged()); + refreshLayers(); + } } void FreeLayerHelper::moveLayerUp() { + if (_selected >= 0 && _selected < layersCount(_layers) - 1) + { + layersMove(_layers, _selected, _selected + 1); + _selected++; + emit(layersChanged()); + refreshLayers(); + } } void FreeLayerHelper::tableSelectionChanged(int row, int) diff --git a/src/editing/common/mainwindow.cpp b/src/editing/common/mainwindow.cpp index 6b9f392..dcae771 100644 --- a/src/editing/common/mainwindow.cpp +++ b/src/editing/common/mainwindow.cpp @@ -15,7 +15,6 @@ #include "basepreview.h" #include "formclouds.h" #include "formatmosphere.h" -#include "formtextures.h" #include "formwater.h" #include "formrender.h" @@ -92,16 +91,12 @@ MainWindow::MainWindow() : connect(ui->action_explore, SIGNAL(triggered()), this, SLOT(explore3D())); connect(ui->action_quick_render, SIGNAL(triggered()), this, SLOT(quickPreview())); connect(ui->action_final_render, SIGNAL(triggered()), this, SLOT(finalRender())); + connect(ui->action_last_render, SIGNAL(triggered()), this, SLOT(showLastRender())); connect(ui->action_file_new, SIGNAL(triggered()), this, SLOT(fileNew())); connect(ui->action_file_save, SIGNAL(triggered()), this, SLOT(fileSave())); connect(ui->action_file_load, SIGNAL(triggered()), this, SLOT(fileLoad())); connect(ui->action_about, SIGNAL(triggered()), this, SLOT(showAboutDialog())); - form = new FormTextures(ui->tabs); - ui->tabs->addTab(form, QIcon(getDataPath("images/tab_textures.png")), tr("Textures")); - QObject::connect(form, SIGNAL(configApplied()), this, SLOT(refreshAll()), Qt::QueuedConnection); - _forms.append(form); - form = new FormWater(ui->tabs); ui->tabs->addTab(form, QIcon(getDataPath("images/tab_water.png")), tr("Water")); QObject::connect(form, SIGNAL(configApplied()), this, SLOT(refreshAll()), Qt::QueuedConnection); diff --git a/src/editing/textures/maintexturesform.cpp b/src/editing/textures/maintexturesform.cpp index 0effdd3..42579c1 100644 --- a/src/editing/textures/maintexturesform.cpp +++ b/src/editing/textures/maintexturesform.cpp @@ -12,13 +12,6 @@ MainTexturesForm::MainTexturesForm(QWidget *parent) : QWidget(parent), ui(new Ui ui->setupUi(this); - form_helper = new FreeFormHelper(this); - form_helper->setApplyButton(ui->button_apply); - form_helper->setRevertButton(ui->button_revert); - form_helper->setExploreButton(ui->button_explore); - form_helper->setRenderButton(ui->button_render); - form_helper->startManaging(); - layer_helper = new FreeLayerHelper(textures->layers, true); layer_helper->setLayerTable(ui->layersGrid); layer_helper->setAddButton(ui->layer_add); @@ -26,8 +19,16 @@ MainTexturesForm::MainTexturesForm(QWidget *parent) : QWidget(parent), ui(new Ui layer_helper->setDownButton(ui->layer_down); layer_helper->setUpButton(ui->layer_up); connect(layer_helper, SIGNAL(tableUpdateNeeded()), this, SLOT(updateLayers())); - connect(layer_helper, SIGNAL(layersChanged()), form_helper, SLOT(processDataChange())); connect(layer_helper, SIGNAL(selectionChanged(int)), this, SLOT(selectLayer(int))); + + form_helper = new FreeFormHelper(this); + form_helper->setApplyButton(ui->button_apply); + form_helper->setRevertButton(ui->button_revert); + form_helper->setExploreButton(ui->button_explore); + form_helper->setRenderButton(ui->button_render); + form_helper->startManaging(); + + connect(layer_helper, SIGNAL(layersChanged()), form_helper, SLOT(processDataChange())); } MainTexturesForm::~MainTexturesForm() diff --git a/src/editing/textures/maintexturesform.ui b/src/editing/textures/maintexturesform.ui index 79b545b..f3db5cb 100644 --- a/src/editing/textures/maintexturesform.ui +++ b/src/editing/textures/maintexturesform.ui @@ -77,11 +77,6 @@ Material - - - Modify terrain - - @@ -186,13 +181,13 @@ - + - Move layer down + Move layer up - :/buttons/logo/images/layer_down.png:/buttons/logo/images/layer_down.png + :/buttons/logo/images/layer_up.png:/buttons/logo/images/layer_up.png @@ -203,13 +198,13 @@ - + - Move layer up + Move layer down - :/buttons/logo/images/layer_up.png:/buttons/logo/images/layer_up.png + :/buttons/logo/images/layer_down.png:/buttons/logo/images/layer_down.png @@ -401,6 +396,17 @@ true + + + + Load preset + + + + :/buttons/logo/images/auto.png:/buttons/logo/images/auto.png + + + diff --git a/src/rendering/render.c b/src/rendering/render.c index cf3dac3..54113b1 100644 --- a/src/rendering/render.c +++ b/src/rendering/render.c @@ -86,8 +86,6 @@ typedef struct RenderArea* area; } RenderChunk; -#define RENDER_INVERSE 1 - static void _callbackStart(int width, int height, Color background) {} static void _callbackDraw(int x, int y, Color col) {} static void _callbackUpdate(double progress) {} @@ -602,13 +600,9 @@ void* _renderPostProcessChunk(void* data) RenderFragment* fragment; RenderChunk* chunk = (RenderChunk*)data; -#ifdef RENDER_INVERSE - for (y = chunk->area->params.height * chunk->area->params.antialias - 1 - chunk->starty; y >= chunk->area->params.height * chunk->area->params.antialias - 1 - chunk->endy; y--) -#else - for (y = chunk->starty; y <= chunk->endy; y++) -#endif - { - for (x = chunk->startx; x <= chunk->endx; x++) + for (x = chunk->startx; x <= chunk->endx; x++) +{ + for (y = chunk->starty; y <= chunk->endy; y++) { fragment = chunk->area->pixels + (y * chunk->area->params.width * chunk->area->params.antialias + x); if (fragment->flags.dirty) @@ -681,7 +675,7 @@ void renderPostProcess(RenderArea* area, int nbchunks) running = 0; loops = 0; - while ((y < ny && !area->renderer->render_interrupt) || running > 0) + while ((x < nx && !area->renderer->render_interrupt) || running > 0) { timeSleepMs(50); @@ -703,7 +697,7 @@ void renderPostProcess(RenderArea* area, int nbchunks) area->renderer->render_progress = 0.1 + ((double)area->pixel_done / (double)area->pixel_count) * 0.9; - if (y < ny && !chunks[i].thread && !area->renderer->render_interrupt) + if (x < nx && !chunks[i].thread && !area->renderer->render_interrupt) { chunks[i].finished = 0; chunks[i].interrupt = 0; @@ -729,10 +723,10 @@ void renderPostProcess(RenderArea* area, int nbchunks) chunks[i].thread = threadCreate(_renderPostProcessChunk, (void*)(chunks + i)); running++; - if (++x >= nx) + if (++y >= ny) { - y++; - x = 0; + x++; + y = 0; } } }