Buddhi
|
|
« on: March 11, 2014, 10:12:35 PM » |
|
Hi
I decided to redevelop Mandelbulber program almost from scratch. I stuck at point when there is very difficult to fulfill new users requirements. However during last years I have learned a lot about C++ and general programming approaches. I hope this gave me very good foundation for creating new application which will be much more C++ than C. What will be changed the most: - user interface from GTK+ to Qt - GUI will be completely redesigned to be much more user friendly (Qt Designer is really good tool to create interfaces) - all internal parameters will be stored using stl containers (like std::map), which help me to create many functions to manage different types of fractal parameters representation (csv files, text files, change of some parameter for all keyframes, different interpolation methods for different parameters, etc...) - probably hybrid formulas will work in different ways (combine, multiplexing, ...) - will be material editor
I can't promise that old settings files will be compatible with new version. I decided to change many things and old data structures are not enough flexible. However I will try to create settings converter to provide even 90% compatibility.
I will inform you about work progress. There is a lot of to learn (Qt is new for me) and a lot of to do, so it will take some time. What is already done: - flexible container for all fractal parameters - first trials with Qt windows and widgets ... not so much but this is very beginning
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #1 on: March 11, 2014, 10:38:32 PM » |
|
Good choice - Qt is an excellent toolkit. Is also has easy support for OpenGL and even OpenCL. - all internal parameters will be stored using stl containers (like std::map), which help me to create many functions to
You might consider using Qt's own container library ( http://qt-project.org/doc/qt-4.8/containers.html). In my opinion, it is nicer than the STL, e.g. you can iterate using a 'foreach' syntax, and you can easily serialize the content using QDataStream.
|
|
|
Logged
|
|
|
|
lukesleftleg
|
|
« Reply #2 on: March 11, 2014, 11:36:08 PM » |
|
I think this is a really exciting announcement Buddhi, even if it means it might be a while before another release. Mandelbulber has reached a really interesting stage in terms of what the code can do, but I could see that the design was starting to make it hard to progress. Power to your elbow, good Sir, but you take all the time you need. I'll certainly be keeping up with any development reports you decide to share with us with great interest though. The very best of luck, and thank you once again for all you've done so far.
|
|
|
Logged
|
|
|
|
LMarkoya
Strange Attractor
Posts: 282
|
|
« Reply #3 on: March 12, 2014, 12:16:43 AM » |
|
I am sure everyone here and in the fractal world will be excited about your new offering Best Wishes and I look forward to seeing whatever you come up with, along with hundreds, if not thousands of others
|
|
|
Logged
|
|
|
|
thargor6
Fractal Molossus
Posts: 789
|
|
« Reply #4 on: March 12, 2014, 01:05:19 AM » |
|
Sounds like a lot of work, but seems to be an excellent decision. I wish you good luck and enough power to succeed :-) I'm not using fractal-software (other than mine) because I have no time, but if I would, then Mandelbulber would be my choice. It is already an excellent product!
All the best, Andreas
|
|
|
Logged
|
|
|
|
KRAFTWERK
|
|
« Reply #5 on: March 12, 2014, 07:46:30 PM » |
|
I am sure everyone here and in the fractal world will be excited about your new offering Best Wishes and I look forward to seeing whatever you come up with, along with hundreds, if not thousands of others
+1 on that Louis, and a great decision Buddhi, looking forward to try it out, just PM if you need beta testing. (on mac )
|
|
|
Logged
|
|
|
|
quaz0r
Fractal Molossus
Posts: 652
|
|
« Reply #6 on: March 12, 2014, 08:26:03 PM » |
|
exciting news. do you have any idea what general time frame you are looking at to accomplish a release? a few months? several months? a year? more than a year?
|
|
|
Logged
|
|
|
|
Buddhi
|
|
« Reply #7 on: March 12, 2014, 08:40:09 PM » |
|
exciting news. do you have any idea what general time frame you are looking at to accomplish a release? a few months? several months? a year? more than a year?
There is no timeline for this. Everything depends how many problems I will encounter during development and how much help I will get from you. In few days I will establish new subversion repository to share actual source code.
|
|
|
Logged
|
|
|
|
quaz0r
Fractal Molossus
Posts: 652
|
|
« Reply #8 on: March 12, 2014, 09:07:42 PM » |
|
i will be happy to help if i can
|
|
|
Logged
|
|
|
|
JohnVV
|
|
« Reply #9 on: March 13, 2014, 05:45:32 AM » |
|
gtk or QT
go with QT
as you are finding out GTK is great BUT --- yes a BUT --- it dose not scale well and uses more and more system resources
even Gimp is moving Off "the Gimp Tool Kit "
and even Chrome is even moving off GTK
QT4 is very stable , widely used , FAST and fast ( needs repeating fast ) and MultiOS Linux ,mac , bsd and even Windows will run it .
the QT creator *.pro build files are VERY strait forward and easy to "read the code" or using the everyday qmake is a easy configure process for new users
|
|
|
Logged
|
Running OpenSUSE 42.1-64bit & ScientificLinux-6.7-64bit I don't pitch Linux to my friends,I let Microsoft do it for me!"
|
|
|
mclarekin
|
|
« Reply #10 on: March 14, 2014, 11:36:11 AM » |
|
|
|
|
Logged
|
|
|
|
element90
|
|
« Reply #11 on: March 14, 2014, 01:08:08 PM » |
|
I moved Saturn and Titan from C++/Gtkmm to Qt with version 4.0. The reason was so that I could develop an OS X version as getting the native version of Gtkmm (i.e.without X Windows) to build always failed. The move from Gtk 2 to Gtk 3 was far from easy so it was easier to jump toolkits. The OS X version of Saturn and Titan was never released because my iMac effectively died ,its graphics card failed and will now only boot into command line Linux. I had serious performance issues with Qt on OS X, I hadn't tracked down the cause by the time the iMac became sick.
I found constructing user interfaces in code easy and flexible, trying to use Qt's integrated GUI designer complicates matters.
To speed the transition to Qt I replaced Gtkmm threads with boost threads as Qt has a QThread class but no means of using methods within a class as threads. The scheme works provided signals transmitted from the thread methods DO NOT have parameters.
Qt classes can not be used as subclasses to a template class. If template classes are to be used they can be wrapped in a Qt class, I had to do that for the "CalculatingUnit" template class instantiated with long double and multi-precision in CalculatingUnitLD and CalculatingUintMP Qt classes.
Embedding parameter data in png files had to be reworked as the space allowed by Qt was too small for the data I embed into Saturn seed files.
In general I've found Qt much easier than Gtkmm. The creation of source packages for Saturn and Titan was complicated as getting GNU autotools to work with Qt is tricky.
I use NetBeans 7.3.1 for Qt development on Linux as its integration with subversion is excellent. After a lot investigation I couldn't work out how to get QtCreator to play nicely with subversion, it's probably possible, I just don't know how.
Qt on Windows also works well as QtCreator can use Microsoft's compilers which produce much faster code than the GNU compilers. Qt 4.8 is easier to deal with than Qt 5.x, some additional dependencies were added with Qt 5.0 and the documentation for exactly what it is required for distribution is somewhat lacking (last looked at around Dec 2013/Jan 2014). As NetBeans 7.3.1 doesn't support Qt 5 using Qt 4.8 for Linux and Windows makes sense.
|
|
|
Logged
|
|
|
|
Buddhi
|
|
« Reply #12 on: March 16, 2014, 03:49:33 PM » |
|
Thanks for all suggestions. Today I made decision how I will do this application. I tried some solutions: - Standard C++ application edited in Eclipse with qmake - more problems than advantages because of lack of integration between qmake and Eclipse. Adding of event slots would be big pain. - Qt Designer Qt Creator - Very good IDE but lack of Subversion integration - Standard C++ application edited in Eclipse and interface created as .ui files and loaded during runtime using QUiLoader - works very well and make application more independent from UI (better flexibility in the future) Latest one is the best for me. It gives me opportunity to use Qt Designer and my favorite IDE for C++. Now I'm trying to find the best layout of GUI. In attached file there is some preview. On sides of the window there is used Dock Widget which allows to move sections of ui to the place where user want. On the top will be toolbar (not added yet). In pull-down-menu there will be options like save settings, save images, etc... Most of values will be possible to set by slider or by value. Some sliders will work as logarithmic, because of very wide range of value.
|
|
« Last Edit: March 16, 2014, 06:16:28 PM by Buddhi »
|
Logged
|
|
|
|
Buddhi
|
|
« Reply #13 on: March 16, 2014, 06:08:46 PM » |
|
New SVN repository is here: http://code.google.com/p/mandelbulber2/Everybody who want to join to edit the code and ui, please contact with me. I need also somebody to test it (even this scratch version) under Windows and Mac. I would like to be sure that I'm not using some libraries which are not multiplatform. Every help is really appreciated
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #14 on: March 16, 2014, 06:12:05 PM » |
|
You should consider Qt Creator as well. It has Qt Designer built-in, and supports SVN. It has matured to be a quite powerful IDE.
|
|
|
Logged
|
|
|
|
|