2
0
mirror of https://github.com/raylib-cs/raylib-cs synced 2025-06-30 19:03:42 -04:00

Safe UpdateMeshBuffer Method (#262)

This commit is contained in:
Nicky McDonald
2024-08-23 02:54:38 -04:00
committed by GitHub
parent 51925dd42d
commit 377a32a9db
3 changed files with 171 additions and 0 deletions

View File

@ -216,5 +216,40 @@ public unsafe partial struct Mesh
/// </summary>
public uint* VboId = default;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="Vertices"/>
/// </summary>
public const int VboIdIndexVertices = 0;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="TexCoords"/>
/// </summary>
public const int VboIdIndexTexCoords = 1;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="Normals"/>
/// </summary>
public const int VboIdIndexNormals = 2;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="Colors"/>
/// </summary>
public const int VboIdIndexColors = 3;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="Tangents"/>
/// </summary>
public const int VboIdIndexTangents = 4;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="TexCoords2"/>
/// </summary>
public const int VboIdIndexTexCoords2 = 5;
/// <summary>
/// Default <see cref="VboId"/> index for <see cref="Indices"/>
/// </summary>
public const int VboIdIndexIndices = 6;
#endregion
}

View File

@ -911,6 +911,15 @@ public static unsafe partial class Raylib
}
}
/// <summary> Update mesh vertex data in GPU for a specific buffer index </summary>
public static void UpdateMeshBuffer<T>(Mesh mesh, int index, ReadOnlySpan<T> data, int offset) where T : unmanaged
{
fixed (void* dataPtr = data)
{
UpdateMeshBuffer(mesh, index, dataPtr, data.Length * sizeof(T), offset);
}
}
/// <summary>Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)</summary>
public static void SetMaterialTexture(ref Material material, MaterialMapIndex mapType, Texture2D texture)
{