OK,
back to plan 1
It
appears that VS 6 doesn't really understand environmental variables - I replaced
Mike's changes with the direct equivalents ie i replaced $(ProgramName) with
WIN32 and $(ConfigurationName) with Debug in the core_osg project and it
built without errors. So it appears that VS 6 must suffer twice - not only is
the product on its last legs, but to compile OSG every single dsp file must be
manually edited. If I had started a swear box, I would be well on the way to
being able to afford VS 8 !!!!
Don,
Just
to clarify a point from my last email - the compiler broke on the line "return
(double)timeElapsed*_div;", so I had to do something to get the compile to
work.
Regards and good night
Philip
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Philip Taylor
Sent: 07 September 2006 00:21
To: osg users
Subject: [Norton AntiSpam] RE: Re: Re: [osg-users] Build Problems: OSG 1.2 RC 2 with VC 6Hi Don,I'm still trying to build OSG - Producer and OpenThreads now build.The reason for the getElapsedTimer change is that VS 6 has no conversion method that will convert a 64 bit integer into a double, and I was just trying to get the build resolved. I am uncertain how VS 7 and VS 8 would compile this unless they have 64 bit support built-in. I don't think its guaranteed to be a big issue which is why I commented it as "temp fix". I just couldn't think of how to perform the conversion and waited for helpful comments.I think I may have a bigger issue with OSG not building under VS 6. My suggestion of modifying dsp files works great for OT and produccer but OSg has lots of dsp files. So the fall back is to open a shell and set the correct variables, but even this does not seem to trigger a successful build as it reports lots of errors such as:C:\Projects\OSG_OP_OT-1.2-rc2\OpenSceneGraph\Src\osgDB\Version.cpp(0) : fatal error C1033: cannot open program database 'c:\projects\osg_op_ot-1.2-rc2\openscenegraph\visualstudio\osgdb\win32\debug_static\vc60.idb'probably because I have damaged some of the dsp files - doh !Regards-----Original Message-----Hi Philip,
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Don Burns
Sent: 06 September 2006 23:57
To: osg users
Subject: [Norton AntiSpam] Re: Re: [osg-users] Build Problems: OSG 1.2 RC 2 with VC 6
I've made these changes and will check them in as soon as the compile looks OK here in Linux land. Windows users please test.
The one I am not including though is this one:
src\PipeTimer.cpp(128 in double PipeTimer::getElapsedTime( GLuint query )#ifdef _WIN32return 0.0; /* Temp fix */#elseif( !_valid )
return 0.0;GLuint64EXT timeElapsed = 0;
GLint available = 0;
while( !available )
{
(*_glGetQueryObjectiv)( query, GL_QUERY_RESULT_AVAILABLE, &available );
}(*_glGetQueryObjectui64v)(query, GL_QUERY_RESULT, &timeElapsed );
return (double)timeElapsed*_div;
#endif
It seems this just turns off the PipeTimer functionality for all win32 users. Did you have a good reason for doing this?
-don
On 9/6/06, Philip Taylor <[EMAIL PROTECTED]> wrote:Just an update - editing the VS6 Project Settings is trivial - a pain but trivial so I reckon this is just a simple "TODO" (or "MUSTDO") for VS 6 users.but more VS 6 build issues==================================OpenThreads==================================Win32Thread.cpp(554) : error C2065: 'DWORD_PTR' : undeclared identifierThe line should read "DWORD res" instead of "DWORD_PTR res", as this the value returned by SetThreadAffinityMask==================================Producer - all 64 bit issues==================================Producer\PipeTimer(10) fails to compile unless defined as#ifdef _WIN32
typedef __int64 GLint64EXT;
typedef unsigned __int64 GLuint64EXT;
#else
typedef long long int GLint64EXT;
typedef unsigned long long int GLuint64EXT;
#endif================================Producer/RenderSurface_Win32.cpp( 260, 279, 1379 )#ifdef _WIN32
SetWindowLong(_win, GWL_WNDPROC, (LONG) _oldWndProc);
#else
SetWindowLongPtr(_win, GWLP_WNDPROC, (LONG_PTR)_oldWndProc);
#endifProducer/RenderSurface_Win32.cpp(770)#ifdef _WIN32
_oldWndProc = (WNDPROC)SetWindowLong(_win, GWL_WNDPROC, (LONG) ((WNDPROC)s_proc) );
#else
_oldWndProc = (WNDPROC)SetWindowLongPtr(_win, GWLP_WNDPROC, (LONG_PTR)((WNDPROC)s_proc));
#endif================================src\PipeTimer.cpp(128 in double PipeTimer::getElapsedTime( GLuint query )#ifdef _WIN32return 0.0; /* Temp fix */#elseif( !_valid )
return 0.0;GLuint64EXT timeElapsed = 0;
GLint available = 0;
while( !available )
{
(*_glGetQueryObjectiv)( query, GL_QUERY_RESULT_AVAILABLE, &available );
}(*_glGetQueryObjectui64v)(query, GL_QUERY_RESULT, &timeElapsed );
return (double)timeElapsed*_div;
#endifsrc/ConfigLexer.cpp(24)#include <stdio.h> // to define EOF================================OpenSceneGraph================================The following .dsp files can't be loaded - all modified for VS 7 i thinkfreetype.dspive.dspdot_osg.dspNo doubt there will be a few more issues to resolve================================regardsPhilip-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Philip Taylor
Sent: 06 September 2006 21:03
To: osg users
Subject: RE: Re: [osg-users] Build Problems: OSG 1.2 RC 2 with VC 6Hi Mike, RobertThere is one other VS 6 gotcha - see the attached picture.VS 6 objects to a project' General settings including environmental variables. On hitting the OK button, it erases them from the workspace and apparently from the disk since even if I cancel the settings dialog and close the workspace without saving, these variables never return.The reality is that its not a big deal if the VS 6 build solution is to just delete the PlatformName and ConfigurationName environmental names from the workspaces.I'll report back if any other solution appears --- just don't wait for one, since it would probably be unique to VS 6 and undo the good work put in by Mike. My preferred solution is just to make it a documentation issue and amend the README file, something along the lines of:"VS 6 users must delete references to PlatformName and ConfigurationName environmental names from the workspace before attempting a build."or as per Mike's suggestion, perhaps OSG could include two command (.BAT) files for 32 bit Debug and Release builds which set the variables and then invoke the compiler. Not so intuative, but this requires no changes to the various .dsp / .dsw files, except perhaps the gotcha. The users just have to remember that switching builds between Debug and Release means exiting VS 6 and invoking the alternative BAT file.Personally I think I prefer the former, but time will tell.........regardsPhilip
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
