diff --git a/Raylib-cs/AudioStream.cs b/Raylib-cs/AudioStream.cs deleted file mode 100644 index 275e614..0000000 --- a/Raylib-cs/AudioStream.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Audio stream type - /// NOTE: Useful to create custom audio streams not bound to a specific file - [StructLayout(LayoutKind.Sequential)] - public struct AudioStream - { - /// - /// Pointer to internal data(rAudioBuffer *) used by the audio system - /// - public IntPtr audioBuffer; - - /// - /// Frequency (samples per second) - /// - public uint sampleRate; - - /// - /// Bit depth (bits per sample): 8, 16, 32 (24 not supported) - /// - public uint sampleSize; - - /// - /// Number of channels (1-mono, 2-stereo) - /// - public uint channels; - } -} \ No newline at end of file diff --git a/Raylib-cs/BlendMode.cs b/Raylib-cs/BlendMode.cs deleted file mode 100644 index 08ca39e..0000000 --- a/Raylib-cs/BlendMode.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Raylib_cs -{ - /// Color blending modes (pre-defined) - public enum BlendMode - { - /// - /// Blend textures considering alpha (default) - /// - BLEND_ALPHA = 0, - - /// - /// Blend textures adding colors - /// - BLEND_ADDITIVE, - - /// - /// Blend textures multiplying colors - /// - BLEND_MULTIPLIED, - - /// - /// Blend textures adding colors (alternative) - /// - BLEND_ADD_COLORS, - - /// - /// Blend textures subtracting colors (alternative) - /// - BLEND_SUBTRACT_COLORS, - - /// - /// Blend textures using custom src/dst factors (use rlSetBlendMode()) - /// - BLEND_CUSTOM - } -} \ No newline at end of file diff --git a/Raylib-cs/BoneInfo.cs b/Raylib-cs/BoneInfo.cs deleted file mode 100644 index 6c9dc3c..0000000 --- a/Raylib-cs/BoneInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Bone information - /// - [StructLayout(LayoutKind.Sequential)] - public struct BoneInfo - { - /// - /// Bone name (char[32]) - /// - public IntPtr name; - - /// - /// Bone parent - /// - public int parent; - } -} \ No newline at end of file diff --git a/Raylib-cs/BoundingBox.cs b/Raylib-cs/BoundingBox.cs deleted file mode 100644 index e2458b3..0000000 --- a/Raylib-cs/BoundingBox.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Bounding box type - [StructLayout(LayoutKind.Sequential)] - public struct BoundingBox - { - /// - /// Minimum vertex box-corner - /// - public Vector3 min; - - /// - /// Maximum vertex box-corner - /// - public Vector3 max; - - public BoundingBox(Vector3 min, Vector3 max) - { - this.min = min; - this.max = max; - } - } -} \ No newline at end of file diff --git a/Raylib-cs/Camera2D.cs b/Raylib-cs/Camera2D.cs deleted file mode 100644 index 4b4c3de..0000000 --- a/Raylib-cs/Camera2D.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Camera2D, defines position/orientation in 2d space - [StructLayout(LayoutKind.Sequential)] - public struct Camera2D - { - /// - /// Camera offset (displacement from target) - /// - public Vector2 offset; - - /// - /// Camera target (rotation and zoom origin) - /// - public Vector2 target; - - /// - /// Camera rotation in degrees - /// - public float rotation; - - /// - /// Camera zoom (scaling), should be 1.0f by default - /// - 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; - } - } -} \ No newline at end of file diff --git a/Raylib-cs/CameraMode.cs b/Raylib-cs/CameraMode.cs deleted file mode 100644 index 4b004d0..0000000 --- a/Raylib-cs/CameraMode.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Raylib_cs -{ - /// Camera system modes - public enum CameraMode - { - CAMERA_CUSTOM = 0, - CAMERA_FREE, - CAMERA_ORBITAL, - CAMERA_FIRST_PERSON, - CAMERA_THIRD_PERSON - } -} \ No newline at end of file diff --git a/Raylib-cs/CameraProjection.cs b/Raylib-cs/CameraProjection.cs deleted file mode 100644 index fd45ac3..0000000 --- a/Raylib-cs/CameraProjection.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Raylib_cs -{ - /// Camera projection - public enum CameraProjection - { - CAMERA_PERSPECTIVE = 0, - CAMERA_ORTHOGRAPHIC - } -} \ No newline at end of file diff --git a/Raylib-cs/CubemapLayout.cs b/Raylib-cs/CubemapLayout.cs deleted file mode 100644 index 89c9924..0000000 --- a/Raylib-cs/CubemapLayout.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Raylib_cs -{ - /// Cubemap layouts - public enum CubemapLayout - { - /// - /// Automatically detect layout type - /// - CUBEMAP_LAYOUT_AUTO_DETECT = 0, - - /// - /// Layout is defined by a vertical line with faces - /// - CUBEMAP_LAYOUT_LINE_VERTICAL, - - /// - /// Layout is defined by an horizontal line with faces - /// - CUBEMAP_LAYOUT_LINE_HORIZONTAL, - - /// - /// Layout is defined by a 3x4 cross with cubemap faces - /// - CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, - - /// - /// Layout is defined by a 4x3 cross with cubemap faces - /// - CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE, - - /// - /// Layout is defined by a panorama image (equirectangular map) - /// - CUBEMAP_LAYOUT_PANORAMA - } -} \ No newline at end of file diff --git a/Raylib-cs/Font.cs b/Raylib-cs/Font.cs deleted file mode 100644 index da325bd..0000000 --- a/Raylib-cs/Font.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Font, font texture and GlyphInfo array data - /// - [StructLayout(LayoutKind.Sequential)] - public struct Font - { - /// - /// Base size (default chars height) - /// - public int baseSize; - - /// - /// Number of characters - /// - public int glyphCount; - - /// - /// Padding around the glyph characters - /// - public int glyphPadding; - - /// - /// Texture atlas containing the glyphs - /// - public Texture2D texture; - - /// - /// Rectangles in texture for the glyphs - /// - public IntPtr recs; - - /// - /// Glyphs info data - /// - public IntPtr glyphs; - } -} \ No newline at end of file diff --git a/Raylib-cs/FontType.cs b/Raylib-cs/FontType.cs deleted file mode 100644 index a91cb80..0000000 --- a/Raylib-cs/FontType.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Raylib_cs -{ - /// Font type, defines generation method - public enum FontType - { - /// - /// Default font generation, anti-aliased - /// - FONT_DEFAULT = 0, - - /// - /// Bitmap font generation, no anti-aliasing - /// - FONT_BITMAP, - - /// - /// SDF font generation, requires external shader - /// - FONT_SDF - } -} \ No newline at end of file diff --git a/Raylib-cs/GamepadAxis.cs b/Raylib-cs/GamepadAxis.cs deleted file mode 100644 index ccd107c..0000000 --- a/Raylib-cs/GamepadAxis.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Raylib_cs -{ - /// Gamepad axis - public enum GamepadAxis - { - /// - /// Gamepad left stick X axis - /// - GAMEPAD_AXIS_LEFT_X = 0, - - /// - /// Gamepad left stick Y axis - /// - GAMEPAD_AXIS_LEFT_Y = 1, - - /// - /// Gamepad right stick X axis - /// - GAMEPAD_AXIS_RIGHT_X = 2, - - /// - /// Gamepad right stick Y axis - /// - GAMEPAD_AXIS_RIGHT_Y = 3, - - /// - /// Gamepad back trigger left, pressure level: [1..-1] - /// - GAMEPAD_AXIS_LEFT_TRIGGER = 4, - - /// - /// Gamepad back trigger right, pressure level: [1..-1] - /// - GAMEPAD_AXIS_RIGHT_TRIGGER = 5 - } -} \ No newline at end of file diff --git a/Raylib-cs/GamepadButton.cs b/Raylib-cs/GamepadButton.cs deleted file mode 100644 index af27391..0000000 --- a/Raylib-cs/GamepadButton.cs +++ /dev/null @@ -1,84 +0,0 @@ -namespace Raylib_cs -{ - /// Gamepad buttons - public enum GamepadButton - { - /// - /// This is here just for error checking - /// - GAMEPAD_BUTTON_UNKNOWN = 0, - - /// - /// Gamepad left DPAD up button - /// - GAMEPAD_BUTTON_LEFT_FACE_UP, - - /// - /// Gamepad left DPAD right button - /// - GAMEPAD_BUTTON_LEFT_FACE_RIGHT, - - /// - /// Gamepad left DPAD down button - /// - GAMEPAD_BUTTON_LEFT_FACE_DOWN, - - /// - /// Gamepad left DPAD left button - /// - GAMEPAD_BUTTON_LEFT_FACE_LEFT, - - /// - /// Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - /// - GAMEPAD_BUTTON_RIGHT_FACE_UP, - - /// - /// Gamepad right button right (i.e. PS3: Square, Xbox: X) - /// - GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, - - /// - /// Gamepad right button down (i.e. PS3: Cross, Xbox: A) - /// - GAMEPAD_BUTTON_RIGHT_FACE_DOWN, - - /// - /// Gamepad right button left (i.e. PS3: Circle, Xbox: B) - /// - GAMEPAD_BUTTON_RIGHT_FACE_LEFT, - - // Triggers - GAMEPAD_BUTTON_LEFT_TRIGGER_1, - GAMEPAD_BUTTON_LEFT_TRIGGER_2, - GAMEPAD_BUTTON_RIGHT_TRIGGER_1, - GAMEPAD_BUTTON_RIGHT_TRIGGER_2, - - // These are buttons in the center of the gamepad - - /// - /// PS3 Select - /// - GAMEPAD_BUTTON_MIDDLE_LEFT, - - /// - /// PS Button/XBOX Button - /// - GAMEPAD_BUTTON_MIDDLE, - - /// - /// PS3 Start - /// - GAMEPAD_BUTTON_MIDDLE_RIGHT, - - /// - /// Left joystick press button - /// - GAMEPAD_BUTTON_LEFT_THUMB, - - /// - /// Right joystick press button - /// - GAMEPAD_BUTTON_RIGHT_THUMB - } -} \ No newline at end of file diff --git a/Raylib-cs/Gestures.cs b/Raylib-cs/Gestures.cs deleted file mode 100644 index efe4995..0000000 --- a/Raylib-cs/Gestures.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; - -namespace Raylib_cs -{ - /// Gestures - /// NOTE: It could be used as flags to enable only some gestures - [Flags] - public enum Gestures - { - GESTURE_NONE = 0, - GESTURE_TAP = 1, - GESTURE_DOUBLETAP = 2, - GESTURE_HOLD = 4, - GESTURE_DRAG = 8, - GESTURE_SWIPE_RIGHT = 16, - GESTURE_SWIPE_LEFT = 32, - GESTURE_SWIPE_UP = 64, - GESTURE_SWIPE_DOWN = 128, - GESTURE_PINCH_IN = 256, - GESTURE_PINCH_OUT = 512 - } -} \ No newline at end of file diff --git a/Raylib-cs/GlyphInfo.cs b/Raylib-cs/GlyphInfo.cs deleted file mode 100644 index 891e154..0000000 --- a/Raylib-cs/GlyphInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// GlyphInfo, font characters glyphs info - /// - [StructLayout(LayoutKind.Sequential)] - public struct GlyphInfo - { - /// - /// Character value (Unicode) - /// - public int value; - - /// - /// Character offset X when drawing - /// - public int offsetX; - - /// - /// Character offset Y when drawing - /// - public int offsetY; - - /// - /// Character advance position X - /// - public int advanceX; - - /// - /// Character image data - /// - public Image image; - } -} \ No newline at end of file diff --git a/Raylib-cs/Image.cs b/Raylib-cs/Image.cs deleted file mode 100644 index 54be815..0000000 --- a/Raylib-cs/Image.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Image type, bpp always RGBA (32bit) - ///
- /// NOTE: Data stored in CPU memory (RAM) - ///
- [StructLayout(LayoutKind.Sequential)] - public struct Image - { - /// - /// Image raw data (void *) - /// - public IntPtr data; - - /// - /// Image base width - /// - public int width; - - /// - /// Image base height - /// - public int height; - - /// - /// Mipmap levels, 1 by default - /// - public int mipmaps; - - /// - /// Data format (PixelFormat type) - /// - public PixelFormat format; - } -} \ No newline at end of file diff --git a/Raylib-cs/KeyboardKey.cs b/Raylib-cs/KeyboardKey.cs deleted file mode 100644 index edd1100..0000000 --- a/Raylib-cs/KeyboardKey.cs +++ /dev/null @@ -1,130 +0,0 @@ -namespace Raylib_cs -{ - /// Keyboard keys (US keyboard layout) - /// NOTE: Use GetKeyPressed() to allow redefining - /// required keys for alternative layouts - public enum KeyboardKey - { - /// - /// NULL, used for no key pressed - /// - KEY_NULL = 0, - - // Alphanumeric keys - KEY_APOSTROPHE = 39, - KEY_COMMA = 44, - KEY_MINUS = 45, - KEY_PERIOD = 46, - KEY_SLASH = 47, - KEY_ZERO = 48, - KEY_ONE = 49, - KEY_TWO = 50, - KEY_THREE = 51, - KEY_FOUR = 52, - KEY_FIVE = 53, - KEY_SIX = 54, - KEY_SEVEN = 55, - KEY_EIGHT = 56, - KEY_NINE = 57, - KEY_SEMICOLON = 59, - KEY_EQUAL = 61, - KEY_A = 65, - KEY_B = 66, - KEY_C = 67, - KEY_D = 68, - KEY_E = 69, - KEY_F = 70, - KEY_G = 71, - KEY_H = 72, - KEY_I = 73, - KEY_J = 74, - KEY_K = 75, - KEY_L = 76, - KEY_M = 77, - KEY_N = 78, - KEY_O = 79, - KEY_P = 80, - KEY_Q = 81, - KEY_R = 82, - KEY_S = 83, - KEY_T = 84, - KEY_U = 85, - KEY_V = 86, - KEY_W = 87, - KEY_X = 88, - KEY_Y = 89, - KEY_Z = 90, - - // Function keys - KEY_SPACE = 32, - KEY_ESCAPE = 256, - KEY_ENTER = 257, - KEY_TAB = 258, - KEY_BACKSPACE = 259, - KEY_INSERT = 260, - KEY_DELETE = 261, - KEY_RIGHT = 262, - KEY_LEFT = 263, - KEY_DOWN = 264, - KEY_UP = 265, - KEY_PAGE_UP = 266, - KEY_PAGE_DOWN = 267, - KEY_HOME = 268, - KEY_END = 269, - KEY_CAPS_LOCK = 280, - KEY_SCROLL_LOCK = 281, - KEY_NUM_LOCK = 282, - KEY_PRINT_SCREEN = 283, - KEY_PAUSE = 284, - KEY_F1 = 290, - KEY_F2 = 291, - KEY_F3 = 292, - KEY_F4 = 293, - KEY_F5 = 294, - KEY_F6 = 295, - KEY_F7 = 296, - KEY_F8 = 297, - KEY_F9 = 298, - KEY_F10 = 299, - KEY_F11 = 300, - KEY_F12 = 301, - KEY_LEFT_SHIFT = 340, - KEY_LEFT_CONTROL = 341, - KEY_LEFT_ALT = 342, - KEY_LEFT_SUPER = 343, - KEY_RIGHT_SHIFT = 344, - KEY_RIGHT_CONTROL = 345, - KEY_RIGHT_ALT = 346, - KEY_RIGHT_SUPER = 347, - KEY_KB_MENU = 348, - KEY_LEFT_BRACKET = 91, - KEY_BACKSLASH = 92, - KEY_RIGHT_BRACKET = 93, - KEY_GRAVE = 96, - - // Keypad keys - KEY_KP_0 = 320, - KEY_KP_1 = 321, - KEY_KP_2 = 322, - KEY_KP_3 = 323, - KEY_KP_4 = 324, - KEY_KP_5 = 325, - KEY_KP_6 = 326, - KEY_KP_7 = 327, - KEY_KP_8 = 328, - KEY_KP_9 = 329, - KEY_KP_DECIMAL = 330, - KEY_KP_DIVIDE = 331, - KEY_KP_MULTIPLY = 332, - KEY_KP_SUBTRACT = 333, - KEY_KP_ADD = 334, - KEY_KP_ENTER = 335, - KEY_KP_EQUAL = 336, - - // Android key buttons - KEY_BACK = 4, - KEY_MENU = 82, - KEY_VOLUME_UP = 24, - KEY_VOLUME_DOWN = 25 - } -} \ No newline at end of file diff --git a/Raylib-cs/Material.cs b/Raylib-cs/Material.cs deleted file mode 100644 index d853f74..0000000 --- a/Raylib-cs/Material.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Material type (generic) - /// - [StructLayout(LayoutKind.Sequential)] - public struct Material - { - /// - /// Material shader - /// - public Shader shader; - - /// - /// Material maps (MaterialMap *) - /// - public IntPtr maps; - - /// - /// Material generic parameters (if required, float *) - /// - public IntPtr param; - } -} \ No newline at end of file diff --git a/Raylib-cs/MaterialMap.cs b/Raylib-cs/MaterialMap.cs deleted file mode 100644 index 8324de9..0000000 --- a/Raylib-cs/MaterialMap.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Material texture map - /// - [StructLayout(LayoutKind.Sequential)] - public struct MaterialMap - { - /// - /// Material map texture - /// - public Texture2D texture; - - /// - /// Material map color - /// - public Color color; - - /// - /// Material map value - /// - public float value; - } -} \ No newline at end of file diff --git a/Raylib-cs/MaterialMapIndex.cs b/Raylib-cs/MaterialMapIndex.cs deleted file mode 100644 index 47f17af..0000000 --- a/Raylib-cs/MaterialMapIndex.cs +++ /dev/null @@ -1,42 +0,0 @@ -namespace Raylib_cs -{ - /// Material map index - public enum MaterialMapIndex - { - /// - /// MAP_DIFFUSE - /// - MATERIAL_MAP_ALBEDO = 0, - - /// - /// MAP_SPECULAR - /// - MATERIAL_MAP_METALNESS = 1, - - MATERIAL_MAP_NORMAL = 2, - MATERIAL_MAP_ROUGHNESS = 3, - MATERIAL_MAP_OCCLUSION, - MATERIAL_MAP_EMISSION, - MATERIAL_MAP_HEIGHT, - - /// - /// NOTE: Uses GL_TEXTURE_CUBE_MAP - /// - MATERIAL_MAP_CUBEMAP, - - /// - /// NOTE: Uses GL_TEXTURE_CUBE_MAP - /// - MATERIAL_MAP_IRRADIANCE, - - /// - /// NOTE: Uses GL_TEXTURE_CUBE_MAP - /// - MATERIAL_MAP_PREFILTER, - - MATERIAL_MAP_BRDF, - - MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO, - MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS, - } -} \ No newline at end of file diff --git a/Raylib-cs/ModelAnimation.cs b/Raylib-cs/ModelAnimation.cs deleted file mode 100644 index 8b5b4e3..0000000 --- a/Raylib-cs/ModelAnimation.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Model animation - [StructLayout(LayoutKind.Sequential)] - public struct ModelAnimation - { - /// - /// Number of bones - /// - public int boneCount; - - /// - /// Number of animation frames - /// - public int frameCount; - - /// - /// Bones information (skeleton, BoneInfo *) - /// - public IntPtr bones; - - /// - /// Poses array by frame (Transform **) - /// - public IntPtr framePoses; - } -} \ No newline at end of file diff --git a/Raylib-cs/MouseButton.cs b/Raylib-cs/MouseButton.cs deleted file mode 100644 index 19abbae..0000000 --- a/Raylib-cs/MouseButton.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace Raylib_cs -{ - /// Mouse buttons - public enum MouseButton - { - /// - /// Mouse button left - /// - MOUSE_BUTTON_LEFT = 0, - - /// - /// Mouse button right - /// - MOUSE_BUTTON_RIGHT = 1, - - /// - /// Mouse button middle (pressed wheel) - /// - MOUSE_BUTTON_MIDDLE = 2, - - /// - /// Mouse button side (advanced mouse device) - /// - MOUSE_BUTTON_SIDE = 3, - - /// - /// Mouse button extra (advanced mouse device) - /// - MOUSE_BUTTON_EXTRA = 4, - - /// - /// Mouse button fordward (advanced mouse device) - /// - MOUSE_BUTTON_FORWARD = 5, - - /// - /// Mouse button back (advanced mouse device) - /// - MOUSE_BUTTON_BACK = 6, - - MOUSE_LEFT_BUTTON = MOUSE_BUTTON_LEFT, - MOUSE_RIGHT_BUTTON = MOUSE_BUTTON_RIGHT, - MOUSE_MIDDLE_BUTTON = MOUSE_BUTTON_MIDDLE, - } -} \ No newline at end of file diff --git a/Raylib-cs/MouseCursor.cs b/Raylib-cs/MouseCursor.cs deleted file mode 100644 index b47373f..0000000 --- a/Raylib-cs/MouseCursor.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace Raylib_cs -{ - /// Mouse cursor - public enum MouseCursor - { - /// - /// Default pointer shape - /// - MOUSE_CURSOR_DEFAULT = 0, - - /// - /// Arrow shape - /// - MOUSE_CURSOR_ARROW = 1, - - /// - /// Text writing cursor shape - /// - MOUSE_CURSOR_IBEAM = 2, - - /// - /// Cross shape - /// - MOUSE_CURSOR_CROSSHAIR = 3, - - /// - /// Pointing hand cursor - /// - MOUSE_CURSOR_POINTING_HAND = 4, - - /// - /// Horizontal resize/move arrow shape - /// - MOUSE_CURSOR_RESIZE_EW = 5, - - /// - /// Vertical resize/move arrow shape - /// - MOUSE_CURSOR_RESIZE_NS = 6, - - /// - /// Top-left to bottom-right diagonal resize/move arrow shape - /// - MOUSE_CURSOR_RESIZE_NWSE = 7, - - /// - /// The top-right to bottom-left diagonal resize/move arrow shape - /// - MOUSE_CURSOR_RESIZE_NESW = 8, - - /// - /// The omni-directional resize/move cursor shape - /// - MOUSE_CURSOR_RESIZE_ALL = 9, - - /// - /// The operation-not-allowed shape - /// - MOUSE_CURSOR_NOT_ALLOWED = 10 - } -} \ No newline at end of file diff --git a/Raylib-cs/Music.cs b/Raylib-cs/Music.cs deleted file mode 100644 index f75f86c..0000000 --- a/Raylib-cs/Music.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Music stream type (audio file streaming from memory) - /// NOTE: Anything longer than ~10 seconds should be streamed - [StructLayout(LayoutKind.Sequential)] - public struct Music - { - /// - /// Audio stream - /// - public AudioStream stream; - - /// - /// Total number of samples - /// - public uint frameCount; - - /// - /// Music looping enable - /// - public byte looping; - - /// - /// Type of music context (audio filetype) - /// - public int ctxType; - - /// - /// Audio context data, depends on type (void *) - /// - public IntPtr ctxData; - } -} \ No newline at end of file diff --git a/Raylib-cs/NPatchLayout.cs b/Raylib-cs/NPatchLayout.cs deleted file mode 100644 index 2c81f38..0000000 --- a/Raylib-cs/NPatchLayout.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Raylib_cs -{ - /// N-patch layout - public enum NPatchLayout - { - /// - /// Npatch defined by 3x3 tiles - /// - NPATCH_NINE_PATCH = 0, - - /// - /// Npatch defined by 1x3 tiles - /// - NPATCH_THREE_PATCH_VERTICAL, - - /// - /// Npatch defined by 3x1 tiles - /// - NPATCH_THREE_PATCH_HORIZONTAL - } -} \ No newline at end of file diff --git a/Raylib-cs/Ray.cs b/Raylib-cs/Ray.cs deleted file mode 100644 index a74b4e9..0000000 --- a/Raylib-cs/Ray.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Ray, ray for raycasting - [StructLayout(LayoutKind.Sequential)] - public struct Ray - { - /// - /// Ray position (origin) - /// - public Vector3 position; - - /// - /// Ray direction - /// - public Vector3 direction; - - public Ray(Vector3 position, Vector3 direction) - { - this.position = position; - this.direction = direction; - } - } -} \ No newline at end of file diff --git a/Raylib-cs/RayCollision.cs b/Raylib-cs/RayCollision.cs deleted file mode 100644 index 6af1b09..0000000 --- a/Raylib-cs/RayCollision.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Raycast hit information - [StructLayout(LayoutKind.Sequential)] - public struct RayCollision - { - /// - /// Did the ray hit something? - /// - public byte hit; - - /// - /// Distance to nearest hit - /// - public float distance; - - /// - /// Position of nearest hit - /// - public Vector3 point; - - /// - /// Surface normal of hit - /// - public Vector3 normal; - } -} \ No newline at end of file diff --git a/Raylib-cs/Raylib.cs b/Raylib-cs/Raylib.cs index bb58ace..12ffbab 100644 --- a/Raylib-cs/Raylib.cs +++ b/Raylib-cs/Raylib.cs @@ -5,8 +5,6 @@ using System.Security; namespace Raylib_cs { - // Shader attribute data types - [SuppressUnmanagedCodeSecurity] public static class Raylib { diff --git a/Raylib-cs/Rectangle.cs b/Raylib-cs/Rectangle.cs deleted file mode 100644 index f27ba44..0000000 --- a/Raylib-cs/Rectangle.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Rectangle type - /// - [StructLayout(LayoutKind.Sequential)] - public struct Rectangle - { - public float x; - public float y; - public float width; - public float height; - - public Rectangle(float x, float y, float width, float height) - { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - } -} \ No newline at end of file diff --git a/Raylib-cs/Shader.cs b/Raylib-cs/Shader.cs deleted file mode 100644 index 94d8fd6..0000000 --- a/Raylib-cs/Shader.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Shader type (generic) - /// - [StructLayout(LayoutKind.Sequential)] - public struct Shader - { - /// - /// Shader program id - /// - public uint id; - - /// - /// Shader locations array (MAX_SHADER_LOCATIONS, int *) - /// - public IntPtr locs; - } -} \ No newline at end of file diff --git a/Raylib-cs/ShaderAttributeDataType.cs b/Raylib-cs/ShaderAttributeDataType.cs deleted file mode 100644 index b985ea8..0000000 --- a/Raylib-cs/ShaderAttributeDataType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Raylib_cs -{ - public enum ShaderAttributeDataType - { - SHADER_ATTRIB_FLOAT = 0, - SHADER_ATTRIB_VEC2, - SHADER_ATTRIB_VEC3, - SHADER_ATTRIB_VEC4 - } -} \ No newline at end of file diff --git a/Raylib-cs/ShaderUniformDataType.cs b/Raylib-cs/ShaderUniformDataType.cs deleted file mode 100644 index e3c9e35..0000000 --- a/Raylib-cs/ShaderUniformDataType.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Raylib_cs -{ - /// Shader uniform data type - 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 - } -} \ No newline at end of file diff --git a/Raylib-cs/Sound.cs b/Raylib-cs/Sound.cs deleted file mode 100644 index 1ac229b..0000000 --- a/Raylib-cs/Sound.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Sound source type - [StructLayout(LayoutKind.Sequential)] - public struct Sound - { - /// - /// Audio stream - /// - public AudioStream stream; - - /// - /// Total number of frames (considering channels) - /// - public uint frameCount; - } -} \ No newline at end of file diff --git a/Raylib-cs/Texture2D.cs b/Raylib-cs/Texture2D.cs deleted file mode 100644 index d857a12..0000000 --- a/Raylib-cs/Texture2D.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Texture2D type - ///
- /// NOTE: Data stored in GPU memory - ///
- [StructLayout(LayoutKind.Sequential)] - public struct Texture2D - { - /// - /// OpenGL texture id - /// - public uint id; - - /// - /// Texture base width - /// - public int width; - - /// - /// Texture base height - /// - public int height; - - /// - /// Mipmap levels, 1 by default - /// - public int mipmaps; - - /// - /// Data format (PixelFormat type) - /// - public PixelFormat format; - } -} \ No newline at end of file diff --git a/Raylib-cs/TextureFilter.cs b/Raylib-cs/TextureFilter.cs deleted file mode 100644 index 505a0b9..0000000 --- a/Raylib-cs/TextureFilter.cs +++ /dev/null @@ -1,38 +0,0 @@ -namespace Raylib_cs -{ - /// Texture parameters: filter mode - /// NOTE 1: Filtering considers mipmaps if available in the texture - /// NOTE 2: Filter is accordingly set for minification and magnification - public enum TextureFilter - { - /// - /// No filter, just pixel aproximation - /// - TEXTURE_FILTER_POINT = 0, - - /// - /// Linear filtering - /// - TEXTURE_FILTER_BILINEAR, - - /// - /// Trilinear filtering (linear with mipmaps) - /// - TEXTURE_FILTER_TRILINEAR, - - /// - /// Anisotropic filtering 4x - /// - TEXTURE_FILTER_ANISOTROPIC_4X, - - /// - /// Anisotropic filtering 8x - /// - TEXTURE_FILTER_ANISOTROPIC_8X, - - /// - /// Anisotropic filtering 16x - /// - TEXTURE_FILTER_ANISOTROPIC_16X, - } -} \ No newline at end of file diff --git a/Raylib-cs/TextureWrap.cs b/Raylib-cs/TextureWrap.cs deleted file mode 100644 index 7a5cda0..0000000 --- a/Raylib-cs/TextureWrap.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace Raylib_cs -{ - /// Texture parameters: wrap mode - public enum TextureWrap - { - /// - /// Repeats texture in tiled mode - /// - TEXTURE_WRAP_REPEAT = 0, - - /// - /// Clamps texture to edge pixel in tiled mode - /// - TEXTURE_WRAP_CLAMP, - - /// - /// Mirrors and repeats the texture in tiled mode - /// - TEXTURE_WRAP_MIRROR_REPEAT, - - /// - /// Mirrors and clamps to border the texture in tiled mode - /// - TEXTURE_WRAP_MIRROR_CLAMP - } -} \ No newline at end of file diff --git a/Raylib-cs/TraceLogLevel.cs b/Raylib-cs/TraceLogLevel.cs deleted file mode 100644 index 28543bd..0000000 --- a/Raylib-cs/TraceLogLevel.cs +++ /dev/null @@ -1,47 +0,0 @@ -namespace Raylib_cs -{ - /// Trace log level - /// NOTE: Organized by priority level - public enum TraceLogLevel - { - /// - /// Display all logs - /// - LOG_ALL = 0, - - /// - /// Trace logging, intended for internal use only - /// - LOG_TRACE, - - /// - /// Debug logging, used for internal debugging, it should be disabled on release builds - /// - LOG_DEBUG, - - /// - /// Info logging, used for program execution info - /// - LOG_INFO, - - /// - /// Warning logging, used on recoverable failures - /// - LOG_WARNING, - - /// - /// Error logging, used on unrecoverable failures - /// - LOG_ERROR, - - /// - /// Fatal logging, used to abort program: exit(EXIT_FAILURE) - /// - LOG_FATAL, - - /// - /// Disable logging - /// - LOG_NONE - } -} \ No newline at end of file diff --git a/Raylib-cs/Transform.cs b/Raylib-cs/Transform.cs deleted file mode 100644 index ded8ecb..0000000 --- a/Raylib-cs/Transform.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// - /// Transform, vectex transformation data - /// - [StructLayout(LayoutKind.Sequential)] - public struct Transform - { - /// - /// Translation - /// - public Vector3 translation; - - /// - /// Rotation - /// - public Vector4 rotation; - - /// - /// Scale - /// - public Vector3 scale; - } -} \ No newline at end of file diff --git a/Raylib-cs/VrDeviceInfo.cs b/Raylib-cs/VrDeviceInfo.cs deleted file mode 100644 index 7bec209..0000000 --- a/Raylib-cs/VrDeviceInfo.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Head-Mounted-Display device parameters - [StructLayout(LayoutKind.Sequential)] - public unsafe struct VrDeviceInfo - { - /// - /// HMD horizontal resolution in pixels - /// - public int hResolution; - - /// - /// HMD vertical resolution in pixels - /// - public int vResolution; - - /// - /// HMD horizontal size in meters - /// - public float hScreenSize; - - /// - /// HMD vertical size in meters - /// - public float vScreenSize; - - /// - /// HMD screen center in meters - /// - public float vScreenCenter; - - /// - /// HMD distance between eye and display in meters - /// - public float eyeToScreenDistance; - - /// - /// HMD lens separation distance in meters - /// - public float lensSeparationDistance; - - /// - /// HMD IPD (distance between pupils) in meters - /// - public float interpupillaryDistance; - - /// - /// HMD lens distortion constant parameters - /// - public fixed float lensDistortionValues[4]; - - /// - /// HMD chromatic aberration correction parameters - /// - public fixed float chromaAbCorrection[4]; - } -} \ No newline at end of file diff --git a/Raylib-cs/VrStereoConfig.cs b/Raylib-cs/VrStereoConfig.cs deleted file mode 100644 index 7b570e1..0000000 --- a/Raylib-cs/VrStereoConfig.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System.Numerics; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// VR Stereo rendering configuration for simulator - [StructLayout(LayoutKind.Sequential)] - public struct VrStereoConfig - { - /// - /// VR projection matrices (per eye) - /// - public Matrix4x4 projection1; - - /// - /// VR projection matrices (per eye) - /// - public Matrix4x4 projection2; - - /// - /// VR view offset matrices (per eye) - /// - public Matrix4x4 viewOffset1; - - /// - /// VR view offset matrices (per eye) - /// - public Matrix4x4 viewOffset2; - - /// - /// VR left lens center - /// - public Vector2 leftLensCenter; - - /// - /// VR right lens center - /// - public Vector2 rightLensCenter; - - /// - /// VR left screen center - /// - public Vector2 leftScreenCenter; - - /// - /// VR right screen center - /// - public Vector2 rightScreenCenter; - - /// - /// VR distortion scale - /// - public Vector2 scale; - - /// - /// VR distortion scale in - /// - public Vector2 scaleIn; - } -} \ No newline at end of file diff --git a/Raylib-cs/Wave.cs b/Raylib-cs/Wave.cs deleted file mode 100644 index b8e6024..0000000 --- a/Raylib-cs/Wave.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace Raylib_cs -{ - /// Wave type, defines audio wave data - [StructLayout(LayoutKind.Sequential)] - public struct Wave - { - /// - /// Number of samples - /// - public uint sampleCount; - - /// - /// Frequency (samples per second) - /// - public uint sampleRate; - - /// - /// Bit depth (bits per sample): 8, 16, 32 (24 not supported) - /// - public uint sampleSize; - - /// - /// Number of channels (1-mono, 2-stereo) - /// - public uint channels; - - /// - /// Buffer data pointer (void *) - /// - public IntPtr data; - } -} \ No newline at end of file diff --git a/Raylib-cs/types/Audio.cs b/Raylib-cs/types/Audio.cs new file mode 100644 index 0000000..a6a11d5 --- /dev/null +++ b/Raylib-cs/types/Audio.cs @@ -0,0 +1,107 @@ +using System; +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// Wave type, defines audio wave data + [StructLayout(LayoutKind.Sequential)] + public struct Wave + { + /// + /// Number of samples + /// + public uint sampleCount; + + /// + /// Frequency (samples per second) + /// + public uint sampleRate; + + /// + /// Bit depth (bits per sample): 8, 16, 32 (24 not supported) + /// + public uint sampleSize; + + /// + /// Number of channels (1-mono, 2-stereo) + /// + public uint channels; + + /// + /// Buffer data pointer (void *) + /// + public IntPtr data; + } + + /// Audio stream type + /// NOTE: Useful to create custom audio streams not bound to a specific file + [StructLayout(LayoutKind.Sequential)] + public struct AudioStream + { + /// + /// Pointer to internal data(rAudioBuffer *) used by the audio system + /// + public IntPtr audioBuffer; + + /// + /// Frequency (samples per second) + /// + public uint sampleRate; + + /// + /// Bit depth (bits per sample): 8, 16, 32 (24 not supported) + /// + public uint sampleSize; + + /// + /// Number of channels (1-mono, 2-stereo) + /// + public uint channels; + } + + /// Sound source type + [StructLayout(LayoutKind.Sequential)] + public struct Sound + { + /// + /// Audio stream + /// + public AudioStream stream; + + /// + /// Total number of frames (considering channels) + /// + public uint frameCount; + } + + /// Music stream type (audio file streaming from memory) + /// NOTE: Anything longer than ~10 seconds should be streamed + [StructLayout(LayoutKind.Sequential)] + public struct Music + { + /// + /// Audio stream + /// + public AudioStream stream; + + /// + /// Total number of samples + /// + public uint frameCount; + + /// + /// Music looping enable + /// + public byte looping; + + /// + /// Type of music context (audio filetype) + /// + public int ctxType; + + /// + /// Audio context data, depends on type (void *) + /// + public IntPtr ctxData; + } +} diff --git a/Raylib-cs/Camera3D.cs b/Raylib-cs/types/Camera.cs similarity index 50% rename from Raylib-cs/Camera3D.cs rename to Raylib-cs/types/Camera.cs index 2ee5f13..09f499e 100644 --- a/Raylib-cs/Camera3D.cs +++ b/Raylib-cs/types/Camera.cs @@ -3,6 +3,56 @@ using System.Runtime.InteropServices; namespace Raylib_cs { + /// Camera2D, defines position/orientation in 2d space + [StructLayout(LayoutKind.Sequential)] + public struct Camera2D + { + /// + /// Camera offset (displacement from target) + /// + public Vector2 offset; + + /// + /// Camera target (rotation and zoom origin) + /// + public Vector2 target; + + /// + /// Camera rotation in degrees + /// + public float rotation; + + /// + /// Camera zoom (scaling), should be 1.0f by default + /// + 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; + } + } + + /// Camera system modes + public enum CameraMode + { + CAMERA_CUSTOM = 0, + CAMERA_FREE, + CAMERA_ORBITAL, + CAMERA_FIRST_PERSON, + CAMERA_THIRD_PERSON + } + + /// Camera projection + public enum CameraProjection + { + CAMERA_PERSPECTIVE = 0, + CAMERA_ORTHOGRAPHIC + } + /// /// Camera3D, defines position/orientation in 3d space /// @@ -43,4 +93,4 @@ namespace Raylib_cs this.projection = projection; } } -} \ No newline at end of file +} diff --git a/Raylib-cs/Color.cs b/Raylib-cs/types/Color.cs similarity index 99% rename from Raylib-cs/Color.cs rename to Raylib-cs/types/Color.cs index 13f05bc..01ce6b5 100644 --- a/Raylib-cs/Color.cs +++ b/Raylib-cs/types/Color.cs @@ -1,4 +1,5 @@ using System; +using System.Numerics; using System.Runtime.InteropServices; namespace Raylib_cs @@ -64,4 +65,4 @@ namespace Raylib_cs return string.Concat(r.ToString(), " ", g.ToString(), " ", b.ToString(), " ", a.ToString()); } } -} \ No newline at end of file +} diff --git a/Raylib-cs/ConfigFlags.cs b/Raylib-cs/types/Core.cs similarity index 52% rename from Raylib-cs/ConfigFlags.cs rename to Raylib-cs/types/Core.cs index 61b5819..b3eba85 100644 --- a/Raylib-cs/ConfigFlags.cs +++ b/Raylib-cs/types/Core.cs @@ -78,4 +78,83 @@ namespace Raylib_cs /// FLAG_INTERLACED_HINT = 0x00010000, } -} \ No newline at end of file + + /// Trace log level + /// NOTE: Organized by priority level + public enum TraceLogLevel + { + /// + /// Display all logs + /// + LOG_ALL = 0, + + /// + /// Trace logging, intended for internal use only + /// + LOG_TRACE, + + /// + /// Debug logging, used for internal debugging, it should be disabled on release builds + /// + LOG_DEBUG, + + /// + /// Info logging, used for program execution info + /// + LOG_INFO, + + /// + /// Warning logging, used on recoverable failures + /// + LOG_WARNING, + + /// + /// Error logging, used on unrecoverable failures + /// + LOG_ERROR, + + /// + /// Fatal logging, used to abort program: exit(EXIT_FAILURE) + /// + LOG_FATAL, + + /// + /// Disable logging + /// + LOG_NONE + } + + /// Color blending modes (pre-defined) + public enum BlendMode + { + /// + /// Blend textures considering alpha (default) + /// + BLEND_ALPHA = 0, + + /// + /// Blend textures adding colors + /// + BLEND_ADDITIVE, + + /// + /// Blend textures multiplying colors + /// + BLEND_MULTIPLIED, + + /// + /// Blend textures adding colors (alternative) + /// + BLEND_ADD_COLORS, + + /// + /// Blend textures subtracting colors (alternative) + /// + BLEND_SUBTRACT_COLORS, + + /// + /// Blend textures using custom src/dst factors (use rlSetBlendMode()) + /// + BLEND_CUSTOM + } +} diff --git a/Raylib-cs/types/Font.cs b/Raylib-cs/types/Font.cs new file mode 100644 index 0000000..7917202 --- /dev/null +++ b/Raylib-cs/types/Font.cs @@ -0,0 +1,93 @@ +using System; +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// Font type, defines generation method + public enum FontType + { + /// + /// Default font generation, anti-aliased + /// + FONT_DEFAULT = 0, + + /// + /// Bitmap font generation, no anti-aliasing + /// + FONT_BITMAP, + + /// + /// SDF font generation, requires external shader + /// + FONT_SDF + } + + /// + /// GlyphInfo, font characters glyphs info + /// + [StructLayout(LayoutKind.Sequential)] + public struct GlyphInfo + { + /// + /// Character value (Unicode) + /// + public int value; + + /// + /// Character offset X when drawing + /// + public int offsetX; + + /// + /// Character offset Y when drawing + /// + public int offsetY; + + /// + /// Character advance position X + /// + public int advanceX; + + /// + /// Character image data + /// + public Image image; + } + + /// + /// Font, font texture and GlyphInfo array data + /// + [StructLayout(LayoutKind.Sequential)] + public struct Font + { + /// + /// Base size (default chars height) + /// + public int baseSize; + + /// + /// Number of characters + /// + public int glyphCount; + + /// + /// Padding around the glyph characters + /// + public int glyphPadding; + + /// + /// Texture atlas containing the glyphs + /// + public Texture2D texture; + + /// + /// Rectangles in texture for the glyphs + /// + public IntPtr recs; + + /// + /// Glyphs info data + /// + public IntPtr glyphs; + } +} diff --git a/Raylib-cs/PixelFormat.cs b/Raylib-cs/types/Image.cs similarity index 75% rename from Raylib-cs/PixelFormat.cs rename to Raylib-cs/types/Image.cs index b301b19..4e77382 100644 --- a/Raylib-cs/PixelFormat.cs +++ b/Raylib-cs/types/Image.cs @@ -1,3 +1,6 @@ +using System; +using System.Runtime.InteropServices; + namespace Raylib_cs { /// Pixel formats @@ -109,4 +112,38 @@ namespace Raylib_cs /// PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA } -} \ No newline at end of file + + /// + /// Image type, bpp always RGBA (32bit) + ///
+ /// NOTE: Data stored in CPU memory (RAM) + ///
+ [StructLayout(LayoutKind.Sequential)] + public struct Image + { + /// + /// Image raw data (void *) + /// + public IntPtr data; + + /// + /// Image base width + /// + public int width; + + /// + /// Image base height + /// + public int height; + + /// + /// Mipmap levels, 1 by default + /// + public int mipmaps; + + /// + /// Data format (PixelFormat type) + /// + public PixelFormat format; + } +} diff --git a/Raylib-cs/types/Input.cs b/Raylib-cs/types/Input.cs new file mode 100644 index 0000000..18677ae --- /dev/null +++ b/Raylib-cs/types/Input.cs @@ -0,0 +1,480 @@ +using System; +using System.Numerics; +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// Keyboard keys (US keyboard layout) + /// NOTE: Use GetKeyPressed() to allow redefining + /// required keys for alternative layouts + public enum KeyboardKey + { + /// + /// NULL, used for no key pressed + /// + KEY_NULL = 0, + + // Alphanumeric keys + KEY_APOSTROPHE = 39, + KEY_COMMA = 44, + KEY_MINUS = 45, + KEY_PERIOD = 46, + KEY_SLASH = 47, + KEY_ZERO = 48, + KEY_ONE = 49, + KEY_TWO = 50, + KEY_THREE = 51, + KEY_FOUR = 52, + KEY_FIVE = 53, + KEY_SIX = 54, + KEY_SEVEN = 55, + KEY_EIGHT = 56, + KEY_NINE = 57, + KEY_SEMICOLON = 59, + KEY_EQUAL = 61, + KEY_A = 65, + KEY_B = 66, + KEY_C = 67, + KEY_D = 68, + KEY_E = 69, + KEY_F = 70, + KEY_G = 71, + KEY_H = 72, + KEY_I = 73, + KEY_J = 74, + KEY_K = 75, + KEY_L = 76, + KEY_M = 77, + KEY_N = 78, + KEY_O = 79, + KEY_P = 80, + KEY_Q = 81, + KEY_R = 82, + KEY_S = 83, + KEY_T = 84, + KEY_U = 85, + KEY_V = 86, + KEY_W = 87, + KEY_X = 88, + KEY_Y = 89, + KEY_Z = 90, + + // Function keys + KEY_SPACE = 32, + KEY_ESCAPE = 256, + KEY_ENTER = 257, + KEY_TAB = 258, + KEY_BACKSPACE = 259, + KEY_INSERT = 260, + KEY_DELETE = 261, + KEY_RIGHT = 262, + KEY_LEFT = 263, + KEY_DOWN = 264, + KEY_UP = 265, + KEY_PAGE_UP = 266, + KEY_PAGE_DOWN = 267, + KEY_HOME = 268, + KEY_END = 269, + KEY_CAPS_LOCK = 280, + KEY_SCROLL_LOCK = 281, + KEY_NUM_LOCK = 282, + KEY_PRINT_SCREEN = 283, + KEY_PAUSE = 284, + KEY_F1 = 290, + KEY_F2 = 291, + KEY_F3 = 292, + KEY_F4 = 293, + KEY_F5 = 294, + KEY_F6 = 295, + KEY_F7 = 296, + KEY_F8 = 297, + KEY_F9 = 298, + KEY_F10 = 299, + KEY_F11 = 300, + KEY_F12 = 301, + KEY_LEFT_SHIFT = 340, + KEY_LEFT_CONTROL = 341, + KEY_LEFT_ALT = 342, + KEY_LEFT_SUPER = 343, + KEY_RIGHT_SHIFT = 344, + KEY_RIGHT_CONTROL = 345, + KEY_RIGHT_ALT = 346, + KEY_RIGHT_SUPER = 347, + KEY_KB_MENU = 348, + KEY_LEFT_BRACKET = 91, + KEY_BACKSLASH = 92, + KEY_RIGHT_BRACKET = 93, + KEY_GRAVE = 96, + + // Keypad keys + KEY_KP_0 = 320, + KEY_KP_1 = 321, + KEY_KP_2 = 322, + KEY_KP_3 = 323, + KEY_KP_4 = 324, + KEY_KP_5 = 325, + KEY_KP_6 = 326, + KEY_KP_7 = 327, + KEY_KP_8 = 328, + KEY_KP_9 = 329, + KEY_KP_DECIMAL = 330, + KEY_KP_DIVIDE = 331, + KEY_KP_MULTIPLY = 332, + KEY_KP_SUBTRACT = 333, + KEY_KP_ADD = 334, + KEY_KP_ENTER = 335, + KEY_KP_EQUAL = 336, + + // Android key buttons + KEY_BACK = 4, + KEY_MENU = 82, + KEY_VOLUME_UP = 24, + KEY_VOLUME_DOWN = 25 + } + + /// Mouse buttons + public enum MouseButton + { + /// + /// Mouse button left + /// + MOUSE_BUTTON_LEFT = 0, + + /// + /// Mouse button right + /// + MOUSE_BUTTON_RIGHT = 1, + + /// + /// Mouse button middle (pressed wheel) + /// + MOUSE_BUTTON_MIDDLE = 2, + + /// + /// Mouse button side (advanced mouse device) + /// + MOUSE_BUTTON_SIDE = 3, + + /// + /// Mouse button extra (advanced mouse device) + /// + MOUSE_BUTTON_EXTRA = 4, + + /// + /// Mouse button fordward (advanced mouse device) + /// + MOUSE_BUTTON_FORWARD = 5, + + /// + /// Mouse button back (advanced mouse device) + /// + MOUSE_BUTTON_BACK = 6, + + MOUSE_LEFT_BUTTON = MOUSE_BUTTON_LEFT, + MOUSE_RIGHT_BUTTON = MOUSE_BUTTON_RIGHT, + MOUSE_MIDDLE_BUTTON = MOUSE_BUTTON_MIDDLE, + } + + /// Mouse cursor + public enum MouseCursor + { + /// + /// Default pointer shape + /// + MOUSE_CURSOR_DEFAULT = 0, + + /// + /// Arrow shape + /// + MOUSE_CURSOR_ARROW = 1, + + /// + /// Text writing cursor shape + /// + MOUSE_CURSOR_IBEAM = 2, + + /// + /// Cross shape + /// + MOUSE_CURSOR_CROSSHAIR = 3, + + /// + /// Pointing hand cursor + /// + MOUSE_CURSOR_POINTING_HAND = 4, + + /// + /// Horizontal resize/move arrow shape + /// + MOUSE_CURSOR_RESIZE_EW = 5, + + /// + /// Vertical resize/move arrow shape + /// + MOUSE_CURSOR_RESIZE_NS = 6, + + /// + /// Top-left to bottom-right diagonal resize/move arrow shape + /// + MOUSE_CURSOR_RESIZE_NWSE = 7, + + /// + /// The top-right to bottom-left diagonal resize/move arrow shape + /// + MOUSE_CURSOR_RESIZE_NESW = 8, + + /// + /// The omni-directional resize/move cursor shape + /// + MOUSE_CURSOR_RESIZE_ALL = 9, + + /// + /// The operation-not-allowed shape + /// + MOUSE_CURSOR_NOT_ALLOWED = 10 + } + + /// Gamepad axis + public enum GamepadAxis + { + /// + /// Gamepad left stick X axis + /// + GAMEPAD_AXIS_LEFT_X = 0, + + /// + /// Gamepad left stick Y axis + /// + GAMEPAD_AXIS_LEFT_Y = 1, + + /// + /// Gamepad right stick X axis + /// + GAMEPAD_AXIS_RIGHT_X = 2, + + /// + /// Gamepad right stick Y axis + /// + GAMEPAD_AXIS_RIGHT_Y = 3, + + /// + /// Gamepad back trigger left, pressure level: [1..-1] + /// + GAMEPAD_AXIS_LEFT_TRIGGER = 4, + + /// + /// Gamepad back trigger right, pressure level: [1..-1] + /// + GAMEPAD_AXIS_RIGHT_TRIGGER = 5 + } + + /// Gamepad buttons + public enum GamepadButton + { + /// + /// This is here just for error checking + /// + GAMEPAD_BUTTON_UNKNOWN = 0, + + /// + /// Gamepad left DPAD up button + /// + GAMEPAD_BUTTON_LEFT_FACE_UP, + + /// + /// Gamepad left DPAD right button + /// + GAMEPAD_BUTTON_LEFT_FACE_RIGHT, + + /// + /// Gamepad left DPAD down button + /// + GAMEPAD_BUTTON_LEFT_FACE_DOWN, + + /// + /// Gamepad left DPAD left button + /// + GAMEPAD_BUTTON_LEFT_FACE_LEFT, + + /// + /// Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) + /// + GAMEPAD_BUTTON_RIGHT_FACE_UP, + + /// + /// Gamepad right button right (i.e. PS3: Square, Xbox: X) + /// + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, + + /// + /// Gamepad right button down (i.e. PS3: Cross, Xbox: A) + /// + GAMEPAD_BUTTON_RIGHT_FACE_DOWN, + + /// + /// Gamepad right button left (i.e. PS3: Circle, Xbox: B) + /// + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, + + // Triggers + GAMEPAD_BUTTON_LEFT_TRIGGER_1, + GAMEPAD_BUTTON_LEFT_TRIGGER_2, + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, + GAMEPAD_BUTTON_RIGHT_TRIGGER_2, + + // These are buttons in the center of the gamepad + + /// + /// PS3 Select + /// + GAMEPAD_BUTTON_MIDDLE_LEFT, + + /// + /// PS Button/XBOX Button + /// + GAMEPAD_BUTTON_MIDDLE, + + /// + /// PS3 Start + /// + GAMEPAD_BUTTON_MIDDLE_RIGHT, + + /// + /// Left joystick press button + /// + GAMEPAD_BUTTON_LEFT_THUMB, + + /// + /// Right joystick press button + /// + GAMEPAD_BUTTON_RIGHT_THUMB + } + + /// Gestures + /// NOTE: It could be used as flags to enable only some gestures + [Flags] + public enum Gestures + { + GESTURE_NONE = 0, + GESTURE_TAP = 1, + GESTURE_DOUBLETAP = 2, + GESTURE_HOLD = 4, + GESTURE_DRAG = 8, + GESTURE_SWIPE_RIGHT = 16, + GESTURE_SWIPE_LEFT = 32, + GESTURE_SWIPE_UP = 64, + GESTURE_SWIPE_DOWN = 128, + GESTURE_PINCH_IN = 256, + GESTURE_PINCH_OUT = 512 + } + + /// Head-Mounted-Display device parameters + [StructLayout(LayoutKind.Sequential)] + public unsafe struct VrDeviceInfo + { + /// + /// HMD horizontal resolution in pixels + /// + public int hResolution; + + /// + /// HMD vertical resolution in pixels + /// + public int vResolution; + + /// + /// HMD horizontal size in meters + /// + public float hScreenSize; + + /// + /// HMD vertical size in meters + /// + public float vScreenSize; + + /// + /// HMD screen center in meters + /// + public float vScreenCenter; + + /// + /// HMD distance between eye and display in meters + /// + public float eyeToScreenDistance; + + /// + /// HMD lens separation distance in meters + /// + public float lensSeparationDistance; + + /// + /// HMD IPD (distance between pupils) in meters + /// + public float interpupillaryDistance; + + /// + /// HMD lens distortion constant parameters + /// + public fixed float lensDistortionValues[4]; + + /// + /// HMD chromatic aberration correction parameters + /// + public fixed float chromaAbCorrection[4]; + } + + /// VR Stereo rendering configuration for simulator + [StructLayout(LayoutKind.Sequential)] + public struct VrStereoConfig + { + /// + /// VR projection matrices (per eye) + /// + public Matrix4x4 projection1; + + /// + /// VR projection matrices (per eye) + /// + public Matrix4x4 projection2; + + /// + /// VR view offset matrices (per eye) + /// + public Matrix4x4 viewOffset1; + + /// + /// VR view offset matrices (per eye) + /// + public Matrix4x4 viewOffset2; + + /// + /// VR left lens center + /// + public Vector2 leftLensCenter; + + /// + /// VR right lens center + /// + public Vector2 rightLensCenter; + + /// + /// VR left screen center + /// + public Vector2 leftScreenCenter; + + /// + /// VR right screen center + /// + public Vector2 rightScreenCenter; + + /// + /// VR distortion scale + /// + public Vector2 scale; + + /// + /// VR distortion scale in + /// + public Vector2 scaleIn; + } +} diff --git a/Raylib-cs/types/Material.cs b/Raylib-cs/types/Material.cs new file mode 100644 index 0000000..2252fe6 --- /dev/null +++ b/Raylib-cs/types/Material.cs @@ -0,0 +1,89 @@ +using System; +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// Material map index + public enum MaterialMapIndex + { + /// + /// MAP_DIFFUSE + /// + MATERIAL_MAP_ALBEDO = 0, + + /// + /// MAP_SPECULAR + /// + MATERIAL_MAP_METALNESS = 1, + + MATERIAL_MAP_NORMAL = 2, + MATERIAL_MAP_ROUGHNESS = 3, + MATERIAL_MAP_OCCLUSION, + MATERIAL_MAP_EMISSION, + MATERIAL_MAP_HEIGHT, + + /// + /// NOTE: Uses GL_TEXTURE_CUBE_MAP + /// + MATERIAL_MAP_CUBEMAP, + + /// + /// NOTE: Uses GL_TEXTURE_CUBE_MAP + /// + MATERIAL_MAP_IRRADIANCE, + + /// + /// NOTE: Uses GL_TEXTURE_CUBE_MAP + /// + MATERIAL_MAP_PREFILTER, + + MATERIAL_MAP_BRDF, + + MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO, + MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS, + } + + /// + /// Material texture map + /// + [StructLayout(LayoutKind.Sequential)] + public struct MaterialMap + { + /// + /// Material map texture + /// + public Texture2D texture; + + /// + /// Material map color + /// + public Color color; + + /// + /// Material map value + /// + public float value; + } + + /// + /// Material type (generic) + /// + [StructLayout(LayoutKind.Sequential)] + public struct Material + { + /// + /// Material shader + /// + public Shader shader; + + /// + /// Material maps (MaterialMap *) + /// + public IntPtr maps; + + /// + /// Material generic parameters (if required, float *) + /// + public IntPtr param; + } +} diff --git a/Raylib-cs/Mesh.cs b/Raylib-cs/types/Mesh.cs similarity index 85% rename from Raylib-cs/Mesh.cs rename to Raylib-cs/types/Mesh.cs index 5e2b9d8..c7746a2 100644 --- a/Raylib-cs/Mesh.cs +++ b/Raylib-cs/types/Mesh.cs @@ -1,8 +1,31 @@ using System; +using System.Numerics; using System.Runtime.InteropServices; namespace Raylib_cs { + /// + /// Transform, vectex transformation data + /// + [StructLayout(LayoutKind.Sequential)] + public struct Transform + { + /// + /// Translation + /// + public Vector3 translation; + + /// + /// Rotation + /// + public Vector4 rotation; + + /// + /// Scale + /// + public Vector3 scale; + } + /// /// Vertex data definning a mesh /// NOTE: Data stored in CPU memory (and GPU) @@ -97,4 +120,4 @@ namespace Raylib_cs #endregion } -} \ No newline at end of file +} diff --git a/Raylib-cs/Model.cs b/Raylib-cs/types/Model.cs similarity index 57% rename from Raylib-cs/Model.cs rename to Raylib-cs/types/Model.cs index 1e4eed2..6d44978 100644 --- a/Raylib-cs/Model.cs +++ b/Raylib-cs/types/Model.cs @@ -4,6 +4,23 @@ using System.Runtime.InteropServices; namespace Raylib_cs { + /// + /// Bone information + /// + [StructLayout(LayoutKind.Sequential)] + public struct BoneInfo + { + /// + /// Bone name (char[32]) + /// + public IntPtr name; + + /// + /// Bone parent + /// + public int parent; + } + /// /// Model type /// @@ -55,4 +72,29 @@ namespace Raylib_cs /// public IntPtr bindPose; } -} \ No newline at end of file + + /// Model animation + [StructLayout(LayoutKind.Sequential)] + public struct ModelAnimation + { + /// + /// Number of bones + /// + public int boneCount; + + /// + /// Number of animation frames + /// + public int frameCount; + + /// + /// Bones information (skeleton, BoneInfo *) + /// + public IntPtr bones; + + /// + /// Poses array by frame (Transform **) + /// + public IntPtr framePoses; + } +} diff --git a/Raylib-cs/NPatchInfo.cs b/Raylib-cs/types/NPatchInfo.cs similarity index 65% rename from Raylib-cs/NPatchInfo.cs rename to Raylib-cs/types/NPatchInfo.cs index c9534ad..d44f9ae 100644 --- a/Raylib-cs/NPatchInfo.cs +++ b/Raylib-cs/types/NPatchInfo.cs @@ -2,6 +2,25 @@ using System.Runtime.InteropServices; namespace Raylib_cs { + /// N-patch layout + public enum NPatchLayout + { + /// + /// Npatch defined by 3x3 tiles + /// + NPATCH_NINE_PATCH = 0, + + /// + /// Npatch defined by 1x3 tiles + /// + NPATCH_THREE_PATCH_VERTICAL, + + /// + /// Npatch defined by 3x1 tiles + /// + NPATCH_THREE_PATCH_HORIZONTAL + } + /// /// N-Patch layout info /// @@ -38,4 +57,4 @@ namespace Raylib_cs /// public NPatchLayout layout; } -} \ No newline at end of file +} diff --git a/Raylib-cs/RenderTexture2D.cs b/Raylib-cs/types/RenderTexture2D.cs similarity index 99% rename from Raylib-cs/RenderTexture2D.cs rename to Raylib-cs/types/RenderTexture2D.cs index 6d1ccc4..6aef0d9 100644 --- a/Raylib-cs/RenderTexture2D.cs +++ b/Raylib-cs/types/RenderTexture2D.cs @@ -23,4 +23,4 @@ namespace Raylib_cs /// public Texture2D depth; } -} \ No newline at end of file +} diff --git a/Raylib-cs/ShaderLocationIndex.cs b/Raylib-cs/types/Shader.cs similarity index 52% rename from Raylib-cs/ShaderLocationIndex.cs rename to Raylib-cs/types/Shader.cs index c8c6435..9b520a9 100644 --- a/Raylib-cs/ShaderLocationIndex.cs +++ b/Raylib-cs/types/Shader.cs @@ -1,3 +1,6 @@ +using System; +using System.Runtime.InteropServices; + namespace Raylib_cs { /// Shader location index @@ -33,4 +36,44 @@ namespace Raylib_cs SHADER_LOC_MAP_DIFFUSE = SHADER_LOC_MAP_ALBEDO, SHADER_LOC_MAP_SPECULAR = SHADER_LOC_MAP_METALNESS, } -} \ No newline at end of file + + // Shader attribute data types + public enum ShaderAttributeDataType + { + SHADER_ATTRIB_FLOAT = 0, + SHADER_ATTRIB_VEC2, + SHADER_ATTRIB_VEC3, + SHADER_ATTRIB_VEC4 + } + + /// Shader uniform data type + 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 + } + + /// + /// Shader type (generic) + /// + [StructLayout(LayoutKind.Sequential)] + public struct Shader + { + /// + /// Shader program id + /// + public uint id; + + /// + /// Shader locations array (MAX_SHADER_LOCATIONS, int *) + /// + public IntPtr locs; + } +} diff --git a/Raylib-cs/types/Shapes.cs b/Raylib-cs/types/Shapes.cs new file mode 100644 index 0000000..15684c6 --- /dev/null +++ b/Raylib-cs/types/Shapes.cs @@ -0,0 +1,92 @@ +using System.Numerics; +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// + /// Rectangle type + /// + [StructLayout(LayoutKind.Sequential)] + public struct Rectangle + { + public float x; + public float y; + public float width; + public float height; + + public Rectangle(float x, float y, float width, float height) + { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + } + + /// Bounding box type + [StructLayout(LayoutKind.Sequential)] + public struct BoundingBox + { + /// + /// Minimum vertex box-corner + /// + public Vector3 min; + + /// + /// Maximum vertex box-corner + /// + public Vector3 max; + + public BoundingBox(Vector3 min, Vector3 max) + { + this.min = min; + this.max = max; + } + } + + /// Ray, ray for raycasting + [StructLayout(LayoutKind.Sequential)] + public struct Ray + { + /// + /// Ray position (origin) + /// + public Vector3 position; + + /// + /// Ray direction + /// + public Vector3 direction; + + public Ray(Vector3 position, Vector3 direction) + { + this.position = position; + this.direction = direction; + } + } + + /// Raycast hit information + [StructLayout(LayoutKind.Sequential)] + public struct RayCollision + { + /// + /// Did the ray hit something? + /// + public byte hit; + + /// + /// Distance to nearest hit + /// + public float distance; + + /// + /// Position of nearest hit + /// + public Vector3 point; + + /// + /// Surface normal of hit + /// + public Vector3 normal; + } +} diff --git a/Raylib-cs/types/Texture2D.cs b/Raylib-cs/types/Texture2D.cs new file mode 100644 index 0000000..f8c7f0d --- /dev/null +++ b/Raylib-cs/types/Texture2D.cs @@ -0,0 +1,132 @@ +using System.Runtime.InteropServices; + +namespace Raylib_cs +{ + /// Texture parameters: filter mode + /// NOTE 1: Filtering considers mipmaps if available in the texture + /// NOTE 2: Filter is accordingly set for minification and magnification + public enum TextureFilter + { + /// + /// No filter, just pixel aproximation + /// + TEXTURE_FILTER_POINT = 0, + + /// + /// Linear filtering + /// + TEXTURE_FILTER_BILINEAR, + + /// + /// Trilinear filtering (linear with mipmaps) + /// + TEXTURE_FILTER_TRILINEAR, + + /// + /// Anisotropic filtering 4x + /// + TEXTURE_FILTER_ANISOTROPIC_4X, + + /// + /// Anisotropic filtering 8x + /// + TEXTURE_FILTER_ANISOTROPIC_8X, + + /// + /// Anisotropic filtering 16x + /// + TEXTURE_FILTER_ANISOTROPIC_16X, + } + + /// Texture parameters: wrap mode + public enum TextureWrap + { + /// + /// Repeats texture in tiled mode + /// + TEXTURE_WRAP_REPEAT = 0, + + /// + /// Clamps texture to edge pixel in tiled mode + /// + TEXTURE_WRAP_CLAMP, + + /// + /// Mirrors and repeats the texture in tiled mode + /// + TEXTURE_WRAP_MIRROR_REPEAT, + + /// + /// Mirrors and clamps to border the texture in tiled mode + /// + TEXTURE_WRAP_MIRROR_CLAMP + } + + /// Cubemap layouts + public enum CubemapLayout + { + /// + /// Automatically detect layout type + /// + CUBEMAP_LAYOUT_AUTO_DETECT = 0, + + /// + /// Layout is defined by a vertical line with faces + /// + CUBEMAP_LAYOUT_LINE_VERTICAL, + + /// + /// Layout is defined by an horizontal line with faces + /// + CUBEMAP_LAYOUT_LINE_HORIZONTAL, + + /// + /// Layout is defined by a 3x4 cross with cubemap faces + /// + CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, + + /// + /// Layout is defined by a 4x3 cross with cubemap faces + /// + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE, + + /// + /// Layout is defined by a panorama image (equirectangular map) + /// + CUBEMAP_LAYOUT_PANORAMA + } + + /// + /// Texture2D type + ///
+ /// NOTE: Data stored in GPU memory + ///
+ [StructLayout(LayoutKind.Sequential)] + public struct Texture2D + { + /// + /// OpenGL texture id + /// + public uint id; + + /// + /// Texture base width + /// + public int width; + + /// + /// Texture base height + /// + public int height; + + /// + /// Mipmap levels, 1 by default + /// + public int mipmaps; + + /// + /// Data format (PixelFormat type) + /// + public PixelFormat format; + } +}