diff --git a/docs/api/audio/audio-system/initialize.md b/docs/api/audio/audio-system/initialize.md index 5be26f07..077c827c 100644 --- a/docs/api/audio/audio-system/initialize.md +++ b/docs/api/audio/audio-system/initialize.md @@ -15,12 +15,12 @@ void Initialize(const AudioConfig& config); ```cpp #include -#include +#include using namespace XCEngine::Audio; void SetupAudio() { - AudioSystem::Get().SetBackend(std::make_unique()); + AudioSystem::Get().SetBackend(std::make_unique()); AudioConfig config; config.sampleRate = 48000; diff --git a/docs/api/audio/audio-system/set-backend.md b/docs/api/audio/audio-system/set-backend.md index e5119d94..f52aa03b 100644 --- a/docs/api/audio/audio-system/set-backend.md +++ b/docs/api/audio/audio-system/set-backend.md @@ -15,12 +15,12 @@ void SetBackend(std::unique_ptr backend); ```cpp #include -#include +#include using namespace XCEngine::Audio; void SetupAudio() { - AudioSystem::Get().SetBackend(std::make_unique()); + AudioSystem::Get().SetBackend(std::make_unique()); } ``` diff --git a/docs/api/components/audio-listener-component/get-doppler-level.md b/docs/api/components/audio-listener-component/get-doppler-level.md new file mode 100644 index 00000000..9c368d3a --- /dev/null +++ b/docs/api/components/audio-listener-component/get-doppler-level.md @@ -0,0 +1,37 @@ +# GetDopplerLevel + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器的多普勒效应等级。 + +## 函数签名 + +```cpp +float GetDopplerLevel() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前多普勒等级,1.0 为默认值 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintDopplerLevel(AudioListenerComponent* listener) { + float level = listener->GetDopplerLevel(); + printf("Doppler level: %.2f\n", level); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [SetDopplerLevel](./set-doppler-level.md) - 设置多普勒等级 diff --git a/docs/api/components/audio-listener-component/get-energy.md b/docs/api/components/audio-listener-component/get-energy.md new file mode 100644 index 00000000..3d572009 --- /dev/null +++ b/docs/api/components/audio-listener-component/get-energy.md @@ -0,0 +1,37 @@ +# GetEnergy + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器当前接收到的音频能量值。 + +## 函数签名 + +```cpp +float GetEnergy() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前音频能量值,通常在 0.0 到 1.0 范围内 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckAudioEnergy(AudioListenerComponent* listener) { + float energy = listener->GetEnergy(); + printf("Current audio energy: %.2f\n", energy); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetFrequencyData](./get-frequency-data.md) - 获取频谱数据 diff --git a/docs/api/components/audio-listener-component/get-frequency-data-size.md b/docs/api/components/audio-listener-component/get-frequency-data-size.md new file mode 100644 index 00000000..58cc8aec --- /dev/null +++ b/docs/api/components/audio-listener-component/get-frequency-data-size.md @@ -0,0 +1,37 @@ +# GetFrequencyDataSize + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器频谱数据的大小。 + +## 函数签名 + +```cpp +size_t GetFrequencyDataSize() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `size_t` | 频谱数据数组的元素数量 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckSpectrumSize(AudioListenerComponent* listener) { + size_t size = listener->GetFrequencyDataSize(); + printf("Spectrum data size: %zu\n", size); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetFrequencyData](./get-frequency-data.md) - 获取频谱数据 diff --git a/docs/api/components/audio-listener-component/get-frequency-data.md b/docs/api/components/audio-listener-component/get-frequency-data.md new file mode 100644 index 00000000..ebb295b9 --- /dev/null +++ b/docs/api/components/audio-listener-component/get-frequency-data.md @@ -0,0 +1,43 @@ +# GetFrequencyData + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器的频谱数据指针。 + +## 函数签名 + +```cpp +const float* GetFrequencyData() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `const float*` | 频谱数据数组指针,数据为 FFT 变换后的频率幅度 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void ProcessFrequencyData(AudioListenerComponent* listener) { + const float* data = listener->GetFrequencyData(); + size_t size = listener->GetFrequencyDataSize(); + + // 打印前几个频率值 + for (size_t i = 0; i < size && i < 10; ++i) { + printf("Freq[%zu]: %.2f\n", i, data[i]); + } +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetFrequencyDataSize](./get-frequency-data-size.md) - 获取频谱数据大小 +- [GetEnergy](./get-energy.md) - 获取音频能量 diff --git a/docs/api/components/audio-listener-component/get-reverb-level.md b/docs/api/components/audio-listener-component/get-reverb-level.md new file mode 100644 index 00000000..6d69f517 --- /dev/null +++ b/docs/api/components/audio-listener-component/get-reverb-level.md @@ -0,0 +1,37 @@ +# GetReverbLevel + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器的混响等级。 + +## 函数签名 + +```cpp +float GetReverbLevel() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前混响等级,范围 0.0 到 1.0 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintReverbLevel(AudioListenerComponent* listener) { + float level = listener->GetReverbLevel(); + printf("Reverb level: %.2f\n", level); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [SetReverbLevel](./set-reverb-level.md) - 设置混响等级 diff --git a/docs/api/components/audio-listener-component/get-reverb.md b/docs/api/components/audio-listener-component/get-reverb.md new file mode 100644 index 00000000..eafa8079 --- /dev/null +++ b/docs/api/components/audio-listener-component/get-reverb.md @@ -0,0 +1,42 @@ +# GetReverb + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取音频监听器当前的混响效果器。 + +## 函数签名 + +```cpp +Audio::AudioMixer* GetReverb() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `Audio::AudioMixer*` | 混响效果器指针,如果未设置则返回 nullptr | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; +using namespace XCEngine::Audio; + +void CheckReverb(AudioListenerComponent* listener) { + AudioMixer* reverb = listener->GetReverb(); + if (reverb) { + printf("Reverb effect is set\n"); + } else { + printf("No reverb effect\n"); + } +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [SetReverb](./set-reverb.md) - 设置混响效果器 diff --git a/docs/api/components/audio-listener-component/get-speed-of-sound.md b/docs/api/components/audio-listener-component/get-speed-of-sound.md new file mode 100644 index 00000000..56c1bc88 --- /dev/null +++ b/docs/api/components/audio-listener-component/get-speed-of-sound.md @@ -0,0 +1,37 @@ +# GetSpeedOfSound + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 获取声音传播速度。 + +## 函数签名 + +```cpp +float GetSpeedOfSound() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前声速设置,单位米/秒 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintSpeedOfSound(AudioListenerComponent* listener) { + float speed = listener->GetSpeedOfSound(); + printf("Speed of sound: %.1f m/s\n", speed); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [SetSpeedOfSound](./set-speed-of-sound.md) - 设置声速 diff --git a/docs/api/components/audio-listener-component/set-doppler-level.md b/docs/api/components/audio-listener-component/set-doppler-level.md new file mode 100644 index 00000000..96707627 --- /dev/null +++ b/docs/api/components/audio-listener-component/set-doppler-level.md @@ -0,0 +1,44 @@ +# SetDopplerLevel + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 设置音频监听器的多普勒效应等级。 + +## 函数签名 + +```cpp +void SetDopplerLevel(float level); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `level` | `float` | 多普勒等级,1.0 为默认值,0.0 禁用多普勒效应 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupDoppler(AudioListenerComponent* listener) { + // 设置正常多普勒效应 + listener->SetDopplerLevel(1.0f); + + // 禁用多普勒效应 + listener->SetDopplerLevel(0.0f); + + // 增强多普勒效应 + listener->SetDopplerLevel(2.0f); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetDopplerLevel](./get-doppler-level.md) - 获取多普勒等级 +- [SetSpeedOfSound](./set-speed-of-sound.md) - 设置声速 diff --git a/docs/api/components/audio-listener-component/set-mute.md b/docs/api/components/audio-listener-component/set-mute.md new file mode 100644 index 00000000..39e251fd --- /dev/null +++ b/docs/api/components/audio-listener-component/set-mute.md @@ -0,0 +1,37 @@ +# SetMute + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 设置音频监听器的静音状态。 + +## 函数签名 + +```cpp +void SetMute(bool mute); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `mute` | `bool` | 静音状态,true 启用静音,false 禁用静音 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void ToggleMute(AudioListenerComponent* listener) { + bool currentMute = listener->IsMute(); + listener->SetMute(!currentMute); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [IsMute](./is-mute.md) - 检查静音状态 diff --git a/docs/api/components/audio-listener-component/set-reverb-level.md b/docs/api/components/audio-listener-component/set-reverb-level.md new file mode 100644 index 00000000..795d9adc --- /dev/null +++ b/docs/api/components/audio-listener-component/set-reverb-level.md @@ -0,0 +1,44 @@ +# SetReverbLevel + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 设置音频监听器的混响等级。 + +## 函数签名 + +```cpp +void SetReverbLevel(float level); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `level` | `float` | 混响等级,0.0 到 1.0,0.0 表示无混响,1.0 表示完全混响 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupReverb(AudioListenerComponent* listener) { + // 无混响 + listener->SetReverbLevel(0.0f); + + // 半混响 + listener->SetReverbLevel(0.5f); + + // 完全混响 + listener->SetReverbLevel(1.0f); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetReverbLevel](./get-reverb-level.md) - 获取混响等级 +- [SetReverb](./set-reverb.md) - 设置混响效果器 diff --git a/docs/api/components/audio-listener-component/set-reverb.md b/docs/api/components/audio-listener-component/set-reverb.md new file mode 100644 index 00000000..759d190e --- /dev/null +++ b/docs/api/components/audio-listener-component/set-reverb.md @@ -0,0 +1,40 @@ +# SetReverb + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 设置音频监听器的混响效果器。 + +## 函数签名 + +```cpp +void SetReverb(Audio::AudioMixer* reverb); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `reverb` | `Audio::AudioMixer*` | 混响效果器指针,设置为 nullptr 则禁用混响 | + +## 使用示例 + +```cpp +#include +#include + +using namespace XCEngine::Components; +using namespace XCEngine::Audio; + +void SetupReverbEffect(AudioListenerComponent* listener, AudioMixer* reverbMixer) { + listener->SetReverb(reverbMixer); + listener->SetReverbLevel(0.5f); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetReverb](./get-reverb.md) - 获取混响效果器 +- [SetReverbLevel](./set-reverb-level.md) - 设置混响等级 diff --git a/docs/api/components/audio-listener-component/set-speed-of-sound.md b/docs/api/components/audio-listener-component/set-speed-of-sound.md new file mode 100644 index 00000000..9ba5e377 --- /dev/null +++ b/docs/api/components/audio-listener-component/set-speed-of-sound.md @@ -0,0 +1,41 @@ +# SetSpeedOfSound + +**所属类**: `AudioListenerComponent` + +**头文件**: `XCEngine/Components/AudioListenerComponent.h` + +**描述**: 设置声音在空气中的传播速度,用于多普勒效应计算。 + +## 函数签名 + +```cpp +void SetSpeedOfSound(float metersPerSecond); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `metersPerSecond` | `float` | 声速,单位米/秒,默认值为 343.0(20度 Celsius 时的声速) | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupSpeedOfSound(AudioListenerComponent* listener) { + // 标准声速(20度 Celsius) + listener->SetSpeedOfSound(343.0f); + + // 水中的声速 + listener->SetSpeedOfSound(1480.0f); +} +``` + +## 相关文档 + +- [AudioListenerComponent](./audio-listener-component.md) - 音频监听器组件 +- [GetSpeedOfSound](./get-speed-of-sound.md) - 获取声速 +- [SetDopplerLevel](./set-doppler-level.md) - 设置多普勒等级 diff --git a/docs/api/components/audio-source-component/get-3d-params.md b/docs/api/components/audio-source-component/get-3d-params.md new file mode 100644 index 00000000..ea365c8a --- /dev/null +++ b/docs/api/components/audio-source-component/get-3d-params.md @@ -0,0 +1,38 @@ +# Get3DParams + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的3D音频参数。 + +## 函数签名 + +```cpp +const Audio::Audio3DParams& Get3DParams() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `const Audio::Audio3DParams&` | 3D音频参数引用 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void Print3DParams(AudioSourceComponent* source) { + const auto& params = source->Get3DParams(); + printf("Doppler: %.2f, Spread: %.2f, ReverbZoneMix: %.2f\n", + params.dopplerLevel, params.spread, params.reverbZoneMix); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [Set3DParams](./set-3d-params.md) - 设置3D参数 diff --git a/docs/api/components/audio-source-component/get-clip.md b/docs/api/components/audio-source-component/get-clip.md new file mode 100644 index 00000000..32fded4a --- /dev/null +++ b/docs/api/components/audio-source-component/get-clip.md @@ -0,0 +1,41 @@ +# GetClip + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源当前播放的音频片段。 + +## 函数签名 + +```cpp +Resources::AudioClip* GetClip() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `Resources::AudioClip*` | 音频片段指针,如果未设置则返回 nullptr | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckCurrentClip(AudioSourceComponent* source) { + auto clip = source->GetClip(); + if (clip) { + printf("Current clip: %s\n", clip->GetName().c_str()); + } else { + printf("No clip set\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetClip](./set-clip.md) - 设置音频片段 diff --git a/docs/api/components/audio-source-component/get-doppler-level.md b/docs/api/components/audio-source-component/get-doppler-level.md new file mode 100644 index 00000000..91f0f6bf --- /dev/null +++ b/docs/api/components/audio-source-component/get-doppler-level.md @@ -0,0 +1,37 @@ +# GetDopplerLevel + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的多普勒效应等级。 + +## 函数签名 + +```cpp +float GetDopplerLevel() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前多普勒等级 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintDopplerLevel(AudioSourceComponent* source) { + float level = source->GetDopplerLevel(); + printf("Doppler level: %.2f\n", level); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetDopplerLevel](./set-doppler-level.md) - 设置多普勒等级 diff --git a/docs/api/components/audio-source-component/get-duration.md b/docs/api/components/audio-source-component/get-duration.md new file mode 100644 index 00000000..1c964c87 --- /dev/null +++ b/docs/api/components/audio-source-component/get-duration.md @@ -0,0 +1,38 @@ +# GetDuration + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源当前音频的总时长。 + +## 函数签名 + +```cpp +float GetDuration() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 音频总时长,单位秒。如果没有设置音频片段则返回 0.0 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintDuration(AudioSourceComponent* source) { + float duration = source->GetDuration(); + printf("Duration: %.2f seconds\n", duration); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetTime](./get-time.md) - 获取当前播放位置 +- [SetClip](./set-clip.md) - 设置音频片段 diff --git a/docs/api/components/audio-source-component/get-output-mixer.md b/docs/api/components/audio-source-component/get-output-mixer.md new file mode 100644 index 00000000..8c6e2e03 --- /dev/null +++ b/docs/api/components/audio-source-component/get-output-mixer.md @@ -0,0 +1,41 @@ +# GetOutputMixer + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的输出混音器。 + +## 函数签名 + +```cpp +Audio::AudioMixer* GetOutputMixer() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `Audio::AudioMixer*` | 输出混音器指针,如果未设置则返回 nullptr | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckOutputMixer(AudioSourceComponent* source) { + auto* mixer = source->GetOutputMixer(); + if (mixer) { + printf("Output mixer is set\n"); + } else { + printf("Using default output\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetOutputMixer](./set-output-mixer.md) - 设置输出混音器 diff --git a/docs/api/components/audio-source-component/get-pan.md b/docs/api/components/audio-source-component/get-pan.md new file mode 100644 index 00000000..bcbd8efb --- /dev/null +++ b/docs/api/components/audio-source-component/get-pan.md @@ -0,0 +1,37 @@ +# GetPan + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的平移值。 + +## 函数签名 + +```cpp +float GetPan() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前平移值,-1.0 到 1.0 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintPan(AudioSourceComponent* source) { + float pan = source->GetPan(); + printf("Pan: %.2f\n", pan); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetPan](./set-pan.md) - 设置平移值 diff --git a/docs/api/components/audio-source-component/get-pitch.md b/docs/api/components/audio-source-component/get-pitch.md new file mode 100644 index 00000000..3166b91d --- /dev/null +++ b/docs/api/components/audio-source-component/get-pitch.md @@ -0,0 +1,37 @@ +# GetPitch + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的音高。 + +## 函数签名 + +```cpp +float GetPitch() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前音高,1.0 为正常速度 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintPitch(AudioSourceComponent* source) { + float pitch = source->GetPitch(); + printf("Pitch: %.2f\n", pitch); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetPitch](./set-pitch.md) - 设置音高 diff --git a/docs/api/components/audio-source-component/get-reverb-zone-mix.md b/docs/api/components/audio-source-component/get-reverb-zone-mix.md new file mode 100644 index 00000000..502721f8 --- /dev/null +++ b/docs/api/components/audio-source-component/get-reverb-zone-mix.md @@ -0,0 +1,37 @@ +# GetReverbZoneMix + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的混响区域混合比例。 + +## 函数签名 + +```cpp +float GetReverbZoneMix() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前混响混合比例,0.0 到 1.0 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintReverbZoneMix(AudioSourceComponent* source) { + float mix = source->GetReverbZoneMix(); + printf("Reverb zone mix: %.2f\n", mix); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetReverbZoneMix](./set-reverb-zone-mix.md) - 设置混响混合比例 diff --git a/docs/api/components/audio-source-component/get-spread.md b/docs/api/components/audio-source-component/get-spread.md new file mode 100644 index 00000000..529dc26e --- /dev/null +++ b/docs/api/components/audio-source-component/get-spread.md @@ -0,0 +1,37 @@ +# GetSpread + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的扩散角度。 + +## 函数签名 + +```cpp +float GetSpread() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前扩散角度(度) | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintSpread(AudioSourceComponent* source) { + float spread = source->GetSpread(); + printf("Spread: %.1f degrees\n", spread); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetSpread](./set-spread.md) - 设置扩散角度 diff --git a/docs/api/components/audio-source-component/get-time.md b/docs/api/components/audio-source-component/get-time.md new file mode 100644 index 00000000..ff2cb36e --- /dev/null +++ b/docs/api/components/audio-source-component/get-time.md @@ -0,0 +1,39 @@ +# GetTime + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源当前的播放位置。 + +## 函数签名 + +```cpp +float GetTime() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前播放位置,单位秒 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintCurrentTime(AudioSourceComponent* source) { + float time = source->GetTime(); + float duration = source->GetDuration(); + printf("%.1f / %.1f seconds\n", time, duration); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetTime](./set-time.md) - 设置播放位置 +- [GetDuration](./get-duration.md) - 获取总时长 diff --git a/docs/api/components/audio-source-component/get-volume.md b/docs/api/components/audio-source-component/get-volume.md new file mode 100644 index 00000000..85c3413c --- /dev/null +++ b/docs/api/components/audio-source-component/get-volume.md @@ -0,0 +1,37 @@ +# GetVolume + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 获取音频源的音量。 + +## 函数签名 + +```cpp +float GetVolume() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `float` | 当前音量,范围 0.0 到 1.0 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PrintVolume(AudioSourceComponent* source) { + float volume = source->GetVolume(); + printf("Volume: %.2f\n", volume); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetVolume](./set-volume.md) - 设置音量 diff --git a/docs/api/components/audio-source-component/is-energy-detecting.md b/docs/api/components/audio-source-component/is-energy-detecting.md new file mode 100644 index 00000000..3f854428 --- /dev/null +++ b/docs/api/components/audio-source-component/is-energy-detecting.md @@ -0,0 +1,41 @@ +# IsEnergyDetecting + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 检查音频能量检测是否处于活跃状态。 + +## 函数签名 + +```cpp +bool IsEnergyDetecting() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `bool` | true 表示正在检测能量,false 表示未检测 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckEnergyDetection(AudioSourceComponent* source) { + if (source->IsEnergyDetecting()) { + float energy = source->GetEnergy(); + printf("Current energy: %.2f\n", energy); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [StartEnergyDetect](./start-energy-detect.md) - 开始能量检测 +- [StopEnergyDetect](./stop-energy-detect.md) - 停止能量检测 +- [GetEnergy](./get-energy.md) - 获取当前能量值 diff --git a/docs/api/components/audio-source-component/is-looping.md b/docs/api/components/audio-source-component/is-looping.md new file mode 100644 index 00000000..445ba482 --- /dev/null +++ b/docs/api/components/audio-source-component/is-looping.md @@ -0,0 +1,38 @@ +# IsLooping + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 检查音频源是否设置为循环播放。 + +## 函数签名 + +```cpp +bool IsLooping() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `bool` | true 表示循环播放,false 表示播放一次后停止 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckLoopingStatus(AudioSourceComponent* source) { + if (source->IsLooping()) { + printf("Audio is looping\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetLooping](./set-looping.md) - 设置循环播放 diff --git a/docs/api/components/audio-source-component/is-paused.md b/docs/api/components/audio-source-component/is-paused.md new file mode 100644 index 00000000..7dd4061e --- /dev/null +++ b/docs/api/components/audio-source-component/is-paused.md @@ -0,0 +1,38 @@ +# IsPaused + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 检查音频源是否处于暂停状态。 + +## 函数签名 + +```cpp +bool IsPaused() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `bool` | true 表示已暂停,false 表示未暂停 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckPausedStatus(AudioSourceComponent* source) { + if (source->IsPaused()) { + printf("Audio is paused\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [IsPlaying](./is-playing.md) - 检查是否正在播放 diff --git a/docs/api/components/audio-source-component/is-playing.md b/docs/api/components/audio-source-component/is-playing.md new file mode 100644 index 00000000..17698420 --- /dev/null +++ b/docs/api/components/audio-source-component/is-playing.md @@ -0,0 +1,40 @@ +# IsPlaying + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 检查音频源是否正在播放。 + +## 函数签名 + +```cpp +bool IsPlaying() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `bool` | true 表示正在播放,false 表示未在播放 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckPlayingStatus(AudioSourceComponent* source) { + if (source->IsPlaying()) { + printf("Audio is playing\n"); + } else { + printf("Audio is not playing\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [IsPaused](./is-paused.md) - 检查是否暂停 diff --git a/docs/api/components/audio-source-component/is-spatialize.md b/docs/api/components/audio-source-component/is-spatialize.md new file mode 100644 index 00000000..a82b9469 --- /dev/null +++ b/docs/api/components/audio-source-component/is-spatialize.md @@ -0,0 +1,38 @@ +# IsSpatialize + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 检查音频源是否启用3D空间化。 + +## 函数签名 + +```cpp +bool IsSpatialize() const; +``` + +## 返回值 + +| 类型 | 描述 | +|------|------| +| `bool` | true 表示启用3D空间化,false 表示禁用 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void CheckSpatializeStatus(AudioSourceComponent* source) { + if (source->IsSpatialize()) { + printf("3D spatialization is enabled\n"); + } +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [SetSpatialize](./set-spatialize.md) - 设置空间化 diff --git a/docs/api/components/audio-source-component/pause.md b/docs/api/components/audio-source-component/pause.md new file mode 100644 index 00000000..982f8e3c --- /dev/null +++ b/docs/api/components/audio-source-component/pause.md @@ -0,0 +1,31 @@ +# Pause + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 暂停音频播放。 + +## 函数签名 + +```cpp +void Pause(); +``` + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void PauseAudio(AudioSourceComponent* source) { + source->Pause(); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [Play](./play.md) - 开始播放 +- [Stop](./stop.md) - 停止播放 diff --git a/docs/api/components/audio-source-component/play.md b/docs/api/components/audio-source-component/play.md new file mode 100644 index 00000000..99cbf359 --- /dev/null +++ b/docs/api/components/audio-source-component/play.md @@ -0,0 +1,31 @@ +# Play + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 开始播放音频。 + +## 函数签名 + +```cpp +void Play(); +``` + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void StartPlayback(AudioSourceComponent* source) { + source->Play(); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [Pause](./pause.md) - 暂停播放 +- [Stop](./stop.md) - 停止播放 diff --git a/docs/api/components/audio-source-component/set-clip.md b/docs/api/components/audio-source-component/set-clip.md new file mode 100644 index 00000000..c8412876 --- /dev/null +++ b/docs/api/components/audio-source-component/set-clip.md @@ -0,0 +1,39 @@ +# SetClip + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源播放的音频片段。 + +## 函数签名 + +```cpp +void SetClip(Resources::AudioClip* clip); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `clip` | `Resources::AudioClip*` | 音频片段指针,设置为 nullptr 则清除当前片段 | + +## 使用示例 + +```cpp +#include +#include + +using namespace XCEngine::Components; + +void LoadAndPlaySound(AudioSourceComponent* source) { + auto clip = Resources::AudioClip::Load("assets/audio/ explosion.wav"); + source->SetClip(clip); + source->Play(); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetClip](./get-clip.md) - 获取当前音频片段 diff --git a/docs/api/components/audio-source-component/set-doppler-level.md b/docs/api/components/audio-source-component/set-doppler-level.md new file mode 100644 index 00000000..e8418951 --- /dev/null +++ b/docs/api/components/audio-source-component/set-doppler-level.md @@ -0,0 +1,36 @@ +# SetDopplerLevel + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源的多普勒效应等级。 + +## 函数签名 + +```cpp +void SetDopplerLevel(float level); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `level` | `float` | 多普勒等级,1.0 为默认值,0.0 禁用 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupDoppler(AudioSourceComponent* source) { + source->SetDopplerLevel(1.0f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetDopplerLevel](./get-doppler-level.md) - 获取多普勒等级 diff --git a/docs/api/components/audio-source-component/set-looping.md b/docs/api/components/audio-source-component/set-looping.md new file mode 100644 index 00000000..15b0f455 --- /dev/null +++ b/docs/api/components/audio-source-component/set-looping.md @@ -0,0 +1,36 @@ +# SetLooping + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源是否循环播放。 + +## 函数签名 + +```cpp +void SetLooping(bool loop); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `loop` | `bool` | true 启用循环播放,false 播放一次后停止 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupLooping(AudioSourceComponent* source, bool shouldLoop) { + source->SetLooping(shouldLoop); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [IsLooping](./is-looping.md) - 检查是否循环播放 diff --git a/docs/api/components/audio-source-component/set-pan.md b/docs/api/components/audio-source-component/set-pan.md new file mode 100644 index 00000000..28bcb597 --- /dev/null +++ b/docs/api/components/audio-source-component/set-pan.md @@ -0,0 +1,43 @@ +# SetPan + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源的平移值(左右声道分布)。 + +## 函数签名 + +```cpp +void SetPan(float pan); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `pan` | `float` | 平移值,-1.0 表示完全左声道,0.0 表示居中,1.0 表示完全右声道 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupPan(AudioSourceComponent* source) { + // 居中 + source->SetPan(0.0f); + + // 偏左 + source->SetPan(-0.5f); + + // 偏右 + source->SetPan(0.5f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetPan](./get-pan.md) - 获取平移值 diff --git a/docs/api/components/audio-source-component/set-pitch.md b/docs/api/components/audio-source-component/set-pitch.md new file mode 100644 index 00000000..9e40c008 --- /dev/null +++ b/docs/api/components/audio-source-component/set-pitch.md @@ -0,0 +1,43 @@ +# SetPitch + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源的音高。 + +## 函数签名 + +```cpp +void SetPitch(float pitch); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `pitch` | `float` | 音高,0.5 表示半速,1.0 表示正常速度,2.0 表示双倍速度 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupPitch(AudioSourceComponent* source) { + // 正常音高 + source->SetPitch(1.0f); + + // 低八度 + source->SetPitch(0.5f); + + // 高八度 + source->SetPitch(2.0f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetPitch](./get-pitch.md) - 获取音高 diff --git a/docs/api/components/audio-source-component/set-reverb-zone-mix.md b/docs/api/components/audio-source-component/set-reverb-zone-mix.md new file mode 100644 index 00000000..35381fa1 --- /dev/null +++ b/docs/api/components/audio-source-component/set-reverb-zone-mix.md @@ -0,0 +1,43 @@ +# SetReverbZoneMix + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置混响区域混合比例。 + +## 函数签名 + +```cpp +void SetReverbZoneMix(float mix); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `mix` | `float` | 混响混合比例,0.0 到 1.0,0.0 表示干声,1.0 表示完全混响 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupReverbZoneMix(AudioSourceComponent* source) { + // 干声(无混响) + source->SetReverbZoneMix(0.0f); + + // 半湿声 + source->SetReverbZoneMix(0.5f); + + // 完全混响 + source->SetReverbZoneMix(1.0f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetReverbZoneMix](./get-reverb-zone-mix.md) - 获取混响混合比例 diff --git a/docs/api/components/audio-source-component/set-spatialize.md b/docs/api/components/audio-source-component/set-spatialize.md new file mode 100644 index 00000000..9da9d882 --- /dev/null +++ b/docs/api/components/audio-source-component/set-spatialize.md @@ -0,0 +1,40 @@ +# SetSpatialize + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源是否启用3D空间化。 + +## 函数签名 + +```cpp +void SetSpatialize(bool spatialize); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `spatialize` | `bool` | true 启用3D空间化,false 禁用(2D模式) | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupSpatialize(AudioSourceComponent* source) { + // 启用3D空间化(环境音) + source->SetSpatialize(true); + + // 禁用3D空间化(UI音效) + source->SetSpatialize(false); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [IsSpatialize](./is-spatialize.md) - 检查是否启用空间化 diff --git a/docs/api/components/audio-source-component/set-spread.md b/docs/api/components/audio-source-component/set-spread.md new file mode 100644 index 00000000..219a67dc --- /dev/null +++ b/docs/api/components/audio-source-component/set-spread.md @@ -0,0 +1,43 @@ +# SetSpread + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源的扩散角度。 + +## 函数签名 + +```cpp +void SetSpread(float spread); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `spread` | `float` | 扩散角度,0.0 到 360.0 度,0 表示点声源,360 表示全向 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SetupSpread(AudioSourceComponent* source) { + // 点声源 + source->SetSpread(0.0f); + + // 半全向 + source->SetSpread(180.0f); + + // 全向 + source->SetSpread(360.0f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetSpread](./get-spread.md) - 获取扩散角度 diff --git a/docs/api/components/audio-source-component/set-time.md b/docs/api/components/audio-source-component/set-time.md new file mode 100644 index 00000000..07bd63d4 --- /dev/null +++ b/docs/api/components/audio-source-component/set-time.md @@ -0,0 +1,41 @@ +# SetTime + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 设置音频源的当前播放位置。 + +## 函数签名 + +```cpp +void SetTime(float seconds); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `seconds` | `float` | 播放位置,单位秒 | + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void SeekToPosition(AudioSourceComponent* source, float seconds) { + source->SetTime(seconds); +} + +void RewindToStart(AudioSourceComponent* source) { + source->SetTime(0.0f); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [GetTime](./get-time.md) - 获取当前播放位置 +- [GetDuration](./get-duration.md) - 获取总时长 diff --git a/docs/api/components/audio-source-component/start-energy-detect.md b/docs/api/components/audio-source-component/start-energy-detect.md new file mode 100644 index 00000000..d65cd482 --- /dev/null +++ b/docs/api/components/audio-source-component/start-energy-detect.md @@ -0,0 +1,32 @@ +# StartEnergyDetect + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 开始音频能量检测。 + +## 函数签名 + +```cpp +void StartEnergyDetect(); +``` + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void BeginEnergyDetection(AudioSourceComponent* source) { + source->StartEnergyDetect(); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [StopEnergyDetect](./stop-energy-detect.md) - 停止能量检测 +- [IsEnergyDetecting](./is-energy-detecting.md) - 检查是否正在检测 +- [GetEnergy](./get-energy.md) - 获取当前能量值 diff --git a/docs/api/components/audio-source-component/stop-energy-detect.md b/docs/api/components/audio-source-component/stop-energy-detect.md new file mode 100644 index 00000000..1bfea631 --- /dev/null +++ b/docs/api/components/audio-source-component/stop-energy-detect.md @@ -0,0 +1,31 @@ +# StopEnergyDetect + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 停止音频能量检测。 + +## 函数签名 + +```cpp +void StopEnergyDetect(); +``` + +## 使用示例 + +```cpp +#include + +using namespace XCEngine::Components; + +void EndEnergyDetection(AudioSourceComponent* source) { + source->StopEnergyDetect(); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [StartEnergyDetect](./start-energy-detect.md) - 开始能量检测 +- [IsEnergyDetecting](./is-energy-detecting.md) - 检查是否正在检测 diff --git a/docs/api/components/audio-source-component/stop.md b/docs/api/components/audio-source-component/stop.md new file mode 100644 index 00000000..136238d2 --- /dev/null +++ b/docs/api/components/audio-source-component/stop.md @@ -0,0 +1,42 @@ +# Stop + +**所属类**: `AudioSourceComponent` + +**头文件**: `XCEngine/Components/AudioSourceComponent.h` + +**描述**: 停止音频播放。 + +## 函数签名 + +```cpp +void Stop(Audio::StopMode mode = Audio::StopMode::Immediate); +``` + +## 参数 + +| 参数 | 类型 | 描述 | +|------|------|------| +| `mode` | `Audio::StopMode` | 停止模式,默认为 Immediate(立即停止) | + +## 使用示例 + +```cpp +#include +#include + +using namespace XCEngine::Components; + +void StopAudio(AudioSourceComponent* source) { + source->Stop(Audio::StopMode::Immediate); +} + +void FadeOutAndStop(AudioSourceComponent* source) { + source->Stop(Audio::StopMode::FadeOut); +} +``` + +## 相关文档 + +- [AudioSourceComponent](./audio-source-component.md) - 音频源组件 +- [Play](./play.md) - 开始播放 +- [Pause](./pause.md) - 暂停播放 diff --git a/docs/api/components/game-object/game-object.md b/docs/api/components/game-object/game-object.md index 181f3e88..4acb4d42 100644 --- a/docs/api/components/game-object/game-object.md +++ b/docs/api/components/game-object/game-object.md @@ -42,6 +42,7 @@ GameObject 是 XCEngine ECS 架构中的实体(Entity)类,代表游戏世 | [`GetComponentInChildren`](get-component-in-children.md) | 在子对象中查找组件 | | [`GetComponentInParent`](get-component-in-parent.md) | 在父对象中查找组件 | | [`GetComponentsInChildren`](get-components-in-children.md) | 获取所有子对象的指定组件 | +| [`RemoveComponent`](remove-component.md) | 移除组件(模板方法) | ### 层级结构 diff --git a/docs/api/components/game-object/remove-component.md b/docs/api/components/game-object/remove-component.md new file mode 100644 index 00000000..1121d756 --- /dev/null +++ b/docs/api/components/game-object/remove-component.md @@ -0,0 +1,26 @@ +# GameObject::RemoveComponent + +移除指定类型的组件。 + +```cpp +template +void RemoveComponent(); + +bool RemoveComponent(Component* component); +``` + +模板版本根据类型移除组件,参数版本根据指针移除具体组件实例。TransformComponent 无法被移除。 + +**模板参数:** +- `T` - 组件类型 + +**参数:** +- `component` - 要移除的组件指针 + +**返回:** `bool` - 对于指针版本,如果成功移除则返回 true + +## 相关文档 + +- [GameObject 总览](game-object.md) +- [AddComponent](add-component.md) +- [GetComponent](get-component.md) diff --git a/docs/api/containers/string/reserve-resize.md b/docs/api/containers/string/reserve-resize.md index fb2a87c7..952f1279 100644 --- a/docs/api/containers/string/reserve-resize.md +++ b/docs/api/containers/string/reserve-resize.md @@ -21,7 +21,7 @@ void Resize(SizeType newSize, char fillChar); **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/containers/string/size.md b/docs/api/containers/string/size.md index 90847229..d5168517 100644 --- a/docs/api/containers/string/size.md +++ b/docs/api/containers/string/size.md @@ -19,7 +19,7 @@ bool Empty() const; **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/containers/string/starts-with.md b/docs/api/containers/string/starts-with.md index 1ee0447a..0efec461 100644 --- a/docs/api/containers/string/starts-with.md +++ b/docs/api/containers/string/starts-with.md @@ -16,7 +16,7 @@ bool StartsWith(const char* prefix) const; **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/containers/string/substring.md b/docs/api/containers/string/substring.md index 9b479eba..d1fc2749 100644 --- a/docs/api/containers/string/substring.md +++ b/docs/api/containers/string/substring.md @@ -16,7 +16,7 @@ String Substring(SizeType pos, SizeType len = npos) const; **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/containers/string/to-lower-upper.md b/docs/api/containers/string/to-lower-upper.md index 8ad2d583..6f3a38b6 100644 --- a/docs/api/containers/string/to-lower-upper.md +++ b/docs/api/containers/string/to-lower-upper.md @@ -15,7 +15,7 @@ String ToUpper() const; **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/containers/string/trim.md b/docs/api/containers/string/trim.md index 21a14334..d5dcc86c 100644 --- a/docs/api/containers/string/trim.md +++ b/docs/api/containers/string/trim.md @@ -14,7 +14,7 @@ String Trim() const; **示例:** ```cpp -#include "XCEngine/Containers/String.h" +#include "XCEngine/Core/Containers/String.h" #include int main() { diff --git a/docs/api/core/core.md b/docs/api/core/core.md index 973a7e2d..d518e3d2 100644 --- a/docs/api/core/core.md +++ b/docs/api/core/core.md @@ -73,7 +73,7 @@ UniqueRef MakeUnique(Args&&... args); ```cpp #include -#include +#include using namespace XCEngine::Core; diff --git a/docs/api/core/filewriter/filewriter.md b/docs/api/core/filewriter/filewriter.md index bd70af62..d1a59a8c 100644 --- a/docs/api/core/filewriter/filewriter.md +++ b/docs/api/core/filewriter/filewriter.md @@ -29,7 +29,7 @@ ```cpp #include -#include +#include using namespace XCEngine::Core; diff --git a/docs/api/core/types/types.md b/docs/api/core/types/types.md index 11b12105..1de0599c 100644 --- a/docs/api/core/types/types.md +++ b/docs/api/core/types/types.md @@ -59,4 +59,4 @@ void ProcessData(Core::uint32 size, const Core::int8* data); ## 相关文档 -- [SmartPtr](../smartptr/smartptr.md) - 智能指针(该文档暂缺) +- [SmartPtr](../smartptr/smartptr.md) - 智能指针 diff --git a/docs/api/math/box/intersects.md b/docs/api/math/box/intersects.md index 14f3974b..99e6841c 100644 --- a/docs/api/math/box/intersects.md +++ b/docs/api/math/box/intersects.md @@ -26,6 +26,7 @@ using namespace XCEngine::Math; Box box(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f)); Sphere sphere(Vector3(2.0f, 0.0f, 0.0f), 1.0f); if (box.Intersects(sphere)) { + // 盒体与球体相交 } ``` diff --git a/docs/api/math/obb/obb.md b/docs/api/math/obb/obb.md index 0feea902..c534058f 100644 --- a/docs/api/math/obb/obb.md +++ b/docs/api/math/obb/obb.md @@ -4,7 +4,7 @@ **类型**: `struct` -**头文件**: `XCEngine/Math/OBB.h` +**头文件**: `XCEngine/Math/AABB.h` **描述**: 定向包围盒,支持任意方向旋转的盒状包围体 diff --git a/docs/api/memory/memory.md b/docs/api/memory/memory.md index 64e17eb6..1b156a90 100644 --- a/docs/api/memory/memory.md +++ b/docs/api/memory/memory.md @@ -4,7 +4,7 @@ **类型**: `module` -**头文件**: `XCEngine/Memory/Memory.h` +**头文件**: `XCEngine/Memory/MemoryManager.h` **描述**: XCEngine 的内存管理模块,提供多种内存分配器实现。 @@ -55,6 +55,9 @@ Memory 模块提供了一套完整的内存管理解决方案,包括基础分 ```cpp #include +// 初始化内存管理器 +MemoryManager::Get().Initialize(); + // 获取系统分配器 IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator(); diff --git a/docs/api/memory/proxy-allocator/proxy-allocator.md b/docs/api/memory/proxy-allocator/proxy-allocator.md index ea0c0525..35b89308 100644 --- a/docs/api/memory/proxy-allocator/proxy-allocator.md +++ b/docs/api/memory/proxy-allocator/proxy-allocator.md @@ -16,6 +16,8 @@ | 方法 | 描述 | |------|------| +| [`ProxyAllocator`](constructor.md) | 构造代理分配器 | +| [`~ProxyAllocator`](~proxy-allocator.md) | 析构函数 | | [`Allocate`](allocate.md) | 分配内存并记录统计 | | [`Free`](free.md) | 释放内存并记录统计 | | [`Reallocate`](reallocate.md) | 转发到底层分配器 | @@ -26,39 +28,6 @@ | [`GetAllocationCount`](get-allocation-count.md) | 获取分配次数 | | [`GetName`](get-name.md) | 获取分配器名称 | -## 构造函数 - -```cpp -ProxyAllocator(IAllocator* underlying, const char* name); -``` - -构造一个代理分配器,包装底层分配器并记录分配统计。所有 `Allocate`、`Free`、`Reallocate` 调用都会被转发到底层分配器,同时记录统计信息。名称用于日志和报告。 - -**参数:** -- `underlying` - 被包装的底层分配器,不能为 `nullptr` -- `name` - 代理分配器的名称字符串 - -**返回:** 无 - -**复杂度:** O(1) - -**示例:** - -```cpp -#include -#include - -MemoryManager::Get().Initialize(); - -// 使用系统分配器作为底层 -IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator(); -ProxyAllocator proxy(sysAlloc, "TempAllocations"); - -// 通过代理分配 -void* ptr = proxy.Allocate(1024); -proxy.Free(ptr); -``` - ## 相关文档 - [Memory 模块总览](../memory.md) - 返回模块总览 diff --git a/docs/api/memory/proxy-allocator/~proxy-allocator.md b/docs/api/memory/proxy-allocator/~proxy-allocator.md new file mode 100644 index 00000000..52dbacc8 --- /dev/null +++ b/docs/api/memory/proxy-allocator/~proxy-allocator.md @@ -0,0 +1,37 @@ +# ProxyAllocator::~ProxyAllocator + +```cpp +~ProxyAllocator() override; +``` + +销毁代理分配器。不会释放底层分配器的内存,只是停止统计并转发请求。 + +**参数:** 无 + +**返回:** 无 + +**注意:** 析构函数仅销毁代理对象本身,底层分配器需要由用户单独管理。 + +**示例:** + +```cpp +#include +#include + +IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator(); + +{ + ProxyAllocator proxy(sysAlloc, "ScopedAlloc"); + proxy.Allocate(1024); + // 超出作用域时代理被销毁,但底层分配器仍在 +} + +// 底层分配器仍可继续使用 +void* ptr = sysAlloc->Allocate(256); +sysAlloc->Free(ptr); +``` + +## 相关文档 + +- [ProxyAllocator 总览](proxy-allocator.md) - 返回类总览 +- [`ProxyAllocator`](constructor.md) - 构造函数 diff --git a/docs/api/resources/material-loader/index.md b/docs/api/resources/material-loader/index.md index 74cb8feb..f5d928fa 100644 --- a/docs/api/resources/material-loader/index.md +++ b/docs/api/resources/material-loader/index.md @@ -56,4 +56,4 @@ if (result.IsSuccess()) { - [Material](../material/material.md) - [IResourceLoader](../iloader/iloader.md) -- [ResourceManager](../resourcemanager/resourcemanager.md) +- [ResourceManager](../resource-manager/resource-manager.md) diff --git a/docs/api/resources/mesh-loader/index.md b/docs/api/resources/mesh-loader/index.md index 27db3caf..3ce1882c 100644 --- a/docs/api/resources/mesh-loader/index.md +++ b/docs/api/resources/mesh-loader/index.md @@ -56,4 +56,4 @@ if (result.IsSuccess()) { - [Mesh](../mesh/mesh.md) - [IResourceLoader](../iloader/iloader.md) -- [ResourceManager](../resourcemanager/resourcemanager.md) +- [ResourceManager](../resource-manager/resource-manager.md) diff --git a/docs/api/resources/resource-dependency-graph/index.md b/docs/api/resources/resource-dependency-graph/index.md index bb5cee84..8253eba5 100644 --- a/docs/api/resources/resource-dependency-graph/index.md +++ b/docs/api/resources/resource-dependency-graph/index.md @@ -89,6 +89,6 @@ void Example() { ## 相关文档 -- [ResourceTypes](./resource-types.md) -- [ResourceManager](../resource-manager/resource-manager.md) -- [ResourcePool](./resource-pool.md) +- [ResourceTypes](../resourcetypes/resourcetypes.md) - 资源类型定义 +- [ResourceManager](../resource-manager/resource-manager.md) - 资源管理器 +- [Resources 总览](../resources.md) - 返回模块总览 diff --git a/docs/api/resources/resource-loader/resource-loader.md b/docs/api/resources/resource-loader/resource-loader.md index c6f15bfe..1a25211d 100644 --- a/docs/api/resources/resource-loader/resource-loader.md +++ b/docs/api/resources/resource-loader/resource-loader.md @@ -113,7 +113,7 @@ ResourceManager::Get().RegisterLoader(new TextureLoader()); ## 相关文档 -- [ResourceManager](../resourcemanager/resourcemanager.md) - 资源管理器 +- [ResourceManager](../resource-manager/resource-manager.md) - 资源管理器 - [AsyncLoader](../asyncloader/asyncloader.md) - 异步加载器 - [ImportSettings](../importsettings/importsettings.md) - 导入设置 - [Resources 总览](../resources.md) - 返回模块总览 diff --git a/docs/api/resources/resourcepath/resourcepath.md b/docs/api/resources/resourcepath/resourcepath.md index d0aa0d6c..48e4caa4 100644 --- a/docs/api/resources/resourcepath/resourcepath.md +++ b/docs/api/resources/resourcepath/resourcepath.md @@ -85,5 +85,5 @@ Containers::HashMap> textures; ## 相关文档 - [ResourceTypes](../resourcetypes/resourcetypes.md) - 资源类型定义 -- [ResourceManager](../resourcemanager/resourcemanager.md) - 资源管理器 +- [ResourceManager](../resource-manager/resource-manager.md) - 资源管理器 - [Resources 总览](../resources.md) - 返回模块总览 diff --git a/docs/api/resources/shader-loader/index.md b/docs/api/resources/shader-loader/index.md index 4c100f63..f3e8381e 100644 --- a/docs/api/resources/shader-loader/index.md +++ b/docs/api/resources/shader-loader/index.md @@ -56,4 +56,4 @@ if (result.IsSuccess()) { - [Shader](../shader/shader.md) - [IResourceLoader](../iloader/iloader.md) -- [ResourceManager](../resourcemanager/resourcemanager.md) +- [ResourceManager](../resource-manager/resource-manager.md) diff --git a/docs/api/resources/texture-import-settings/texture-import-settings.md b/docs/api/resources/texture-import-settings/texture-import-settings.md index e16be651..d229ca76 100644 --- a/docs/api/resources/texture-import-settings/texture-import-settings.md +++ b/docs/api/resources/texture-import-settings/texture-import-settings.md @@ -114,6 +114,6 @@ ResourceHandle tex = ResourceManager::Get().Load("textures/dif - [ImportSettings](../importsettings/importsettings.md) - 导入设置基类 - [IResourceLoader](../iloader/iloader.md) - 资源加载器接口 -- [ResourceManager](../resourcemanager/resourcemanager.md) - 资源管理器 +- [ResourceManager](../resource-manager/resource-manager.md) - 资源管理器 - [Texture](../texture/texture.md) - 纹理资源类 - [Resources 总览](../resources.md) - 资源模块总览 diff --git a/docs/api/resources/texture/texture.md b/docs/api/resources/texture/texture.md index fb83c5dd..4383eb3a 100644 --- a/docs/api/resources/texture/texture.md +++ b/docs/api/resources/texture/texture.md @@ -154,6 +154,6 @@ auto format = tex.GetFormat(); ## 相关文档 - [IResource](../iresource/iresource.md) - 资源基类 -- [ResourceManager](../resourcemanager/resourcemanager.md) - 资源管理器 +- [ResourceManager](../resource-manager/resource-manager.md) - 资源管理器 - [RHITexture](../../rhi/texture/texture.md) - RHI 纹理接口 - [Resources 总览](../resources.md) - 返回模块总览 \ No newline at end of file diff --git a/docs/api/rhi/device/device.md b/docs/api/rhi/device/device.md index 5113e0f4..49884fce 100644 --- a/docs/api/rhi/device/device.md +++ b/docs/api/rhi/device/device.md @@ -25,7 +25,7 @@ | [`CreateSwapChain`](create-swap-chain.md) | 创建交换链 | | [`CreateCommandList`](create-command-list.md) | 创建命令列表 | | [`CreateCommandQueue`](create-command-queue.md) | 创建命令队列 | -| [`CompileShader`](compile-shader.md) | 编译着色器 | +| [`CreateShader`](create-shader.md) | 创建着色器 | | [`CreatePipelineState`](create-pipeline-state.md) | 创建管线状态 | | [`CreateFence`](create-fence.md) | 创建栅栏 | | [`CreateSampler`](create-sampler.md) | 创建采样器 | diff --git a/docs/api/rhi/opengl/depth-stencil-view/depth-stencil-view.md b/docs/api/rhi/opengl/depth-stencil-view/depth-stencil-view.md index faa2953d..322671ed 100644 --- a/docs/api/rhi/opengl/depth-stencil-view/depth-stencil-view.md +++ b/docs/api/rhi/opengl/depth-stencil-view/depth-stencil-view.md @@ -31,8 +31,6 @@ | [`GetFramebuffer`](get-framebuffer.md) | 获取帧缓冲 | | [`GetTexture`](get-texture.md) | 获取纹理 | | [`GetMipLevel`](get-mip-level.md) | 获取 Mip 级别 | -| [`GetWidth`](get-size.md) | 获取宽度 | -| [`GetHeight`](get-size.md) | 获取高度 | | [`BindFramebuffer`](bind-framebuffer.md) | 绑定帧缓冲 | | [`UnbindFramebuffer`](unbind-framebuffer.md) | 解绑帧缓冲 | diff --git a/docs/api/rhi/opengl/device/device.md b/docs/api/rhi/opengl/device/device.md index 5f9cc728..cfa3da5a 100644 --- a/docs/api/rhi/opengl/device/device.md +++ b/docs/api/rhi/opengl/device/device.md @@ -4,26 +4,20 @@ **继承自**: `RHIDevice` -**描述**: OpenGL 设备的实现,基于 GLFW 和 Glad 提供 OpenGL 图形渲染能力。支持创建窗口、管理渲染资源、编译着色器等核心 RHI 功能。 +**描述**: OpenGL 设备的实现,基于 Windows 原生窗口(HWND)和 Glad 提供 OpenGL 图形渲染能力。 ## 概述 -`OpenGLDevice` 是 XCEngine RHI 模块的 OpenGL 后端实现,通过 GLFW 管理窗口上下文,使用 Glad 加载 OpenGL 函数。它继承自抽象接口 `RHIDevice`,提供与具体图形 API 无关的统一接口。 +`OpenGLDevice` 是 XCEngine RHI 模块的 OpenGL 后端实现,通过 Windows HWND 管理窗口上下文,使用 Glad 加载 OpenGL 函数。它继承自抽象接口 `RHIDevice`,提供与具体图形 API 无关的统一接口。 ### 主要功能 -- 基于 GLFW 的窗口管理和事件处理 +- 基于 Windows HWND 的窗口管理和事件处理 - OpenGL 3.3 Core Profile 上下文初始化 - 使用 Glad 动态加载 OpenGL 函数 - 设备能力查询和信息收集 - 渲染资源创建(缓冲区、纹理、着色器等) -### 版本要求 - -- OpenGL 3.3 Core Profile -- GLFW 3.0+ -- Glad OpenGL 3.3+ - ## 公共方法 | 方法 | 描述 | @@ -32,22 +26,15 @@ | [`~OpenGLDevice`](destructor.md) | 析构函数 | | [`Initialize`](initialize.md) | 初始化设备 | | [`Shutdown`](shutdown.md) | 关闭设备 | -| [`CreateRenderWindow`](create-render-window.md) | 创建渲染窗口 | | [`InitializeWithExistingWindow`](initialize-with-existing-window.md) | 使用现有窗口初始化 | -| [`GetWindow`](get-window.md) | 获取 GLFW 窗口指针 | -| [`GetDC`](get-dc.md) | 获取 Windows 设备上下文 | -| [`GetContext`](get-context.md) | 获取 OpenGL 渲染上下文 | -| [`GetDeviceInfoImpl`](get-device-info-impl.md) | 获取设备信息实现 | -| [`SwapBuffers`](swap-buffers.md) | 交换前后缓冲区 | -| [`PollEvents`](poll-events.md) | 处理窗口事件 | -| [`SetShouldClose`](set-should-close.md) | 设置关闭标志 | -| [`ShouldClose`](should-close.md) | 检查是否应关闭 | +| [`MakeContextCurrent`](make-context-current.md) | 使 OpenGL 上下文为当前上下文 | +| [`GetNativeContext`](get-native-context.md) | 获取 OpenGL 渲染上下文句柄 | | [`CreateBuffer`](create-buffer.md) | 创建缓冲区 | | [`CreateTexture`](create-texture.md) | 创建纹理 | | [`CreateSwapChain`](create-swap-chain.md) | 创建交换链 | | [`CreateCommandList`](create-command-list.md) | 创建命令列表 | | [`CreateCommandQueue`](create-command-queue.md) | 创建命令队列 | -| [`CompileShader`](compile-shader.md) | 编译着色器 | +| [`CreateShader`](create-shader.md) | 创建着色器 | | [`CreatePipelineState`](create-pipeline-state.md) | 创建管线状态 | | [`CreateFence`](create-fence.md) | 创建栅栏 | | [`CreateSampler`](create-sampler.md) | 创建采样器 | @@ -76,25 +63,17 @@ if (!device.Initialize(desc)) { } // 渲染循环 -while (!device.ShouldClose()) { - device.PollEvents(); - - // 渲染逻辑 - renderScene(); - - device.SwapBuffers(); -} +// (OpenGL 采用立即模式,渲染逻辑在主循环中执行) // 清理 device.Shutdown(); ``` -### 使用已有 GLFW 窗口 +### 使用已有 Windows 窗口 ```cpp -GLFWwindow* existingWindow = glfwCreateWindow(1280, 720, "My Window", nullptr, nullptr); - OpenGLDevice device; +HWND existingWindow = /* 获取 Windows 窗口句柄 */; if (device.InitializeWithExistingWindow(existingWindow)) { // 使用已有窗口继续渲染 } diff --git a/docs/api/rhi/opengl/pipeline-state/pipeline-state.md b/docs/api/rhi/opengl/pipeline-state/pipeline-state.md index a93531ca..719b510c 100644 --- a/docs/api/rhi/opengl/pipeline-state/pipeline-state.md +++ b/docs/api/rhi/opengl/pipeline-state/pipeline-state.md @@ -20,7 +20,6 @@ | [`SetRasterizerState`](set-rasterizer-state.md) | 设置光栅化状态 | | [`SetViewport`](set-viewport.md) | 设置视口 | | [`SetScissor`](set-scissor.md) | 设置裁剪 | -| [`SetLogicalOperation`](set-logical-operation.md) | 设置逻辑操作 | | [`Apply`](apply.md) | 应用管线状态 | | [`ApplyDepthStencil`](apply-depth-stencil.md) | 应用深度模板状态 | | [`ApplyBlend`](apply-blend.md) | 应用混合状态 | diff --git a/docs/api/rhi/opengl/shader/shader.md b/docs/api/rhi/opengl/shader/shader.md index 7c29390f..b04274a1 100644 --- a/docs/api/rhi/opengl/shader/shader.md +++ b/docs/api/rhi/opengl/shader/shader.md @@ -24,23 +24,6 @@ | [`Bind`](../../shader/bind.md) | 绑定着色器 | | [`Unbind`](../../shader/unbind.md) | 解绑着色器 | -### Uniform 设置方法 - -| 方法 | 描述 | -|------|------| -| [`SetInt`](../../shader/set-int.md) | 设置整数 uniform | -| [`SetIntArray`](set-int-array.md) | 设置整数数组 uniform | -| [`SetFloat`](../../shader/set-float.md) | 设置浮点数 uniform | -| [`SetFloatArray`](set-float-array.md) | 设置浮点数数组 uniform | -| [`SetVec3`](../../shader/set-vec3.md) | 设置 vec3 uniform (xyz分量) | -| [`SetVec3`](set-vec3-array.md) | 设置 vec3 uniform (数组) | -| [`SetVec4`](../../shader/set-vec4.md) | 设置 vec4 uniform (xyzw分量) | -| [`SetVec4`](set-vec4-array.md) | 设置 vec4 uniform (数组) | -| [`SetMat2`](set-mat2.md) | 设置 mat2 uniform | -| [`SetMat3`](set-mat3.md) | 设置 mat3 uniform | -| [`SetMat4`](../../shader/set-mat4.md) | 设置 mat4 uniform | -| [`SetMat4Array`](set-mat4-array.md) | 设置 mat4 数组 uniform | - ### 查询方法 | 方法 | 描述 | diff --git a/docs/api/rhi/opengl/swap-chain/swap-chain.md b/docs/api/rhi/opengl/swap-chain/swap-chain.md index a6fbbf62..506c506a 100644 --- a/docs/api/rhi/opengl/swap-chain/swap-chain.md +++ b/docs/api/rhi/opengl/swap-chain/swap-chain.md @@ -24,26 +24,14 @@ | [`OpenGLSwapChain`](constructor.md) | 构造函数 | | [`~OpenGLSwapChain`](destructor.md) | 析构函数 | | [`Initialize`](initialize.md) | 初始化交换链 | -| [`Initialize(mode)`](initialize-mode.md) | 使用模式初始化 | | [`Shutdown`](shutdown.md) | 关闭交换链 | | [`Present`](present.md) | 呈现画面 | | [`SwapBuffers`](swap-buffers.md) | 交换缓冲 | | [`Resize`](resize.md) | 调整交换链大小 | -| [`SetVSync`](set-vsync.md) | 设置垂直同步 | -| [`IsVSync`](is-vsync.md) | 检查是否垂直同步 | -| [`SetFullscreen`](set-fullscreen.md) | 设置全屏模式 | -| [`IsFullscreen`](is-fullscreen.md) | 检查是否全屏 | -| [`ShouldClose`](should-close.md) | 检查是否应关闭 | -| [`SetShouldClose`](set-should-close.md) | 设置关闭标志 | -| [`PollEvents`](poll-events.md) | 处理窗口事件 | | [`GetCurrentBackBufferIndex`](get-current-back-buffer-index.md) | 获取当前后台缓冲区索引 | | [`GetCurrentBackBuffer`](get-current-back-buffer.md) | 获取当前后台缓冲区 | | [`GetWidth`](get-width.md) | 获取宽度 | | [`GetHeight`](get-height.md) | 获取高度 | -| [`GetFramebufferWidth`](get-framebuffer-width.md) | 获取帧缓冲宽度 | -| [`GetFramebufferHeight`](get-framebuffer-height.md) | 获取帧缓冲高度 | -| [`SetFramebufferSize`](set-framebuffer-size.md) | 设置帧缓冲大小 | -| [`GetWindow`](get-window.md) | 获取窗口 | | [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 | ## 使用示例 @@ -53,16 +41,15 @@ // 创建并初始化 XCEngine::RHI::OpenGLSwapChain swapChain; -GLFWwindow* window = /* 获取 GLFW 窗口 */; -swapChain.Initialize(window, true); +OpenGLDevice* device = /* 获取 OpenGLDevice */; +HWND window = /* 获取窗口句柄 */; +swapChain.Initialize(device, window, 1280, 720); // 游戏循环 -while (!swapChain.ShouldClose()) { - swapChain.PollEvents(); - +while (true) { // 渲染逻辑 Render(); - + swapChain.Present(1, 0); } diff --git a/docs/api/rhi/shader/shader.md b/docs/api/rhi/shader/shader.md index 56e18b1f..f7c35a13 100644 --- a/docs/api/rhi/shader/shader.md +++ b/docs/api/rhi/shader/shader.md @@ -10,31 +10,22 @@ ## 概述 -`RHIShader` 是 XCEngine RHI 模块中的抽象着色器接口类,定义了 GPU 着色器程序的标准 API。该类是所有具体着色器实现(如 D3D12Shader、VulkanShader 等)的基类,提供了统一的着色器编译、绑定和参数设置接口。 +`RHIShader` 是 XCEngine RHI 模块中的抽象着色器接口类,定义了 GPU 着色器程序的标准 API。该类是所有具体着色器实现(如 D3D12Shader、OpenGLShader 等)的基类,提供了统一的着色器编译和元数据查询接口。 设计目的: - 提供跨平台的着色器抽象 -- 统一着色器资源管理和绑定流程 +- 统一着色器编译和资源管理 - 简化渲染管线中着色器的使用 ## 公共方法 | 方法 | 描述 | |------|------| -| [`RHIShader`](constructor.md) | 默认构造函数 | -| [`~RHIShader`](destructor.md) | 虚析构函数 | | [`CompileFromFile`](compile-from-file.md) | 从文件编译着色器 | | [`Compile`](compile.md) | 从内存数据编译着色器 | | [`GetType`](get-type.md) | 获取着色器类型 | | [`IsValid`](is-valid.md) | 检查着色器是否有效 | -| [`Bind`](bind.md) | 绑定着色器到渲染管线 | -| [`Unbind`](unbind.md) | 解绑着色器 | | [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 | -| [`SetInt`](set-int.md) | 设置整数 uniform | -| [`SetFloat`](set-float.md) | 设置浮点数 uniform | -| [`SetVec3`](set-vec3.md) | 设置三维向量 uniform | -| [`SetVec4`](set-vec4.md) | 设置四维向量 uniform | -| [`SetMat4`](set-mat4.md) | 设置 4x4 矩阵 uniform | | [`Shutdown`](shutdown.md) | 释放着色器资源 | ## 公共属性 @@ -67,22 +58,14 @@ using namespace XCEngine::RHI; -// 通过 RHIDevice 编译着色器 +// 通过 RHIDevice 创建并编译着色器 ShaderCompileDesc vsDesc; vsDesc.fileName = L"shaders/vertex.cso"; vsDesc.entryPoint = "VSMain"; vsDesc.profile = "vs_5_0"; -RHIShader* vertexShader = device->CompileShader(vsDesc); +RHIShader* vertexShader = device->CreateShader(vsDesc); if (vertexShader && vertexShader->IsValid()) { - vertexShader->Bind(); - - // 设置 uniform 参数 - float modelMatrix[16] = { /* 4x4 模型矩阵数据 */ }; - vertexShader->SetMat4("u_modelMatrix", modelMatrix); - // 渲染... - - vertexShader->Unbind(); } if (vertexShader) { diff --git a/docs/api/rhi/swap-chain/swap-chain.md b/docs/api/rhi/swap-chain/swap-chain.md index b9dc0f0f..09dc64d6 100644 --- a/docs/api/rhi/swap-chain/swap-chain.md +++ b/docs/api/rhi/swap-chain/swap-chain.md @@ -14,7 +14,6 @@ 主要职责: - 管理前后台缓冲区切换 -- 处理窗口全屏/窗口化模式切换 - 协调垂直同步呈现 - 提供原生 API 句柄供高级用法 @@ -22,33 +21,24 @@ | 方法 | 描述 | |------|------| -| [`RHISwapChain`](constructor.md) | 默认构造函数 | | [`~RHISwapChain`](destructor.md) | 虚析构函数 | | [`Shutdown`](shutdown.md) | 关闭并释放资源 | | [`GetCurrentBackBufferIndex`](get-current-back-buffer-index.md) | 获取当前后台缓冲区索引 | | [`GetCurrentBackBuffer`](get-current-back-buffer.md) | 获取当前后台缓冲区 | | [`Present`](present.md) | 呈现画面 | | [`Resize`](resize.md) | 调整交换链大小 | -| [`SetFullscreen`](set-fullscreen.md) | 设置全屏模式 | -| [`IsFullscreen`](is-fullscreen.md) | 检查是否全屏 | -| [`ShouldClose`](should-close.md) | 检查是否应关闭 | -| [`SetShouldClose`](set-should-close.md) | 设置关闭标志 | -| [`PollEvents`](poll-events.md) | 处理窗口事件 | | [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 | ## 使用示例 ```cpp -while (!swapChain->ShouldClose()) { - swapChain->PollEvents(); - RHITexture* backBuffer = swapChain->GetCurrentBackBuffer(); - commandList->Reset(); - commandList->SetRenderTargets(1, &backBuffer, nullptr); - commandList->ClearRenderTarget(backBuffer, clearColor); - commandList->Close(); - commandQueue->ExecuteCommandLists(1, (void**)&commandList); - swapChain->Present(1, 0); -} +RHITexture* backBuffer = swapChain->GetCurrentBackBuffer(); +commandList->Reset(); +commandList->SetRenderTargets(1, &backBuffer, nullptr); +commandList->ClearRenderTarget(backBuffer, clearColor); +commandList->Close(); +commandQueue->ExecuteCommandLists(1, (void**)&commandList); +swapChain->Present(1, 0); ``` ## 相关文档 diff --git a/docs/api/threading/lambda-task/lambda-task.md b/docs/api/threading/lambda-task/lambda-task.md index 54a5ff60..0be33e06 100644 --- a/docs/api/threading/lambda-task/lambda-task.md +++ b/docs/api/threading/lambda-task/lambda-task.md @@ -54,4 +54,4 @@ TaskSystem::Get().Submit([]() { - [ITask](../task/task.md) - 任务基类 - [TaskGroup](../task-group/task-group.md) - 任务组 - [TaskSystem](../task-system/task-system.md) - 任务系统 -- [../threading/threading.md](../threading.md) - 模块总览 +- [../threading.md](../threading.md) - 模块总览 diff --git a/docs/api/threading/mutex/mutex.md b/docs/api/threading/mutex/mutex.md index 095e740d..1e4779bd 100644 --- a/docs/api/threading/mutex/mutex.md +++ b/docs/api/threading/mutex/mutex.md @@ -60,4 +60,4 @@ int main() { - [SpinLock](../spinlock/spinlock.md) - 自旋锁 - [ReadWriteLock](../read-write-lock/read-write-lock.md) - 读写锁 - [TaskSystem](../task-system/task-system.md) - 任务系统 -- [../threading/threading.md](../threading.md) - 模块总览 +- [../threading.md](../threading.md) - 模块总览 diff --git a/docs/api/threading/task-system-config/task-system-config.md b/docs/api/threading/task-system-config/task-system-config.md index 28473eec..2fd33d50 100644 --- a/docs/api/threading/task-system-config/task-system-config.md +++ b/docs/api/threading/task-system-config/task-system-config.md @@ -33,4 +33,4 @@ TaskSystem::Get().Initialize(config); ## 相关文档 - [TaskSystem](../task-system/task-system.md) - 任务系统 -- [../threading/threading.md](../threading.md) - 模块总览 +- [../threading.md](../threading.md) - 模块总览 diff --git a/docs/api/threading/task-system/task-system.md b/docs/api/threading/task-system/task-system.md index f406b3d9..5979d3c1 100644 --- a/docs/api/threading/task-system/task-system.md +++ b/docs/api/threading/task-system/task-system.md @@ -78,4 +78,4 @@ TaskSystem::Get().Shutdown(); - [LambdaTask](../lambda-task/lambda-task.md) - Lambda 任务 - [TaskGroup](../task-group/task-group.md) - 任务组 - [TaskSystemConfig](../task-system-config/task-system-config.md) - 配置 -- [../threading/threading.md](../threading.md) - 模块总览 +- [../threading.md](../threading.md) - 模块总览 diff --git a/docs/api/threading/task/task.md b/docs/api/threading/task/task.md index f60bee01..3ec0ea7c 100644 --- a/docs/api/threading/task/task.md +++ b/docs/api/threading/task/task.md @@ -90,4 +90,4 @@ TaskSystem::Get().Submit(std::unique_ptr(task)); - [LambdaTask](../lambda-task/lambda-task.md) - Lambda 任务封装 - [TaskGroup](../task-group/task-group.md) - 任务组 - [TaskSystem](../task-system/task-system.md) - 任务系统 -- [../threading/threading.md](../threading.md) - 模块总览 +- [../threading.md](../threading.md) - 模块总览