fix shing
Some checks failed
Main / 🧹 Lint / 📜 C++ (push) Has been cancelled
Main / 🛠 Build / 🍏 macOS Clang (Debug) (push) Has been cancelled
Main / 🛠 Build / 🐧 Linux GCC (Debug) (push) Has been cancelled
Main / 🛠 Build / 🪟 Windows MSVC (Debug) (push) Has been cancelled
Main / 🛠 Build / 🍏 macOS Clang (Release) (push) Has been cancelled
Main / 🛠 Build / 🐧 Linux GCC (Release) (push) Has been cancelled
Main / 🛠 Build / 🪟 Windows MSVC (Release) (push) Has been cancelled

This commit is contained in:
Nyx
2025-10-28 13:44:35 -06:00
parent 14d35e9a3e
commit 2b51e93714
4 changed files with 26 additions and 15 deletions

View File

@@ -12,6 +12,8 @@ void initialize_steam_audio(ModuleInitializationLevel p_level) {
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
GDREGISTER_CLASS(SteamAudioServer);
srv = memnew(SteamAudioServer);
Engine::get_singleton()->register_singleton("SteamAudioServer", srv);
srv->initialize();
}
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
@@ -28,6 +30,7 @@ void initialize_steam_audio(ModuleInitializationLevel p_level) {
void uninitialize_steam_audio(ModuleInitializationLevel p_level) {
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
memdelete(srv);
srv = nullptr;
}
}

View File

@@ -3,7 +3,6 @@
using namespace godot;
SteamAudioServer::SteamAudioServer() {
}
SteamAudioServer::~SteamAudioServer() {
@@ -17,10 +16,13 @@ void SteamAudioServer::_bind_methods() {
void SteamAudioServer::initialize() {
if (Engine::get_singleton()->is_editor_hint())
return;
IPLerror err = iplContextCreate(&ctxSettings,&ctx);
if (err!=IPL_STATUS_SUCCESS) {
ERR_PRINT("Failed to create IPL context");
}
switch (static_cast<int>(proj_settings->get_setting("steam_audio/ray_tracer/RayTracer"))){
case 0:
break;
@@ -60,6 +62,8 @@ void SteamAudioServer::_notification(int p_what) {
directThread->start(callable_mp(this,&SteamAudioServer::start_direct_thread),Thread::PRIORITY_NORMAL);
indirectThread->start(callable_mp(this,&SteamAudioServer::start_indirect_thread),Thread::PRIORITY_NORMAL);
default:
return;
}
}
void SteamAudioServer::start_direct_thread() {

View File

@@ -1,21 +1,22 @@
#pragma once
#include <godot_cpp/classes/audio_frame.hpp>
#include <godot_cpp/classes/mutex.hpp>
#include <godot_cpp/classes/scene_tree.hpp>
#include <godot_cpp/classes/thread.hpp>
#include <godot_cpp/classes/wrapped.hpp>
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/godot.hpp>
#include <godot_cpp/classes/thread.hpp>
#include <godot_cpp/classes/mutex.hpp>
#include <phonon.h>
#include <steam_audio.hpp>
#include <unordered_map>
#include "steam_audio_dynamic_mesh.hpp"
#include "steam_audio_source.hpp"
#include "steam_audio_static_mesh.hpp"
using namespace godot;
class SteamAudioServer : public Object {
GDCLASS(SteamAudioServer, Object) // Godot class declaration macro
private:
@@ -47,8 +48,8 @@ private:
Ref<Thread> indirectThread;
public:
SteamAudioServer(); // Constructor
~SteamAudioServer() override; // Destructor
SteamAudioServer();
~SteamAudioServer() override;
void _notification(int p_what);
void register_audio_source(SteamAudioSource *source);
void unregister_audio_source(SteamAudioSource *source);
@@ -57,8 +58,11 @@ public:
protected:
static void _bind_methods();
public:
void initialize();
void shutdown();
void start_direct_thread();
void start_indirect_thread();
};