more stuffs

This commit is contained in:
Nyx
2025-05-12 22:18:09 -06:00
parent 6dd1337c4c
commit a79a7551b3
20 changed files with 936 additions and 281 deletions

View File

@@ -1,31 +1,81 @@
//
// Created by bryce on 5/7/2025.
//
#pragma once
#pragma once
#include <godot_cpp/godot.hpp>
#include<godot_cpp/core/class_db.hpp>
#include <godot_cpp/classes/os.hpp>
#include <godot_cpp/classes/engine.hpp>
#include <godot_cpp/classes/node.hpp>
#include <godot_cpp/classes/project_settings.hpp>
#include <godot_cpp/classes/ref.hpp>
#include <godot_cpp/classes/scene_tree.hpp>
#include <godot_cpp/classes/thread.hpp>
#include <godot_cpp/classes/time.hpp>
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/godot.hpp>
#include <godot_cpp/variant/utility_functions.hpp>
#include <phonon.h>
#include "steam_audio_dynamic_mesh.h"
#include "steam_audio_listener.h"
#include "steam_audio_material.h"
#include "steam_audio_source.h"
#include "steam_audio_static_mesh.h"
using namespace godot;
class SteamAudio : public RefCounted
class SteamAudio : public Node
{
GDCLASS( SteamAudio,RefCounted ) // NOLINT(readability-use-auto)
GDCLASS( SteamAudio, Node ) // NOLINT(modernize-use-auto, hicpp-use-auto)
private:
IPLContext context = nullptr;
IPLContextSettings ctx_settings{};
IPLAudioSettings audio_settings{};
IPLContext ctx = nullptr;
IPLEmbreeDeviceSettings embree_device_settings{};
IPLEmbreeDevice embree_device = nullptr;
IPLScene scene = nullptr;
IPLSceneSettings scene_settings{};
IPLSimulationSettings simulation_settings{};
IPLSimulator simulator = nullptr;
IPLStaticMesh mesh = nullptr;
IPLHRTFSettings hrtf_settings{};
IPLHRTF hrtf = nullptr;
ProjectSettings *proj_settings = ProjectSettings::get_singleton();
Array<SteamAudioDynamicMesh> dynamic_geometry;
Array<SteamAudioStaticMesh> static_geometry;
Array<SteamAudioSource> sources;
Ref<Thread> reflections_thread;
Ref<Thread> pathing_thread;
protected:
static void _bind_methods();
void _ready() override;
public:
static SteamAudio *steam_audio;
SteamAudio();
~SteamAudio() override;
bool initialize();
void shutdown();
bool build_scene();
void update_static_scene();
void update_dynamic_scene();
static Transform3D ipl_space_to_godot(const IPLCoordinateSpace3 &p_space);
static IPLCoordinateSpace3 godot_to_ipl_space(const Transform3D &p_transform);
[[nodiscard]] IPLContext get_context() const{return ctx;}
[[nodiscard]] IPLEmbreeDevice get_embree_device() const{return embree_device;}
[[nodiscard]] IPLEmbreeDeviceSettings get_embree_device_settings() const{return embree_device_settings;}
[[nodiscard]] IPLScene get_scene() const{return scene;}
[[nodiscard]] IPLSceneSettings get_scene_settings() const{return scene_settings;}
[[nodiscard]] IPLSimulator get_simulator() const{return simulator;}
[[nodiscard]] IPLSimulationSettings get_simulation_settings() const{return simulation_settings;}
[[nodiscard]] IPLHRTF get_hrtf() const{return hrtf;}
[[nodiscard]] IPLHRTFSettings get_hrtf_settings() const{return hrtf_settings;}
[[nodiscard]] IPLContextSettings get_context_settings() const{return ctx_settings;}
[[nodiscard]] IPLContext getContext() const{return context;}
[[nodiscard]] IPLEmbreeDevice getEmbreeDevice() const{return embree_device;}
};