Re: [Celestia-developers] New celmodel module
Real-time 3D visualization of space
Status: Beta
Brought to you by:
cjlaurel
From: Chris L. <cl...@gm...> - 2010-03-08 17:16:13
|
Fridger, Thank you for the report--I'm happy to hear that cmodview and Celestia are both working on your Linux + Qt 4.6 configuration. config.h is only used on Linux, and not on Mac and Windows. In fact, I think it should only be used with the autotools build--isn't config.h automatically generated? The 'defined but not used' warnings appear whenever the byteswap.h header isn't available. I think I can eliminated by changing the functions from static to inline. --Chris On Sun, Mar 7, 2010 at 5:31 PM, Fridger Schrempp <fri...@de...> wrote: > On 03/07/2010 06:56 PM, Chris Laurel wrote: >>>>>> >>>>>> As to building the cmodview project I get errors under Windows XP >>>>>> (Qt-> >>>>>> 4.5.2, QtCreator 1.3.0) using cmodview.pro >>>>>> >>>>>> "Cannot open include file: 'QGLShaderProgram': No such file or >>>>>> directory >>>>> >>>>> As you've already determined, the QGLShaderProgram class is one of the >>>>> 'OpenGL helpers' introduced in Qt 4.6. It's quite a convenient wrapper >>>>> for core OpenGL 2.0 functionality, but not too difficult to replace. >>>>> One advantage of creating a custom version of the class is that it >>>>> could be written to use Eigen classes instead of Qt's QMatrix4x4, >>>>> QVector3D, etc. >>>>> >>>>> --Chris >>>> >>>> Yes, I was hoping that doing a custom class here would relieve the >>>> "pressure" on cmodview users to always have an up-to-date Qt >>>> installation in their OS. In a year from now or so, things may look much >>>> better for using the QGLShaderProgram helper class from the Qt >>>> distribution. >>>> >>>> Fridger >>>> >>> >>> I'm with Fridger here on not relying on the latest version of Qt. For >>> example, the latest Ubuntu release contains qt4.5 in the repositories, >>> and as per usual standard there are no plans to upgrade to newer >>> versions of Qt until a later OS release. So for now I am not >>> investigating the cmodview program. >>> >>> Andrew >> >> I've replaced QGLShaderProgram with a custom GLShaderProgram class, so >> cmodview should now build with Qt 4.6. It will not work with versions >> older than Qt 4.5, because it relies on a new constructor for >> QColorDialog (and maybe some other stuff...) >> >> The new GLShader and GLShaderProgram classes are cleaner than the >> shader wrappers in Celestia, and it would be a good idea to use them >> in both applications. We could add another module to celestia called >> celgl, which would contain some simple C++ wrappers that make working >> with OpenGL objects--textures, shaders, frame buffers, vertex buffers, >> etc.--a bit easier to work with. >> >> --Chris > > > Recently I have built and installed the latest Qt-4.6.2 under Linux for my > own development work, since the default one in openSuSE is only 4.3.x. With > Qt-creator it's very convenient to work with several Qt versions in > parallel! > > Under Qt-4.3.x building cmodview (r4995) indeed fails for obvious reasons. > Under Qt-4.6.2 building also fails, but for a trivial reason. > > The issue is in bytes.h, where <config.h> is missing. Since that inclusion > should be for MAC-OS, isn't there a typo?? > There are simple workarounds: e.g. typing 'touch config.h' in the cmod > directory. But there are also 2 warnings in bytes.h that may be related to > a missing config.h: > > -------------------- > /home/t00fri/Develop/celestia-qt/src/tools/cmod/../../celutil/bytes.h:28: > warning: ‘short unsigned int bswap_16(short unsigned int)’ defined but not > used > > /home/t00fri/Develop/celestia-qt/src/tools/cmod/../../celutil/bytes.h:33: > warning: ‘unsigned int bswap_32(unsigned int)’ defined but not used > --------------------- > > Anyway, after these little mods, cmodview comes up and seems to work fine. > Incidentally, r4995 of celestia-qt also builds and runs fine with Qt-4.6.2 > compiled for Linux. > > Fridger > > |