1 /**
2  * Raylib types
3  *
4  * Automatically generated, do not modify
5  */
6 module bindbc.raylib.types;
7 
8 enum RaylibSupport {
9    noLibrary,
10    badLibrary,
11    raylib370 = 370,
12    raylib400 = 400
13 }
14 
15 enum RAYLIB_VERSION_MAJOR = 4;
16 enum RAYLIB_VERSION_MINOR = 0;
17 enum RAYLIB_VERSION_REVISION = 0;
18 enum RAYLIB_VERSION_BUILD = 0;
19 enum raylibSupport = RaylibSupport.raylib400;
20 
21 
22 // structs
23 
24 struct Vector2 {
25    /// Vector x component
26    float x;
27    /// Vector y component
28    float y;
29 }
30 struct Vector3 {
31    /// Vector x component
32    float x;
33    /// Vector y component
34    float y;
35    /// Vector z component
36    float z;
37 }
38 struct Vector4 {
39    /// Vector x component
40    float x;
41    /// Vector y component
42    float y;
43    /// Vector z component
44    float z;
45    /// Vector w component
46    float w;
47 }
48 struct Matrix {
49    /// Matrix first row (4 components)
50    float m0, m4, m8, m12;
51    /// Matrix second row (4 components)
52    float m1, m5, m9, m13;
53    /// Matrix third row (4 components)
54    float m2, m6, m10, m14;
55    /// Matrix fourth row (4 components)
56    float m3, m7, m11, m15;
57 }
58 struct Color {
59    /// Color red value
60    ubyte r;
61    /// Color green value
62    ubyte g;
63    /// Color blue value
64    ubyte b;
65    /// Color alpha value
66    ubyte a;
67 }
68 struct Rectangle {
69    /// Rectangle top-left corner position x
70    float x;
71    /// Rectangle top-left corner position y
72    float y;
73    /// Rectangle width
74    float width;
75    /// Rectangle height
76    float height;
77 }
78 struct Image {
79    /// Image raw data
80    void* data;
81    /// Image base width
82    int width;
83    /// Image base height
84    int height;
85    /// Mipmap levels, 1 by default
86    int mipmaps;
87    /// Data format (PixelFormat type)
88    int format;
89 }
90 struct Texture {
91    /// OpenGL texture id
92    uint id;
93    /// Texture base width
94    int width;
95    /// Texture base height
96    int height;
97    /// Mipmap levels, 1 by default
98    int mipmaps;
99    /// Data format (PixelFormat type)
100    int format;
101 }
102 struct RenderTexture {
103    /// OpenGL framebuffer object id
104    uint id;
105    /// Color buffer attachment texture
106    Texture texture;
107    /// Depth buffer attachment texture
108    Texture depth;
109 }
110 struct NPatchInfo {
111    /// Texture source rectangle
112    Rectangle source;
113    /// Left border offset
114    int left;
115    /// Top border offset
116    int top;
117    /// Right border offset
118    int right;
119    /// Bottom border offset
120    int bottom;
121    /// Layout of the n-patch: 3x3, 1x3 or 3x1
122    int layout;
123 }
124 struct GlyphInfo {
125    /// Character value (Unicode)
126    int value;
127    /// Character offset X when drawing
128    int offsetX;
129    /// Character offset Y when drawing
130    int offsetY;
131    /// Character advance position X
132    int advanceX;
133    /// Character image data
134    Image image;
135 }
136 struct Font {
137    /// Base size (default chars height)
138    int baseSize;
139    /// Number of glyph characters
140    int glyphCount;
141    /// Padding around the glyph characters
142    int glyphPadding;
143    /// Texture atlas containing the glyphs
144    Texture2D texture;
145    /// Rectangles in texture for the glyphs
146    Rectangle* recs;
147    /// Glyphs info data
148    GlyphInfo* glyphs;
149 }
150 struct Camera3D {
151    /// Camera position
152    Vector3 position;
153    /// Camera target it looks-at
154    Vector3 target;
155    /// Camera up vector (rotation over its axis)
156    Vector3 up;
157    /// Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
158    float fovy;
159    /// Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
160    int projection;
161 }
162 struct Camera2D {
163    /// Camera offset (displacement from target)
164    Vector2 offset;
165    /// Camera target (rotation and zoom origin)
166    Vector2 target;
167    /// Camera rotation in degrees
168    float rotation;
169    /// Camera zoom (scaling), should be 1.0f by default
170    float zoom;
171 }
172 struct Mesh {
173    /// Number of vertices stored in arrays
174    int vertexCount;
175    /// Number of triangles stored (indexed or not)
176    int triangleCount;
177    /// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
178    float* vertices;
179    /// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
180    float* texcoords;
181    /// Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)
182    float* texcoords2;
183    /// Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
184    float* normals;
185    /// Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
186    float* tangents;
187    /// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
188    ubyte* colors;
189    /// Vertex indices (in case vertex data comes indexed)
190    ushort* indices;
191    /// Animated vertex positions (after bones transformations)
192    float* animVertices;
193    /// Animated normals (after bones transformations)
194    float* animNormals;
195    /// Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning)
196    ubyte* boneIds;
197    /// Vertex bone weight, up to 4 bones influence by vertex (skinning)
198    float* boneWeights;
199    /// OpenGL Vertex Array Object id
200    uint vaoId;
201    /// OpenGL Vertex Buffer Objects id (default vertex data)
202    uint* vboId;
203 }
204 struct Shader {
205    /// Shader program id
206    uint id;
207    /// Shader locations array (RL_MAX_SHADER_LOCATIONS)
208    int* locs;
209 }
210 struct MaterialMap {
211    /// Material map texture
212    Texture2D texture;
213    /// Material map color
214    Color color;
215    /// Material map value
216    float value;
217 }
218 struct Material {
219    /// Material shader
220    Shader shader;
221    /// Material maps array (MAX_MATERIAL_MAPS)
222    MaterialMap* maps;
223    /// Material generic parameters (if required)
224    float[4] params;
225 }
226 struct Transform {
227    /// Translation
228    Vector3 translation;
229    /// Rotation
230    Quaternion rotation;
231    /// Scale
232    Vector3 scale;
233 }
234 struct BoneInfo {
235    /// Bone name
236    char[32] name;
237    /// Bone parent
238    int parent;
239 }
240 struct Model {
241    /// Local transform matrix
242    Matrix transform;
243    /// Number of meshes
244    int meshCount;
245    /// Number of materials
246    int materialCount;
247    /// Meshes array
248    Mesh* meshes;
249    /// Materials array
250    Material* materials;
251    /// Mesh material number
252    int* meshMaterial;
253    /// Number of bones
254    int boneCount;
255    /// Bones information (skeleton)
256    BoneInfo* bones;
257    /// Bones base transformation (pose)
258    Transform* bindPose;
259 }
260 struct ModelAnimation {
261    /// Number of bones
262    int boneCount;
263    /// Number of animation frames
264    int frameCount;
265    /// Bones information (skeleton)
266    BoneInfo* bones;
267    /// Poses array by frame
268    Transform** framePoses;
269 }
270 struct Ray {
271    /// Ray position (origin)
272    Vector3 position;
273    /// Ray direction
274    Vector3 direction;
275 }
276 struct RayCollision {
277    /// Did the ray hit something?
278    bool hit;
279    /// Distance to nearest hit
280    float distance;
281    /// Point of nearest hit
282    Vector3 point;
283    /// Surface normal of hit
284    Vector3 normal;
285 }
286 struct BoundingBox {
287    /// Minimum vertex box-corner
288    Vector3 min;
289    /// Maximum vertex box-corner
290    Vector3 max;
291 }
292 struct Wave {
293    /// Total number of frames (considering channels)
294    uint frameCount;
295    /// Frequency (samples per second)
296    uint sampleRate;
297    /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
298    uint sampleSize;
299    /// Number of channels (1-mono, 2-stereo, ...)
300    uint channels;
301    /// Buffer data pointer
302    void* data;
303 }
304 struct AudioStream {
305    /// Pointer to internal data used by the audio system
306    rAudioBuffer* buffer;
307    /// Frequency (samples per second)
308    uint sampleRate;
309    /// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
310    uint sampleSize;
311    /// Number of channels (1-mono, 2-stereo, ...)
312    uint channels;
313 }
314 struct Sound {
315    /// Audio stream
316    AudioStream stream;
317    /// Total number of frames (considering channels)
318    uint frameCount;
319 }
320 struct Music {
321    /// Audio stream
322    AudioStream stream;
323    /// Total number of frames (considering channels)
324    uint frameCount;
325    /// Music looping enable
326    bool looping;
327    /// Type of music context (audio filetype)
328    int ctxType;
329    /// Audio context data, depends on type
330    void* ctxData;
331 }
332 struct VrDeviceInfo {
333    /// Horizontal resolution in pixels
334    int hResolution;
335    /// Vertical resolution in pixels
336    int vResolution;
337    /// Horizontal size in meters
338    float hScreenSize;
339    /// Vertical size in meters
340    float vScreenSize;
341    /// Screen center in meters
342    float vScreenCenter;
343    /// Distance between eye and display in meters
344    float eyeToScreenDistance;
345    /// Lens separation distance in meters
346    float lensSeparationDistance;
347    /// IPD (distance between pupils) in meters
348    float interpupillaryDistance;
349    /// Lens distortion constant parameters
350    float[4] lensDistortionValues;
351    /// Chromatic aberration correction parameters
352    float[4] chromaAbCorrection;
353 }
354 struct VrStereoConfig {
355    /// VR projection matrices (per eye)
356    Matrix[2] projection;
357    /// VR view offset matrices (per eye)
358    Matrix[2] viewOffset;
359    /// VR left lens center
360    float[2] leftLensCenter;
361    /// VR right lens center
362    float[2] rightLensCenter;
363    /// VR left screen center
364    float[2] leftScreenCenter;
365    /// VR right screen center
366    float[2] rightScreenCenter;
367    /// VR distortion scale
368    float[2] scale;
369    /// VR distortion scale in
370    float[2] scaleIn;
371 }
372 
373 alias RenderTexture2D = RenderTexture;
374 alias Camera = Camera3D;
375 alias Texture2D = Texture;
376 alias TextureCubemap = Texture;
377 alias Quaternion = Vector4;
378 struct rAudioBuffer {}
379 
380 // enums
381 
382 enum ConfigFlags {
383    FLAG_VSYNC_HINT = 64,
384    FLAG_FULLSCREEN_MODE = 2,
385    FLAG_WINDOW_RESIZABLE = 4,
386    FLAG_WINDOW_UNDECORATED = 8,
387    FLAG_WINDOW_HIDDEN = 128,
388    FLAG_WINDOW_MINIMIZED = 512,
389    FLAG_WINDOW_MAXIMIZED = 1024,
390    FLAG_WINDOW_UNFOCUSED = 2048,
391    FLAG_WINDOW_TOPMOST = 4096,
392    FLAG_WINDOW_ALWAYS_RUN = 256,
393    FLAG_WINDOW_TRANSPARENT = 16,
394    FLAG_WINDOW_HIGHDPI = 8192,
395    FLAG_MSAA_4X_HINT = 32,
396    FLAG_INTERLACED_HINT = 65536,
397 }
398 enum TraceLogLevel {
399    LOG_ALL = 0,
400    LOG_TRACE = 1,
401    LOG_DEBUG = 2,
402    LOG_INFO = 3,
403    LOG_WARNING = 4,
404    LOG_ERROR = 5,
405    LOG_FATAL = 6,
406    LOG_NONE = 7,
407 }
408 enum KeyboardKey {
409    KEY_NULL = 0,
410    KEY_APOSTROPHE = 39,
411    KEY_COMMA = 44,
412    KEY_MINUS = 45,
413    KEY_PERIOD = 46,
414    KEY_SLASH = 47,
415    KEY_ZERO = 48,
416    KEY_ONE = 49,
417    KEY_TWO = 50,
418    KEY_THREE = 51,
419    KEY_FOUR = 52,
420    KEY_FIVE = 53,
421    KEY_SIX = 54,
422    KEY_SEVEN = 55,
423    KEY_EIGHT = 56,
424    KEY_NINE = 57,
425    KEY_SEMICOLON = 59,
426    KEY_EQUAL = 61,
427    KEY_A = 65,
428    KEY_B = 66,
429    KEY_C = 67,
430    KEY_D = 68,
431    KEY_E = 69,
432    KEY_F = 70,
433    KEY_G = 71,
434    KEY_H = 72,
435    KEY_I = 73,
436    KEY_J = 74,
437    KEY_K = 75,
438    KEY_L = 76,
439    KEY_M = 77,
440    KEY_N = 78,
441    KEY_O = 79,
442    KEY_P = 80,
443    KEY_Q = 81,
444    KEY_R = 82,
445    KEY_S = 83,
446    KEY_T = 84,
447    KEY_U = 85,
448    KEY_V = 86,
449    KEY_W = 87,
450    KEY_X = 88,
451    KEY_Y = 89,
452    KEY_Z = 90,
453    KEY_LEFT_BRACKET = 91,
454    KEY_BACKSLASH = 92,
455    KEY_RIGHT_BRACKET = 93,
456    KEY_GRAVE = 96,
457    KEY_SPACE = 32,
458    KEY_ESCAPE = 256,
459    KEY_ENTER = 257,
460    KEY_TAB = 258,
461    KEY_BACKSPACE = 259,
462    KEY_INSERT = 260,
463    KEY_DELETE = 261,
464    KEY_RIGHT = 262,
465    KEY_LEFT = 263,
466    KEY_DOWN = 264,
467    KEY_UP = 265,
468    KEY_PAGE_UP = 266,
469    KEY_PAGE_DOWN = 267,
470    KEY_HOME = 268,
471    KEY_END = 269,
472    KEY_CAPS_LOCK = 280,
473    KEY_SCROLL_LOCK = 281,
474    KEY_NUM_LOCK = 282,
475    KEY_PRINT_SCREEN = 283,
476    KEY_PAUSE = 284,
477    KEY_F1 = 290,
478    KEY_F2 = 291,
479    KEY_F3 = 292,
480    KEY_F4 = 293,
481    KEY_F5 = 294,
482    KEY_F6 = 295,
483    KEY_F7 = 296,
484    KEY_F8 = 297,
485    KEY_F9 = 298,
486    KEY_F10 = 299,
487    KEY_F11 = 300,
488    KEY_F12 = 301,
489    KEY_LEFT_SHIFT = 340,
490    KEY_LEFT_CONTROL = 341,
491    KEY_LEFT_ALT = 342,
492    KEY_LEFT_SUPER = 343,
493    KEY_RIGHT_SHIFT = 344,
494    KEY_RIGHT_CONTROL = 345,
495    KEY_RIGHT_ALT = 346,
496    KEY_RIGHT_SUPER = 347,
497    KEY_KB_MENU = 348,
498    KEY_KP_0 = 320,
499    KEY_KP_1 = 321,
500    KEY_KP_2 = 322,
501    KEY_KP_3 = 323,
502    KEY_KP_4 = 324,
503    KEY_KP_5 = 325,
504    KEY_KP_6 = 326,
505    KEY_KP_7 = 327,
506    KEY_KP_8 = 328,
507    KEY_KP_9 = 329,
508    KEY_KP_DECIMAL = 330,
509    KEY_KP_DIVIDE = 331,
510    KEY_KP_MULTIPLY = 332,
511    KEY_KP_SUBTRACT = 333,
512    KEY_KP_ADD = 334,
513    KEY_KP_ENTER = 335,
514    KEY_KP_EQUAL = 336,
515    KEY_BACK = 4,
516    KEY_MENU = 82,
517    KEY_VOLUME_UP = 24,
518    KEY_VOLUME_DOWN = 25,
519 }
520 enum MouseButton {
521    MOUSE_BUTTON_LEFT = 0,
522    MOUSE_BUTTON_RIGHT = 1,
523    MOUSE_BUTTON_MIDDLE = 2,
524    MOUSE_BUTTON_SIDE = 3,
525    MOUSE_BUTTON_EXTRA = 4,
526    MOUSE_BUTTON_FORWARD = 5,
527    MOUSE_BUTTON_BACK = 6,
528 }
529 enum MouseCursor {
530    MOUSE_CURSOR_DEFAULT = 0,
531    MOUSE_CURSOR_ARROW = 1,
532    MOUSE_CURSOR_IBEAM = 2,
533    MOUSE_CURSOR_CROSSHAIR = 3,
534    MOUSE_CURSOR_POINTING_HAND = 4,
535    MOUSE_CURSOR_RESIZE_EW = 5,
536    MOUSE_CURSOR_RESIZE_NS = 6,
537    MOUSE_CURSOR_RESIZE_NWSE = 7,
538    MOUSE_CURSOR_RESIZE_NESW = 8,
539    MOUSE_CURSOR_RESIZE_ALL = 9,
540    MOUSE_CURSOR_NOT_ALLOWED = 10,
541 }
542 enum GamepadButton {
543    GAMEPAD_BUTTON_UNKNOWN = 0,
544    GAMEPAD_BUTTON_LEFT_FACE_UP = 1,
545    GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2,
546    GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3,
547    GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4,
548    GAMEPAD_BUTTON_RIGHT_FACE_UP = 5,
549    GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6,
550    GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7,
551    GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8,
552    GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9,
553    GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10,
554    GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11,
555    GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12,
556    GAMEPAD_BUTTON_MIDDLE_LEFT = 13,
557    GAMEPAD_BUTTON_MIDDLE = 14,
558    GAMEPAD_BUTTON_MIDDLE_RIGHT = 15,
559    GAMEPAD_BUTTON_LEFT_THUMB = 16,
560    GAMEPAD_BUTTON_RIGHT_THUMB = 17,
561 }
562 enum GamepadAxis {
563    GAMEPAD_AXIS_LEFT_X = 0,
564    GAMEPAD_AXIS_LEFT_Y = 1,
565    GAMEPAD_AXIS_RIGHT_X = 2,
566    GAMEPAD_AXIS_RIGHT_Y = 3,
567    GAMEPAD_AXIS_LEFT_TRIGGER = 4,
568    GAMEPAD_AXIS_RIGHT_TRIGGER = 5,
569 }
570 enum MaterialMapIndex {
571    MATERIAL_MAP_ALBEDO = 0,
572    MATERIAL_MAP_METALNESS = 1,
573    MATERIAL_MAP_NORMAL = 2,
574    MATERIAL_MAP_ROUGHNESS = 3,
575    MATERIAL_MAP_OCCLUSION = 4,
576    MATERIAL_MAP_EMISSION = 5,
577    MATERIAL_MAP_HEIGHT = 6,
578    MATERIAL_MAP_CUBEMAP = 7,
579    MATERIAL_MAP_IRRADIANCE = 8,
580    MATERIAL_MAP_PREFILTER = 9,
581    MATERIAL_MAP_BRDF = 10,
582 }
583 enum ShaderLocationIndex {
584    SHADER_LOC_VERTEX_POSITION = 0,
585    SHADER_LOC_VERTEX_TEXCOORD01 = 1,
586    SHADER_LOC_VERTEX_TEXCOORD02 = 2,
587    SHADER_LOC_VERTEX_NORMAL = 3,
588    SHADER_LOC_VERTEX_TANGENT = 4,
589    SHADER_LOC_VERTEX_COLOR = 5,
590    SHADER_LOC_MATRIX_MVP = 6,
591    SHADER_LOC_MATRIX_VIEW = 7,
592    SHADER_LOC_MATRIX_PROJECTION = 8,
593    SHADER_LOC_MATRIX_MODEL = 9,
594    SHADER_LOC_MATRIX_NORMAL = 10,
595    SHADER_LOC_VECTOR_VIEW = 11,
596    SHADER_LOC_COLOR_DIFFUSE = 12,
597    SHADER_LOC_COLOR_SPECULAR = 13,
598    SHADER_LOC_COLOR_AMBIENT = 14,
599    SHADER_LOC_MAP_ALBEDO = 15,
600    SHADER_LOC_MAP_METALNESS = 16,
601    SHADER_LOC_MAP_NORMAL = 17,
602    SHADER_LOC_MAP_ROUGHNESS = 18,
603    SHADER_LOC_MAP_OCCLUSION = 19,
604    SHADER_LOC_MAP_EMISSION = 20,
605    SHADER_LOC_MAP_HEIGHT = 21,
606    SHADER_LOC_MAP_CUBEMAP = 22,
607    SHADER_LOC_MAP_IRRADIANCE = 23,
608    SHADER_LOC_MAP_PREFILTER = 24,
609    SHADER_LOC_MAP_BRDF = 25,
610 }
611 enum ShaderUniformDataType {
612    SHADER_UNIFORM_FLOAT = 0,
613    SHADER_UNIFORM_VEC2 = 1,
614    SHADER_UNIFORM_VEC3 = 2,
615    SHADER_UNIFORM_VEC4 = 3,
616    SHADER_UNIFORM_INT = 4,
617    SHADER_UNIFORM_IVEC2 = 5,
618    SHADER_UNIFORM_IVEC3 = 6,
619    SHADER_UNIFORM_IVEC4 = 7,
620    SHADER_UNIFORM_SAMPLER2D = 8,
621 }
622 enum ShaderAttributeDataType {
623    SHADER_ATTRIB_FLOAT = 0,
624    SHADER_ATTRIB_VEC2 = 1,
625    SHADER_ATTRIB_VEC3 = 2,
626    SHADER_ATTRIB_VEC4 = 3,
627 }
628 enum PixelFormat {
629    PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1,
630    PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2,
631    PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3,
632    PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4,
633    PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5,
634    PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6,
635    PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7,
636    PIXELFORMAT_UNCOMPRESSED_R32 = 8,
637    PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9,
638    PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10,
639    PIXELFORMAT_COMPRESSED_DXT1_RGB = 11,
640    PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12,
641    PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13,
642    PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14,
643    PIXELFORMAT_COMPRESSED_ETC1_RGB = 15,
644    PIXELFORMAT_COMPRESSED_ETC2_RGB = 16,
645    PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17,
646    PIXELFORMAT_COMPRESSED_PVRT_RGB = 18,
647    PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19,
648    PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20,
649    PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21,
650 }
651 enum TextureFilter {
652    TEXTURE_FILTER_POINT = 0,
653    TEXTURE_FILTER_BILINEAR = 1,
654    TEXTURE_FILTER_TRILINEAR = 2,
655    TEXTURE_FILTER_ANISOTROPIC_4X = 3,
656    TEXTURE_FILTER_ANISOTROPIC_8X = 4,
657    TEXTURE_FILTER_ANISOTROPIC_16X = 5,
658 }
659 enum TextureWrap {
660    TEXTURE_WRAP_REPEAT = 0,
661    TEXTURE_WRAP_CLAMP = 1,
662    TEXTURE_WRAP_MIRROR_REPEAT = 2,
663    TEXTURE_WRAP_MIRROR_CLAMP = 3,
664 }
665 enum CubemapLayout {
666    CUBEMAP_LAYOUT_AUTO_DETECT = 0,
667    CUBEMAP_LAYOUT_LINE_VERTICAL = 1,
668    CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2,
669    CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3,
670    CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4,
671    CUBEMAP_LAYOUT_PANORAMA = 5,
672 }
673 enum FontType {
674    FONT_DEFAULT = 0,
675    FONT_BITMAP = 1,
676    FONT_SDF = 2,
677 }
678 enum BlendMode {
679    BLEND_ALPHA = 0,
680    BLEND_ADDITIVE = 1,
681    BLEND_MULTIPLIED = 2,
682    BLEND_ADD_COLORS = 3,
683    BLEND_SUBTRACT_COLORS = 4,
684    BLEND_CUSTOM = 5,
685 }
686 enum Gesture {
687    GESTURE_NONE = 0,
688    GESTURE_TAP = 1,
689    GESTURE_DOUBLETAP = 2,
690    GESTURE_HOLD = 4,
691    GESTURE_DRAG = 8,
692    GESTURE_SWIPE_RIGHT = 16,
693    GESTURE_SWIPE_LEFT = 32,
694    GESTURE_SWIPE_UP = 64,
695    GESTURE_SWIPE_DOWN = 128,
696    GESTURE_PINCH_IN = 256,
697    GESTURE_PINCH_OUT = 512,
698 }
699 enum CameraMode {
700    CAMERA_CUSTOM = 0,
701    CAMERA_FREE = 1,
702    CAMERA_ORBITAL = 2,
703    CAMERA_FIRST_PERSON = 3,
704    CAMERA_THIRD_PERSON = 4,
705 }
706 enum CameraProjection {
707    CAMERA_PERSPECTIVE = 0,
708    CAMERA_ORTHOGRAPHIC = 1,
709 }
710 enum NPatchLayout {
711    NPATCH_NINE_PATCH = 0,
712    NPATCH_THREE_PATCH_VERTICAL = 1,
713    NPATCH_THREE_PATCH_HORIZONTAL = 2,
714 }