Minor fixes

This commit is contained in:
Lynix
2023-11-28 20:05:09 +01:00
parent c7579fb9be
commit 079f153640
16 changed files with 53 additions and 47 deletions

View File

@@ -61,6 +61,11 @@ namespace Nz
Music& operator=(Music&&) = delete;
private:
bool FillAndQueueBuffer(std::shared_ptr<AudioBuffer> buffer);
void MusicThread(std::condition_variable& cv, std::mutex& m, std::exception_ptr& err, bool startPaused);
void StartThread(bool startPaused);
void StopThread();
AudioFormat m_audioFormat;
std::atomic_bool m_streaming;
std::atomic<UInt64> m_processedSamples;
@@ -72,11 +77,7 @@ namespace Nz
UInt32 m_sampleRate;
UInt64 m_streamOffset;
bool m_looping;
bool FillAndQueueBuffer(std::shared_ptr<AudioBuffer> buffer);
void MusicThread(std::condition_variable& cv, std::mutex& m, std::exception_ptr& err, bool startPaused);
void StartThread(bool startPaused);
void StopThread();
bool m_musicStarted;
};
}

View File

@@ -11,7 +11,7 @@
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/Enums.hpp>
#include <NazaraUtils/FunctionRef.hpp>
#include <functional>
#include <concepts>
#include <type_traits>
#include <vector>
@@ -28,7 +28,7 @@ namespace Nz
class Releasable;
class ReleasableCallback;
template<typename T> class ReleasableData;
template<typename T> class ReleasableLambda;
template<std::invocable T> class ReleasableFunctor;
virtual ~RenderResources();
@@ -42,7 +42,7 @@ namespace Nz
template<typename T> void PushForRelease(const T& value) = delete;
template<typename T> void PushForRelease(T&& value);
template<typename F> void PushReleaseCallback(F&& callback);
template<std::invocable F> void PushReleaseCallback(F&& callback);
virtual void SubmitCommandBuffer(CommandBuffer* commandBuffer, QueueTypeFlags queueTypeFlags) = 0;
@@ -93,19 +93,19 @@ namespace Nz
T m_data;
};
template<typename T>
class RenderResources::ReleasableLambda final : public ReleasableCallback
template<std::invocable T>
class RenderResources::ReleasableFunctor final : public ReleasableCallback
{
public:
template<typename U> ReleasableLambda(U&& lambda);
ReleasableLambda(const ReleasableLambda&) = delete;
ReleasableLambda(ReleasableLambda&&) = delete;
~ReleasableLambda() = default;
template<typename U> requires(std::constructible_from<T, U&&>) ReleasableFunctor(U&& lambda);
ReleasableFunctor(const ReleasableFunctor&) = delete;
ReleasableFunctor(ReleasableFunctor&&) = delete;
~ReleasableFunctor() = default;
void Release() override;
ReleasableLambda& operator=(const ReleasableLambda&) = delete;
ReleasableLambda& operator=(ReleasableLambda&&) = delete;
ReleasableFunctor& operator=(const ReleasableFunctor&) = delete;
ReleasableFunctor& operator=(ReleasableFunctor&&) = delete;
private:
T m_lambda;

View File

@@ -47,10 +47,10 @@ namespace Nz
m_releaseQueue.push_back(releasable);
}
template<typename F>
template<std::invocable F>
void RenderResources::PushReleaseCallback(F&& callback)
{
using ReleaseFunctor = ReleasableLambda<std::remove_cv_t<std::remove_reference_t<F>>>;
using ReleaseFunctor = ReleasableFunctor<std::remove_cv_t<std::remove_reference_t<F>>>;
ReleaseFunctor* releasable = Allocate<ReleaseFunctor>();
PlacementNew(releasable, std::forward<F>(callback));
@@ -117,19 +117,19 @@ namespace Nz
{
}
template<typename T>
template<std::invocable T>
template<typename U>
RenderResources::ReleasableLambda<T>::ReleasableLambda(U&& lambda) :
requires(std::constructible_from<T, U&&>)
RenderResources::ReleasableFunctor<T>::ReleasableFunctor(U&& lambda) :
m_lambda(std::forward<U>(lambda))
{
}
template<typename T>
void RenderResources::ReleasableLambda<T>::Release()
template<std::invocable T>
void RenderResources::ReleasableFunctor<T>::Release()
{
m_lambda();
}
}
#include <Nazara/Renderer/DebugOff.hpp>
#include "RenderResources.hpp"

View File

@@ -153,7 +153,7 @@ namespace Nz
inline void OBJParser::Error(const std::string& message)
{
NazaraErrorFmt("{0} at line #{1}", message, m_lineCount);
NazaraErrorFmt("{0} on line #{1}", message, m_lineCount);
}
inline void OBJParser::Flush() const
@@ -164,7 +164,7 @@ namespace Nz
inline void OBJParser::Warning(const std::string& message)
{
NazaraWarningFmt("{0} at line #{1}", message, m_lineCount);
NazaraWarningFmt("{0} on line #{1}", message, m_lineCount);
}
inline bool OBJParser::UnrecognizedLine(bool error)