_geod_pos(SGGeod::fromCart(SGVec3d::zeros())),
_velocity(SGVec3d::zeros()),
_orientation(SGQuatd::zeros()),
- _bad_doppler(false)
+ _bad_doppler(false),
+ _renderer("unknown"),
+ _vendor("unknown")
{
#if defined(ALUT_API_MAJOR_VERSION) && ALUT_API_MAJOR_VERSION >= 1
if (_alut_init == 0) {
else break;
}
- string vendor = (const char *)alGetString(AL_VENDOR);
- string renderer = (const char *)alGetString(AL_RENDERER);
- if ( vendor != "OpenAL Community" ||
- (renderer != "Software" && renderer != "OpenAL Sample Implementation")
+ _vendor = (const char *)alGetString(AL_VENDOR);
+ _renderer = (const char *)alGetString(AL_RENDERER);
+ if ( _vendor != "OpenAL Community" ||
+ (_renderer != "Software" && _renderer != "OpenAL Sample Implementation")
)
{
_bad_doppler = true;
alcDestroyContext(_context);
alcCloseDevice(_device);
_context = NULL;
+
+ _renderer = "unknown";
+ _vendor = "unknown";
}
}
*/
vector<const char*> get_available_devices();
+ /**
+ * Get the current OpenAL vendor or rendering backend.
+ */
+ const string& get_vendor() { return _vendor; }
+ const string& get_renderer() { return _renderer; }
+
private:
static int _alut_init;
vector<ALuint> _sources_in_use;
bool _bad_doppler;
+ string _renderer;
+ string _vendor;
bool testForALError(string s);
bool testForALCError(string s);