Improve the usability of Result<T, E> and add new job schedule method to EntityQuery.

Added implicate conversion to Result<T, E> and RefResult<T, E>;
Added new ScheduleChunkParallel in EntityQuery;
Remove Ghost.SparseEntity from solution file. It's now completlty replaced by Ghost.Entities;
This commit is contained in:
2025-12-09 21:43:12 +09:00
parent 97d1118caa
commit 99c1a1980e
29 changed files with 646 additions and 553 deletions

View File

@@ -98,7 +98,7 @@ internal struct GraphicsPipelineHash
// Do we need to store blend state?
// TODO: Variants
public GraphicsPipelineKey GetKey()
public readonly GraphicsPipelineKey GetKey()
{
Span<ulong> data = stackalloc ulong[3 + D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
data[0] = Id.value;
@@ -731,7 +731,7 @@ public struct CommandError
get; set;
}
public ResultStatus Status
public ErrorStatus Status
{
get; set;
}
@@ -988,4 +988,4 @@ public enum ComparisonFunction
NotEqual,
GreaterEqual,
Always
}
}

View File

@@ -39,7 +39,7 @@ public interface IResourceDatabase : IDisposable
/// </summary>
/// <param name="handle">The handle that uniquely identifies the resource whose state is to be retrieved.</param>
/// <returns>A ResourceState Value representing the current state of the resource associated with the specified handle.</returns>
Result<ResourceState, ResultStatus> GetResourceState(Handle<GPUResource> handle);
Result<ResourceState, ErrorStatus> GetResourceState(Handle<GPUResource> handle);
/// <summary>
/// Sets the state of the specified resource handle to the given Value.
@@ -53,14 +53,14 @@ public interface IResourceDatabase : IDisposable
/// </summary>
/// <param name="handle">A handle that identifies the GPU resource for which to obtain the description. Must reference a valid resource.</param>
/// <returns>A ResourceDesc structure containing details about the specified GPU resource.</returns>
Result<ResourceDesc, ResultStatus> GetResourceDescription(Handle<GPUResource> handle);
Result<ResourceDesc, ErrorStatus> GetResourceDescription(Handle<GPUResource> handle);
/// <summary>
/// Retrieves the bindless index associated with the specified GPU resource handle.
/// </summary>
/// <param name="handle">A handle to the GPU resource for which to obtain the bindless index. Must reference a valid, currently registered resource.</param>
/// <returns>The bindless index corresponding to the specified GPU resource handle. -1 if the resource does not support bindless access or is not found.</returns>
Result<uint, ResultStatus> GetBindlessIndex(Handle<GPUResource> handle);
Result<uint, ErrorStatus> GetBindlessIndex(Handle<GPUResource> handle);
/// <summary>
/// Retrieves the name of the GPU resource associated with the specified handle.