mirror of
				https://github.com/raylib-cs/raylib-cs
				synced 2025-11-02 05:06:44 -05:00 
			
		
		
		
	Add .editorconfig and apply formatting
This commit is contained in:
		
							
								
								
									
										51
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					# EditorConfig is awesome: http://EditorConfig.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					root = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[*]
 | 
				
			||||||
 | 
					indent_style = space
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# General
 | 
				
			||||||
 | 
					[*.{cs,csx,vb,vbx}]
 | 
				
			||||||
 | 
					indent_size = 4
 | 
				
			||||||
 | 
					insert_final_newline = true
 | 
				
			||||||
 | 
					charset = utf-8
 | 
				
			||||||
 | 
					trim_trailing_whitespace = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# C# styles
 | 
				
			||||||
 | 
					[*.cs]
 | 
				
			||||||
 | 
					# Indentation preferences
 | 
				
			||||||
 | 
					csharp_indent_block_contents = true
 | 
				
			||||||
 | 
					csharp_indent_braces = false
 | 
				
			||||||
 | 
					csharp_indent_case_contents = true
 | 
				
			||||||
 | 
					csharp_indent_case_contents_when_block = true
 | 
				
			||||||
 | 
					csharp_indent_switch_labels = true
 | 
				
			||||||
 | 
					csharp_indent_labels = flush_left
 | 
				
			||||||
 | 
					csharp_style_namespace_declarations = file_scoped:warning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Newline settings
 | 
				
			||||||
 | 
					csharp_new_line_before_open_brace = all
 | 
				
			||||||
 | 
					csharp_new_line_before_else = true
 | 
				
			||||||
 | 
					csharp_new_line_before_catch = true
 | 
				
			||||||
 | 
					csharp_new_line_before_finally = true
 | 
				
			||||||
 | 
					csharp_new_line_before_members_in_object_initializers = true
 | 
				
			||||||
 | 
					csharp_new_line_before_members_in_anonymous_types = true
 | 
				
			||||||
 | 
					csharp_new_line_between_query_expression_clauses = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Spacing
 | 
				
			||||||
 | 
					csharp_space_after_cast = false
 | 
				
			||||||
 | 
					csharp_space_after_colon_in_inheritance_clause = true
 | 
				
			||||||
 | 
					csharp_space_after_keywords_in_control_flow_statements = true
 | 
				
			||||||
 | 
					csharp_space_around_binary_operators = before_and_after
 | 
				
			||||||
 | 
					csharp_space_before_colon_in_inheritance_clause = true
 | 
				
			||||||
 | 
					csharp_space_between_method_call_empty_parameter_list_parentheses = false
 | 
				
			||||||
 | 
					csharp_space_between_method_call_name_and_opening_parenthesis = false
 | 
				
			||||||
 | 
					csharp_space_between_method_call_parameter_list_parentheses = false
 | 
				
			||||||
 | 
					csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
 | 
				
			||||||
 | 
					csharp_space_between_method_declaration_parameter_list_parentheses = false
 | 
				
			||||||
 | 
					csharp_space_between_parentheses = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Blocks are allowed
 | 
				
			||||||
 | 
					csharp_prefer_braces = true:error
 | 
				
			||||||
 | 
					csharp_preserve_single_line_blocks = false
 | 
				
			||||||
 | 
					csharp_preserve_single_line_statements = false
 | 
				
			||||||
