Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Scenegraph branch
07-04-2007, 12:51 PM,
See graphics.cpp line 034. You can set it to false to disable shaders. Line 036 should be disabling them for you, though, because I used to have a geforce 4200 and i don't think it supports fragment shaders (although it does support vertex shaders, that's not enough). Can you post the "Card supports:" and "Card does not support:" lines from the console output? This is what it looks like on a geforce 7600 (everything supported):

Card supports: drawbuf4 auxbuf4 multitexturing4 antialiasing anisotropy16 cubemapping shaders texture_rectangle depth_texture shadow
07-05-2007, 07:33 AM,
From my console output,

Card supports: drawbuf0 auxbuf4 multitexturing4 antialiasing anisotropy8 cubemapping texture_rectangle depth_texture shadow
Card does not support: shaders

Anyway the problem only happened with an older revision. With the latest revision, it's working fine, although without shaders.
07-06-2007, 02:12 AM,
I did some more work on the controls class in the scenegraph branch tonight. Now I've removed the unnecessary keycode parameter from the key control mappings, and cleaned up the controls file writing function a lot more. I've also set up the reading function so that it looks for a ~/.vdrift/controls.config file first, and if it doesn't find one, it falls back to ~/.vdrift/controls instead. Based on which one it finds it calls either the old control loading function (LoadControlsOldFormat) or the new one (LoadControlsConfigFile). Checked in r1744.
07-06-2007, 06:57 AM,
Just something I observe,

In definitions.h, we have 2 variables defined, 'VERSION' and 'PACKAGE'. These 2 variables are also defined in ODE. There is a compilation warning because of this. And the value defined in ODE is overriding the value in definitions.h.
07-06-2007, 11:41 AM,
I saw that too. Bad form on ODE's part! I just re-named the ODE definitions or commented them out (they aren't even used). We could try to rename the VDrift ones if we want, although I think that requires changing some sconscript stuff.
07-06-2007, 01:29 PM,
Yes that is pretty messy on ODE's part, they should be defining that on the compile line or in a separate header (not in the one they distribute for others to compile against). I haven't tried ODE SVN, it might be fixed already, so if somebody wants to check that out, and see if we should file a bug report from there, that would be the way to go.

We could just change VERSION to VDRIFT_VERSION or something, but in the long run, it's not our fault really but ODE's...and we can't change PACKAGE as that's something NLS requires and uses.

For the record, my compiler says that VDrift's definitions.h redefines those (overriding ODE's settings) so it shouldn't cause any problems for us, besides the annoying warnings at compile time.
07-06-2007, 11:37 PM,
Actually I think it's the other way round. If you look at vdrift console output, you should see,

Version of game: 0.8.0

This means ODE defined VERSION is overriding whatever is defined in definitions.h.

Just throwing idea around, is it possible to include "ode/ode.h" under a name scope, e.g. ODE. So ODE defined VERSION will become ODE::VERSION.
07-07-2007, 01:00 AM,
Quote:is it possible to include "ode/ode.h" under a name scope

Nah, because it's a #define value. I don't know why a library would contain a bunch of #defines with generic names... bad form, ODE, bad form.
07-07-2007, 02:35 AM,
Quote:This means ODE defined VERSION is overriding whatever is defined in definitions.h.

I can confirm this is what's happening for the latest trunk branch (1747).
07-07-2007, 03:18 AM,
Crap, you're right rookie1. :oops: It is getting replaced. Doing a little research on the web about the VERSION and PACKAGE being redefined this is a very common problem without a great solution (as far as I can tell). So I'm really not sure how to fix it. Here are a few links:

Those last two links are people who solved it but I can't really figure out any way to relate their situations to VDrift.
07-07-2007, 12:48 PM,
I'll put some #undef VERSION and #undef PACKAGE lines after the ode includes. It's kind of hacky and depends on build order to end up including definitions.h afterward, but works for now. R1750
07-07-2007, 01:07 PM,
Awesome Joe, you fixed it! This change is in the trunk (r1750), by the way, because last night I merged the scenegraph branch back into the trunk. Since we only include ode.h in one place (physics.h) it makes sense to just undef those after it's included. I didn't even know about #undef Idea
07-08-2007, 01:50 PM,
I hope you post a bug report about that for the ODE devs to fix.
07-08-2007, 09:42 PM,
It's really not so much their fault, but maybe they should come up with a different solution since a lot of people use their software as a library. However Joe found a workaround so it's not such a big deal anymore. Smile

Forum Jump:

Users browsing this thread: 1 Guest(s)