Enhance graphics engine and code organization
Added `InternalsVisibleTo` attribute for "Ghost.Graphics" and "Ghost.Editor" in `AssemblyInfo.cs`. Added a new `EngineAssemblyAttribute` in `EngineAssemblyAttribute.cs`. Added a reference to `Misaki.HighPerformance.Unsafe` in `Ghost.Core.csproj`. Added a new `Bounds` struct to represent axis-aligned bounding boxes in `Bounds.cs`. Added new `Color32` and `Color128` structs for color representation in `Color.cs`. Changed the namespace from `Ghost.Editor.Controls` to `Ghost.Editor.Core.Controls` in multiple files. Changed the implicit conversion operator in `ConstPtr<T>` to use a more descriptive parameter name in `ConstPtr.cs`. Changed the `Mesh` class to use `Color128` instead of `Color32` for color representation. Enhanced the `TypeCache` class to load types from assemblies marked with `EngineAssemblyAttribute`. Enhanced the `ProjectService` class to improve the `GetAllProjectAsync` method by filtering out bad projects. Enhanced the `GraphicsPipeline` class to support both DX12 and D3D12 graphics APIs. Enhanced the `Shader` class to include methods for compiling HLSL shaders and managing root signatures. Enhanced the `MeshRenderPass` class to utilize the new shader compilation methods. Refactored the `AppStateMachine` class to use private fields instead of static fields for state management. Refactored the `ComponentDataView` class to use the new namespace and improve organization. Refactored project references in `Ghost.Graphics.csproj` to include new dependencies and remove outdated ones. Made various adjustments to ensure consistency and improve code quality across multiple files.
This commit is contained in:
6
Ghost.Core/AssemblyInfo.cs
Normal file
6
Ghost.Core/AssemblyInfo.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
using Ghost.Core.Attributes;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("Ghost.Graphics")]
|
||||
|
||||
[assembly: EngineAssembly]
|
||||
6
Ghost.Core/Attributes/EngineAssemblyAttribute.cs
Normal file
6
Ghost.Core/Attributes/EngineAssemblyAttribute.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ghost.Core.Attributes;
|
||||
|
||||
[AttributeUsage(AttributeTargets.Assembly)]
|
||||
public sealed class EngineAssemblyAttribute : Attribute
|
||||
{
|
||||
}
|
||||
@@ -13,5 +13,5 @@ public unsafe readonly struct ConstPtr<T>
|
||||
public readonly T* Ptr => _ptr;
|
||||
|
||||
public static implicit operator T*(ConstPtr<T> constPtr) => constPtr._ptr;
|
||||
public static implicit operator ConstPtr<T>(T* ptr) => new(ptr);
|
||||
public static implicit operator ConstPtr<T>(T* pointer) => new(pointer);
|
||||
}
|
||||
@@ -7,4 +7,10 @@
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Misaki.HighPerformance.Unsafe">
|
||||
<HintPath>..\..\Class\Misaki.HighPerformance\Misaki.HighPerformance.Unsafe\bin\Release\net9.0\Misaki.HighPerformance.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user