I've made celestia from the latest cvs source. Now I've discovered that after I've selected an object( star, planet, asteroid) Celestia goes to it in a normal way. But if I use [G] or "goto"again the object becomes very shaky on the screen and will be stable after a few seconds with a view as usual with this command.
I didn't check this behaviour with earlier versions, so I don't know which release of a file is responsible for it. Maybe someone else have seen this before. Anyway I've kept a history of the CVS-updates so I'll try to figure out the faulty version of file(s) if any is responsible for it.
Display "shaky" after goto cmd.
HB,
Can you provide a Cel://URL?
Or an asteroid name and distance?
And your system specs?
Using Celestia built from CVS on June 26, when I GoTo Polaris or Ceres or Gaspra many times, I don't see this problem. As best I can tell no source files have been updated since the 26th.
For me, the second GoTo (g) command stops at a distance that's 1% of the radius of the object and subsequent g commands do nothing.
I have to use the mouse to get closer, but it doesn't shake.
System:
512MB 2.4MHz P4, WinXP Pro SP1
128MB FX 5200 drivers v56.72
Celestia cvs built 26 June 04
Can you provide a Cel://URL?
Or an asteroid name and distance?
And your system specs?
Using Celestia built from CVS on June 26, when I GoTo Polaris or Ceres or Gaspra many times, I don't see this problem. As best I can tell no source files have been updated since the 26th.
For me, the second GoTo (g) command stops at a distance that's 1% of the radius of the object and subsequent g commands do nothing.
I have to use the mouse to get closer, but it doesn't shake.
System:
512MB 2.4MHz P4, WinXP Pro SP1
128MB FX 5200 drivers v56.72
Celestia cvs built 26 June 04
Selden
-
Topic authorHB
- Posts: 132
- Joined: 26.11.2002
- With us: 21 years 11 months
- Location: Eindhoven, The Netherlands
Selden,
I've investigate this problem with earlier versions of Celestia:
A CVS-version compiled on the 28th of April works fine. With fov of 35 degrees brings me aproxx 25513 Km from Earth. When I hit the [G] key I'll aproach the Earth to 63.871Km without funny behaviour.
The next version I've compiled from CVS is from the 21 of May which has that previous described problem.
The only difference between this version of sourcecode and the previous one are Render.h(1.53==>1.54) and Render.cpp(1.148==>1.149)
This can be the problem, however I've doubts about that.
But the big difference between those versions are that the version of 28th of April is the last version which can be compiled with a VC++ 6.0 compiler.
All later versions has to be build with the .net compiler(VC++ 7.0)
While compiling this sourcecode with .net VC++, 74 warnings appear (see list below). The command line version produce the same kind of errors.
Perhaps this is causing the problem????
AMD2500+, 512Mb, 1.8GHz, nVidia fx5200, 128Mb, Winxp+sp1, VS.net 7.0
Compiling...
winviewoptsdlg.cpp
wintourguide.cpp
wintourguide.cpp(122) : warning C4018: '<' : signed/unsigned mismatch
winstarbrowser.cpp
winssbrowser.cpp
winmain.cpp
winmain.cpp(1631) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(1772) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(2785) : warning C4018: '>=' : signed/unsigned mismatch
winmain.cpp(3356) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3356) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3432) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3432) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3945) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(3992) : warning C4018: '<' : signed/unsigned mismatch
winlocations.cpp
winhyperlinks.cpp
wingotodlg.cpp
wineclipses.cpp
wineclipses.cpp(86) : warning C4018: '<' : signed/unsigned mismatch
winbookmarks.cpp
url.cpp
url.cpp(257) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
url.cpp(451) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
url.cpp(451) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
ODMenu.cpp
ODMenu.cpp(594) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
ODMenu.cpp(595) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
ODMenu.cpp(596) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
imagecapture.cpp
favorites.cpp
eclipsefinder.cpp
destination.cpp
destination.cpp(79) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
configfile.cpp
celestiacore.cpp
celestiacore.cpp(245) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(261) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(998) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1001) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1004) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1007) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1010) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1971) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1978) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1980) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1997) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1999) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2001) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2003) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2024) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2026) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2032) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2034) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2036) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2038) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2040) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2042) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2087) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2089) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2091) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2093) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2298) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2862) : warning C4244: 'argument' : conversion from 'double' to 'GLfloat', possible loss of data
celestiacore.cpp(2971) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(2999) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(2999) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3079) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3160) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3161) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3172) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3193) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3226) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3226) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3242) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3242) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3243) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3243) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3255) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3255) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3265) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3265) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3275) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3275) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3340) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3340) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3342) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3342) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3346) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3346) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3348) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3348) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
avicapture.cpp
Compiling resources...
Linking...
I've investigate this problem with earlier versions of Celestia:
A CVS-version compiled on the 28th of April works fine. With fov of 35 degrees brings me aproxx 25513 Km from Earth. When I hit the [G] key I'll aproach the Earth to 63.871Km without funny behaviour.
The next version I've compiled from CVS is from the 21 of May which has that previous described problem.
The only difference between this version of sourcecode and the previous one are Render.h(1.53==>1.54) and Render.cpp(1.148==>1.149)
This can be the problem, however I've doubts about that.
But the big difference between those versions are that the version of 28th of April is the last version which can be compiled with a VC++ 6.0 compiler.
All later versions has to be build with the .net compiler(VC++ 7.0)
While compiling this sourcecode with .net VC++, 74 warnings appear (see list below). The command line version produce the same kind of errors.
Perhaps this is causing the problem????
AMD2500+, 512Mb, 1.8GHz, nVidia fx5200, 128Mb, Winxp+sp1, VS.net 7.0
Compiling...
winviewoptsdlg.cpp
wintourguide.cpp
wintourguide.cpp(122) : warning C4018: '<' : signed/unsigned mismatch
winstarbrowser.cpp
winssbrowser.cpp
winmain.cpp
winmain.cpp(1631) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(1772) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(2785) : warning C4018: '>=' : signed/unsigned mismatch
winmain.cpp(3356) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3356) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3432) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3432) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
winmain.cpp(3945) : warning C4018: '<' : signed/unsigned mismatch
winmain.cpp(3992) : warning C4018: '<' : signed/unsigned mismatch
winlocations.cpp
winhyperlinks.cpp
wingotodlg.cpp
wineclipses.cpp
wineclipses.cpp(86) : warning C4018: '<' : signed/unsigned mismatch
winbookmarks.cpp
url.cpp
url.cpp(257) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
url.cpp(451) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
url.cpp(451) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
ODMenu.cpp
ODMenu.cpp(594) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
ODMenu.cpp(595) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
ODMenu.cpp(596) : warning C4244: '=' : conversion from 'double' to 'BYTE', possible loss of data
imagecapture.cpp
favorites.cpp
eclipsefinder.cpp
destination.cpp
destination.cpp(79) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
configfile.cpp
celestiacore.cpp
celestiacore.cpp(245) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(261) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(998) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1001) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1004) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1007) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1010) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1971) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1978) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1980) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1997) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(1999) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2001) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2003) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2024) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2026) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2032) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2034) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2036) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2038) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2040) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2042) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2087) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2089) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2091) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2093) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2298) : warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data
celestiacore.cpp(2862) : warning C4244: 'argument' : conversion from 'double' to 'GLfloat', possible loss of data
celestiacore.cpp(2971) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(2999) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(2999) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3079) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3160) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3161) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3172) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3193) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3226) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3226) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3242) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3242) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
celestiacore.cpp(3243) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3243) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3255) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3255) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3265) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3265) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3275) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3275) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3340) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3340) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3342) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3342) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3346) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3346) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3348) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
celestiacore.cpp(3348) : warning C4244: 'argument' : conversion from 'int' to 'GLfloat', possible loss of data
avicapture.cpp
Compiling resources...
Linking...
HB
HB,
I'm sorry to say that I can't get mine to "shake" at all. I see the same warnings that you report when I compile from cvs. I'm using MS Visual Studio .NET 2003 Academic, which apparently includes v7 of the C++ compiler.
I get the same non-shaking on my home system:
256MB 500MHz P3, Win XP Pro SP1
128MB Ti 4200, drivers v56.72
Celestia compiled June 26.
Hmm. I just noticed that I had 2x antialiasing and anisotropy enabled. I've now changed them back to "Application controlled". Still no shaking.
One major difference is that both of the systems that I use have Intel CPUs, while yours is AMD. Some of the compiler optimizations are going to be different because of the different "vector" instruction sets. Maybe that's where the problem is?
I'm sorry to say that I can't get mine to "shake" at all. I see the same warnings that you report when I compile from cvs. I'm using MS Visual Studio .NET 2003 Academic, which apparently includes v7 of the C++ compiler.
I get the same non-shaking on my home system:
256MB 500MHz P3, Win XP Pro SP1
128MB Ti 4200, drivers v56.72
Celestia compiled June 26.
Hmm. I just noticed that I had 2x antialiasing and anisotropy enabled. I've now changed them back to "Application controlled". Still no shaking.
One major difference is that both of the systems that I use have Intel CPUs, while yours is AMD. Some of the compiler optimizations are going to be different because of the different "vector" instruction sets. Maybe that's where the problem is?
Selden
-
Topic authorHB
- Posts: 132
- Joined: 26.11.2002
- With us: 21 years 11 months
- Location: Eindhoven, The Netherlands
Selden,
Your reply, which is about a suspect of a different way of handling vectors for a AMD processor, has pointed me in the right direction of solving the problem.A few additional compiler directives has been set by default during conversion from IDE VC++ 6.0 into IDE VC++.net(7.0)and which differs from the VC++6.0 version. (except /EHsc which is the same as /GX) After disabling these directives the build of Celestia is working fine again.Thanks for showing me the way.
Since I was busy spitting around in this area of the IDE with the above,I have integrate the "celx" feature into the VC++.net IDE. So there is no difference anymore in the build of Celestia made with the commandline or IDE compiler.
Your reply, which is about a suspect of a different way of handling vectors for a AMD processor, has pointed me in the right direction of solving the problem.A few additional compiler directives has been set by default during conversion from IDE VC++ 6.0 into IDE VC++.net(7.0)and which differs from the VC++6.0 version. (except /EHsc which is the same as /GX) After disabling these directives the build of Celestia is working fine again.Thanks for showing me the way.
Since I was busy spitting around in this area of the IDE with the above,I have integrate the "celx" feature into the VC++.net IDE. So there is no difference anymore in the build of Celestia made with the commandline or IDE compiler.
HB
-
Topic authorHB
- Posts: 132
- Joined: 26.11.2002
- With us: 21 years 11 months
- Location: Eindhoven, The Netherlands
VS.net Settings
Selden,
I have made a description of what and how I've changed the compiler- directives for building of Celestia with the IDE version of VS.net
It's a long story but here it is:
Step by step I'll explain the changes in settings of the compiler directives for VC++ 7.0 IDE version:
If you're able to build Celestia properly with the VC++ 6.0 compiler you can convert the workspace into a solution for the .net version but you still have to change some directives.
After you have installed the VS.net application right-click on the file Celestia.dsw, choose "Open with Visual Studio.net" . The VS.net program starts and will tell you that you have to convert this workspace into a so called solution. Click on the "Yes" button for all the projects within Celestia. The VS.net program starts in debug-mode.
On the menu choose "Build" followed by "Configuration Manager", set the Active Solution Configuration to "Release". Set all the projects of this Solution to "Release" as well.
Close the Configuration Manager.
On the rightside of your screen you should see a small pane called "Solution Explorer" if not select on the menu "View" followed by "Solution Explorer". Select in the Explorer "Celestia".
Below this small pane you'll see a property pane with four buttons on top of it. Click on the most right button.(Property Pages) or select in the menu "Project" followed by "Properties".
A window pops-up where you can change or set the configuration for the compiler.
In a attemp to avoid questions afterwards I'll give the settings for each relevant part, not an explanation in what it does (click "help" on each setting if you want to know more about it).
General:
Output directory: .\release
Intermediate Directory: .\release
Project Defaults:
Configuration Type: Application(.exe)
Build Browser Information: No
Use of MFC: Use Standard Windows Libraries
Use of ATL: No use of ATL
Minimize CRT use in ATL: No
Character set: Use Multi-Byte Character set
Use Managed Extension: No
Whole Program Optimization: No
C/C++
General:
Additional Include Directories: ..; ..\..\inc\libjpeg; ..\..\inc\libpng; ..\..\inc\libz
Resolve #using Reference:
Debug Information Format: Disabled
Compile as Managed: Not using managed extensions
Suppres Startup Banner: Yes(/nologo)
Warning Level: Level3(/W3)
Detect 64-bit Portability Issues: No
Treat Warnings As Errors: No
Optimization:
Optimization: Maximum Speed(/O2)
Global Optimization: No
Inline Function Expansion: Disable (was default at /Ob1)
Enable intrinsic Functions: No
Floating Point Consistency: Default Consistency
Favor Size or Speed: Neither
Omit Frame Pointers: No
Enable Fiber-safe Optimization: No
Optimize For Processor: Blended
Optimize for Windows Application: No
Preprocessor
Preprocessor Defenitions: WIN32; NDEBUG; _WINDOWS; WINVER=0X0400; _WIN32_WINNT=0X0400 (after click on the button[...] at the right of this line an editor appears."Inherit from project default" must be checked and in the screen "Inherited Values" should mention: _MBCS)
Ignore Standard Include Path: No
Generate Preprocessed File: No
Keep Comments: No
Code Generation
Enable String Pooling: No (Was /GF by default)
Enable Minimal Rebuild: No
Enable C++ Exceptions: Yes(/EHsc) (is the same as /GX)
Smaller Type Check: No
Basic Runtime Checks: Default
Runtime Library: Single-threaded(/ML)
Struct Member Alignement; Default
Buffer Security Check: No
Enable Function Level Linking: No (was /Gy by default)
Language: All Items set to "No".
Precompiled Header
Create/Use Precompiled Header: Automatically Generate(/YX)
Create/Use PCH Trough File: Clear this line (was stdafx.h)
Precompiled Header File: .\Release/Celestia.pch
Output Files
Expand Attrbuted Source: No
Assembler Output: No Listing
ASM Listing Location: Clear this line
Object file Name: .\Release/
Program Database file Name: .\Release/
Browse Information
Enable Browse Information: None
Browse File:
Advanced
Calling convention: __cdecl(/Gd)
Compile As: Default
Disable Specific Warnings:
Force Includes:
Force #using:
Show Includes: No
Undefine Preprocessor Definitions:
Undefine All Preprocessor Definitions: No
Command Line
The command line look like this:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D _WIN32_WINNT=0x0400" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/Celestia.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Linker
General
Output File: .\release/Celestia.exe
Show Progress: Not Set
Version:
Enable Incremental Linking: No(INCREMENTAL:NO)
Suppres Startup Banner: Yes(/NOLOGO)
Ignore Import Library: No
Register Output: No
Additional Library directories: .; ..\..\lib; ..\cel3ds\Release; ..\celengine\Release; ..\celmath\Release; ..\celtxf\Release; ..\celutil\Release
Input
Additional Dependencies: comctl32.lib opengl32.lib glu32.lib winmm.lib libjpeg.lib libpng1.lib zlib.lib cel-3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib
Ignore All Default Libraries: No
All other item are not filled in.
Debug
Generate Debug Info: No
Generate Program Database File: .\Release\Celestia.pdb
Strip Private Symbols:
Generate Map File: No
Map File Name:
Map exports: No
Map lines: No
System
Subsystem: Windows(/SUBSYSTEM:WINDOWS)
Heap reserve size: 0
Heap Commit Size: 0
Stack Reserve Size: 0
Stack Commit Size: 0
Enable Large Addresses: Default
Terminal Server: default
Swap Run From CD: No
Swap Run From Network: No
Optimization
References: default
Enable COMDAT Folding: Default
Optimize for Windows98: Default
Function Order:
Embedded IDL
MIDL Commands:
Ignore Embedded IDL: No
Merged IDL Base File Name:
Type Library
TypeLib Resource ID: 1
Advanced
Entry Point:
Resource Only DLL: No
Set Checksum: No
Base Address:
Turn Off Assembly Generation: No
Delay Loaded DLL: Don't Support Unload
Import Library:
Merge sections:
Target Machine: Not Set
Command Line
The command line look like this:
/OUT:".\Release/Celestia.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"." /LIBPATH:"..\..\lib" /LIBPATH:"..\cel3ds\Release" /LIBPATH:"..\celengine\Release" /LIBPATH:"..\celmath\Release" /LIBPATH:"..\celtxf\Release" /LIBPATH:"..\celutil\Release" /PDB:".\Release/Celestia.pdb" /SUBSYSTEM:WINDOWS comctl32.lib opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Additional Options: /MACHINE:I386
Resources
General
Preprocessor definitions: NDEBUG
Culture: English(US)(0x0409)
Additional Include Directories:
Ignore Standard Include Path: No
Show Progress: No
Resource File Name:$(IntDir)/$(InputName).res
Command Line:
The commandline look like this:
/d "NDEBUG" /l 0x409 /fo".\Release/Celestia.res"
All other settings for MIDL,Browse Information, Build Event etc. can be left as it is.
The directives for the other projects (cel3ds, celengine, celmath, celtxf, celutil) has to be set as well. Except for some directories or libraries they look the same as above.
I will show the command lines only, with the above you must be able to achieve the proper settings.
Cel3ds:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/cel3ds.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celengine:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celengine.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celmath:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celmath.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celtxf:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celtxf.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celutil:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D "_WIN32_WINNT=0x0400" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celutil.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
To integrate the CELX feature into IDE you have to do the following:
Select project "Celestia" and open "Property Pages". Goto C/C++ tab/ general. Open the editor([...]-key) of the "Additional Include Directories".Goto the end of the list and add: ..\..\inclua
Select the Preprocessor-tab, open the editor of the Preprcessor Definitions. Add on the end of the list: CELX
The commandline of the C/C++-tab look like this:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\lua" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D "_WIN32_WINNT=0x0400" /D "CELX" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/Celestia.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Select now the "Linker"-tab and choose Input / "Additional Dependencies". Open the editor and add on the end of the list: lua.lib and Lualib.lib
The commandline of the Linker look like this:
/OUT:".\Release/Celestia.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"." /LIBPATH:"..\..\lib" /LIBPATH:"..\cel3ds\Release" /LIBPATH:"..\celengine\Release" /LIBPATH:"..\celmath\Release" /LIBPATH:"..\celtxf\Release" /LIBPATH:"..\celutil\Release" /PDB:".\Release/Celestia.pdb" /SUBSYSTEM:WINDOWS comctl32.lib opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib lua.lib lualib.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Confirm the modifications on the property pages and close this window.
Right-click in the Solution Explorer on the Source Files of project"Celestia", choose "Add" and "Add Existing Item" Select on the list of Source files: celx.cpp
Do the same for the Header Files with celx.h
Recompile the solution. At the end no errors should appear but unfortunatly 79 warnings.
Note: There is one compiler directive which is set automatically by default( /c) and one remains undocumented (/FD)in this version.
With the above settings the directory stucture of the Source Code must look like this:
\src(the Celestia Source Code)
\lib(the libraries)
\inc(the include files)
You can find the latest(winlibs-new.zip) Libraries and the Include files at: http://ennui.celestiaproject.net/celestia/files
Hopefully this contribution clears some doubts about the IDE version of Visual Studio.
I have made a description of what and how I've changed the compiler- directives for building of Celestia with the IDE version of VS.net
It's a long story but here it is:
Step by step I'll explain the changes in settings of the compiler directives for VC++ 7.0 IDE version:
If you're able to build Celestia properly with the VC++ 6.0 compiler you can convert the workspace into a solution for the .net version but you still have to change some directives.
After you have installed the VS.net application right-click on the file Celestia.dsw, choose "Open with Visual Studio.net" . The VS.net program starts and will tell you that you have to convert this workspace into a so called solution. Click on the "Yes" button for all the projects within Celestia. The VS.net program starts in debug-mode.
On the menu choose "Build" followed by "Configuration Manager", set the Active Solution Configuration to "Release". Set all the projects of this Solution to "Release" as well.
Close the Configuration Manager.
On the rightside of your screen you should see a small pane called "Solution Explorer" if not select on the menu "View" followed by "Solution Explorer". Select in the Explorer "Celestia".
Below this small pane you'll see a property pane with four buttons on top of it. Click on the most right button.(Property Pages) or select in the menu "Project" followed by "Properties".
A window pops-up where you can change or set the configuration for the compiler.
In a attemp to avoid questions afterwards I'll give the settings for each relevant part, not an explanation in what it does (click "help" on each setting if you want to know more about it).
General:
Output directory: .\release
Intermediate Directory: .\release
Project Defaults:
Configuration Type: Application(.exe)
Build Browser Information: No
Use of MFC: Use Standard Windows Libraries
Use of ATL: No use of ATL
Minimize CRT use in ATL: No
Character set: Use Multi-Byte Character set
Use Managed Extension: No
Whole Program Optimization: No
C/C++
General:
Additional Include Directories: ..; ..\..\inc\libjpeg; ..\..\inc\libpng; ..\..\inc\libz
Resolve #using Reference:
Debug Information Format: Disabled
Compile as Managed: Not using managed extensions
Suppres Startup Banner: Yes(/nologo)
Warning Level: Level3(/W3)
Detect 64-bit Portability Issues: No
Treat Warnings As Errors: No
Optimization:
Optimization: Maximum Speed(/O2)
Global Optimization: No
Inline Function Expansion: Disable (was default at /Ob1)
Enable intrinsic Functions: No
Floating Point Consistency: Default Consistency
Favor Size or Speed: Neither
Omit Frame Pointers: No
Enable Fiber-safe Optimization: No
Optimize For Processor: Blended
Optimize for Windows Application: No
Preprocessor
Preprocessor Defenitions: WIN32; NDEBUG; _WINDOWS; WINVER=0X0400; _WIN32_WINNT=0X0400 (after click on the button[...] at the right of this line an editor appears."Inherit from project default" must be checked and in the screen "Inherited Values" should mention: _MBCS)
Ignore Standard Include Path: No
Generate Preprocessed File: No
Keep Comments: No
Code Generation
Enable String Pooling: No (Was /GF by default)
Enable Minimal Rebuild: No
Enable C++ Exceptions: Yes(/EHsc) (is the same as /GX)
Smaller Type Check: No
Basic Runtime Checks: Default
Runtime Library: Single-threaded(/ML)
Struct Member Alignement; Default
Buffer Security Check: No
Enable Function Level Linking: No (was /Gy by default)
Language: All Items set to "No".
Precompiled Header
Create/Use Precompiled Header: Automatically Generate(/YX)
Create/Use PCH Trough File: Clear this line (was stdafx.h)
Precompiled Header File: .\Release/Celestia.pch
Output Files
Expand Attrbuted Source: No
Assembler Output: No Listing
ASM Listing Location: Clear this line
Object file Name: .\Release/
Program Database file Name: .\Release/
Browse Information
Enable Browse Information: None
Browse File:
Advanced
Calling convention: __cdecl(/Gd)
Compile As: Default
Disable Specific Warnings:
Force Includes:
Force #using:
Show Includes: No
Undefine Preprocessor Definitions:
Undefine All Preprocessor Definitions: No
Command Line
The command line look like this:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D _WIN32_WINNT=0x0400" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/Celestia.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Linker
General
Output File: .\release/Celestia.exe
Show Progress: Not Set
Version:
Enable Incremental Linking: No(INCREMENTAL:NO)
Suppres Startup Banner: Yes(/NOLOGO)
Ignore Import Library: No
Register Output: No
Additional Library directories: .; ..\..\lib; ..\cel3ds\Release; ..\celengine\Release; ..\celmath\Release; ..\celtxf\Release; ..\celutil\Release
Input
Additional Dependencies: comctl32.lib opengl32.lib glu32.lib winmm.lib libjpeg.lib libpng1.lib zlib.lib cel-3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib
Ignore All Default Libraries: No
All other item are not filled in.
Debug
Generate Debug Info: No
Generate Program Database File: .\Release\Celestia.pdb
Strip Private Symbols:
Generate Map File: No
Map File Name:
Map exports: No
Map lines: No
System
Subsystem: Windows(/SUBSYSTEM:WINDOWS)
Heap reserve size: 0
Heap Commit Size: 0
Stack Reserve Size: 0
Stack Commit Size: 0
Enable Large Addresses: Default
Terminal Server: default
Swap Run From CD: No
Swap Run From Network: No
Optimization
References: default
Enable COMDAT Folding: Default
Optimize for Windows98: Default
Function Order:
Embedded IDL
MIDL Commands:
Ignore Embedded IDL: No
Merged IDL Base File Name:
Type Library
TypeLib Resource ID: 1
Advanced
Entry Point:
Resource Only DLL: No
Set Checksum: No
Base Address:
Turn Off Assembly Generation: No
Delay Loaded DLL: Don't Support Unload
Import Library:
Merge sections:
Target Machine: Not Set
Command Line
The command line look like this:
/OUT:".\Release/Celestia.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"." /LIBPATH:"..\..\lib" /LIBPATH:"..\cel3ds\Release" /LIBPATH:"..\celengine\Release" /LIBPATH:"..\celmath\Release" /LIBPATH:"..\celtxf\Release" /LIBPATH:"..\celutil\Release" /PDB:".\Release/Celestia.pdb" /SUBSYSTEM:WINDOWS comctl32.lib opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Additional Options: /MACHINE:I386
Resources
General
Preprocessor definitions: NDEBUG
Culture: English(US)(0x0409)
Additional Include Directories:
Ignore Standard Include Path: No
Show Progress: No
Resource File Name:$(IntDir)/$(InputName).res
Command Line:
The commandline look like this:
/d "NDEBUG" /l 0x409 /fo".\Release/Celestia.res"
All other settings for MIDL,Browse Information, Build Event etc. can be left as it is.
The directives for the other projects (cel3ds, celengine, celmath, celtxf, celutil) has to be set as well. Except for some directories or libraries they look the same as above.
I will show the command lines only, with the above you must be able to achieve the proper settings.
Cel3ds:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/cel3ds.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celengine:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celengine.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celmath:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celmath.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celtxf:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celtxf.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Celutil:
/O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D "_WIN32_WINNT=0x0400" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/celutil.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
To integrate the CELX feature into IDE you have to do the following:
Select project "Celestia" and open "Property Pages". Goto C/C++ tab/ general. Open the editor([...]-key) of the "Additional Include Directories".Goto the end of the list and add: ..\..\inclua
Select the Preprocessor-tab, open the editor of the Preprcessor Definitions. Add on the end of the list: CELX
The commandline of the C/C++-tab look like this:
/O2 /I ".." /I "..\..\inc\libjpeg" /I "..\..\inc\libpng" /I "..\..\inc\lua" /I "..\..\inc\libz" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WINVER=0x0400" /D "_WIN32_WINNT=0x0400" /D "CELX" /D "_MBCS" /FD /EHsc /ML /YX /Fp".\Release/Celestia.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c
Select now the "Linker"-tab and choose Input / "Additional Dependencies". Open the editor and add on the end of the list: lua.lib and Lualib.lib
The commandline of the Linker look like this:
/OUT:".\Release/Celestia.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"." /LIBPATH:"..\..\lib" /LIBPATH:"..\cel3ds\Release" /LIBPATH:"..\celengine\Release" /LIBPATH:"..\celmath\Release" /LIBPATH:"..\celtxf\Release" /LIBPATH:"..\celutil\Release" /PDB:".\Release/Celestia.pdb" /SUBSYSTEM:WINDOWS comctl32.lib opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib lua.lib lualib.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_util.lib vfw32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Confirm the modifications on the property pages and close this window.
Right-click in the Solution Explorer on the Source Files of project"Celestia", choose "Add" and "Add Existing Item" Select on the list of Source files: celx.cpp
Do the same for the Header Files with celx.h
Recompile the solution. At the end no errors should appear but unfortunatly 79 warnings.
Note: There is one compiler directive which is set automatically by default( /c) and one remains undocumented (/FD)in this version.
With the above settings the directory stucture of the Source Code must look like this:
\src(the Celestia Source Code)
\lib(the libraries)
\inc(the include files)
You can find the latest(winlibs-new.zip) Libraries and the Include files at: http://ennui.celestiaproject.net/celestia/files
Hopefully this contribution clears some doubts about the IDE version of Visual Studio.
HB