aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorMinmin Gong <[email protected]>2019-02-04 19:59:19 -0800
committerMinmin Gong <[email protected]>2019-02-04 20:03:18 -0800
commit41b9d473a2753fea2deeb1f1f8f241fd53270c3d (patch)
tree5e4905e795ae0d566e0f64b0cc368d7422652e87 /OpenAL32
parentc25433986ae52e65fc5549c487be6d074d9b0bb9 (diff)
Fix compiling problems on VS2019 with vc142 toolset
Msvc142 in VS2019 preview 2 doesn't allow std::atomic_flag to be initialized by a bool. Call test_and_set in the constructors instead.
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alAuxEffectSlot.h4
-rw-r--r--OpenAL32/Include/alListener.h4
-rw-r--r--OpenAL32/Include/alSource.h2
-rw-r--r--OpenAL32/alSource.cpp2
4 files changed, 8 insertions, 4 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h
index e761280a..61865397 100644
--- a/OpenAL32/Include/alAuxEffectSlot.h
+++ b/OpenAL32/Include/alAuxEffectSlot.h
@@ -73,7 +73,7 @@ struct ALeffectslot {
EffectState *State{nullptr};
} Effect;
- std::atomic_flag PropsClean{true};
+ std::atomic_flag PropsClean;
RefCount ref{0u};
@@ -113,7 +113,7 @@ struct ALeffectslot {
*/
alignas(16) ALfloat WetBuffer[MAX_EFFECT_CHANNELS][BUFFERSIZE];
- ALeffectslot() = default;
+ ALeffectslot() { PropsClean.test_and_set(); }
ALeffectslot(const ALeffectslot&) = delete;
ALeffectslot& operator=(const ALeffectslot&) = delete;
~ALeffectslot();
diff --git a/OpenAL32/Include/alListener.h b/OpenAL32/Include/alListener.h
index 0aa28a46..7b5b8b20 100644
--- a/OpenAL32/Include/alListener.h
+++ b/OpenAL32/Include/alListener.h
@@ -30,7 +30,7 @@ struct ALlistener {
std::array<ALfloat,3> OrientUp{{0.0f, 1.0f, 0.0f}};
ALfloat Gain{1.0f};
- std::atomic_flag PropsClean{true};
+ std::atomic_flag PropsClean;
/* Pointer to the most recent property values that are awaiting an update.
*/
@@ -50,6 +50,8 @@ struct ALlistener {
ALboolean SourceDistanceModel;
DistanceModel mDistanceModel;
} Params;
+
+ ALlistener() { PropsClean.test_and_set(); }
};
void UpdateListenerProps(ALCcontext *context);
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h
index ac17fc0d..d02dbd5b 100644
--- a/OpenAL32/Include/alSource.h
+++ b/OpenAL32/Include/alSource.h
@@ -98,7 +98,7 @@ struct ALsource {
/** Source Buffer Queue head. */
ALbufferlistitem *queue;
- std::atomic_flag PropsClean{true};
+ std::atomic_flag PropsClean;
/* Index into the context's Voices array. Lazily updated, only checked and
* reset when looking up the voice.
diff --git a/OpenAL32/alSource.cpp b/OpenAL32/alSource.cpp
index 6988decf..cc384478 100644
--- a/OpenAL32/alSource.cpp
+++ b/OpenAL32/alSource.cpp
@@ -3353,6 +3353,8 @@ ALsource::ALsource(ALsizei num_sends)
queue = nullptr;
VoiceIdx = -1;
+
+ PropsClean.test_and_set();
}
ALsource::~ALsource()