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