Skip to content

Commit

Permalink
Big fucking refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Tornado-Technology committed Aug 19, 2024
1 parent c4405f9 commit b959db9
Show file tree
Hide file tree
Showing 150 changed files with 855 additions and 574 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
namespace Hypercube.Client.Audio;
using JetBrains.Annotations;

namespace Hypercube.Audio;

/// <summary>
/// Formats in which the audio library can read <see cref="AudioStream"/>.
/// some may require additional support from drivers and devices.
/// </summary>
[PublicAPI]
public enum AudioFormat
{
Mono8 = 0x1100,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
namespace Hypercube.Client.Audio;
using JetBrains.Annotations;

namespace Hypercube.Audio;

[PublicAPI]
public readonly struct AudioId(int value) : IEquatable<AudioId>
{
public static readonly AudioId Invalid = new(-1);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
namespace Hypercube.Client.Audio;
using JetBrains.Annotations;

namespace Hypercube.Audio;

/// <summary>
/// Provides information about the loaded audio file to the external environment
/// and contains all the information necessary to create a <see cref="IAudioSource"/>.
/// </summary>
/// <seealso cref="IAudioManager.CreateSource(AudioStream)"/>
[PublicAPI]
public sealed class AudioStream : IDisposable
{
public readonly AudioId Id;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using Hypercube.Client.Audio.Loading;
using Hypercube.Client.Audio.Loading.TypeLoaders;
using Hypercube.Audio.Loading;
using Hypercube.Audio.Loading.TypeLoaders;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio;
namespace Hypercube.Audio;

/// <summary>
/// Displays all sound file types available on the engine side,
Expand All @@ -13,6 +14,7 @@ namespace Hypercube.Client.Audio;
/// </remarks>
/// <seealso cref="IAudioLoader"/>
/// <seealso cref="IAudioTypeLoader"/>
[PublicAPI]
public enum AudioType
{
_3gp,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using Hypercube.EventBus.Events;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Events;
namespace Hypercube.Audio.Events;

[PublicAPI]
public readonly record struct AudioLibraryInitializedEvent : IEventArgs;
12 changes: 12 additions & 0 deletions Hypercube.Audio/Exceptions/UnregisteredLoaderException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using JetBrains.Annotations;

namespace Hypercube.Audio.Exceptions;

[PublicAPI]
public sealed class UnregisteredLoaderException : Exception
{
public UnregisteredLoaderException(AudioType type) : base($"Loader for type {type} not registered")
{

}
}
13 changes: 13 additions & 0 deletions Hypercube.Audio/Hypercube.Audio.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\Hypercube.Resources\Hypercube.Resources.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
namespace Hypercube.Client.Audio;
using JetBrains.Annotations;

namespace Hypercube.Audio;

[PublicAPI]
public interface IAudioGroup
{
float Gain { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
using Hypercube.Client.Audio.Settings;
using Hypercube.Shared.Resources;
using Hypercube.Shared.Runtimes.Event;
using Hypercube.Audio.Settings;
using Hypercube.Resources;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio;
namespace Hypercube.Audio;

/// <summary>
/// Realization of audio library for work with audio devices,
/// as well as for work with <see cref="IAudioSource"/>.
/// </summary>
[PublicAPI]
public interface IAudioManager
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
namespace Hypercube.Client.Audio;
using JetBrains.Annotations;

namespace Hypercube.Audio;

/// <summary>
/// Source created from <see cref="AudioStream"/>,
/// its implementation is the responsibility of the current
/// <see cref="IAudioManager"/> implementation.
/// </summary>
[PublicAPI]
public interface IAudioSource : IDisposable
{
IAudioGroup? Group { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using System.Collections.Frozen;
using Hypercube.Client.Audio.Loading.Exceptions;
using Hypercube.Client.Audio.Loading.TypeLoaders;
using Hypercube.Audio.Exceptions;
using Hypercube.Audio.Loading.TypeLoaders;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Loading;
namespace Hypercube.Audio.Loading;

[PublicAPI]
public sealed class AudioLoader : IAudioLoader
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
namespace Hypercube.Client.Audio.Loading;
using JetBrains.Annotations;

namespace Hypercube.Audio.Loading;

/// <summary>
/// Provides information about the read audio file to be loaded by <see cref="IAudioManager"/>.
/// </summary>
[PublicAPI]
public interface IAudioData
{
AudioFormat Format { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
using Hypercube.Client.Audio.Loading.Exceptions;
using Hypercube.Client.Audio.Loading.TypeLoaders;
using Hypercube.Audio.Exceptions;
using Hypercube.Audio.Loading.TypeLoaders;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Loading;
namespace Hypercube.Audio.Loading;

/// <summary>
/// A router for audio files that selects a <see cref="IAudioLoader"/>
/// based on <see cref="AudioType"/>, and invoke it.
/// </summary>
[PublicAPI]
public interface IAudioLoader
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using Hypercube.Client.Audio.Readers.Wav;
using Hypercube.Audio.Readers.Wav;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Loading.TypeLoaders;
namespace Hypercube.Audio.Loading.TypeLoaders;

[PublicAPI]
public sealed class AudioWavLoader : IAudioTypeLoader
{
public IAudioData LoadAudioData(Stream stream)
Expand Down
9 changes: 9 additions & 0 deletions Hypercube.Audio/Loading/TypeLoaders/IAudioTypeLoader.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using JetBrains.Annotations;

namespace Hypercube.Audio.Loading.TypeLoaders;

[PublicAPI]
public interface IAudioTypeLoader
{
IAudioData LoadAudioData(Stream stream);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Hypercube.Client.Audio.Loading;
using Hypercube.Audio.Loading;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Readers.Wav;
namespace Hypercube.Audio.Readers.Wav;

/// <summary>
/// Read the <a href="http://soundfile.sapp.org/doc/WaveFormat/">specification</a> for more information
Expand All @@ -9,6 +10,7 @@ namespace Hypercube.Client.Audio.Readers.Wav;
/// 8-bit samples are stored as unsigned bytes, ranging from 0 to 255.
/// 16-bit samples are stored as 2's-complement signed integers, ranging from -32768 to 32767.
/// </remarks>
[PublicAPI]
public readonly struct AudioWavData : IAudioData
{
public AudioFormat Format { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using System.Runtime.CompilerServices;
using System.Text;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Readers.Wav;
namespace Hypercube.Audio.Readers.Wav;

[PublicAPI]
public sealed class AudioWavReader : IDisposable
{
private const int ChunkSize = 4 * sizeof(byte) + 1 * sizeof(uint);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using Hypercube.Client.Audio.Settings;
using Hypercube.Audio.Settings;
using Hypercube.Dependencies;
using Hypercube.Shared.Resources;
using Hypercube.Resources;
using JetBrains.Annotations;

namespace Hypercube.Client.Audio.Resources;
namespace Hypercube.Audio.Resources;

[PublicAPI]
public sealed class AudioResource : Resource, IDisposable
{
public ResourcePath Path;
Expand Down
6 changes: 6 additions & 0 deletions Hypercube.Audio/Settings/AudioSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
using JetBrains.Annotations;

namespace Hypercube.Audio.Settings;

[PublicAPI]
public readonly struct AudioSettings : IAudioSettings;
6 changes: 6 additions & 0 deletions Hypercube.Audio/Settings/IAudioSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
using JetBrains.Annotations;

namespace Hypercube.Audio.Settings;

[PublicAPI]
public interface IAudioSettings;
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using System.Collections.Frozen;
using Hypercube.Client.Audio;
using Hypercube.Utilities.Extensions;
using JetBrains.Annotations;

namespace Hypercube.Client.Utilities.Helpers;
namespace Hypercube.Audio.Utilities.Helpers;

[PublicAPI]
public static class AudioTypeHelper
{
private static readonly FrozenDictionary<string, AudioType> TypesAssociation;
Expand Down

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions Hypercube.Client/Audio/Settings/AudioSettings.cs

This file was deleted.

3 changes: 0 additions & 3 deletions Hypercube.Client/Audio/Settings/IAudioSettings.cs

This file was deleted.

15 changes: 6 additions & 9 deletions Hypercube.Client/Dependencies.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
using Hypercube.Client.Audio;
using Hypercube.Client.Audio.Loading;
using Hypercube.Client.Audio.Realisations.OpenAL;
using Hypercube.Client.Graphics.ImGui;
using Hypercube.Audio;
using Hypercube.Audio.Loading;
using Hypercube.Client.Graphics.Realisation.OpenGL.Rendering;
using Hypercube.Client.Graphics.Realisation.OpenGL.Texturing;
using Hypercube.Client.Graphics.Rendering;
using Hypercube.Client.Graphics.Texturing;
using Hypercube.Client.Graphics.Viewports;
using Hypercube.Client.Input.Handler;
using Hypercube.Client.Input.Manager;
using Hypercube.Client.Runtimes;
using Hypercube.Client.Runtimes.Loop;
using Hypercube.Dependencies;
using Hypercube.Graphics.Texturing;
using Hypercube.ImGui;
using Hypercube.OpenAL;
using Hypercube.Runtime;
using Hypercube.Shared;
using Hypercube.Shared.Runtimes;
using Hypercube.Shared.Runtimes.Loop;

namespace Hypercube.Client;

Expand Down Expand Up @@ -48,7 +45,7 @@ public static void Register(DependenciesContainer rootContainer)

// Runtime
rootContainer.Register<IRuntimeLoop, RuntimeLoop>();
rootContainer.Register<IRuntime, Runtime>();
rootContainer.Register<IRuntime, Runtimes.Runtime>();

rootContainer.InstantiateAll();
}
Expand Down
6 changes: 4 additions & 2 deletions Hypercube.Client/Entities/Systems/Sprite/SpriteComponent.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using Hypercube.Client.Graphics.Texturing;
using Hypercube.Graphics.Texturing;
using Hypercube.Shared.Entities.Realisation.Components;
using Hypercube.Mathematics;
using Hypercube.Mathematics.Transforms;
using Hypercube.Shared.Resources;
using Hypercube.Resources;
using JetBrains.Annotations;

namespace Hypercube.Client.Entities.Systems.Sprite;

[PublicAPI]
public sealed class SpriteComponent : Component
{
public ITextureHandle TextureHandle = default!;
Expand Down
4 changes: 2 additions & 2 deletions Hypercube.Client/Entities/Systems/Sprite/SpriteSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
using Hypercube.Dependencies;
using Hypercube.Mathematics.Shapes;
using Hypercube.Mathematics.Transforms;
using Hypercube.Resources.Container;
using Hypercube.Shared.Entities.Realisation;
using Hypercube.Shared.Entities.Realisation.Events;
using Hypercube.Shared.Entities.Realisation.Systems;
using Hypercube.Shared.Entities.Systems.Transform;
using Hypercube.Shared.Resources.Container;

namespace Hypercube.Client.Entities.Systems.Sprite;

Expand Down Expand Up @@ -43,6 +43,6 @@ private void OnRenderDrawing(ref RenderDrawingEvent args)

public void Render(Entity<SpriteComponent> entity, Transform2 transform)
{
_renderer.DrawTexture(entity.Component.TextureHandle, entity.Component.TextureHandle.Texture.QuadCrateTranslated(), Box2.UV, entity.Component.Color, transform.Matrix * entity.Component.Transform.Matrix);
_renderer.DrawTexture(entity.Component.TextureHandle, entity.Component.TextureHandle.Texture.Quad, Box2.UV, entity.Component.Color, transform.Matrix * entity.Component.Transform.Matrix);
}
}
Loading

0 comments on commit b959db9

Please sign in to comment.