refactor(pipeline): MP1a - Content-owned upload enums; drop Silk.NET from Content
Coordinator-directed follow-up: AcDream.Content must stay Silk.NET-free (the MP1b bake tool must not ship GL binaries). The Silk.NET.OpenGL PackageReference added for the PixelFormat?/PixelType? upload hints is replaced by Content-owned UploadPixelFormat/UploadPixelType enums (UploadFormats.cs) whose underlying values are the GL ABI constants (Rgba = 0x1908, UnsignedByte = 0x1401), verified numerically identical to the Silk.NET.OpenGL members against 2.23.0. This is the one sanctioned edit to the verbatim-moved Prepare* bodies: enum literal for enum literal, numeric value identical, behavior unchanged. App casts at the single upload boundary (AddTexture call in UploadGfxObjMeshData) via lifted nullable enum conversion — value- and null-preserving. Also hardens the MP1a _sideStaged hand-off seam: List -> ConcurrentQueue. One MeshExtractor is shared by up to MaxParallelLoads (4) decode workers; the original code enqueued to the thread-safe _stagedMeshData directly, so the hand-off buffer must be thread-safe too. Drain ordering verified: side-staged entries enqueue BEFORE the top-level result, preserving the original mid-Prepare FIFO order. Verified: grep -i silk on the csproj -> no matches; deps.json has zero Silk entries; dotnet build 0 errors; full test suite green (4059 passed). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
30cc1e282e
commit
1477cda60a
5 changed files with 89 additions and 50 deletions
|
|
@ -7,8 +7,6 @@ using System.Collections.Generic;
|
|||
using System.Numerics;
|
||||
using System.Runtime.InteropServices;
|
||||
using BoundingBox = Chorizite.Core.Lib.BoundingBox;
|
||||
using PixelFormat = Silk.NET.OpenGL.PixelFormat;
|
||||
using PixelType = Silk.NET.OpenGL.PixelType;
|
||||
|
||||
namespace AcDream.Content;
|
||||
|
||||
|
|
@ -104,8 +102,8 @@ public class MeshBatchData {
|
|||
public TextureKey TextureKey { get; set; }
|
||||
public int TextureIndex { get; set; }
|
||||
public byte[] TextureData { get; set; } = Array.Empty<byte>();
|
||||
public PixelFormat? UploadPixelFormat { get; set; }
|
||||
public PixelType? UploadPixelType { get; set; }
|
||||
public UploadPixelFormat? UploadPixelFormat { get; set; }
|
||||
public UploadPixelType? UploadPixelType { get; set; }
|
||||
public DatReaderWriter.Enums.CullMode CullMode { get; set; }
|
||||
}
|
||||
|
||||
|
|
@ -115,8 +113,8 @@ public class MeshBatchData {
|
|||
public class TextureBatchData {
|
||||
public TextureKey Key { get; set; }
|
||||
public byte[] TextureData { get; set; } = Array.Empty<byte>();
|
||||
public PixelFormat? UploadPixelFormat { get; set; }
|
||||
public PixelType? UploadPixelType { get; set; }
|
||||
public UploadPixelFormat? UploadPixelFormat { get; set; }
|
||||
public UploadPixelType? UploadPixelType { get; set; }
|
||||
public List<ushort> Indices { get; set; } = new();
|
||||
public DatReaderWriter.Enums.CullMode CullMode { get; set; }
|
||||
public bool IsTransparent { get; set; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue