Review Raylib.Utils
This commit is contained in:
parent
8daf812930
commit
1f07b4b4a4
1 changed files with 31 additions and 49 deletions
|
|
@ -256,7 +256,7 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Save data to file from an unmanaged type</summary>
|
/// <summary>Save data to file from an unmanaged type</summary>
|
||||||
/// <returns>True if the operation was successfully</returns>
|
/// <returns>True if the operation was successful</returns>
|
||||||
public static CBool SaveFileData<T>(T data, string fileName) where T : unmanaged
|
public static CBool SaveFileData<T>(T data, string fileName) where T : unmanaged
|
||||||
{
|
{
|
||||||
using AnsiBuffer ansiBuffer = fileName.ToAnsiBuffer();
|
using AnsiBuffer ansiBuffer = fileName.ToAnsiBuffer();
|
||||||
|
|
@ -264,7 +264,7 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Save data to file from an unmanaged type</summary>
|
/// <summary>Save data to file from an unmanaged type</summary>
|
||||||
/// <returns>True if the operation was successfully</returns>
|
/// <returns>True if the operation was successful</returns>
|
||||||
public static CBool SaveFileData<T>(T[] data, string fileName) where T : unmanaged
|
public static CBool SaveFileData<T>(T[] data, string fileName) where T : unmanaged
|
||||||
{
|
{
|
||||||
if (data == null || data.Length == 0)
|
if (data == null || data.Length == 0)
|
||||||
|
|
@ -290,46 +290,16 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Load file data as byte array (read)</summary>
|
/// <summary>Load file data as byte array (read)</summary>
|
||||||
public static byte* LoadFileData(string fileName, ref int bytesRead)
|
public static byte* LoadFileData(string fileName, ref int dataSize)
|
||||||
{
|
{
|
||||||
using AnsiBuffer str1 = fileName.ToAnsiBuffer();
|
using AnsiBuffer str1 = fileName.ToAnsiBuffer();
|
||||||
fixed (int* p = &bytesRead)
|
fixed (int* p = &dataSize)
|
||||||
{
|
{
|
||||||
return LoadFileData(str1.AsPointer(), p);
|
return LoadFileData(str1.AsPointer(), p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] LoadFileData(string fileName)
|
/// <summary>Get dropped files names</summary>
|
||||||
{
|
|
||||||
int length = 0;
|
|
||||||
byte* data = LoadFileData(fileName, ref length);
|
|
||||||
|
|
||||||
if (data == null)
|
|
||||||
{
|
|
||||||
return Array.Empty<byte>();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
byte[] arr = new byte[length];
|
|
||||||
Marshal.Copy((IntPtr)data, arr, 0, length);
|
|
||||||
UnloadFileData(data);
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Load file data as an array of unmanaged types
|
|
||||||
/// </summary>
|
|
||||||
public static T[] LoadFileData<T>(string fileName) where T : unmanaged
|
|
||||||
{
|
|
||||||
int length = 0;
|
|
||||||
byte* data = LoadFileData(fileName, ref length);
|
|
||||||
Span<T> values = new Span<T>(data, length / sizeof(T));
|
|
||||||
T[] arr = values.ToArray();
|
|
||||||
UnloadFileData(data);
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Get dropped files names (memory should be freed)</summary>
|
|
||||||
public static string[] GetDroppedFiles()
|
public static string[] GetDroppedFiles()
|
||||||
{
|
{
|
||||||
FilePathList filePathList = LoadDroppedFiles();
|
FilePathList filePathList = LoadDroppedFiles();
|
||||||
|
|
@ -507,6 +477,7 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Check if point is within a polygon described by array of vertices</summary>
|
||||||
public static CBool CheckCollisionPointPoly(Vector2 point, Vector2[] points)
|
public static CBool CheckCollisionPointPoly(Vector2 point, Vector2[] points)
|
||||||
{
|
{
|
||||||
fixed (Vector2* p = points)
|
fixed (Vector2* p = points)
|
||||||
|
|
@ -841,6 +812,16 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Draw circle within an image (Vector version)</summary>
|
||||||
|
public static void ImageDrawCircleV(ref Image dst, Vector2 center, int radius, Color color)
|
||||||
|
{
|
||||||
|
fixed (Image* p = &dst)
|
||||||
|
{
|
||||||
|
ImageDrawCircleV(p, center, radius, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Draw circle outline within an image</summary>
|
||||||
public static void ImageDrawCircleLines(ref Image dst, int centerX, int centerY, int radius, Color color)
|
public static void ImageDrawCircleLines(ref Image dst, int centerX, int centerY, int radius, Color color)
|
||||||
{
|
{
|
||||||
fixed (Image* p = &dst)
|
fixed (Image* p = &dst)
|
||||||
|
|
@ -849,6 +830,7 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Draw circle outline within an image (Vector version)</summary>
|
||||||
public static void ImageDrawCircleLinesV(ref Image dst, Vector2 center, int radius, Color color)
|
public static void ImageDrawCircleLinesV(ref Image dst, Vector2 center, int radius, Color color)
|
||||||
{
|
{
|
||||||
fixed (Image* p = &dst)
|
fixed (Image* p = &dst)
|
||||||
|
|
@ -857,15 +839,6 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Draw circle within an image (Vector version)</summary>
|
|
||||||
public static void ImageDrawCircleV(ref Image dst, Vector2 center, int radius, Color color)
|
|
||||||
{
|
|
||||||
fixed (Image* p = &dst)
|
|
||||||
{
|
|
||||||
ImageDrawCircleV(p, center, radius, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Draw rectangle within an image</summary>
|
/// <summary>Draw rectangle within an image</summary>
|
||||||
public static void ImageDrawRectangle(ref Image dst, int posX, int posY, int width, int height, Color color)
|
public static void ImageDrawRectangle(ref Image dst, int posX, int posY, int width, int height, Color color)
|
||||||
{
|
{
|
||||||
|
|
@ -1623,9 +1596,9 @@ public static unsafe partial class Raylib
|
||||||
int temp = min;
|
int temp = min;
|
||||||
min = Math.Min(min, max);
|
min = Math.Min(min, max);
|
||||||
max = Math.Max(temp, max);
|
max = Math.Max(temp, max);
|
||||||
|
|
||||||
int* sequence = LoadRandomSequence(count, min, max);
|
int* sequence = LoadRandomSequence(count, min, max);
|
||||||
int[] output = new int[count];
|
int[] output = new int[count];
|
||||||
//Marshal.Copy((IntPtr)sequence, output, 0, count);
|
|
||||||
for (uint i = 0; i < count; i++)
|
for (uint i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
output[i] = sequence[i];
|
output[i] = sequence[i];
|
||||||
|
|
@ -1648,6 +1621,7 @@ public static unsafe partial class Raylib
|
||||||
min = Math.Min(min, max);
|
min = Math.Min(min, max);
|
||||||
max = Math.Max(temp, max);
|
max = Math.Max(temp, max);
|
||||||
const int maxi = 100000;
|
const int maxi = 100000;
|
||||||
|
|
||||||
int* sequence = LoadRandomSequence(count, 0, maxi);
|
int* sequence = LoadRandomSequence(count, 0, maxi);
|
||||||
float[] output = new float[count];
|
float[] output = new float[count];
|
||||||
for (uint i = 0; i < count; i++)
|
for (uint i = 0; i < count; i++)
|
||||||
|
|
@ -1657,6 +1631,7 @@ public static unsafe partial class Raylib
|
||||||
output[i] = Raymath.Lerp(min, max, norm);
|
output[i] = Raymath.Lerp(min, max, norm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UnloadRandomSequence(sequence);
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1673,7 +1648,6 @@ public static unsafe partial class Raylib
|
||||||
/// <summary>Rename file (if exists)</summary>
|
/// <summary>Rename file (if exists)</summary>
|
||||||
public static int FileRename(string filename, string fileRename)
|
public static int FileRename(string filename, string fileRename)
|
||||||
{
|
{
|
||||||
|
|
||||||
using AnsiBuffer fileBuffer = filename.ToAnsiBuffer();
|
using AnsiBuffer fileBuffer = filename.ToAnsiBuffer();
|
||||||
using AnsiBuffer textBuffer = fileRename.ToAnsiBuffer();
|
using AnsiBuffer textBuffer = fileRename.ToAnsiBuffer();
|
||||||
return FileRename(fileBuffer.AsPointer(), textBuffer.AsPointer());
|
return FileRename(fileBuffer.AsPointer(), textBuffer.AsPointer());
|
||||||
|
|
@ -1815,7 +1789,10 @@ public static unsafe partial class Raylib
|
||||||
return GetDirectoryFileCount(dirBuffer.AsPointer());
|
return GetDirectoryFileCount(dirBuffer.AsPointer());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result</summary>
|
/// <summary>
|
||||||
|
/// Get the file count in a directory with extension filtering and recursive directory scan.
|
||||||
|
/// Use 'DIR' in the filter string to include directories in the result
|
||||||
|
/// </summary>
|
||||||
public static int GetDirectoryFileCountEx(string dirPath, string filter, CBool scanSubdirs)
|
public static int GetDirectoryFileCountEx(string dirPath, string filter, CBool scanSubdirs)
|
||||||
{
|
{
|
||||||
using AnsiBuffer dirBuffer = dirPath.ToAnsiBuffer();
|
using AnsiBuffer dirBuffer = dirPath.ToAnsiBuffer();
|
||||||
|
|
@ -1823,7 +1800,10 @@ public static unsafe partial class Raylib
|
||||||
return GetDirectoryFileCountEx(dirBuffer.AsPointer(), filterBuffer.AsPointer(), scanSubdirs);
|
return GetDirectoryFileCountEx(dirBuffer.AsPointer(), filterBuffer.AsPointer(), scanSubdirs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Load directory filepaths with extension filtering and subdir scan; some filters available: "*.*", "FILES*", "DIRS*"</summary>
|
/// <summary>
|
||||||
|
/// Load directory filepaths with extension filtering and subdir scan; some
|
||||||
|
/// filters available: "*.*", "FILES*", "DIRS*"
|
||||||
|
/// </summary>
|
||||||
public static FilePathList LoadDirectoryFilesEx(string basePath, string filter, CBool scanSubDirs)
|
public static FilePathList LoadDirectoryFilesEx(string basePath, string filter, CBool scanSubDirs)
|
||||||
{
|
{
|
||||||
using AnsiBuffer baseBuffer = basePath.ToAnsiBuffer();
|
using AnsiBuffer baseBuffer = basePath.ToAnsiBuffer();
|
||||||
|
|
@ -1831,7 +1811,6 @@ public static unsafe partial class Raylib
|
||||||
return LoadDirectoryFilesEx(baseBuffer.AsPointer(), filterBuffer.AsPointer(), scanSubDirs);
|
return LoadDirectoryFilesEx(baseBuffer.AsPointer(), filterBuffer.AsPointer(), scanSubDirs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Compress data (DEFLATE algorithm)</summary>
|
/// <summary>Compress data (DEFLATE algorithm)</summary>
|
||||||
public static byte[] CompressData(byte[] data)
|
public static byte[] CompressData(byte[] data)
|
||||||
{
|
{
|
||||||
|
|
@ -2038,7 +2017,8 @@ public static unsafe partial class Raylib
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads text from a file, reads it, saves it, unloads the file, and returns the loaded text.
|
/// Loads text from a file, reads it, saves it, unloads the file, and
|
||||||
|
/// returns the loaded text.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>The text content of the file on the given path</returns>
|
/// <returns>The text content of the file on the given path</returns>
|
||||||
public static string LoadFileText(string fileName)
|
public static string LoadFileText(string fileName)
|
||||||
|
|
@ -2050,6 +2030,9 @@ public static unsafe partial class Raylib
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the screen center position
|
||||||
|
/// </summary>
|
||||||
public static Vector2 GetScreenCenter()
|
public static Vector2 GetScreenCenter()
|
||||||
{
|
{
|
||||||
Vector2 center = new Vector2();
|
Vector2 center = new Vector2();
|
||||||
|
|
@ -2057,5 +2040,4 @@ public static unsafe partial class Raylib
|
||||||
center.Y = GetScreenHeight() / 2.0f;
|
center.Y = GetScreenHeight() / 2.0f;
|
||||||
return center;
|
return center;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue