[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/games/kolf-ng
From: Huan Zeng <zh.issac () gmail ! com>
Date: 2009-08-16 15:40:07
Message-ID: 1250437207.413828.21574.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1011998 by hzeng:
*move blending to background thread.
*issue:a crash happened after using fill button and then switch to blender tab, will fix it later.
M +1 -0 CMakeLists.txt
M +12 -0 editor/blender-manager.cpp
M +6 -0 editor/blender-manager.h
--- trunk/playground/games/kolf-ng/CMakeLists.txt #1011997:1011998
@@ -14,6 +14,7 @@
set(kolfng_SRCS
3d/renderstatemanager.cpp
3d/texturepool.cpp
+ editor/blender-blendthread.cpp
editor/blender-configwidget.cpp
editor/blender-delegate.cpp
editor/blender-imageviewer.cpp
--- trunk/playground/games/kolf-ng/editor/blender-manager.cpp #1011997:1011998
@@ -17,6 +17,7 @@
***************************************************************************/
#include "../elements/utils-heightmap.h"
+#include "blender-blendthread.h"
#include "blender-delegate.h"
#include "blender-imageviewer.h"
#include "blender-model.h"
@@ -46,6 +47,7 @@
, m_drawingBoard(0)
, m_texturesModified(false)
{
+ m_blendThread = new BlendThread(this, this);
m_view->setModel(m_model);
m_view->setItemDelegate(m_delegate);
m_view->setSelectionBehavior(QAbstractItemView::SelectRows);
@@ -128,6 +130,11 @@
void Kolf::BlenderManager::startBlending()
{
+ m_blendThread->start();
+}
+
+void Kolf::BlenderManager::processBlending()
+{
bool heightmapModified = setHeightmap();
if(!m_isConfigurable || (!m_texturesModified && !heightmapModified)
|| !m_startBlendingAction->isEnabled())
@@ -161,8 +168,13 @@
m_texturesModified = false;
m_isConfigurable = true;
+}
+
+void Kolf::BlenderManager::blendingFinished()
+{
//changeBrightness() will make the blending result shown on the image viewer.
changeBrightness(0);
+ m_blendThread->terminate();
}
bool Kolf::BlenderManager::setHeightmap()
--- trunk/playground/games/kolf-ng/editor/blender-manager.h #1011997:1011998
@@ -26,6 +26,7 @@
class QListView;
namespace Kolf
{
+ class BlendThread;
class DrawingBoard;
class ImageViewer;
class TextureListModel;
@@ -56,12 +57,16 @@
void delTextures();
void loadDefaultTextureSet();
void startBlending();
+ void processBlending();
+ void blendingFinished();
void showHeightmap();
void changeBrightness(int value);
void setOutputWidth(int width);
void setOutputHeight(int height);
void saveResult();
+ friend class BlendThread;
+
private:
TextureListModel* m_model;
TextureListDelegate* m_delegate;
@@ -77,6 +82,7 @@
KAction* m_startBlendingAction;
DrawingBoard* m_drawingBoard;
bool m_texturesModified;
+ BlendThread* m_blendThread;
};
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic