|
From: Daniel <danie...@at...> - 2011-10-07 05:10:19
|
Yes, I did get a 3D sound implementation, but it's still in my broken branch. I'm planning on getting to that relatively soon-ish. This change was almost a complete re-write sound system (there was some pretty ugly stuff in there). As far as hardware support for sound being completely absent on Linux, that is by no means true. Although, for some stupid reason, Creative wont get their crap together for linux and they've had their EAX since the 90s, so there's no excuse for them dragging their feet -- especially for as nice at it works (even on 90s hardware!). The problem appears to somewhat of a lack of interest in 3d sound (as opposed to 3d graphics). But on to the override keyword, it doesn't belong in types.h and defining it where you did doesn't guarantee that it wont get defined out on windows (if you compiling using SDL on windows). Additionally, if somebody attempts to compile it on MSVC++ 2009 (or 2010 w/ compiler options that disable c++0x), they are going to get nothing but compiler errors. So I'm moving it to shared_lib/include/lang_features.h along with all the function aliases in types.h as well. Also, I don't think it's a good idea to use "override" directly in the code, I need to examine the impact of that more carefully. If you have any ideas/opinions on this, please do share. Usually, with a language extension, you use a macro with a double underscore prefix (e.g., __override and __final). But this isn't an actual language extension, it's a feature of the new standard. Either way, we will need a second macro that accepts an argument to generate "override = Base::someOtherFunc" code without breaking the build on older compilers. (And this isn't windows only, gcc 4.7 (still beta) supports it as well -- you just have to enabled c++0x features with --std=cxx0x or --std=gnu0x) Oh, also coming up in gcc 4.7 is link-time optimizations, yes! (this is the same feature as m$ cl's "whole program optimizations"). Daniel |