19 EXT_thread_local_context
,
29 Vector
<UniquePtr
<ContextImpl
>> mContexts
;
31 bool mHasExt
[ALC_EXTENSION_MAX
];
33 std::once_flag mSetExts
;
37 DeviceImpl(ALCdevice
*device
);
40 ALCdevice
*getDevice() const { return mDevice
; }
42 bool hasExtension(ALCExtension ext
) const { return mHasExt
[ext
]; }
44 LPALCDEVICEPAUSESOFT alcDevicePauseSOFT
;
45 LPALCDEVICERESUMESOFT alcDeviceResumeSOFT
;
47 LPALCGETSTRINGISOFT alcGetStringiSOFT
;
48 LPALCRESETDEVICESOFT alcResetDeviceSOFT
;
50 void removeContext(ContextImpl
*ctx
);
52 String
getName(PlaybackName type
) const;
53 bool queryExtension(const char *name
) const;
55 Version
getALCVersion() const;
56 Version
getEFXVersion() const;
58 ALCuint
getFrequency() const;
60 ALCuint
getMaxAuxiliarySends() const;
62 Vector
<String
> enumerateHRTFNames() const;
63 bool isHRTFEnabled() const;
64 String
getCurrentHRTF() const;
65 void reset(ArrayView
<AttributePair
> attributes
);
67 Context
createContext(ArrayView
<AttributePair
> attributes
, bool dothrow
);