14 EXT_thread_local_context
,
24 Vector
<UniquePtr
<ContextImpl
>> mContexts
;
26 Bitfield
<static_cast<size_t>(ALC::EXTENSION_MAX
)> mHasExt
;
28 std::once_flag mSetExts
;
32 DeviceImpl(ALCdevice
*device
);
35 ALCdevice
*getALCdevice() const { return mDevice
; }
37 bool hasExtension(ALC ext
) const { return mHasExt
[static_cast<size_t>(ext
)]; }
39 LPALCDEVICEPAUSESOFT alcDevicePauseSOFT
;
40 LPALCDEVICERESUMESOFT alcDeviceResumeSOFT
;
42 LPALCGETSTRINGISOFT alcGetStringiSOFT
;
43 LPALCRESETDEVICESOFT alcResetDeviceSOFT
;
45 void removeContext(ContextImpl
*ctx
);
47 String
getName(PlaybackName type
) const;
48 bool queryExtension(const char *name
) const;
50 Version
getALCVersion() const;
51 Version
getEFXVersion() const;
53 ALCuint
getFrequency() const;
55 ALCuint
getMaxAuxiliarySends() const;
57 Vector
<String
> enumerateHRTFNames() const;
58 bool isHRTFEnabled() const;
59 String
getCurrentHRTF() const;
60 void reset(ArrayView
<AttributePair
> attributes
);
62 Context
createContext(ArrayView
<AttributePair
> attributes
, bool dothrow
);