Logo by Cyclops - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. March 28, 2024, 06:14:02 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1] 2 3 ... 6   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: next will be Mandelbulber 2.0 with Qt interface  (Read 17931 times)
0 Members and 2 Guests are viewing this topic.
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« 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
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« 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
Navigator
*****
Posts: 63


« 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. smiley
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



WWW
« 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
Global Moderator
Fractal Senior
******
Posts: 1439


Virtual Surreality


WWW
« 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 wink )
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
Fractal Iambus
***
Posts: 895



WWW
« 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
Conqueror
*******
Posts: 123


having fun


« 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
Fractal Senior
******
Posts: 1739



« Reply #10 on: March 14, 2014, 11:36:11 AM »

combine, multiplexing ... I can't wait smiley, but on the other hand, I have still so much to learn and experiment on with 1.21 that I could happily wait years for your next version. A Beer Cup A Beer Cup A Beer Cup
Logged
element90
Strange Attractor
***
Posts: 298



WWW
« 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

Elelemt90 Fractals blog www.element90.wordpress.com
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« 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 smiley 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.

 


* Mandelbulber_qt.png (135.2 KB, 1415x858 - viewed 550 times.)
« Last Edit: March 16, 2014, 06:16:28 PM by Buddhi » Logged

Buddhi
Fractal Iambus
***
Posts: 895



WWW
« 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
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« 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
Pages: [1] 2 3 ... 6   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
"Alien Interface" revisited Images Showcase (Rate My Fractal) David Makin 3 2970 Last post January 26, 2007, 01:08:39 PM
by David Makin
Mandelbulber 0.80 Mandelbulber Buddhi 5 7964 Last post June 27, 2010, 05:30:54 PM
by knighty
(1) Hello, (2) Sad interface (3) my book and web site Meet & Greet Ventrella 6 2977 Last post October 08, 2012, 02:14:53 AM
by M Benesi
Chaotica 1.5 animation features and user interface improvements Chaotica lycium 0 1978 Last post January 07, 2014, 05:45:26 AM
by lycium
Mandelbrot symbolics / combinatorics web interface Mandelbrot & Julia Set claude 4 2525 Last post March 15, 2016, 09:35:06 PM
by claude

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.296 seconds with 26 queries. (Pretty URLs adds 0.015s, 2q)