@@ -30,41 +30,40 @@ using System;
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
using System.Runtime.Serialization;
 | 
					using System.Runtime.Serialization;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs.Tests
 | 
					namespace Raylib_cs.Tests;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public static class BlittableHelper
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public static class BlittableHelper
 | 
					    public static bool IsBlittable<T>()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public static bool IsBlittable<T>()
 | 
					        return IsBlittableCache<T>.VALUE;
 | 
				
			||||||
        {
 | 
					    }
 | 
				
			||||||
            return IsBlittableCache<T>.VALUE;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static bool IsBlittable(this Type type)
 | 
					    public static bool IsBlittable(this Type type)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (type == typeof(decimal))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (type == typeof(decimal))
 | 
					            return false;
 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (type.IsArray)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                var elementType = type.GetElementType();
 | 
					 | 
				
			||||||
                return elementType != null && elementType.IsValueType && IsBlittable(elementType);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                var instance = FormatterServices.GetUninitializedObject(type);
 | 
					 | 
				
			||||||
                GCHandle.Alloc(instance, GCHandleType.Pinned).Free();
 | 
					 | 
				
			||||||
                return true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (type.IsArray)
 | 
				
			||||||
        private static class IsBlittableCache<T>
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            public static readonly bool VALUE = IsBlittable(typeof(T));
 | 
					            var elementType = type.GetElementType();
 | 
				
			||||||
 | 
					            return elementType != null && elementType.IsValueType && IsBlittable(elementType);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        try
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var instance = FormatterServices.GetUninitializedObject(type);
 | 
				
			||||||
 | 
					            GCHandle.Alloc(instance, GCHandleType.Pinned).Free();
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static class IsBlittableCache<T>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public static readonly bool VALUE = IsBlittable(typeof(T));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,46 +1,45 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using Xunit;
 | 
					using Xunit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs.Tests
 | 
					namespace Raylib_cs.Tests;
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class RaylibTests
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        private unsafe void CheckType<T>() where T : unmanaged
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Assert.True(BlittableHelper.IsBlittable<T>());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Fact]
 | 
					public class RaylibTests
 | 
				
			||||||
        public void CheckTypes()
 | 
					{
 | 
				
			||||||
        {
 | 
					    private unsafe void CheckType<T>() where T : unmanaged
 | 
				
			||||||
            CheckType<Color>();
 | 
					    {
 | 
				
			||||||
            CheckType<Rectangle>();
 | 
					        Assert.True(BlittableHelper.IsBlittable<T>());
 | 
				
			||||||
            CheckType<Image>();
 | 
					    }
 | 
				
			||||||
            CheckType<Texture2D>();
 | 
					
 | 
				
			||||||
            CheckType<RenderTexture2D>();
 | 
					    [Fact]
 | 
				
			||||||
            CheckType<NPatchInfo>();
 | 
					    public void CheckTypes()
 | 
				
			||||||
            CheckType<GlyphInfo>();
 | 
					    {
 | 
				
			||||||
            CheckType<Font>();
 | 
					        CheckType<Color>();
 | 
				
			||||||
            CheckType<Camera2D>();
 | 
					        CheckType<Rectangle>();
 | 
				
			||||||
            CheckType<Camera3D>();
 | 
					        CheckType<Image>();
 | 
				
			||||||
            CheckType<Mesh>();
 | 
					        CheckType<Texture2D>();
 | 
				
			||||||
            CheckType<Shader>();
 | 
					        CheckType<RenderTexture2D>();
 | 
				
			||||||
            CheckType<MaterialMap>();
 | 
					        CheckType<NPatchInfo>();
 | 
				
			||||||
            CheckType<Material>();
 | 
					        CheckType<GlyphInfo>();
 | 
				
			||||||
            CheckType<Transform>();
 | 
					        CheckType<Font>();
 | 
				
			||||||
            CheckType<BoneInfo>();
 | 
					        CheckType<Camera2D>();
 | 
				
			||||||
            CheckType<Model>();
 | 
					        CheckType<Camera3D>();
 | 
				
			||||||
            CheckType<ModelAnimation>();
 | 
					        CheckType<Mesh>();
 | 
				
			||||||
            CheckType<Ray>();
 | 
					        CheckType<Shader>();
 | 
				
			||||||
            CheckType<RayCollision>();
 | 
					        CheckType<MaterialMap>();
 | 
				
			||||||
            CheckType<BoundingBox>();
 | 
					        CheckType<Material>();
 | 
				
			||||||
            CheckType<Wave>();
 | 
					        CheckType<Transform>();
 | 
				
			||||||
            CheckType<AudioStream>();
 | 
					        CheckType<BoneInfo>();
 | 
				
			||||||
            CheckType<Sound>();
 | 
					        CheckType<Model>();
 | 
				
			||||||
            CheckType<Music>();
 | 
					        CheckType<ModelAnimation>();
 | 
				
			||||||
            CheckType<VrDeviceInfo>();
 | 
					        CheckType<Ray>();
 | 
				
			||||||
            CheckType<VrStereoConfig>();
 | 
					        CheckType<RayCollision>();
 | 
				
			||||||
            CheckType<RenderBatch>();
 | 
					        CheckType<BoundingBox>();
 | 
				
			||||||
        }
 | 
					        CheckType<Wave>();
 | 
				
			||||||
 | 
					        CheckType<AudioStream>();
 | 
				
			||||||
 | 
					        CheckType<Sound>();
 | 
				
			||||||
 | 
					        CheckType<Music>();
 | 
				
			||||||
 | 
					        CheckType<VrDeviceInfo>();
 | 
				
			||||||
 | 
					        CheckType<VrStereoConfig>();
 | 
				
			||||||
 | 
					        CheckType<RenderBatch>();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,123 +1,122 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Wave type, defines audio wave data
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Wave
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Wave type, defines audio wave data
 | 
					    /// Number of samples
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint SampleCount;
 | 
				
			||||||
    public unsafe partial struct Wave
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of samples
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint SampleCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Frequency (samples per second)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint SampleRate;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint SampleSize;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of channels (1-mono, 2-stereo)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Channels;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //TODO: SPAN<byte>  ?
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Buffer data pointer
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public void* Data;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Audio stream type<br/>
 | 
					    /// Frequency (samples per second)
 | 
				
			||||||
    /// NOTE: Useful to create custom audio streams not bound to a specific file
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint SampleRate;
 | 
				
			||||||
    public partial struct AudioStream
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //TODO: convert
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Pointer to internal data(rAudioBuffer *) used by the audio system
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public IntPtr Buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Pointer to internal data processor, useful for audio effects
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public IntPtr Processor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Frequency (samples per second)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint SampleRate;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint SampleSize;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of channels (1-mono, 2-stereo)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Channels;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Sound source type
 | 
					    /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint SampleSize;
 | 
				
			||||||
    public partial struct Sound
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Audio stream
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public AudioStream Stream;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Total number of frames (considering channels)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint FrameCount;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Music stream type (audio file streaming from memory)<br/>
 | 
					    /// Number of channels (1-mono, 2-stereo)
 | 
				
			||||||
    /// NOTE: Anything longer than ~10 seconds should be streamed
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint Channels;
 | 
				
			||||||
    public unsafe partial struct Music
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Audio stream
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public AudioStream Stream;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    //TODO: SPAN<byte>  ?
 | 
				
			||||||
        /// Total number of samples
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Buffer data pointer
 | 
				
			||||||
        public uint FrameCount;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public void* Data;
 | 
				
			||||||
        /// <summary>
 | 
					}
 | 
				
			||||||
        /// Music looping enable
 | 
					
 | 
				
			||||||
        /// </summary>
 | 
					/// <summary>
 | 
				
			||||||
        public CBool Looping;
 | 
					/// Audio stream type<br/>
 | 
				
			||||||
 | 
					/// NOTE: Useful to create custom audio streams not bound to a specific file
 | 
				
			||||||
        /// <summary>
 | 
					/// </summary>
 | 
				
			||||||
        /// Type of music context (audio filetype)
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
        /// </summary>
 | 
					public partial struct AudioStream
 | 
				
			||||||
        public int CtxType;
 | 
					{
 | 
				
			||||||
 | 
					    //TODO: convert
 | 
				
			||||||
        //TODO span
 | 
					    /// <summary>
 | 
				
			||||||
        /// <summary>
 | 
					    /// Pointer to internal data(rAudioBuffer *) used by the audio system
 | 
				
			||||||
        /// Audio context data, depends on type
 | 
					    /// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					    public IntPtr Buffer;
 | 
				
			||||||
        public void* CtxData;
 | 
					
 | 
				
			||||||
    }
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Pointer to internal data processor, useful for audio effects
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public IntPtr Processor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Frequency (samples per second)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint SampleRate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint SampleSize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of channels (1-mono, 2-stereo)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint Channels;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Sound source type
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Sound
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Audio stream
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public AudioStream Stream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Total number of frames (considering channels)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint FrameCount;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Music stream type (audio file streaming from memory)<br/>
 | 
				
			||||||
 | 
					/// NOTE: Anything longer than ~10 seconds should be streamed
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Music
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Audio stream
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public AudioStream Stream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Total number of samples
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint FrameCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Music looping enable
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public CBool Looping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Type of music context (audio filetype)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int CtxType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO span
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Audio context data, depends on type
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public void* CtxData;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,26 +1,25 @@
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>Bounding box type</summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct BoundingBox
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>Bounding box type</summary>
 | 
					    /// <summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    /// Minimum vertex box-corner
 | 
				
			||||||
    public partial struct BoundingBox
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Vector3 Min;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Maximum vertex box-corner
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Vector3 Max;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public BoundingBox(Vector3 min, Vector3 max)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        this.Min = min;
 | 
				
			||||||
        /// Minimum vertex box-corner
 | 
					        this.Max = max;
 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Min;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Maximum vertex box-corner
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Max;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public BoundingBox(Vector3 min, Vector3 max)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.Min = min;
 | 
					 | 
				
			||||||
            this.Max = max;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,40 +1,39 @@
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Camera2D, defines position/orientation in 2d space
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Camera2D
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Camera2D, defines position/orientation in 2d space
 | 
					    /// Camera offset (displacement from target)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public Vector2 Offset;
 | 
				
			||||||
    public partial struct Camera2D
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Camera target (rotation and zoom origin)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Vector2 Target;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    ///  Camera rotation in degrees
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float Rotation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Camera zoom (scaling), should be 1.0f by default
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float Zoom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Camera2D(Vector2 offset, Vector2 target, float rotation, float zoom)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        this.Offset = offset;
 | 
				
			||||||
        /// Camera offset (displacement from target)
 | 
					        this.Target = target;
 | 
				
			||||||
        /// </summary>
 | 
					        this.Rotation = rotation;
 | 
				
			||||||
        public Vector2 Offset;
 | 
					        this.Zoom = zoom;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera target (rotation and zoom origin)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector2 Target;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        ///  Camera rotation in degrees
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float Rotation;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera zoom (scaling), should be 1.0f by default
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float Zoom;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public Camera2D(Vector2 offset, Vector2 target, float rotation, float zoom)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.Offset = offset;
 | 
					 | 
				
			||||||
            this.Target = target;
 | 
					 | 
				
			||||||
            this.Rotation = rotation;
 | 
					 | 
				
			||||||
            this.Zoom = zoom;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,67 +1,66 @@
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Camera system modes
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum CameraMode
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CAMERA_CUSTOM = 0,
 | 
				
			||||||
 | 
					    CAMERA_FREE,
 | 
				
			||||||
 | 
					    CAMERA_ORBITAL,
 | 
				
			||||||
 | 
					    CAMERA_FIRST_PERSON,
 | 
				
			||||||
 | 
					    CAMERA_THIRD_PERSON
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Camera projection
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum CameraProjection
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CAMERA_PERSPECTIVE = 0,
 | 
				
			||||||
 | 
					    CAMERA_ORTHOGRAPHIC
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Camera3D, defines position/orientation in 3d space
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Camera3D
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Camera system modes
 | 
					    /// Camera position
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum CameraMode
 | 
					    public Vector3 Position;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        CAMERA_CUSTOM = 0,
 | 
					 | 
				
			||||||
        CAMERA_FREE,
 | 
					 | 
				
			||||||
        CAMERA_ORBITAL,
 | 
					 | 
				
			||||||
        CAMERA_FIRST_PERSON,
 | 
					 | 
				
			||||||
        CAMERA_THIRD_PERSON
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Camera projection
 | 
					    /// Camera target it looks-at
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum CameraProjection
 | 
					    public Vector3 Target;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        CAMERA_PERSPECTIVE = 0,
 | 
					 | 
				
			||||||
        CAMERA_ORTHOGRAPHIC
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Camera3D, defines position/orientation in 3d space
 | 
					    /// Camera up vector (rotation over its axis)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public Vector3 Up;
 | 
				
			||||||
    public partial struct Camera3D
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float FovY;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Camera type, defines projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public CameraProjection Projection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Camera3D(Vector3 position, Vector3 target, Vector3 up, float fovY, CameraProjection projection)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        this.Position = position;
 | 
				
			||||||
        /// Camera position
 | 
					        this.Target = target;
 | 
				
			||||||
        /// </summary>
 | 
					        this.Up = up;
 | 
				
			||||||
        public Vector3 Position;
 | 
					        this.FovY = fovY;
 | 
				
			||||||
 | 
					        this.Projection = projection;
 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera target it looks-at
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Target;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera up vector (rotation over its axis)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Up;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float FovY;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Camera type, defines projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public CameraProjection Projection;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public Camera3D(Vector3 position, Vector3 target, Vector3 up, float fovY, CameraProjection projection)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.Position = position;
 | 
					 | 
				
			||||||
            this.Target = target;
 | 
					 | 
				
			||||||
            this.Up = up;
 | 
					 | 
				
			||||||
            this.FovY = fovY;
 | 
					 | 
				
			||||||
            this.Projection = projection;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,67 +1,66 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Color type, RGBA (32bit)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Color
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    public byte R;
 | 
				
			||||||
    /// Color type, RGBA (32bit)
 | 
					    public byte G;
 | 
				
			||||||
    /// </summary>
 | 
					    public byte B;
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public byte A;
 | 
				
			||||||
    public partial struct Color
 | 
					
 | 
				
			||||||
 | 
					    // Example - Color.RED instead of RED
 | 
				
			||||||
 | 
					    // Custom raylib color palette for amazing visuals
 | 
				
			||||||
 | 
					    public static readonly Color LIGHTGRAY = new Color(200, 200, 200, 255);
 | 
				
			||||||
 | 
					    public static readonly Color GRAY = new Color(130, 130, 130, 255);
 | 
				
			||||||
 | 
					    public static readonly Color DARKGRAY = new Color(80, 80, 80, 255);
 | 
				
			||||||
 | 
					    public static readonly Color YELLOW = new Color(253, 249, 0, 255);
 | 
				
			||||||
 | 
					    public static readonly Color GOLD = new Color(255, 203, 0, 255);
 | 
				
			||||||
 | 
					    public static readonly Color ORANGE = new Color(255, 161, 0, 255);
 | 
				
			||||||
 | 
					    public static readonly Color PINK = new Color(255, 109, 194, 255);
 | 
				
			||||||
 | 
					    public static readonly Color RED = new Color(230, 41, 55, 255);
 | 
				
			||||||
 | 
					    public static readonly Color MAROON = new Color(190, 33, 55, 255);
 | 
				
			||||||
 | 
					    public static readonly Color GREEN = new Color(0, 228, 48, 255);
 | 
				
			||||||
 | 
					    public static readonly Color LIME = new Color(0, 158, 47, 255);
 | 
				
			||||||
 | 
					    public static readonly Color DARKGREEN = new Color(0, 117, 44, 255);
 | 
				
			||||||
 | 
					    public static readonly Color SKYBLUE = new Color(102, 191, 255, 255);
 | 
				
			||||||
 | 
					    public static readonly Color BLUE = new Color(0, 121, 241, 255);
 | 
				
			||||||
 | 
					    public static readonly Color DARKBLUE = new Color(0, 82, 172, 255);
 | 
				
			||||||
 | 
					    public static readonly Color PURPLE = new Color(200, 122, 255, 255);
 | 
				
			||||||
 | 
					    public static readonly Color VIOLET = new Color(135, 60, 190, 255);
 | 
				
			||||||
 | 
					    public static readonly Color DARKPURPLE = new Color(112, 31, 126, 255);
 | 
				
			||||||
 | 
					    public static readonly Color BEIGE = new Color(211, 176, 131, 255);
 | 
				
			||||||
 | 
					    public static readonly Color BROWN = new Color(127, 106, 79, 255);
 | 
				
			||||||
 | 
					    public static readonly Color DARKBROWN = new Color(76, 63, 47, 255);
 | 
				
			||||||
 | 
					    public static readonly Color WHITE = new Color(255, 255, 255, 255);
 | 
				
			||||||
 | 
					    public static readonly Color BLACK = new Color(0, 0, 0, 255);
 | 
				
			||||||
 | 
					    public static readonly Color BLANK = new Color(0, 0, 0, 0);
 | 
				
			||||||
 | 
					    public static readonly Color MAGENTA = new Color(255, 0, 255, 255);
 | 
				
			||||||
 | 
					    public static readonly Color RAYWHITE = new Color(245, 245, 245, 255);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Color(byte r, byte g, byte b, byte a)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public byte R;
 | 
					        this.R = r;
 | 
				
			||||||
        public byte G;
 | 
					        this.G = g;
 | 
				
			||||||
        public byte B;
 | 
					        this.B = b;
 | 
				
			||||||
        public byte A;
 | 
					        this.A = a;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Example - Color.RED instead of RED
 | 
					    public Color(int r, int g, int b, int a)
 | 
				
			||||||
        // Custom raylib color palette for amazing visuals
 | 
					    {
 | 
				
			||||||
        public static readonly Color LIGHTGRAY = new Color(200, 200, 200, 255);
 | 
					        this.R = Convert.ToByte(r);
 | 
				
			||||||
        public static readonly Color GRAY = new Color(130, 130, 130, 255);
 | 
					        this.G = Convert.ToByte(g);
 | 
				
			||||||
        public static readonly Color DARKGRAY = new Color(80, 80, 80, 255);
 | 
					        this.B = Convert.ToByte(b);
 | 
				
			||||||
        public static readonly Color YELLOW = new Color(253, 249, 0, 255);
 | 
					        this.A = Convert.ToByte(a);
 | 
				
			||||||
        public static readonly Color GOLD = new Color(255, 203, 0, 255);
 | 
					    }
 | 
				
			||||||
        public static readonly Color ORANGE = new Color(255, 161, 0, 255);
 | 
					 | 
				
			||||||
        public static readonly Color PINK = new Color(255, 109, 194, 255);
 | 
					 | 
				
			||||||
        public static readonly Color RED = new Color(230, 41, 55, 255);
 | 
					 | 
				
			||||||
        public static readonly Color MAROON = new Color(190, 33, 55, 255);
 | 
					 | 
				
			||||||
        public static readonly Color GREEN = new Color(0, 228, 48, 255);
 | 
					 | 
				
			||||||
        public static readonly Color LIME = new Color(0, 158, 47, 255);
 | 
					 | 
				
			||||||
        public static readonly Color DARKGREEN = new Color(0, 117, 44, 255);
 | 
					 | 
				
			||||||
        public static readonly Color SKYBLUE = new Color(102, 191, 255, 255);
 | 
					 | 
				
			||||||
        public static readonly Color BLUE = new Color(0, 121, 241, 255);
 | 
					 | 
				
			||||||
        public static readonly Color DARKBLUE = new Color(0, 82, 172, 255);
 | 
					 | 
				
			||||||
        public static readonly Color PURPLE = new Color(200, 122, 255, 255);
 | 
					 | 
				
			||||||
        public static readonly Color VIOLET = new Color(135, 60, 190, 255);
 | 
					 | 
				
			||||||
        public static readonly Color DARKPURPLE = new Color(112, 31, 126, 255);
 | 
					 | 
				
			||||||
        public static readonly Color BEIGE = new Color(211, 176, 131, 255);
 | 
					 | 
				
			||||||
        public static readonly Color BROWN = new Color(127, 106, 79, 255);
 | 
					 | 
				
			||||||
        public static readonly Color DARKBROWN = new Color(76, 63, 47, 255);
 | 
					 | 
				
			||||||
        public static readonly Color WHITE = new Color(255, 255, 255, 255);
 | 
					 | 
				
			||||||
        public static readonly Color BLACK = new Color(0, 0, 0, 255);
 | 
					 | 
				
			||||||
        public static readonly Color BLANK = new Color(0, 0, 0, 0);
 | 
					 | 
				
			||||||
        public static readonly Color MAGENTA = new Color(255, 0, 255, 255);
 | 
					 | 
				
			||||||
        public static readonly Color RAYWHITE = new Color(245, 245, 245, 255);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Color(byte r, byte g, byte b, byte a)
 | 
					    public override string ToString()
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            this.R = r;
 | 
					        return $"{{R:{R} G:{G} B:{B} A:{A}}}";
 | 
				
			||||||
            this.G = g;
 | 
					 | 
				
			||||||
            this.B = b;
 | 
					 | 
				
			||||||
            this.A = a;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public Color(int r, int g, int b, int a)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.R = Convert.ToByte(r);
 | 
					 | 
				
			||||||
            this.G = Convert.ToByte(g);
 | 
					 | 
				
			||||||
            this.B = Convert.ToByte(b);
 | 
					 | 
				
			||||||
            this.A = Convert.ToByte(a);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override string ToString()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return $"{{R:{R} G:{G} B:{B} A:{A}}}";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,181 +1,180 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// System config flags<br/>
 | 
				
			||||||
 | 
					/// NOTE: Every bit registers one state (use it with bit masks)<br/>
 | 
				
			||||||
 | 
					/// By default all flags are set to 0
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[Flags]
 | 
				
			||||||
 | 
					public enum ConfigFlags : uint
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// System config flags<br/>
 | 
					    /// Set to try enabling V-Sync on GPU
 | 
				
			||||||
    /// NOTE: Every bit registers one state (use it with bit masks)<br/>
 | 
					 | 
				
			||||||
    /// By default all flags are set to 0
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [Flags]
 | 
					    FLAG_VSYNC_HINT = 0x00000040,
 | 
				
			||||||
    public enum ConfigFlags : uint
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to try enabling V-Sync on GPU
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_VSYNC_HINT = 0x00000040,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to run program in fullscreen
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_FULLSCREEN_MODE = 0x00000002,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to allow resizable window
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_RESIZABLE = 0x00000004,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to disable window decoration (frame and buttons)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_UNDECORATED = 0x00000008,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to hide window
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_HIDDEN = 0x00000080,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to minimize window (iconify)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_MINIMIZED = 0x00000200,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to maximize window (expanded to monitor)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_MAXIMIZED = 0x00000400,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to window non focused
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_UNFOCUSED = 0x00000800,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to window always on top
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_TOPMOST = 0x00001000,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to allow windows running while minimized
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_ALWAYS_RUN = 0x00000100,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to allow transparent framebuffer
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_TRANSPARENT = 0x00000010,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to support HighDPI
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_HIGHDPI = 0x00002000,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to try enabling MSAA 4X
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_MSAA_4X_HINT = 0x00000020,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Set to try enabling interlaced video format (for V3D)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FLAG_INTERLACED_HINT = 0x00010000,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Trace log level<br/>
 | 
					    /// Set to run program in fullscreen
 | 
				
			||||||
    /// NOTE: Organized by priority level
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum TraceLogLevel
 | 
					    FLAG_FULLSCREEN_MODE = 0x00000002,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Display all logs
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_ALL = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Trace logging, intended for internal use only
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_TRACE,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Debug logging, used for internal debugging, it should be disabled on release builds
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_DEBUG,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Info logging, used for program execution info
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_INFO,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Warning logging, used on recoverable failures
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_WARNING,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Error logging, used on unrecoverable failures
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_ERROR,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Fatal logging, used to abort program: exit(EXIT_FAILURE)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_FATAL,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Disable logging
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LOG_NONE
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Color blending modes (pre-defined)
 | 
					    /// Set to allow resizable window
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum BlendMode
 | 
					    FLAG_WINDOW_RESIZABLE = 0x00000004,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Blend textures considering alpha (default)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        BLEND_ALPHA = 0,
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures adding colors
 | 
					    /// Set to disable window decoration (frame and buttons)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_ADDITIVE,
 | 
					    FLAG_WINDOW_UNDECORATED = 0x00000008,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures multiplying colors
 | 
					    /// Set to hide window
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_MULTIPLIED,
 | 
					    FLAG_WINDOW_HIDDEN = 0x00000080,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures adding colors (alternative)
 | 
					    /// Set to minimize window (iconify)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_ADD_COLORS,
 | 
					    FLAG_WINDOW_MINIMIZED = 0x00000200,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures subtracting colors (alternative)
 | 
					    /// Set to maximize window (expanded to monitor)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_SUBTRACT_COLORS,
 | 
					    FLAG_WINDOW_MAXIMIZED = 0x00000400,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend premultiplied textures considering alpha
 | 
					    /// Set to window non focused
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_ALPHA_PREMULTIPLY,
 | 
					    FLAG_WINDOW_UNFOCUSED = 0x00000800,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures using custom src/dst factors (use rlSetBlendFactors())
 | 
					    /// Set to window always on top
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_CUSTOM,
 | 
					    FLAG_WINDOW_TOPMOST = 0x00001000,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
 | 
					    /// Set to allow windows running while minimized
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        BLEND_CUSTOM_SEPARATE
 | 
					    FLAG_WINDOW_ALWAYS_RUN = 0x00000100,
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Set to allow transparent framebuffer
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FLAG_WINDOW_TRANSPARENT = 0x00000010,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Set to support HighDPI
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FLAG_WINDOW_HIGHDPI = 0x00002000,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Set to try enabling MSAA 4X
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FLAG_MSAA_4X_HINT = 0x00000020,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Set to try enabling interlaced video format (for V3D)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FLAG_INTERLACED_HINT = 0x00010000,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Trace log level<br/>
 | 
				
			||||||
 | 
					/// NOTE: Organized by priority level
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum TraceLogLevel
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Display all logs
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_ALL = 0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Trace logging, intended for internal use only
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_TRACE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Debug logging, used for internal debugging, it should be disabled on release builds
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_DEBUG,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Info logging, used for program execution info
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_INFO,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Warning logging, used on recoverable failures
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_WARNING,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Error logging, used on unrecoverable failures
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_ERROR,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Fatal logging, used to abort program: exit(EXIT_FAILURE)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_FATAL,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Disable logging
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LOG_NONE
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Color blending modes (pre-defined)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum BlendMode
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures considering alpha (default)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_ALPHA = 0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures adding colors
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_ADDITIVE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures multiplying colors
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_MULTIPLIED,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures adding colors (alternative)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_ADD_COLORS,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures subtracting colors (alternative)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_SUBTRACT_COLORS,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend premultiplied textures considering alpha
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_ALPHA_PREMULTIPLY,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures using custom src/dst factors (use rlSetBlendFactors())
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_CUSTOM,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    BLEND_CUSTOM_SEPARATE
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,94 +1,93 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Font type, defines generation method
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum FontType
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Font type, defines generation method
 | 
					    /// Default font generation, anti-aliased
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum FontType
 | 
					    FONT_DEFAULT = 0,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Default font generation, anti-aliased
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FONT_DEFAULT = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bitmap font generation, no anti-aliasing
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FONT_BITMAP,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// SDF font generation, requires external shader
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        FONT_SDF
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// GlyphInfo, font characters glyphs info
 | 
					    /// Bitmap font generation, no anti-aliasing
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    FONT_BITMAP,
 | 
				
			||||||
    public partial struct GlyphInfo
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Character value (Unicode)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int Value;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Character offset X when drawing
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int OffsetX;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Character offset Y when drawing
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int OffsetY;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Character advance position X
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int AdvanceX;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Character image data
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Image Image;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Font, font texture and GlyphInfo array data
 | 
					    /// SDF font generation, requires external shader
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    FONT_SDF
 | 
				
			||||||
    public unsafe partial struct Font
 | 
					}
 | 
				
			||||||
    {
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					/// <summary>
 | 
				
			||||||
        /// Base size (default chars height)
 | 
					/// GlyphInfo, font characters glyphs info
 | 
				
			||||||
        /// </summary>
 | 
					/// </summary>
 | 
				
			||||||
        public int BaseSize;
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct GlyphInfo
 | 
				
			||||||
        /// <summary>
 | 
					{
 | 
				
			||||||
        /// Number of characters
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Character value (Unicode)
 | 
				
			||||||
        public int GlyphCount;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Value;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Padding around the glyph characters
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Character offset X when drawing
 | 
				
			||||||
        public int GlyphPadding;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int OffsetX;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Texture atlas containing the glyphs
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Character offset Y when drawing
 | 
				
			||||||
        public Texture2D Texture;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int OffsetY;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Rectangles in texture for the glyphs
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Character advance position X
 | 
				
			||||||
        public Rectangle* Recs;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int AdvanceX;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Glyphs info data
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Character image data
 | 
				
			||||||
        public GlyphInfo* Glyphs;
 | 
					    /// </summary>
 | 
				
			||||||
    }
 | 
					    public Image Image;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Font, font texture and GlyphInfo array data
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Font
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Base size (default chars height)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int BaseSize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of characters
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int GlyphCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Padding around the glyph characters
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int GlyphPadding;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Texture atlas containing the glyphs
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Texture2D Texture;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Rectangles in texture for the glyphs
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Rectangle* Recs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Glyphs info data
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public GlyphInfo* Glyphs;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,148 +1,147 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Pixel formats<br/>
 | 
				
			||||||
 | 
					/// NOTE: Support depends on OpenGL version and platform
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum PixelFormat
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Pixel formats<br/>
 | 
					    /// 8 bit per pixel (no alpha)
 | 
				
			||||||
    /// NOTE: Support depends on OpenGL version and platform
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum PixelFormat
 | 
					    PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8 bit per pixel (no alpha)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8*2 bpp (2 channels)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 16 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R5G6B5,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 24 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R8G8B8,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 16 bpp (1 bit alpha)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R5G5B5A1,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 16 bpp (4 bit alpha)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R4G4B4A4,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 32 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R8G8B8A8,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 32 bpp (1 channel - float)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R32,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 32*3 bpp (3 channels - float)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R32G32B32,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 32*4 bpp (4 channels - float)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_UNCOMPRESSED_R32G32B32A32,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp (no alpha)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_DXT1_RGB,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp (1 bit alpha)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_DXT1_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_DXT3_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_DXT5_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_ETC1_RGB,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_ETC2_RGB,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_PVRT_RGB,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 4 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_PVRT_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 8 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 2 bpp
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Image, pixel data stored in CPU memory (RAM)
 | 
					    /// 8*2 bpp (2 channels)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA,
 | 
				
			||||||
    public unsafe partial struct Image
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Image raw data
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public void* Data;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Image base width
 | 
					    /// 16 bpp
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Width;
 | 
					    PIXELFORMAT_UNCOMPRESSED_R5G6B5,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Image base height
 | 
					    /// 24 bpp
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Height;
 | 
					    PIXELFORMAT_UNCOMPRESSED_R8G8B8,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Mipmap levels, 1 by default
 | 
					    /// 16 bpp (1 bit alpha)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Mipmaps;
 | 
					    PIXELFORMAT_UNCOMPRESSED_R5G5B5A1,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Data format (PixelFormat type)
 | 
					    /// 16 bpp (4 bit alpha)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public PixelFormat Format;
 | 
					    PIXELFORMAT_UNCOMPRESSED_R4G4B4A4,
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 32 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_UNCOMPRESSED_R8G8B8A8,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 32 bpp (1 channel - float)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_UNCOMPRESSED_R32,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 32*3 bpp (3 channels - float)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_UNCOMPRESSED_R32G32B32,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 32*4 bpp (4 channels - float)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_UNCOMPRESSED_R32G32B32A32,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp (no alpha)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_DXT1_RGB,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp (1 bit alpha)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_DXT1_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 8 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_DXT3_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 8 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_DXT5_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_ETC1_RGB,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_ETC2_RGB,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 8 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_PVRT_RGB,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 4 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_PVRT_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 8 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// 2 bpp
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Image, pixel data stored in CPU memory (RAM)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Image
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Image raw data
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public void* Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Image base width
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Width;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Image base height
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Mipmap levels, 1 by default
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Mipmaps;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Data format (PixelFormat type)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public PixelFormat Format;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -4,161 +4,160 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					internal readonly struct Native
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    internal readonly struct Native
 | 
					    internal const string Msvcrt = "msvcrt";
 | 
				
			||||||
 | 
					    internal const string Libc = "libc";
 | 
				
			||||||
 | 
					    internal const string LibSystem = "libSystem";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [DllImport(LibSystem, EntryPoint = "vasprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
				
			||||||
 | 
					    public static extern int VasPrintfApple(ref IntPtr buffer, IntPtr format, IntPtr args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [DllImport(Libc, EntryPoint = "vsprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
				
			||||||
 | 
					    public static extern int VsPrintfLinux(IntPtr buffer, IntPtr format, IntPtr args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [DllImport(Msvcrt, EntryPoint = "vsprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
				
			||||||
 | 
					    public static extern int VsPrintfWindows(IntPtr buffer, IntPtr format, IntPtr args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [DllImport(Libc, EntryPoint = "vsnprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
				
			||||||
 | 
					    public static extern int VsnPrintfLinux(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [DllImport(Msvcrt, EntryPoint = "vsnprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
				
			||||||
 | 
					    public static extern int VsnPrintfWindows(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential, Pack = 4)]
 | 
				
			||||||
 | 
					struct VaListLinuxX64
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    uint _gpOffset;
 | 
				
			||||||
 | 
					    uint _fpOffset;
 | 
				
			||||||
 | 
					    IntPtr _overflowArgArea;
 | 
				
			||||||
 | 
					    IntPtr _regSaveArea;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Logging workaround for formatting strings from native code
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public static unsafe class Logging
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    [UnmanagedCallersOnly(CallConvs = new[] { typeof(System.Runtime.CompilerServices.CallConvCdecl) })]
 | 
				
			||||||
 | 
					    public static unsafe void LogConsole(int msgType, sbyte* text, sbyte* args)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        internal const string Msvcrt = "msvcrt";
 | 
					        var message = GetLogMessage(new IntPtr(text), new IntPtr(args));
 | 
				
			||||||
        internal const string Libc = "libc";
 | 
					        Console.WriteLine(message);
 | 
				
			||||||
        internal const string LibSystem = "libSystem";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [DllImport(LibSystem, EntryPoint = "vasprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
					 | 
				
			||||||
        public static extern int VasPrintfApple(ref IntPtr buffer, IntPtr format, IntPtr args);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [DllImport(Libc, EntryPoint = "vsprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
					 | 
				
			||||||
        public static extern int VsPrintfLinux(IntPtr buffer, IntPtr format, IntPtr args);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [DllImport(Msvcrt, EntryPoint = "vsprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
					 | 
				
			||||||
        public static extern int VsPrintfWindows(IntPtr buffer, IntPtr format, IntPtr args);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [DllImport(Libc, EntryPoint = "vsnprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
					 | 
				
			||||||
        public static extern int VsnPrintfLinux(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [DllImport(Msvcrt, EntryPoint = "vsnprintf", CallingConvention = CallingConvention.Cdecl)]
 | 
					 | 
				
			||||||
        public static extern int VsnPrintfWindows(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential, Pack = 4)]
 | 
					    public static string GetLogMessage(IntPtr format, IntPtr args)
 | 
				
			||||||
    struct VaListLinuxX64
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        uint _gpOffset;
 | 
					        if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
 | 
				
			||||||
        uint _fpOffset;
 | 
					 | 
				
			||||||
        IntPtr _overflowArgArea;
 | 
					 | 
				
			||||||
        IntPtr _regSaveArea;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// Logging workaround for formatting strings from native code
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public static unsafe class Logging
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [UnmanagedCallersOnly(CallConvs = new[] { typeof(System.Runtime.CompilerServices.CallConvCdecl) })]
 | 
					 | 
				
			||||||
        public static unsafe void LogConsole(int msgType, sbyte* text, sbyte* args)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var message = GetLogMessage(new IntPtr(text), new IntPtr(args));
 | 
					            return AppleLogCallback(format, args);
 | 
				
			||||||
            Console.WriteLine(message);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static string GetLogMessage(IntPtr format, IntPtr args)
 | 
					        // Special marshalling is needed on Linux desktop 64 bits.
 | 
				
			||||||
 | 
					        if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && IntPtr.Size == 8)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
 | 
					            return LinuxX64LogCallback(format, args);
 | 
				
			||||||
            {
 | 
					        }
 | 
				
			||||||
                return AppleLogCallback(format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Special marshalling is needed on Linux desktop 64 bits.
 | 
					        var byteLength = VsnPrintf(IntPtr.Zero, UIntPtr.Zero, format, args) + 1;
 | 
				
			||||||
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && IntPtr.Size == 8)
 | 
					        if (byteLength <= 1)
 | 
				
			||||||
            {
 | 
					        {
 | 
				
			||||||
                return LinuxX64LogCallback(format, args);
 | 
					            return string.Empty;
 | 
				
			||||||
            }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var byteLength = VsnPrintf(IntPtr.Zero, UIntPtr.Zero, format, args) + 1;
 | 
					        var buffer = Marshal.AllocHGlobal(byteLength);
 | 
				
			||||||
            if (byteLength <= 1)
 | 
					        VsPrintf(buffer, format, args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        string result = Marshal.PtrToStringUTF8(buffer);
 | 
				
			||||||
 | 
					        Marshal.FreeHGlobal(buffer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static string AppleLogCallback(IntPtr format, IntPtr args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        IntPtr buffer = IntPtr.Zero;
 | 
				
			||||||
 | 
					        try
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var count = Native.VasPrintfApple(ref buffer, format, args);
 | 
				
			||||||
 | 
					            if (count == -1)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return string.Empty;
 | 
					                return string.Empty;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            return Marshal.PtrToStringUTF8(buffer) ?? string.Empty;
 | 
				
			||||||
            var buffer = Marshal.AllocHGlobal(byteLength);
 | 
					        }
 | 
				
			||||||
            VsPrintf(buffer, format, args);
 | 
					        finally
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
            string result = Marshal.PtrToStringUTF8(buffer);
 | 
					 | 
				
			||||||
            Marshal.FreeHGlobal(buffer);
 | 
					            Marshal.FreeHGlobal(buffer);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            return result;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        static string AppleLogCallback(IntPtr format, IntPtr args)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            IntPtr buffer = IntPtr.Zero;
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                var count = Native.VasPrintfApple(ref buffer, format, args);
 | 
					 | 
				
			||||||
                if (count == -1)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    return string.Empty;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                return Marshal.PtrToStringUTF8(buffer) ?? string.Empty;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            finally
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                Marshal.FreeHGlobal(buffer);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        static string LinuxX64LogCallback(IntPtr format, IntPtr args)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // The args pointer cannot be reused between two calls. We need to make a copy of the underlying structure.
 | 
					 | 
				
			||||||
            var listStructure = Marshal.PtrToStructure<VaListLinuxX64>(args);
 | 
					 | 
				
			||||||
            IntPtr listPointer = IntPtr.Zero;
 | 
					 | 
				
			||||||
            int byteLength = 0;
 | 
					 | 
				
			||||||
            string result = "";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Get length of args
 | 
					 | 
				
			||||||
            listPointer = Marshal.AllocHGlobal(Marshal.SizeOf(listStructure));
 | 
					 | 
				
			||||||
            Marshal.StructureToPtr(listStructure, listPointer, false);
 | 
					 | 
				
			||||||
            byteLength = Native.VsnPrintfLinux(IntPtr.Zero, UIntPtr.Zero, format, listPointer) + 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Allocate buffer for result
 | 
					 | 
				
			||||||
            Marshal.StructureToPtr(listStructure, listPointer, false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            IntPtr utf8Buffer = IntPtr.Zero;
 | 
					 | 
				
			||||||
            utf8Buffer = Marshal.AllocHGlobal(byteLength);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Print result into buffer
 | 
					 | 
				
			||||||
            Native.VsPrintfLinux(utf8Buffer, format, listPointer);
 | 
					 | 
				
			||||||
            result = Marshal.PtrToStringUTF8(utf8Buffer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            Marshal.FreeHGlobal(listPointer);
 | 
					 | 
				
			||||||
            Marshal.FreeHGlobal(utf8Buffer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return result;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // https://github.com/dotnet/runtime/issues/51052
 | 
					 | 
				
			||||||
        static int VsnPrintf(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            var os = Environment.OSVersion;
 | 
					 | 
				
			||||||
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsnPrintfWindows(buffer, size, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsnPrintfLinux(buffer, size, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("ANDROID")))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsPrintfLinux(buffer, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return -1;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // https://github.com/dotnet/runtime/issues/51052
 | 
					 | 
				
			||||||
        static int VsPrintf(IntPtr buffer, IntPtr format, IntPtr args)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsPrintfWindows(buffer, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsPrintfLinux(buffer, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("ANDROID")))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return Native.VsPrintfLinux(buffer, format, args);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return -1;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static string LinuxX64LogCallback(IntPtr format, IntPtr args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // The args pointer cannot be reused between two calls. We need to make a copy of the underlying structure.
 | 
				
			||||||
 | 
					        var listStructure = Marshal.PtrToStructure<VaListLinuxX64>(args);
 | 
				
			||||||
 | 
					        IntPtr listPointer = IntPtr.Zero;
 | 
				
			||||||
 | 
					        int byteLength = 0;
 | 
				
			||||||
 | 
					        string result = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Get length of args
 | 
				
			||||||
 | 
					        listPointer = Marshal.AllocHGlobal(Marshal.SizeOf(listStructure));
 | 
				
			||||||
 | 
					        Marshal.StructureToPtr(listStructure, listPointer, false);
 | 
				
			||||||
 | 
					        byteLength = Native.VsnPrintfLinux(IntPtr.Zero, UIntPtr.Zero, format, listPointer) + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Allocate buffer for result
 | 
				
			||||||
 | 
					        Marshal.StructureToPtr(listStructure, listPointer, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        IntPtr utf8Buffer = IntPtr.Zero;
 | 
				
			||||||
 | 
					        utf8Buffer = Marshal.AllocHGlobal(byteLength);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Print result into buffer
 | 
				
			||||||
 | 
					        Native.VsPrintfLinux(utf8Buffer, format, listPointer);
 | 
				
			||||||
 | 
					        result = Marshal.PtrToStringUTF8(utf8Buffer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Marshal.FreeHGlobal(listPointer);
 | 
				
			||||||
 | 
					        Marshal.FreeHGlobal(utf8Buffer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // https://github.com/dotnet/runtime/issues/51052
 | 
				
			||||||
 | 
					    static int VsnPrintf(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        var os = Environment.OSVersion;
 | 
				
			||||||
 | 
					        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsnPrintfWindows(buffer, size, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsnPrintfLinux(buffer, size, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("ANDROID")))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsPrintfLinux(buffer, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // https://github.com/dotnet/runtime/issues/51052
 | 
				
			||||||
 | 
					    static int VsPrintf(IntPtr buffer, IntPtr format, IntPtr args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsPrintfWindows(buffer, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsPrintfLinux(buffer, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("ANDROID")))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Native.VsPrintfLinux(buffer, format, args);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,91 +1,90 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Material map index
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum MaterialMapIndex
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Material map index
 | 
					    /// NOTE: Same as MATERIAL_MAP_DIFFUSE
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum MaterialMapIndex
 | 
					    MATERIAL_MAP_ALBEDO = 0,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// NOTE: Same as MATERIAL_MAP_DIFFUSE
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MATERIAL_MAP_ALBEDO = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// NOTE: Same as MATERIAL_MAP_SPECULAR
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MATERIAL_MAP_METALNESS,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        MATERIAL_MAP_NORMAL,
 | 
					 | 
				
			||||||
        MATERIAL_MAP_ROUGHNESS,
 | 
					 | 
				
			||||||
        MATERIAL_MAP_OCCLUSION,
 | 
					 | 
				
			||||||
        MATERIAL_MAP_EMISSION,
 | 
					 | 
				
			||||||
        MATERIAL_MAP_HEIGHT,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MATERIAL_MAP_CUBEMAP,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MATERIAL_MAP_IRRADIANCE,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MATERIAL_MAP_PREFILTER,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        MATERIAL_MAP_BRDF,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO,
 | 
					 | 
				
			||||||
        MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Material texture map
 | 
					    /// NOTE: Same as MATERIAL_MAP_SPECULAR
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    MATERIAL_MAP_METALNESS,
 | 
				
			||||||
    public partial struct MaterialMap
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Material map texture
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Texture2D Texture;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    MATERIAL_MAP_NORMAL,
 | 
				
			||||||
        /// Material map color
 | 
					    MATERIAL_MAP_ROUGHNESS,
 | 
				
			||||||
        /// </summary>
 | 
					    MATERIAL_MAP_OCCLUSION,
 | 
				
			||||||
        public Color Color;
 | 
					    MATERIAL_MAP_EMISSION,
 | 
				
			||||||
 | 
					    MATERIAL_MAP_HEIGHT,
 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Material map value
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float Value;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Material type (generic)
 | 
					    /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    MATERIAL_MAP_CUBEMAP,
 | 
				
			||||||
    public unsafe partial struct Material
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Material shader
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Shader Shader;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //TODO: convert
 | 
					    /// <summary>
 | 
				
			||||||
        /// <summary>
 | 
					    /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
				
			||||||
        /// Material maps
 | 
					    /// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					    MATERIAL_MAP_IRRADIANCE,
 | 
				
			||||||
        public MaterialMap* Maps;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Material generic parameters (if required)
 | 
					    /// NOTE: Uses GL_TEXTURE_CUBE_MAP
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public fixed float Param[4];
 | 
					    MATERIAL_MAP_PREFILTER,
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
 | 
					    MATERIAL_MAP_BRDF,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO,
 | 
				
			||||||
 | 
					    MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Material texture map
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct MaterialMap
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material map texture
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Texture2D Texture;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material map color
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Color Color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material map value
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float Value;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Material type (generic)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Material
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material shader
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Shader Shader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO: convert
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material maps
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public MaterialMap* Maps;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Material generic parameters (if required)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public fixed float Param[4];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,99 +1,98 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Vertex data definning a mesh<br/>
 | 
				
			||||||
 | 
					/// NOTE: Data stored in CPU memory (and GPU)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Mesh
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Vertex data definning a mesh<br/>
 | 
					    ///  Number of vertices stored in arrays
 | 
				
			||||||
    /// NOTE: Data stored in CPU memory (and GPU)
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public int VertexCount;
 | 
				
			||||||
    public unsafe partial struct Mesh
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        ///  Number of vertices stored in arrays
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int VertexCount;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Number of triangles stored (indexed or not)
 | 
					    /// Number of triangles stored (indexed or not)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int TriangleCount;
 | 
					    public int TriangleCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region Default vertex data
 | 
					    #region Default vertex data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
 | 
					    /// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* Vertices;
 | 
					    public float* Vertices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
 | 
					    /// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* TexCoords;
 | 
					    public float* TexCoords;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)
 | 
					    /// Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* TexCoords2;
 | 
					    public float* TexCoords2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
 | 
					    /// Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* Normals;
 | 
					    public float* Normals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
 | 
					    /// Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* Tangents;
 | 
					    public float* Tangents;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
 | 
					    /// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public byte* Colors;
 | 
					    public byte* Colors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex indices (in case vertex data comes indexed)
 | 
					    /// Vertex indices (in case vertex data comes indexed)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public ushort* Indices;
 | 
					    public ushort* Indices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #endregion
 | 
					    #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region Animation vertex data
 | 
					    #region Animation vertex data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Animated vertex positions (after bones transformations)
 | 
					    /// Animated vertex positions (after bones transformations)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* AnimVertices;
 | 
					    public float* AnimVertices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Animated normals (after bones transformations)
 | 
					    /// Animated normals (after bones transformations)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* AnimNormals;
 | 
					    public float* AnimNormals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex bone ids, up to 4 bones influence by vertex (skinning)
 | 
					    /// Vertex bone ids, up to 4 bones influence by vertex (skinning)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public byte* BoneIds;
 | 
					    public byte* BoneIds;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Vertex bone weight, up to 4 bones influence by vertex (skinning)
 | 
					    /// Vertex bone weight, up to 4 bones influence by vertex (skinning)
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public float* BoneWeights;
 | 
					    public float* BoneWeights;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #endregion
 | 
					    #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region OpenGL identifiers
 | 
					    #region OpenGL identifiers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// OpenGL Vertex Array Object id
 | 
					    /// OpenGL Vertex Array Object id
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public uint VaoId;
 | 
					    public uint VaoId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// OpenGL Vertex Buffer Objects id (default vertex data, uint[])
 | 
					    /// OpenGL Vertex Buffer Objects id (default vertex data, uint[])
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public uint* VboId;
 | 
					    public uint* VboId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #endregion
 | 
					    #endregion
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,144 +2,143 @@ using System;
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Bone information
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct BoneInfo
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Bone information
 | 
					    /// Bone name (char[32])
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public fixed sbyte Name[32];
 | 
				
			||||||
    public unsafe partial struct BoneInfo
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bone name (char[32])
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public fixed sbyte Name[32];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bone parent
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int Parent;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Model type
 | 
					    /// Bone parent
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public int Parent;
 | 
				
			||||||
    public unsafe partial struct Model
 | 
					}
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Local transform matrix
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Matrix4x4 Transform;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					/// <summary>
 | 
				
			||||||
        /// Number of meshes
 | 
					/// Model type
 | 
				
			||||||
        /// </summary>
 | 
					/// </summary>
 | 
				
			||||||
        public int MeshCount;
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Model
 | 
				
			||||||
        /// <summary>
 | 
					{
 | 
				
			||||||
        /// Number of materials
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Local transform matrix
 | 
				
			||||||
        public int MaterialCount;
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Matrix4x4 Transform;
 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Meshes array (Mesh *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Mesh* Meshes;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Materials array (Material *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Material* Materials;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Mesh material number (int *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int* MeshMaterial;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of bones
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int BoneCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //TODO: Span
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bones information (skeleton, BoneInfo *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public BoneInfo* Bones;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //TODO: Span
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Bones base transformation (pose, Transform *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Transform* BindPose;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Model animation
 | 
					    /// Number of meshes
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public int MeshCount;
 | 
				
			||||||
    public readonly unsafe partial struct ModelAnimation
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of materials
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int MaterialCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Meshes array (Mesh *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Mesh* Meshes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Materials array (Material *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Material* Materials;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Mesh material number (int *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int* MeshMaterial;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of bones
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int BoneCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO: Span
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Bones information (skeleton, BoneInfo *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public BoneInfo* Bones;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO: Span
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Bones base transformation (pose, Transform *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Transform* BindPose;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Model animation
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public readonly unsafe partial struct ModelAnimation
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of bones
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public readonly int BoneCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Number of animation frames
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public readonly int FrameCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Bones information (skeleton, BoneInfo *)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public readonly BoneInfo* Bones;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <inheritdoc cref="Bones"/>
 | 
				
			||||||
 | 
					    public ReadOnlySpan<BoneInfo> BoneInfo => new(Bones, BoneCount);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Poses array by frame (Transform **)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public readonly Transform** FramePoses;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <inheritdoc cref="FramePoses"/>
 | 
				
			||||||
 | 
					    public FramePosesCollection FramePosesColl => new(FramePoses, FrameCount, BoneCount);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public struct FramePosesCollection
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        readonly Transform** _framePoses;
 | 
				
			||||||
        /// Number of bones
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public readonly int BoneCount;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        readonly int _frameCount;
 | 
				
			||||||
        /// Number of animation frames
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public readonly int FrameCount;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        readonly int _boneCount;
 | 
				
			||||||
        /// Bones information (skeleton, BoneInfo *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public readonly BoneInfo* Bones;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <inheritdoc cref="Bones"/>
 | 
					        public FramePoses this[int index] => new(_framePoses[index], _boneCount);
 | 
				
			||||||
        public ReadOnlySpan<BoneInfo> BoneInfo => new(Bones, BoneCount);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        public Transform this[int index1, int index2] => new FramePoses(_framePoses[index1], _boneCount)[index2];
 | 
				
			||||||
        /// Poses array by frame (Transform **)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public readonly Transform** FramePoses;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <inheritdoc cref="FramePoses"/>
 | 
					        internal FramePosesCollection(Transform** framePoses, int frameCount, int boneCount)
 | 
				
			||||||
        public FramePosesCollection FramePosesColl => new(FramePoses, FrameCount, BoneCount);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public struct FramePosesCollection
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            readonly Transform** _framePoses;
 | 
					            this._framePoses = framePoses;
 | 
				
			||||||
 | 
					            this._frameCount = frameCount;
 | 
				
			||||||
            readonly int _frameCount;
 | 
					            this._boneCount = boneCount;
 | 
				
			||||||
 | 
					 | 
				
			||||||
            readonly int _boneCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            public FramePoses this[int index] => new(_framePoses[index], _boneCount);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            public Transform this[int index1, int index2] => new FramePoses(_framePoses[index1], _boneCount)[index2];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            internal FramePosesCollection(Transform** framePoses, int frameCount, int boneCount)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                this._framePoses = framePoses;
 | 
					 | 
				
			||||||
                this._frameCount = frameCount;
 | 
					 | 
				
			||||||
                this._boneCount = boneCount;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public unsafe struct FramePoses
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        readonly Transform* _poses;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        readonly int _count;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public ref Transform this[int index] => ref _poses[index];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        internal FramePoses(Transform* poses, int count)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this._poses = poses;
 | 
					 | 
				
			||||||
            this._count = count;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public unsafe struct FramePoses
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    readonly Transform* _poses;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    readonly int _count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ref Transform this[int index] => ref _poses[index];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    internal FramePoses(Transform* poses, int count)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this._poses = poses;
 | 
				
			||||||
 | 
					        this._count = count;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,62 +1,61 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// N-patch layout
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum NPatchLayout
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// N-patch layout
 | 
					    /// Npatch defined by 3x3 tiles
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum NPatchLayout
 | 
					    NPATCH_NINE_PATCH = 0,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Npatch defined by 3x3 tiles
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        NPATCH_NINE_PATCH = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Npatch defined by 1x3 tiles
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        NPATCH_THREE_PATCH_VERTICAL,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Npatch defined by 3x1 tiles
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        NPATCH_THREE_PATCH_HORIZONTAL
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// N-Patch layout info
 | 
					    /// Npatch defined by 1x3 tiles
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    NPATCH_THREE_PATCH_VERTICAL,
 | 
				
			||||||
    public partial struct NPatchInfo
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Texture source rectangle
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Rectangle Source;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Left border offset
 | 
					    /// Npatch defined by 3x1 tiles
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Left;
 | 
					    NPATCH_THREE_PATCH_HORIZONTAL
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Top border offset
 | 
					/// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					/// N-Patch layout info
 | 
				
			||||||
        public int Top;
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
        /// <summary>
 | 
					public partial struct NPatchInfo
 | 
				
			||||||
        /// Right border offset
 | 
					{
 | 
				
			||||||
        /// </summary>
 | 
					    /// <summary>
 | 
				
			||||||
        public int Right;
 | 
					    /// Texture source rectangle
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
        /// <summary>
 | 
					    public Rectangle Source;
 | 
				
			||||||
        /// Bottom border offset
 | 
					
 | 
				
			||||||
        /// </summary>
 | 
					    /// <summary>
 | 
				
			||||||
        public int Bottom;
 | 
					    /// Left border offset
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
        /// <summary>
 | 
					    public int Left;
 | 
				
			||||||
        /// Layout of the n-patch: 3x3, 1x3 or 3x1
 | 
					
 | 
				
			||||||
        /// </summary>
 | 
					    /// <summary>
 | 
				
			||||||
        public NPatchLayout Layout;
 | 
					    /// Top border offset
 | 
				
			||||||
    }
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Top;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Right border offset
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Right;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Bottom border offset
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Bottom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout of the n-patch: 3x3, 1x3 or 3x1
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public NPatchLayout Layout;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,55 +1,54 @@
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Ray, ray for raycasting
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Ray
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Ray, ray for raycasting
 | 
					    /// Ray position (origin)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public Vector3 Position;
 | 
				
			||||||
    public partial struct Ray
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Ray position (origin)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Position;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Ray direction
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Direction;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public Ray(Vector3 position, Vector3 direction)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.Position = position;
 | 
					 | 
				
			||||||
            this.Direction = direction;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Raycast hit information
 | 
					    /// Ray direction
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public Vector3 Direction;
 | 
				
			||||||
    public partial struct RayCollision
 | 
					
 | 
				
			||||||
 | 
					    public Ray(Vector3 position, Vector3 direction)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        this.Position = position;
 | 
				
			||||||
        /// Did the ray hit something?
 | 
					        this.Direction = direction;
 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public CBool Hit;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Distance to the nearest hit
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float Distance;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Point of the nearest hit
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Point;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Surface normal of hit
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Normal;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Raycast hit information
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct RayCollision
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Did the ray hit something?
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public CBool Hit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Distance to the nearest hit
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float Distance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Point of the nearest hit
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Vector3 Point;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Surface normal of hit
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public Vector3 Normal;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,29 +1,28 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Rectangle type
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Rectangle
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    public float X;
 | 
				
			||||||
    /// Rectangle type
 | 
					    public float Y;
 | 
				
			||||||
    /// </summary>
 | 
					    public float Width;
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public float Height;
 | 
				
			||||||
    public partial struct Rectangle
 | 
					
 | 
				
			||||||
 | 
					    public Rectangle(float x, float y, float width, float height)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public float X;
 | 
					        this.X = x;
 | 
				
			||||||
        public float Y;
 | 
					        this.Y = y;
 | 
				
			||||||
        public float Width;
 | 
					        this.Width = width;
 | 
				
			||||||
        public float Height;
 | 
					        this.Height = height;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Rectangle(float x, float y, float width, float height)
 | 
					    public override string ToString()
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            this.X = x;
 | 
					        return $"{{X:{X} Y:{Y} Width:{Width} Height:{Height}}}";
 | 
				
			||||||
            this.Y = y;
 | 
					 | 
				
			||||||
            this.Width = width;
 | 
					 | 
				
			||||||
            this.Height = height;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override string ToString()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return $"{{X:{X} Y:{Y} Width:{Width} Height:{Height}}}";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,271 +1,270 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// RenderBatch type
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct RenderBatch
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// RenderBatch type
 | 
					    /// Number of vertex buffers (multi-buffering support)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    int _buffersCount;
 | 
				
			||||||
    public unsafe partial struct RenderBatch
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of vertex buffers (multi-buffering support)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _buffersCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Current buffer tracking in case of multi-buffering
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _currentBuffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Dynamic buffer(s) for vertex data
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        VertexBuffer* _vertexBuffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Draw calls array, depends on textureId
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        DrawCall* _draws;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Draw calls counter
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _drawsCounter;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Current depth value for next draw
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        float _currentDepth;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Dynamic vertex buffers (position + texcoords + colors + indices arrays)
 | 
					    /// Current buffer tracking in case of multi-buffering
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    int _currentBuffer;
 | 
				
			||||||
    public unsafe partial struct VertexBuffer
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of elements in the buffer (QUADS)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int ElementCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float* Vertices;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public float* TexCoords;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public byte* Colors;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Vertex indices (in case vertex data comes indexed) (6 indices per quad)<br/>
 | 
					 | 
				
			||||||
        /// unsigned int* for GRAPHICS_API_OPENGL_11 or GRAPHICS_API_OPENGL_33<br/>
 | 
					 | 
				
			||||||
        /// unsigned short* for GRAPHICS_API_OPENGL_ES2
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public void* Indices;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// OpenGL Vertex Array Object id
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint VaoId;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// OpenGL Vertex Buffer Objects id (4 types of vertex data)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public fixed uint VboId[4];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Dynamic vertex buffers (position + texcoords + colors + indices arrays)
 | 
					    /// Dynamic buffer(s) for vertex data
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    VertexBuffer* _vertexBuffer;
 | 
				
			||||||
    public partial struct DrawCall
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Drawing mode: LINES, TRIANGLES, QUADS
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _mode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of vertices for the draw call
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _vertexCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Number of vertices required for index alignment (LINES, TRIANGLES)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        int _vertexAlignment;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Texture id to be used on the draw -> Use to create new draw call if changes
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        uint _textureId;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public enum GlVersion
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        OPENGL_11 = 1,
 | 
					 | 
				
			||||||
        OPENGL_21,
 | 
					 | 
				
			||||||
        OPENGL_33,
 | 
					 | 
				
			||||||
        OPENGL_43,
 | 
					 | 
				
			||||||
        OPENGL_ES_20
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public enum FramebufferAttachType
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL0 = 0,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL1,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL2,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL3,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL4,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL5,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL6,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_COLOR_CHANNEL7,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_DEPTH = 100,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_STENCIL = 200,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public enum FramebufferAttachTextureType
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_NEGATIVE_X,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_POSITIVE_Y,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_POSITIVE_Z,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_TEXTURE2D = 100,
 | 
					 | 
				
			||||||
        RL_ATTACHMENT_RENDERBUFFER = 200,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Matrix Modes (equivalent to OpenGL)
 | 
					    /// Draw calls array, depends on textureId
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum MatrixMode
 | 
					    DrawCall* _draws;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_MODELVIEW
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        MODELVIEW = 0x1700,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_PROJECTION
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        PROJECTION = 0x1701,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_TEXTURE
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE = 0x1702
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Primitive assembly draw modes
 | 
					    /// Draw calls counter
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum DrawMode
 | 
					    int _drawsCounter;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_LINES
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        LINES = 0x0001,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_TRIANGLES
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TRIANGLES = 0x0004,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// GL_QUADS
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        QUADS = 0x0007
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Texture parameters (equivalent to OpenGL defines)
 | 
					    /// Current depth value for next draw
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum TextureFilters
 | 
					    float _currentDepth;
 | 
				
			||||||
    {
 | 
					}
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_NEAREST
 | 
					/// <summary>
 | 
				
			||||||
        /// <br/>
 | 
					/// Dynamic vertex buffers (position + texcoords + colors + indices arrays)
 | 
				
			||||||
        /// GL_NEAREST
 | 
					/// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
        NEAREST = 0x2600,
 | 
					public unsafe partial struct VertexBuffer
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_LINEAR
 | 
					    /// Number of elements in the buffer (QUADS)
 | 
				
			||||||
        /// <br/>
 | 
					    /// </summary>
 | 
				
			||||||
        /// GL_LINEAR
 | 
					    public int ElementCount;
 | 
				
			||||||
        /// </summary>
 | 
					
 | 
				
			||||||
        LINEAR = 0x2601,
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
 | 
				
			||||||
        /// <summary>
 | 
					    /// </summary>
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_MIP_NEAREST
 | 
					    public float* Vertices;
 | 
				
			||||||
        /// <br/>
 | 
					
 | 
				
			||||||
        /// GL_NEAREST_MIPMAP_NEAREST
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
 | 
				
			||||||
        MIP_NEAREST = 0x2700,
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public float* TexCoords;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR
 | 
					    /// <summary>
 | 
				
			||||||
        /// <br/>
 | 
					    /// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
 | 
				
			||||||
        /// GL_NEAREST_MIPMAP_LINEAR
 | 
					    /// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					    public byte* Colors;
 | 
				
			||||||
        NEAREST_MIP_LINEAR = 0x2702,
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
        /// <summary>
 | 
					    /// Vertex indices (in case vertex data comes indexed) (6 indices per quad)<br/>
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST
 | 
					    /// unsigned int* for GRAPHICS_API_OPENGL_11 or GRAPHICS_API_OPENGL_33<br/>
 | 
				
			||||||
        /// <br/>
 | 
					    /// unsigned short* for GRAPHICS_API_OPENGL_ES2
 | 
				
			||||||
        /// GL_LINEAR_MIPMAP_NEAREST
 | 
					    /// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					    public void* Indices;
 | 
				
			||||||
        LINEAR_MIP_NEAREST = 0x2701,
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
        /// <summary>
 | 
					    /// OpenGL Vertex Array Object id
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_MIP_LINEAR
 | 
					    /// </summary>
 | 
				
			||||||
        /// <br/>
 | 
					    public uint VaoId;
 | 
				
			||||||
        /// GL_LINEAR_MIPMAP_LINEAR
 | 
					
 | 
				
			||||||
        /// </summary>
 | 
					    /// <summary>
 | 
				
			||||||
        MIP_LINEAR = 0x2703,
 | 
					    /// OpenGL Vertex Buffer Objects id (4 types of vertex data)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
        /// <summary>
 | 
					    public fixed uint VboId[4];
 | 
				
			||||||
        /// RL_TEXTURE_FILTER_ANISOTROPIC
 | 
					}
 | 
				
			||||||
        /// <br/>
 | 
					
 | 
				
			||||||
        /// Anisotropic filter (custom identifier)
 | 
					/// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					/// Dynamic vertex buffers (position + texcoords + colors + indices arrays)
 | 
				
			||||||
        ANISOTROPIC = 0x3000
 | 
					/// </summary>
 | 
				
			||||||
    }
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct DrawCall
 | 
				
			||||||
    /// <summary>
 | 
					{
 | 
				
			||||||
    /// GL Shader type
 | 
					    /// <summary>
 | 
				
			||||||
    /// </summary>
 | 
					    /// Drawing mode: LINES, TRIANGLES, QUADS
 | 
				
			||||||
    public enum ShaderType
 | 
					    /// </summary>
 | 
				
			||||||
    {
 | 
					    int _mode;
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// RL_FRAGMENT_SHADER
 | 
					    /// <summary>
 | 
				
			||||||
        /// <br/>
 | 
					    /// Number of vertices for the draw call
 | 
				
			||||||
        /// GL_FRAGMENT_SHADER
 | 
					    /// </summary>
 | 
				
			||||||
        /// </summary>
 | 
					    int _vertexCount;
 | 
				
			||||||
        FRAGMENT = 0x8B30,
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
        /// <summary>
 | 
					    /// Number of vertices required for index alignment (LINES, TRIANGLES)
 | 
				
			||||||
        /// RL_VERTEX_SHADER
 | 
					    /// </summary>
 | 
				
			||||||
        /// <br/>
 | 
					    int _vertexAlignment;
 | 
				
			||||||
        /// GL_VERTEX_SHADER
 | 
					
 | 
				
			||||||
        /// </summary>
 | 
					    /// <summary>
 | 
				
			||||||
        VERTEX = 0x8B31,
 | 
					    /// Texture id to be used on the draw -> Use to create new draw call if changes
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
        /// <summary>
 | 
					    uint _textureId;
 | 
				
			||||||
        /// RL_COMPUTE_SHADER
 | 
					}
 | 
				
			||||||
        /// <br/>
 | 
					
 | 
				
			||||||
        /// GL_COMPUTE_SHADER
 | 
					public enum GlVersion
 | 
				
			||||||
        /// </summary>
 | 
					{
 | 
				
			||||||
        COMPUTE = 0x91b9
 | 
					    OPENGL_11 = 1,
 | 
				
			||||||
    }
 | 
					    OPENGL_21,
 | 
				
			||||||
 | 
					    OPENGL_33,
 | 
				
			||||||
 | 
					    OPENGL_43,
 | 
				
			||||||
 | 
					    OPENGL_ES_20
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum FramebufferAttachType
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL0 = 0,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL1,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL2,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL3,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL4,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL5,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL6,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_COLOR_CHANNEL7,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_DEPTH = 100,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_STENCIL = 200,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum FramebufferAttachTextureType
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_NEGATIVE_X,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_POSITIVE_Y,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_POSITIVE_Z,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_TEXTURE2D = 100,
 | 
				
			||||||
 | 
					    RL_ATTACHMENT_RENDERBUFFER = 200,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Matrix Modes (equivalent to OpenGL)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum MatrixMode
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_MODELVIEW
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    MODELVIEW = 0x1700,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_PROJECTION
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    PROJECTION = 0x1701,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_TEXTURE
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    TEXTURE = 0x1702
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Primitive assembly draw modes
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum DrawMode
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_LINES
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LINES = 0x0001,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_TRIANGLES
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    TRIANGLES = 0x0004,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// GL_QUADS
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    QUADS = 0x0007
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Texture parameters (equivalent to OpenGL defines)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum TextureFilters
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_NEAREST
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_NEAREST
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    NEAREST = 0x2600,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_LINEAR
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_LINEAR
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LINEAR = 0x2601,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_MIP_NEAREST
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_NEAREST_MIPMAP_NEAREST
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    MIP_NEAREST = 0x2700,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_NEAREST_MIPMAP_LINEAR
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    NEAREST_MIP_LINEAR = 0x2702,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_LINEAR_MIPMAP_NEAREST
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    LINEAR_MIP_NEAREST = 0x2701,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_MIP_LINEAR
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_LINEAR_MIPMAP_LINEAR
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    MIP_LINEAR = 0x2703,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_TEXTURE_FILTER_ANISOTROPIC
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// Anisotropic filter (custom identifier)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    ANISOTROPIC = 0x3000
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// GL Shader type
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum ShaderType
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_FRAGMENT_SHADER
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_FRAGMENT_SHADER
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    FRAGMENT = 0x8B30,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_VERTEX_SHADER
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_VERTEX_SHADER
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    VERTEX = 0x8B31,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// RL_COMPUTE_SHADER
 | 
				
			||||||
 | 
					    /// <br/>
 | 
				
			||||||
 | 
					    /// GL_COMPUTE_SHADER
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    COMPUTE = 0x91b9
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,26 +1,25 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// RenderTexture2D type, for texture rendering
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct RenderTexture2D
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// RenderTexture2D type, for texture rendering
 | 
					    /// OpenGL Framebuffer Object (FBO) id
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint Id;
 | 
				
			||||||
    public partial struct RenderTexture2D
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// OpenGL Framebuffer Object (FBO) id
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Id;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        ///  Color buffer attachment texture
 | 
					    ///  Color buffer attachment texture
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public Texture2D Texture;
 | 
					    public Texture2D Texture;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Depth buffer attachment texture
 | 
					    /// Depth buffer attachment texture
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public Texture2D Depth;
 | 
					    public Texture2D Depth;
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,84 +1,83 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Shader location index
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum ShaderLocationIndex
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_POSITION = 0,
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_TEXCOORD01,
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_TEXCOORD02,
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_NORMAL,
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_TANGENT,
 | 
				
			||||||
 | 
					    SHADER_LOC_VERTEX_COLOR,
 | 
				
			||||||
 | 
					    SHADER_LOC_MATRIX_MVP,
 | 
				
			||||||
 | 
					    SHADER_LOC_MATRIX_VIEW,
 | 
				
			||||||
 | 
					    SHADER_LOC_MATRIX_PROJECTION,
 | 
				
			||||||
 | 
					    SHADER_LOC_MATRIX_MODEL,
 | 
				
			||||||
 | 
					    SHADER_LOC_MATRIX_NORMAL,
 | 
				
			||||||
 | 
					    SHADER_LOC_VECTOR_VIEW,
 | 
				
			||||||
 | 
					    SHADER_LOC_COLOR_DIFFUSE,
 | 
				
			||||||
 | 
					    SHADER_LOC_COLOR_SPECULAR,
 | 
				
			||||||
 | 
					    SHADER_LOC_COLOR_AMBIENT,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_ALBEDO,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_METALNESS,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_NORMAL,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_ROUGHNESS,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_OCCLUSION,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_EMISSION,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_HEIGHT,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_CUBEMAP,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_IRRADIANCE,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_PREFILTER,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_BRDF,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_DIFFUSE = SHADER_LOC_MAP_ALBEDO,
 | 
				
			||||||
 | 
					    SHADER_LOC_MAP_SPECULAR = SHADER_LOC_MAP_METALNESS,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Shader attribute data types
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum ShaderAttributeDataType
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    SHADER_ATTRIB_FLOAT = 0,
 | 
				
			||||||
 | 
					    SHADER_ATTRIB_VEC2,
 | 
				
			||||||
 | 
					    SHADER_ATTRIB_VEC3,
 | 
				
			||||||
 | 
					    SHADER_ATTRIB_VEC4
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Shader uniform data type
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum ShaderUniformDataType
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_FLOAT = 0,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_VEC2,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_VEC3,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_VEC4,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_INT,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_IVEC2,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_IVEC3,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_IVEC4,
 | 
				
			||||||
 | 
					    SHADER_UNIFORM_SAMPLER2D
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Shader type (generic)
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe partial struct Shader
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Shader location index
 | 
					    /// Shader program id
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum ShaderLocationIndex
 | 
					    public uint Id;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_POSITION = 0,
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_TEXCOORD01,
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_TEXCOORD02,
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_NORMAL,
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_TANGENT,
 | 
					 | 
				
			||||||
        SHADER_LOC_VERTEX_COLOR,
 | 
					 | 
				
			||||||
        SHADER_LOC_MATRIX_MVP,
 | 
					 | 
				
			||||||
        SHADER_LOC_MATRIX_VIEW,
 | 
					 | 
				
			||||||
        SHADER_LOC_MATRIX_PROJECTION,
 | 
					 | 
				
			||||||
        SHADER_LOC_MATRIX_MODEL,
 | 
					 | 
				
			||||||
        SHADER_LOC_MATRIX_NORMAL,
 | 
					 | 
				
			||||||
        SHADER_LOC_VECTOR_VIEW,
 | 
					 | 
				
			||||||
        SHADER_LOC_COLOR_DIFFUSE,
 | 
					 | 
				
			||||||
        SHADER_LOC_COLOR_SPECULAR,
 | 
					 | 
				
			||||||
        SHADER_LOC_COLOR_AMBIENT,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_ALBEDO,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_METALNESS,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_NORMAL,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_ROUGHNESS,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_OCCLUSION,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_EMISSION,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_HEIGHT,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_CUBEMAP,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_IRRADIANCE,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_PREFILTER,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_BRDF,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_DIFFUSE = SHADER_LOC_MAP_ALBEDO,
 | 
					 | 
				
			||||||
        SHADER_LOC_MAP_SPECULAR = SHADER_LOC_MAP_METALNESS,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Shader attribute data types
 | 
					    /// Shader locations array (MAX_SHADER_LOCATIONS, int *)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum ShaderAttributeDataType
 | 
					    public int* Locs;
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SHADER_ATTRIB_FLOAT = 0,
 | 
					 | 
				
			||||||
        SHADER_ATTRIB_VEC2,
 | 
					 | 
				
			||||||
        SHADER_ATTRIB_VEC3,
 | 
					 | 
				
			||||||
        SHADER_ATTRIB_VEC4
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// Shader uniform data type
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public enum ShaderUniformDataType
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_FLOAT = 0,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_VEC2,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_VEC3,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_VEC4,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_INT,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_IVEC2,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_IVEC3,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_IVEC4,
 | 
					 | 
				
			||||||
        SHADER_UNIFORM_SAMPLER2D
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// Shader type (generic)
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					 | 
				
			||||||
    public unsafe partial struct Shader
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Shader program id
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Shader locations array (MAX_SHADER_LOCATIONS, int *)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public int* Locs;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,137 +1,136 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Texture parameters: filter mode<br/>
 | 
				
			||||||
 | 
					/// NOTE 1: Filtering considers mipmaps if available in the texture<br/>
 | 
				
			||||||
 | 
					/// NOTE 2: Filter is accordingly set for minification and magnification
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum TextureFilter
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Texture parameters: filter mode<br/>
 | 
					    /// No filter, just pixel aproximation
 | 
				
			||||||
    /// NOTE 1: Filtering considers mipmaps if available in the texture<br/>
 | 
					 | 
				
			||||||
    /// NOTE 2: Filter is accordingly set for minification and magnification
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum TextureFilter
 | 
					    TEXTURE_FILTER_POINT = 0,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// No filter, just pixel aproximation
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_POINT = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Linear filtering
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_BILINEAR,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Trilinear filtering (linear with mipmaps)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_TRILINEAR,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Anisotropic filtering 4x
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_ANISOTROPIC_4X,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Anisotropic filtering 8x
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_ANISOTROPIC_8X,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Anisotropic filtering 16x
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_FILTER_ANISOTROPIC_16X,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Texture parameters: wrap mode
 | 
					    /// Linear filtering
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum TextureWrap
 | 
					    TEXTURE_FILTER_BILINEAR,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Repeats texture in tiled mode
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_WRAP_REPEAT = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Clamps texture to edge pixel in tiled mode
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_WRAP_CLAMP,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Mirrors and repeats the texture in tiled mode
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_WRAP_MIRROR_REPEAT,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Mirrors and clamps to border the texture in tiled mode
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        TEXTURE_WRAP_MIRROR_CLAMP
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Cubemap layouts
 | 
					    /// Trilinear filtering (linear with mipmaps)
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public enum CubemapLayout
 | 
					    TEXTURE_FILTER_TRILINEAR,
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Automatically detect layout type
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_AUTO_DETECT = 0,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Layout is defined by a vertical line with faces
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_LINE_VERTICAL,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Layout is defined by a horizontal line with faces
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_LINE_HORIZONTAL,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Layout is defined by a 3x4 cross with cubemap faces
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Layout is defined by a 4x3 cross with cubemap faces
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Layout is defined by a panorama image (equirectangular map)
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        CUBEMAP_LAYOUT_PANORAMA
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Texture2D type<br/>
 | 
					    /// Anisotropic filtering 4x
 | 
				
			||||||
    /// NOTE: Data stored in GPU memory
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    TEXTURE_FILTER_ANISOTROPIC_4X,
 | 
				
			||||||
    public partial struct Texture2D
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// OpenGL texture id
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Id;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Texture base width
 | 
					    /// Anisotropic filtering 8x
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Width;
 | 
					    TEXTURE_FILTER_ANISOTROPIC_8X,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Texture base height
 | 
					    /// Anisotropic filtering 16x
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public int Height;
 | 
					    TEXTURE_FILTER_ANISOTROPIC_16X,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
        /// <summary>
 | 
					
 | 
				
			||||||
        /// Mipmap levels, 1 by default
 | 
					/// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					/// Texture parameters: wrap mode
 | 
				
			||||||
        public int Mipmaps;
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum TextureWrap
 | 
				
			||||||
        /// <summary>
 | 
					{
 | 
				
			||||||
        /// Data format (PixelFormat type)
 | 
					    /// <summary>
 | 
				
			||||||
        /// </summary>
 | 
					    /// Repeats texture in tiled mode
 | 
				
			||||||
        public PixelFormat Format;
 | 
					    /// </summary>
 | 
				
			||||||
    }
 | 
					    TEXTURE_WRAP_REPEAT = 0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Clamps texture to edge pixel in tiled mode
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    TEXTURE_WRAP_CLAMP,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Mirrors and repeats the texture in tiled mode
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    TEXTURE_WRAP_MIRROR_REPEAT,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Mirrors and clamps to border the texture in tiled mode
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    TEXTURE_WRAP_MIRROR_CLAMP
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Cubemap layouts
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public enum CubemapLayout
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Automatically detect layout type
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_AUTO_DETECT = 0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout is defined by a vertical line with faces
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_LINE_VERTICAL,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout is defined by a horizontal line with faces
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_LINE_HORIZONTAL,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout is defined by a 3x4 cross with cubemap faces
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout is defined by a 4x3 cross with cubemap faces
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Layout is defined by a panorama image (equirectangular map)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    CUBEMAP_LAYOUT_PANORAMA
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Texture2D type<br/>
 | 
				
			||||||
 | 
					/// NOTE: Data stored in GPU memory
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Texture2D
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// OpenGL texture id
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public uint Id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Texture base width
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Width;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Texture base height
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Mipmap levels, 1 by default
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public int Mipmaps;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Data format (PixelFormat type)
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public PixelFormat Format;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,26 @@
 | 
				
			|||||||
using System.Numerics;
 | 
					using System.Numerics;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Transform, vectex transformation data
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public partial struct Transform
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Transform, vectex transformation data
 | 
					    /// Translation
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public Vector3 Translation;
 | 
				
			||||||
    public partial struct Transform
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Translation
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public Vector3 Translation;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Rotation
 | 
					    /// Rotation
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public Quaternion Rotation;
 | 
					    public Quaternion Rotation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Scale
 | 
					    /// Scale
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public Vector3 Scale;
 | 
					    public Vector3 Scale;
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +1,35 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Converts text to a Ansi buffer for passing to native code
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public readonly ref struct AnsiBuffer
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    private readonly IntPtr _data;
 | 
				
			||||||
    /// Converts text to a Ansi buffer for passing to native code
 | 
					
 | 
				
			||||||
    /// </summary>
 | 
					    public AnsiBuffer(string text)
 | 
				
			||||||
    public readonly ref struct AnsiBuffer
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private readonly IntPtr _data;
 | 
					        _data = Marshal.StringToHGlobalAnsi(text);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public AnsiBuffer(string text)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            _data = Marshal.StringToHGlobalAnsi(text);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public unsafe sbyte* AsPointer()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return (sbyte*)_data.ToPointer();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public void Dispose()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Marshal.FreeHGlobal(_data);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static class AnsiStringUtils
 | 
					    public unsafe sbyte* AsPointer()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public static AnsiBuffer ToAnsiBuffer(this string text)
 | 
					        return (sbyte*)_data.ToPointer();
 | 
				
			||||||
        {
 | 
					    }
 | 
				
			||||||
            return new AnsiBuffer(text);
 | 
					
 | 
				
			||||||
        }
 | 
					    public void Dispose()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Marshal.FreeHGlobal(_data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public static class AnsiStringUtils
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public static AnsiBuffer ToAnsiBuffer(this string text)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return new AnsiBuffer(text);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,87 +1,89 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public readonly struct CBool
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    /* The values of booleans in C++ are stored in a single byte, which means it
 | 
				
			||||||
    public readonly struct CBool
 | 
					     * only supports values from -128 to 127. It is possible to argument that
 | 
				
			||||||
 | 
					     * they only support a single bit, yes, but the minimum storage unit of a
 | 
				
			||||||
 | 
					     * computer is a sbyte, so that's what we'll be using when doing operations,
 | 
				
			||||||
 | 
					     * which can be later implicitely cast onto any type during usage.
 | 
				
			||||||
 | 
					     * 
 | 
				
			||||||
 | 
					     * It is wise to note that C booleans are any numeric value, but allocating an
 | 
				
			||||||
 | 
					     * Int64 for every CBool instance is.. well, wildly memory-inefficient. Yes, the
 | 
				
			||||||
 | 
					     * process is basically treated as a 0-cost instantiation, but it's better to rely
 | 
				
			||||||
 | 
					     * on explicit motivation than to blindly trust the runtime judgement on its memory
 | 
				
			||||||
 | 
					     * management. 
 | 
				
			||||||
 | 
					     * 
 | 
				
			||||||
 | 
					     * 'value' is visible and constructable (if necessary), but impossible to modify or access.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public sbyte Value
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /* The values of booleans in C++ are stored in a single byte, which means it
 | 
					        init; private get;
 | 
				
			||||||
         * only supports values from -128 to 127. It is possible to argument that
 | 
					    }
 | 
				
			||||||
         * they only support a single bit, yes, but the minimum storage unit of a
 | 
					 | 
				
			||||||
         * computer is a sbyte, so that's what we'll be using when doing operations,
 | 
					 | 
				
			||||||
         * which can be later implicitely cast onto any type during usage.
 | 
					 | 
				
			||||||
         * 
 | 
					 | 
				
			||||||
         * It is wise to note that C booleans are any numeric value, but allocating an
 | 
					 | 
				
			||||||
         * Int64 for every CBool instance is.. well, wildly memory-inefficient. Yes, the
 | 
					 | 
				
			||||||
         * process is basically treated as a 0-cost instantiation, but it's better to rely
 | 
					 | 
				
			||||||
         * on explicit motivation than to blindly trust the runtime judgement on its memory
 | 
					 | 
				
			||||||
         * management. 
 | 
					 | 
				
			||||||
         * 
 | 
					 | 
				
			||||||
         * 'value' is visible and constructable (if necessary), but impossible to modify or access.
 | 
					 | 
				
			||||||
         */
 | 
					 | 
				
			||||||
        public sbyte Value { init; private get; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Constructors for easier usage.
 | 
					    // Constructors for easier usage.
 | 
				
			||||||
        public CBool(bool value)
 | 
					    public CBool(bool value)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            this.Value = (sbyte)(value ? 1 : 0);
 | 
					        this.Value = (sbyte)(value ? 1 : 0);
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
        public CBool(Int64 value)
 | 
					    public CBool(Int64 value)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            this.Value = (sbyte)(value != 0 ? 1 : 0);
 | 
					        this.Value = (sbyte)(value != 0 ? 1 : 0);
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // CBool -> Native
 | 
					    // CBool -> Native
 | 
				
			||||||
        // Allows for arithmetic between CBools and for assignment to greater integer variables.
 | 
					    // Allows for arithmetic between CBools and for assignment to greater integer variables.
 | 
				
			||||||
        public static implicit operator sbyte(CBool x)
 | 
					    public static implicit operator sbyte(CBool x)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return x.Value;
 | 
					        return x.Value;
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Allows for CBools to be implicitely assigned to a native boolean variable.
 | 
					    // Allows for CBools to be implicitely assigned to a native boolean variable.
 | 
				
			||||||
        public static implicit operator bool(CBool x)
 | 
					    public static implicit operator bool(CBool x)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return x.Value != 0 ? true : false;
 | 
					        return x.Value != 0 ? true : false;
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Native -> CBool
 | 
					    // Native -> CBool
 | 
				
			||||||
        // Allows native booleans to be implicitely constructed into CBools while passing parameters.
 | 
					    // Allows native booleans to be implicitely constructed into CBools while passing parameters.
 | 
				
			||||||
        public static implicit operator CBool(bool x)
 | 
					    public static implicit operator CBool(bool x)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return new CBool { Value = (sbyte)(x ? 1 : 0) };
 | 
					        return new CBool { Value = (sbyte)(x ? 1 : 0) };
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Same goes for integer numeric values (any value, so an Int64 is used).
 | 
					    // Same goes for integer numeric values (any value, so an Int64 is used).
 | 
				
			||||||
        public static implicit operator CBool(Int64 x)
 | 
					    public static implicit operator CBool(Int64 x)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return new CBool { Value = (sbyte)(x != 0 ? 1 : 0) };
 | 
					        return new CBool { Value = (sbyte)(x != 0 ? 1 : 0) };
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* Arithmetic overloads
 | 
					    /* Arithmetic overloads
 | 
				
			||||||
         * Operations between CBools and integers are already covered by the implicit
 | 
					     * Operations between CBools and integers are already covered by the implicit
 | 
				
			||||||
         * sbyte cast. So no need to worry about those.
 | 
					     * sbyte cast. So no need to worry about those.
 | 
				
			||||||
         * 
 | 
					     * 
 | 
				
			||||||
         * All casts return CBool, since there is no way to know if the assignment is
 | 
					     * All casts return CBool, since there is no way to know if the assignment is
 | 
				
			||||||
         * to a native boolean or integer, or a CBool.
 | 
					     * to a native boolean or integer, or a CBool.
 | 
				
			||||||
         */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Addition
 | 
					    // Addition
 | 
				
			||||||
        public static CBool operator +(CBool left, CBool right)
 | 
					    public static CBool operator +(CBool left, CBool right)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return new CBool { Value = (sbyte)(left.Value + right.Value) };
 | 
					        return new CBool { Value = (sbyte)(left.Value + right.Value) };
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Subtraction
 | 
					    // Subtraction
 | 
				
			||||||
        public static CBool operator -(CBool left, CBool right)
 | 
					    public static CBool operator -(CBool left, CBool right)
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return new CBool { Value = (sbyte)(left.Value - right.Value) };
 | 
					        return new CBool { Value = (sbyte)(left.Value - right.Value) };
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // ToString override
 | 
					    // ToString override
 | 
				
			||||||
        public override string ToString()
 | 
					    public override string ToString()
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            return ((bool)this).ToString();
 | 
					        return ((bool)this).ToString();
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,26 +1,25 @@
 | 
				
			|||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// File path list
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					[StructLayout(LayoutKind.Sequential)]
 | 
				
			||||||
 | 
					public unsafe struct FilePathList
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// File path list
 | 
					    /// Filepaths max entries
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [StructLayout(LayoutKind.Sequential)]
 | 
					    public uint Capacity;
 | 
				
			||||||
    public unsafe struct FilePathList
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Filepaths max entries
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        public uint Capacity;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Filepaths entries count
 | 
					    /// Filepaths entries count
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public uint Count;
 | 
					    public uint Count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
        /// Filepaths entries
 | 
					    /// Filepaths entries
 | 
				
			||||||
        /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
        public byte** Paths;
 | 
					    public byte** Paths;
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,63 +1,62 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Runtime.InteropServices;
 | 
					using System.Runtime.InteropServices;
 | 
				
			||||||
using System.Text;
 | 
					using System.Text;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Raylib_cs
 | 
					namespace Raylib_cs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// <summary>
 | 
				
			||||||
 | 
					/// Converts text to a UTF8 buffer for passing to native code
 | 
				
			||||||
 | 
					/// </summary>
 | 
				
			||||||
 | 
					public readonly ref struct Utf8Buffer
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /// <summary>
 | 
					    private readonly IntPtr _data;
 | 
				
			||||||
    /// Converts text to a UTF8 buffer for passing to native code
 | 
					
 | 
				
			||||||
    /// </summary>
 | 
					    public Utf8Buffer(string text)
 | 
				
			||||||
    public readonly ref struct Utf8Buffer
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private readonly IntPtr _data;
 | 
					        _data = Marshal.StringToCoTaskMemUTF8(text);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public Utf8Buffer(string text)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            _data = Marshal.StringToCoTaskMemUTF8(text);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public unsafe sbyte* AsPointer()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return (sbyte*)_data.ToPointer();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public void Dispose()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Marshal.ZeroFreeCoTaskMemUTF8(_data);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static class Utf8StringUtils
 | 
					    public unsafe sbyte* AsPointer()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public static Utf8Buffer ToUtf8Buffer(this string text)
 | 
					        return (sbyte*)_data.ToPointer();
 | 
				
			||||||
        {
 | 
					    }
 | 
				
			||||||
            return new Utf8Buffer(text);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static byte[] ToUtf8String(this string text)
 | 
					    public void Dispose()
 | 
				
			||||||
        {
 | 
					    {
 | 
				
			||||||
            if (text == null)
 | 
					        Marshal.ZeroFreeCoTaskMemUTF8(_data);
 | 
				
			||||||
            {
 | 
					    }
 | 
				
			||||||
                return null;
 | 
					}
 | 
				
			||||||
            }
 | 
					
 | 
				
			||||||
 | 
					public static class Utf8StringUtils
 | 
				
			||||||
            var length = Encoding.UTF8.GetByteCount(text);
 | 
					{
 | 
				
			||||||
 | 
					    public static Utf8Buffer ToUtf8Buffer(this string text)
 | 
				
			||||||
            var byteArray = new byte[length + 1];
 | 
					    {
 | 
				
			||||||
            var wrote = Encoding.UTF8.GetBytes(text, 0, text.Length, byteArray, 0);
 | 
					        return new Utf8Buffer(text);
 | 
				
			||||||
            byteArray[wrote] = 0;
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return byteArray;
 | 
					    public static byte[] ToUtf8String(this string text)
 | 
				
			||||||
        }
 | 
					    {
 | 
				
			||||||
 | 
					        if (text == null)
 | 
				
			||||||
        public static unsafe string GetUTF8String(sbyte* bytes)
 | 
					        {
 | 
				
			||||||
        {
 | 
					            return null;
 | 
				
			||||||
            return Marshal.PtrToStringUTF8((IntPtr)bytes);
 | 
					        }
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
 | 
					        var length = Encoding.UTF8.GetByteCount(text);
 | 
				
			||||||
        public static byte[] GetUTF8Bytes(this string text)
 | 
					
 | 
				
			||||||
        {
 | 
					        var byteArray = new byte[length + 1];
 | 
				
			||||||
            return Encoding.UTF8.GetBytes(text);
 | 
					        var wrote = Encoding.UTF8.GetBytes(text, 0, text.Length, byteArray, 0);
 | 
				
			||||||
        }
 | 
					        byteArray[wrote] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return byteArray;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static unsafe string GetUTF8String(sbyte* bytes)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return Marshal.PtrToStringUTF8((IntPtr)bytes);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static byte[] GetUTF8Bytes(this string text)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return Encoding.UTF8.GetBytes(text);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user