|Project Name||New Cross-Platform 3D Display Manager|
|Student Name||Bogolin Simion Vlad|
|Link to proposal||http://brlcad.org/wiki/User:Vladbogolin/Proposal/DisplayManager|
- Embed Qt in Tk windows
- Line drawing
- Text drawing
- Keyboard and mouse integration
- Embedding a framebuffer window
- 30 May 2013:
- Updated short description of the project on the melange page.
- 1 June 2013:
- A first step in implementing the qt display manager. Now it only prints logs similar to txt dm, but has some improvements
- 4 June 2013:
- Final version of Qt dm patch
- 14 June 2013:
- Added to g-voxel (src/conv/g-voxel.c) program the same optional arguments as the src/libged/voxelize.c (-s -t and -d).
Week 1 (17 - 23 June)
- Weekly milestone:
- As I haven't worked with Qt before I will focus on getting more familiarized with it this week and also a more detailed look on the existing dm's code to be sure I will not miss anything.
- 17 June 2013:
- Created a first qt small application. It is not something complicated. I focused on the compilation procedure and how to integrate qt with cmake.
- 18 June 2013:
- I successfully built a qt project using cmake. I struggled with the difference between Qt4 and Qt5 but finally managed to make a cmake build.
- 19 June 2013:
- Got commit access
- Updated the txt display manager patch
- 20 June 2013:
- Studied existing cmake files in order to complete integration of Qt with cmake.
- Found out a FindQt.cmake implementation and tested it: does not work.
- 21 June 2013:
- Studied existing X-dm implementation, especially the open function.
- 22 June 2013:
- A short break so I didn't do much today but I've looked on the mged dm files (mged/dm-ogl.c).
- 23 June 2013:
- Studied some more detailed Qt projects that involve basic drawing.
- Overall it was a good week in which I think I've managed to accomplish the weekly milestone. I still have to clear out some things but I'm confident I can start implementing effectively.
Week 2 (25 - 30 June)
- Weekly milestone:
- Start implementing effectively and make progress in embedding Qt in Tk window.
- 24 June 2013:
- Committed the qt display manager patch. It only prints logs now.
- Additional test to set BRLCAD_ENABLE_QT. Still needs to be improved because at the moment the path to Qt installation should be provided in the CMAKE_PREFIX_PATH.
- 25 June 2013:
- Integrated Qt in BRL-CAD's cmake build and created a small application to test the integration. Still needs to quiet warnings from Qt files.
- 26 June 2013:
- A break day so I did not do much work.
- 27 June 2013:
- IRC discussion regarding various problems: framebuffer to be used by the new display manager (i will start with a null/text framebuffer), fPIC flag
- Committed changes to complete Qt integration in cmake build and found a suitable solution for the position independent code flag at least for the moment (cmake version 2.8.11)
- Almost everything ready so tomorrow I will start working effectively to embed Qt in Tk window
- 28 June 2013:
- Found different ways to quiet warnings from Qt files.
- Read Qt documentation and studied some basic drawing applications.
- 29 June 2013:
- Started working on actual embedding.
- Small steps in order to create the Tk main window.
- Go back to Bucharest (and hopefully this will solve the internet connection problem which was a little bad here) so today is a busy day.
- 30 June 2013:
- Dealt with generic Tk window problems such as window type (top-level or embedded), creating a display, window dimension.
- Almost finished the logic behind the Tk window so that Qt can be successfully embedded in it.
- A lot of things that were needed to be clarified are now clear, especially after the IRC discussion.
- Tk main window is almost created so I have made some progress in the actual implementation.
- Still the cmake integration took more that I've expected so I can't say I've made all things I had in mind for this week but this is nothing to be worried about because I am on schedule.
- Weekly milestone:
- Finish embedding Qt in Tk window.
- 1 July 2013:
- Finished creating Tk main window: now it's displays an empty window.
- Struggled with a segfault due to doevent(mged/doevent.c) function: solved this by adding an qt_doevent(mged/dm-qt.c) function which does nothing for the moment.