Daily Progress

Project Info

Project Name New Cross-Platform 3D Display Manager
Student Name Bogolin Simion Vlad
IRC nick vladbogo
Link to proposal


  • Embed Qt in Tk windows
  • Drawing
    • Line drawing
    • Text drawing
  • Keyboard and mouse integration
  • Embedding a framebuffer window


Community bonding

  • 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:
  • 14 June 2013:

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:
  • 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.
  • Conclusion:
    • 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.
  • Conclusion:
    • 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.

Week 3

  • 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.
  • 2 July 2013:
    • Studied QPixmap examples.
  • 3 July 2013:
    • Review existing dm X implementation and focus on pixmap creation.
  • 4 July 2013:
    • After updating to the latest sources Tcl_Eval from dm_open failed. Solved it by recompiling the whole code again.
    • Read about QApplication in detail because when I tried to create some Qt widgets I got a runtime error saying that QApplication is required.
    • Looked on the drawBegin function to see how drawing is dealt with in the current implementation.
    • Ignored the float-equal warning for libdm so that the code compiles with strict compilation on.
  • 5 July 2013:
    • Break day
  • 6 July 2013:
    • Studied an existing Qt and Tk integration.