16 EXT_thread_local_context
,
26 Vector
<UniquePtr
<ContextImpl
>> mContexts
;
28 bool mHasExt
[ALC_EXTENSION_MAX
];
30 std::once_flag mSetExts
;
34 DeviceImpl(ALCdevice
*device
);
37 ALCdevice
*getDevice() const { return mDevice
; }
39 bool hasExtension(ALCExtension ext
) const { return mHasExt
[ext
]; }
41 LPALCDEVICEPAUSESOFT alcDevicePauseSOFT
;
42 LPALCDEVICERESUMESOFT alcDeviceResumeSOFT
;
44 LPALCGETSTRINGISOFT alcGetStringiSOFT
;
45 LPALCRESETDEVICESOFT alcResetDeviceSOFT
;
47 void removeContext(ContextImpl
*ctx
);
49 String
getName(PlaybackName type
) const;
50 bool queryExtension(const char *name
) const;
52 Version
getALCVersion() const;
53 Version
getEFXVersion() const;
55 ALCuint
getFrequency() const;
57 ALCuint
getMaxAuxiliarySends() const;
59 Vector
<String
> enumerateHRTFNames() const;
60 bool isHRTFEnabled() const;
61 String
getCurrentHRTF() const;
62 void reset(ArrayView
<AttributePair
> attributes
);
64 Context
createContext(ArrayView
<AttributePair
> attributes
, bool dothrow
);