1 module bindbc.raylib.binddynamic;
2 
3 version (BindBC_Static) {
4 } else version (BindRaylib_Static) {
5 } else {
6    version = BindRaylib_Dynamic;
7 }
8 
9 version (BindRaylib_Dynamic):
10 
11 import bindbc.loader;
12 import bindbc.raylib.types;
13 
14 extern (C) @nogc nothrow {
15    alias pInitWindow = void function(int width, int height, const(char)* title);
16    alias pWindowShouldClose = bool function();
17    alias pCloseWindow = void function();
18    alias pIsWindowReady = bool function();
19    alias pIsWindowFullscreen = bool function();
20    alias pIsWindowHidden = bool function();
21    alias pIsWindowMinimized = bool function();
22    alias pIsWindowMaximized = bool function();
23    alias pIsWindowFocused = bool function();
24    alias pIsWindowResized = bool function();
25    alias pIsWindowState = bool function(uint flag);
26    alias pSetWindowState = void function(uint flags);
27    alias pClearWindowState = void function(uint flags);
28    alias pToggleFullscreen = void function();
29    alias pMaximizeWindow = void function();
30    alias pMinimizeWindow = void function();
31    alias pRestoreWindow = void function();
32    alias pSetWindowIcon = void function(Image image);
33    alias pSetWindowTitle = void function(const(char)* title);
34    alias pSetWindowPosition = void function(int x, int y);
35    alias pSetWindowMonitor = void function(int monitor);
36    alias pSetWindowMinSize = void function(int width, int height);
37    alias pSetWindowSize = void function(int width, int height);
38    alias pGetWindowHandle = void* function();
39    alias pGetScreenWidth = int function();
40    alias pGetScreenHeight = int function();
41    alias pGetMonitorCount = int function();
42    alias pGetCurrentMonitor = int function();
43    alias pGetMonitorPosition = Vector2 function(int monitor);
44    alias pGetMonitorWidth = int function(int monitor);
45    alias pGetMonitorHeight = int function(int monitor);
46    alias pGetMonitorPhysicalWidth = int function(int monitor);
47    alias pGetMonitorPhysicalHeight = int function(int monitor);
48    alias pGetMonitorRefreshRate = int function(int monitor);
49    alias pGetWindowPosition = Vector2 function();
50    alias pGetWindowScaleDPI = Vector2 function();
51    alias pGetMonitorName = const(char)* function(int monitor);
52    alias pSetClipboardText = void function(const(char)* text);
53    alias pGetClipboardText = const(char)* function();
54    alias pSwapScreenBuffer = void function();
55    alias pPollInputEvents = void function();
56    alias pWaitTime = void function(float ms);
57    alias pShowCursor = void function();
58    alias pHideCursor = void function();
59    alias pIsCursorHidden = bool function();
60    alias pEnableCursor = void function();
61    alias pDisableCursor = void function();
62    alias pIsCursorOnScreen = bool function();
63    alias pClearBackground = void function(Color color);
64    alias pBeginDrawing = void function();
65    alias pEndDrawing = void function();
66    alias pBeginMode2D = void function(Camera2D camera);
67    alias pEndMode2D = void function();
68    alias pBeginMode3D = void function(Camera3D camera);
69    alias pEndMode3D = void function();
70    alias pBeginTextureMode = void function(RenderTexture2D target);
71    alias pEndTextureMode = void function();
72    alias pBeginShaderMode = void function(Shader shader);
73    alias pEndShaderMode = void function();
74    alias pBeginBlendMode = void function(int mode);
75    alias pEndBlendMode = void function();
76    alias pBeginScissorMode = void function(int x, int y, int width, int height);
77    alias pEndScissorMode = void function();
78    alias pBeginVrStereoMode = void function(VrStereoConfig config);
79    alias pEndVrStereoMode = void function();
80    alias pLoadVrStereoConfig = VrStereoConfig function(VrDeviceInfo device);
81    alias pUnloadVrStereoConfig = void function(VrStereoConfig config);
82    alias pLoadShader = Shader function(const(char)* vsFileName, const(char)* fsFileName);
83    alias pLoadShaderFromMemory = Shader function(const(char)* vsCode, const(char)* fsCode);
84    alias pGetShaderLocation = int function(Shader shader, const(char)* uniformName);
85    alias pGetShaderLocationAttrib = int function(Shader shader, const(char)* attribName);
86    alias pSetShaderValue = void function(Shader shader, int locIndex, const void* value, int uniformType);
87    alias pSetShaderValueV = void function(Shader shader, int locIndex, const void* value, int uniformType, int count);
88    alias pSetShaderValueMatrix = void function(Shader shader, int locIndex, Matrix mat);
89    alias pSetShaderValueTexture = void function(Shader shader, int locIndex, Texture2D texture);
90    alias pUnloadShader = void function(Shader shader);
91    alias pGetMouseRay = Ray function(Vector2 mousePosition, Camera camera);
92    alias pGetCameraMatrix = Matrix function(Camera camera);
93    alias pGetCameraMatrix2D = Matrix function(Camera2D camera);
94    alias pGetWorldToScreen = Vector2 function(Vector3 position, Camera camera);
95    alias pGetWorldToScreenEx = Vector2 function(Vector3 position, Camera camera, int width, int height);
96    alias pGetWorldToScreen2D = Vector2 function(Vector2 position, Camera2D camera);
97    alias pGetScreenToWorld2D = Vector2 function(Vector2 position, Camera2D camera);
98    alias pSetTargetFPS = void function(int fps);
99    alias pGetFPS = int function();
100    alias pGetFrameTime = float function();
101    alias pGetTime = double function();
102    alias pGetRandomValue = int function(int min, int max);
103    alias pSetRandomSeed = void function(uint seed);
104    alias pTakeScreenshot = void function(const(char)* fileName);
105    alias pSetConfigFlags = void function(uint flags);
106    alias pSetTraceLogLevel = void function(int logLevel);
107    alias pMemAlloc = void* function(int size);
108    alias pMemRealloc = void* function(void* ptr, int size);
109    alias pMemFree = void function(void* ptr);
110    alias pLoadFileData = ubyte* function(const(char)* fileName, uint* bytesRead);
111    alias pUnloadFileData = void function(ubyte* data);
112    alias pSaveFileData = bool function(const(char)* fileName, void* data, uint bytesToWrite);
113    alias pLoadFileText = char* function(const(char)* fileName);
114    alias pUnloadFileText = void function(char* text);
115    alias pSaveFileText = bool function(const(char)* fileName, char* text);
116    alias pFileExists = bool function(const(char)* fileName);
117    alias pDirectoryExists = bool function(const(char)* dirPath);
118    alias pIsFileExtension = bool function(const(char)* fileName, const(char)* ext);
119    alias pGetFileExtension = const(char)* function(const(char)* fileName);
120    alias pGetFileName = const(char)* function(const(char)* filePath);
121    alias pGetFileNameWithoutExt = const(char)* function(const(char)* filePath);
122    alias pGetDirectoryPath = const(char)* function(const(char)* filePath);
123    alias pGetPrevDirectoryPath = const(char)* function(const(char)* dirPath);
124    alias pGetWorkingDirectory = const(char)* function();
125    alias pGetDirectoryFiles = char** function(const(char)* dirPath, int* count);
126    alias pClearDirectoryFiles = void function();
127    alias pChangeDirectory = bool function(const(char)* dir);
128    alias pIsFileDropped = bool function();
129    alias pGetDroppedFiles = char** function(int* count);
130    alias pClearDroppedFiles = void function();
131    alias pGetFileModTime = long function(const(char)* fileName);
132    alias pCompressData = ubyte* function(ubyte* data, int dataLength, int* compDataLength);
133    alias pDecompressData = ubyte* function(ubyte* compData, int compDataLength, int* dataLength);
134    alias pEncodeDataBase64 = char* function(const(ubyte)* data, int dataLength, int* outputLength);
135    alias pDecodeDataBase64 = ubyte* function(ubyte* data, int* outputLength);
136    alias pSaveStorageValue = bool function(uint position, int value);
137    alias pLoadStorageValue = int function(uint position);
138    alias pOpenURL = void function(const(char)* url);
139    alias pIsKeyPressed = bool function(int key);
140    alias pIsKeyDown = bool function(int key);
141    alias pIsKeyReleased = bool function(int key);
142    alias pIsKeyUp = bool function(int key);
143    alias pSetExitKey = void function(int key);
144    alias pGetKeyPressed = int function();
145    alias pGetCharPressed = int function();
146    alias pIsGamepadAvailable = bool function(int gamepad);
147    alias pGetGamepadName = const(char)* function(int gamepad);
148    alias pIsGamepadButtonPressed = bool function(int gamepad, int button);
149    alias pIsGamepadButtonDown = bool function(int gamepad, int button);
150    alias pIsGamepadButtonReleased = bool function(int gamepad, int button);
151    alias pIsGamepadButtonUp = bool function(int gamepad, int button);
152    alias pGetGamepadButtonPressed = int function();
153    alias pGetGamepadAxisCount = int function(int gamepad);
154    alias pGetGamepadAxisMovement = float function(int gamepad, int axis);
155    alias pSetGamepadMappings = int function(const(char)* mappings);
156    alias pIsMouseButtonPressed = bool function(int button);
157    alias pIsMouseButtonDown = bool function(int button);
158    alias pIsMouseButtonReleased = bool function(int button);
159    alias pIsMouseButtonUp = bool function(int button);
160    alias pGetMouseX = int function();
161    alias pGetMouseY = int function();
162    alias pGetMousePosition = Vector2 function();
163    alias pGetMouseDelta = Vector2 function();
164    alias pSetMousePosition = void function(int x, int y);
165    alias pSetMouseOffset = void function(int offsetX, int offsetY);
166    alias pSetMouseScale = void function(float scaleX, float scaleY);
167    alias pGetMouseWheelMove = float function();
168    alias pSetMouseCursor = void function(int cursor);
169    alias pGetTouchX = int function();
170    alias pGetTouchY = int function();
171    alias pGetTouchPosition = Vector2 function(int index);
172    alias pGetTouchPointId = int function(int index);
173    alias pGetTouchPointCount = int function();
174    alias pSetGesturesEnabled = void function(uint flags);
175    alias pIsGestureDetected = bool function(int gesture);
176    alias pGetGestureDetected = int function();
177    alias pGetGestureHoldDuration = float function();
178    alias pGetGestureDragVector = Vector2 function();
179    alias pGetGestureDragAngle = float function();
180    alias pGetGesturePinchVector = Vector2 function();
181    alias pGetGesturePinchAngle = float function();
182    alias pSetCameraMode = void function(Camera camera, int mode);
183    alias pUpdateCamera = void function(Camera* camera);
184    alias pSetCameraPanControl = void function(int keyPan);
185    alias pSetCameraAltControl = void function(int keyAlt);
186    alias pSetCameraSmoothZoomControl = void function(int keySmoothZoom);
187    alias pSetCameraMoveControls = void function(int keyFront, int keyBack, int keyRight, int keyLeft, int keyUp, int keyDown);
188    alias pSetShapesTexture = void function(Texture2D texture, Rectangle source);
189    alias pDrawPixel = void function(int posX, int posY, Color color);
190    alias pDrawPixelV = void function(Vector2 position, Color color);
191    alias pDrawLine = void function(int startPosX, int startPosY, int endPosX, int endPosY, Color color);
192    alias pDrawLineV = void function(Vector2 startPos, Vector2 endPos, Color color);
193    alias pDrawLineEx = void function(Vector2 startPos, Vector2 endPos, float thick, Color color);
194    alias pDrawLineBezier = void function(Vector2 startPos, Vector2 endPos, float thick, Color color);
195    alias pDrawLineBezierQuad = void function(Vector2 startPos, Vector2 endPos, Vector2 controlPos, float thick, Color color);
196    alias pDrawLineBezierCubic = void function(Vector2 startPos, Vector2 endPos, Vector2 startControlPos, Vector2 endControlPos, float thick, Color color);
197    alias pDrawLineStrip = void function(Vector2* points, int pointCount, Color color);
198    alias pDrawCircle = void function(int centerX, int centerY, float radius, Color color);
199    alias pDrawCircleSector = void function(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color);
200    alias pDrawCircleSectorLines = void function(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color);
201    alias pDrawCircleGradient = void function(int centerX, int centerY, float radius, Color color1, Color color2);
202    alias pDrawCircleV = void function(Vector2 center, float radius, Color color);
203    alias pDrawCircleLines = void function(int centerX, int centerY, float radius, Color color);
204    alias pDrawEllipse = void function(int centerX, int centerY, float radiusH, float radiusV, Color color);
205    alias pDrawEllipseLines = void function(int centerX, int centerY, float radiusH, float radiusV, Color color);
206    alias pDrawRing = void function(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color);
207    alias pDrawRingLines = void function(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color);
208    alias pDrawRectangle = void function(int posX, int posY, int width, int height, Color color);
209    alias pDrawRectangleV = void function(Vector2 position, Vector2 size, Color color);
210    alias pDrawRectangleRec = void function(Rectangle rec, Color color);
211    alias pDrawRectanglePro = void function(Rectangle rec, Vector2 origin, float rotation, Color color);
212    alias pDrawRectangleGradientV = void function(int posX, int posY, int width, int height, Color color1, Color color2);
213    alias pDrawRectangleGradientH = void function(int posX, int posY, int width, int height, Color color1, Color color2);
214    alias pDrawRectangleGradientEx = void function(Rectangle rec, Color col1, Color col2, Color col3, Color col4);
215    alias pDrawRectangleLines = void function(int posX, int posY, int width, int height, Color color);
216    alias pDrawRectangleLinesEx = void function(Rectangle rec, float lineThick, Color color);
217    alias pDrawRectangleRounded = void function(Rectangle rec, float roundness, int segments, Color color);
218    alias pDrawRectangleRoundedLines = void function(Rectangle rec, float roundness, int segments, float lineThick, Color color);
219    alias pDrawTriangle = void function(Vector2 v1, Vector2 v2, Vector2 v3, Color color);
220    alias pDrawTriangleLines = void function(Vector2 v1, Vector2 v2, Vector2 v3, Color color);
221    alias pDrawTriangleFan = void function(Vector2* points, int pointCount, Color color);
222    alias pDrawTriangleStrip = void function(Vector2* points, int pointCount, Color color);
223    alias pDrawPoly = void function(Vector2 center, int sides, float radius, float rotation, Color color);
224    alias pDrawPolyLines = void function(Vector2 center, int sides, float radius, float rotation, Color color);
225    alias pDrawPolyLinesEx = void function(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color);
226    alias pCheckCollisionRecs = bool function(Rectangle rec1, Rectangle rec2);
227    alias pCheckCollisionCircles = bool function(Vector2 center1, float radius1, Vector2 center2, float radius2);
228    alias pCheckCollisionCircleRec = bool function(Vector2 center, float radius, Rectangle rec);
229    alias pCheckCollisionPointRec = bool function(Vector2 point, Rectangle rec);
230    alias pCheckCollisionPointCircle = bool function(Vector2 point, Vector2 center, float radius);
231    alias pCheckCollisionPointTriangle = bool function(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3);
232    alias pCheckCollisionLines = bool function(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2* collisionPoint);
233    alias pCheckCollisionPointLine = bool function(Vector2 point, Vector2 p1, Vector2 p2, int threshold);
234    alias pGetCollisionRec = Rectangle function(Rectangle rec1, Rectangle rec2);
235    alias pLoadImage = Image function(const(char)* fileName);
236    alias pLoadImageRaw = Image function(const(char)* fileName, int width, int height, int format, int headerSize);
237    alias pLoadImageAnim = Image function(const(char)* fileName, int* frames);
238    alias pLoadImageFromMemory = Image function(const(char)* fileType, const(ubyte)* fileData, int dataSize);
239    alias pLoadImageFromTexture = Image function(Texture2D texture);
240    alias pLoadImageFromScreen = Image function();
241    alias pUnloadImage = void function(Image image);
242    alias pExportImage = bool function(Image image, const(char)* fileName);
243    alias pExportImageAsCode = bool function(Image image, const(char)* fileName);
244    alias pGenImageColor = Image function(int width, int height, Color color);
245    alias pGenImageGradientV = Image function(int width, int height, Color top, Color bottom);
246    alias pGenImageGradientH = Image function(int width, int height, Color left, Color right);
247    alias pGenImageGradientRadial = Image function(int width, int height, float density, Color inner, Color outer);
248    alias pGenImageChecked = Image function(int width, int height, int checksX, int checksY, Color col1, Color col2);
249    alias pGenImageWhiteNoise = Image function(int width, int height, float factor);
250    alias pGenImageCellular = Image function(int width, int height, int tileSize);
251    alias pImageCopy = Image function(Image image);
252    alias pImageFromImage = Image function(Image image, Rectangle rec);
253    alias pImageText = Image function(const(char)* text, int fontSize, Color color);
254    alias pImageTextEx = Image function(Font font, const(char)* text, float fontSize, float spacing, Color tint);
255    alias pImageFormat = void function(Image* image, int newFormat);
256    alias pImageToPOT = void function(Image* image, Color fill);
257    alias pImageCrop = void function(Image* image, Rectangle crop);
258    alias pImageAlphaCrop = void function(Image* image, float threshold);
259    alias pImageAlphaClear = void function(Image* image, Color color, float threshold);
260    alias pImageAlphaMask = void function(Image* image, Image alphaMask);
261    alias pImageAlphaPremultiply = void function(Image* image);
262    alias pImageResize = void function(Image* image, int newWidth, int newHeight);
263    alias pImageResizeNN = void function(Image* image, int newWidth, int newHeight);
264    alias pImageResizeCanvas = void function(Image* image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill);
265    alias pImageMipmaps = void function(Image* image);
266    alias pImageDither = void function(Image* image, int rBpp, int gBpp, int bBpp, int aBpp);
267    alias pImageFlipVertical = void function(Image* image);
268    alias pImageFlipHorizontal = void function(Image* image);
269    alias pImageRotateCW = void function(Image* image);
270    alias pImageRotateCCW = void function(Image* image);
271    alias pImageColorTint = void function(Image* image, Color color);
272    alias pImageColorInvert = void function(Image* image);
273    alias pImageColorGrayscale = void function(Image* image);
274    alias pImageColorContrast = void function(Image* image, float contrast);
275    alias pImageColorBrightness = void function(Image* image, int brightness);
276    alias pImageColorReplace = void function(Image* image, Color color, Color replace);
277    alias pLoadImageColors = Color* function(Image image);
278    alias pLoadImagePalette = Color* function(Image image, int maxPaletteSize, int* colorCount);
279    alias pUnloadImageColors = void function(Color* colors);
280    alias pUnloadImagePalette = void function(Color* colors);
281    alias pGetImageAlphaBorder = Rectangle function(Image image, float threshold);
282    alias pGetImageColor = Color function(Image image, int x, int y);
283    alias pImageClearBackground = void function(Image* dst, Color color);
284    alias pImageDrawPixel = void function(Image* dst, int posX, int posY, Color color);
285    alias pImageDrawPixelV = void function(Image* dst, Vector2 position, Color color);
286    alias pImageDrawLine = void function(Image* dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color);
287    alias pImageDrawLineV = void function(Image* dst, Vector2 start, Vector2 end, Color color);
288    alias pImageDrawCircle = void function(Image* dst, int centerX, int centerY, int radius, Color color);
289    alias pImageDrawCircleV = void function(Image* dst, Vector2 center, int radius, Color color);
290    alias pImageDrawRectangle = void function(Image* dst, int posX, int posY, int width, int height, Color color);
291    alias pImageDrawRectangleV = void function(Image* dst, Vector2 position, Vector2 size, Color color);
292    alias pImageDrawRectangleRec = void function(Image* dst, Rectangle rec, Color color);
293    alias pImageDrawRectangleLines = void function(Image* dst, Rectangle rec, int thick, Color color);
294    alias pImageDraw = void function(Image* dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint);
295    alias pImageDrawText = void function(Image* dst, const(char)* text, int posX, int posY, int fontSize, Color color);
296    alias pImageDrawTextEx = void function(Image* dst, Font font, const(char)* text, Vector2 position, float fontSize, float spacing, Color tint);
297    alias pLoadTexture = Texture2D function(const(char)* fileName);
298    alias pLoadTextureFromImage = Texture2D function(Image image);
299    alias pLoadTextureCubemap = TextureCubemap function(Image image, int layout);
300    alias pLoadRenderTexture = RenderTexture2D function(int width, int height);
301    alias pUnloadTexture = void function(Texture2D texture);
302    alias pUnloadRenderTexture = void function(RenderTexture2D target);
303    alias pUpdateTexture = void function(Texture2D texture, const void* pixels);
304    alias pUpdateTextureRec = void function(Texture2D texture, Rectangle rec, const void* pixels);
305    alias pGenTextureMipmaps = void function(Texture2D* texture);
306    alias pSetTextureFilter = void function(Texture2D texture, int filter);
307    alias pSetTextureWrap = void function(Texture2D texture, int wrap);
308    alias pDrawTexture = void function(Texture2D texture, int posX, int posY, Color tint);
309    alias pDrawTextureV = void function(Texture2D texture, Vector2 position, Color tint);
310    alias pDrawTextureEx = void function(Texture2D texture, Vector2 position, float rotation, float scale, Color tint);
311    alias pDrawTextureRec = void function(Texture2D texture, Rectangle source, Vector2 position, Color tint);
312    alias pDrawTextureQuad = void function(Texture2D texture, Vector2 tiling, Vector2 offset, Rectangle quad, Color tint);
313    alias pDrawTextureTiled = void function(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, float scale, Color tint);
314    alias pDrawTexturePro = void function(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint);
315    alias pDrawTextureNPatch = void function(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint);
316    alias pDrawTexturePoly = void function(Texture2D texture, Vector2 center, Vector2* points, Vector2* texcoords, int pointCount, Color tint);
317    alias pFade = Color function(Color color, float alpha);
318    alias pColorToInt = int function(Color color);
319    alias pColorNormalize = Vector4 function(Color color);
320    alias pColorFromNormalized = Color function(Vector4 normalized);
321    alias pColorToHSV = Vector3 function(Color color);
322    alias pColorFromHSV = Color function(float hue, float saturation, float value);
323    alias pColorAlpha = Color function(Color color, float alpha);
324    alias pColorAlphaBlend = Color function(Color dst, Color src, Color tint);
325    alias pGetColor = Color function(uint hexValue);
326    alias pGetPixelColor = Color function(void* srcPtr, int format);
327    alias pSetPixelColor = void function(void* dstPtr, Color color, int format);
328    alias pGetPixelDataSize = int function(int width, int height, int format);
329    alias pGetFontDefault = Font function();
330    alias pLoadFont = Font function(const(char)* fileName);
331    alias pLoadFontEx = Font function(const(char)* fileName, int fontSize, int* fontChars, int glyphCount);
332    alias pLoadFontFromImage = Font function(Image image, Color key, int firstChar);
333    alias pLoadFontFromMemory = Font function(const(char)* fileType, const(ubyte)* fileData, int dataSize, int fontSize, int* fontChars, int glyphCount);
334    alias pLoadFontData = GlyphInfo* function(const(ubyte)* fileData, int dataSize, int fontSize, int* fontChars, int glyphCount, int type);
335    alias pGenImageFontAtlas = Image function(const GlyphInfo* chars, Rectangle** recs, int glyphCount, int fontSize, int padding, int packMethod);
336    alias pUnloadFontData = void function(GlyphInfo* chars, int glyphCount);
337    alias pUnloadFont = void function(Font font);
338    alias pDrawFPS = void function(int posX, int posY);
339    alias pDrawText = void function(const(char)* text, int posX, int posY, int fontSize, Color color);
340    alias pDrawTextEx = void function(Font font, const(char)* text, Vector2 position, float fontSize, float spacing, Color tint);
341    alias pDrawTextPro = void function(Font font, const(char)* text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint);
342    alias pDrawTextCodepoint = void function(Font font, int codepoint, Vector2 position, float fontSize, Color tint);
343    alias pMeasureText = int function(const(char)* text, int fontSize);
344    alias pMeasureTextEx = Vector2 function(Font font, const(char)* text, float fontSize, float spacing);
345    alias pGetGlyphIndex = int function(Font font, int codepoint);
346    alias pGetGlyphInfo = GlyphInfo function(Font font, int codepoint);
347    alias pGetGlyphAtlasRec = Rectangle function(Font font, int codepoint);
348    alias pLoadCodepoints = int* function(const(char)* text, int* count);
349    alias pUnloadCodepoints = void function(int* codepoints);
350    alias pGetCodepointCount = int function(const(char)* text);
351    alias pGetCodepoint = int function(const(char)* text, int* bytesProcessed);
352    alias pCodepointToUTF8 = const(char)* function(int codepoint, int* byteSize);
353    alias pTextCodepointsToUTF8 = char* function(int* codepoints, int length);
354    alias pTextCopy = int function(char* dst, const(char)* src);
355    alias pTextIsEqual = bool function(const(char)* text1, const(char)* text2);
356    alias pTextLength = uint function(const(char)* text);
357    alias pTextSubtext = const(char)* function(const(char)* text, int position, int length);
358    alias pTextReplace = char* function(char* text, const(char)* replace, const(char)* by);
359    alias pTextInsert = char* function(const(char)* text, const(char)* insert, int position);
360    alias pTextJoin = const(char)* function(const char** textList, int count, const(char)* delimiter);
361    alias pTextSplit = const char** function(const(char)* text, char delimiter, int* count);
362    alias pTextAppend = void function(char* text, const(char)* append, int* position);
363    alias pTextFindIndex = int function(const(char)* text, const(char)* find);
364    alias pTextToUpper = const(char)* function(const(char)* text);
365    alias pTextToLower = const(char)* function(const(char)* text);
366    alias pTextToPascal = const(char)* function(const(char)* text);
367    alias pTextToInteger = int function(const(char)* text);
368    alias pDrawLine3D = void function(Vector3 startPos, Vector3 endPos, Color color);
369    alias pDrawPoint3D = void function(Vector3 position, Color color);
370    alias pDrawCircle3D = void function(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color);
371    alias pDrawTriangle3D = void function(Vector3 v1, Vector3 v2, Vector3 v3, Color color);
372    alias pDrawTriangleStrip3D = void function(Vector3* points, int pointCount, Color color);
373    alias pDrawCube = void function(Vector3 position, float width, float height, float length, Color color);
374    alias pDrawCubeV = void function(Vector3 position, Vector3 size, Color color);
375    alias pDrawCubeWires = void function(Vector3 position, float width, float height, float length, Color color);
376    alias pDrawCubeWiresV = void function(Vector3 position, Vector3 size, Color color);
377    alias pDrawCubeTexture = void function(Texture2D texture, Vector3 position, float width, float height, float length, Color color);
378    alias pDrawCubeTextureRec = void function(Texture2D texture, Rectangle source, Vector3 position, float width, float height, float length, Color color);
379    alias pDrawSphere = void function(Vector3 centerPos, float radius, Color color);
380    alias pDrawSphereEx = void function(Vector3 centerPos, float radius, int rings, int slices, Color color);
381    alias pDrawSphereWires = void function(Vector3 centerPos, float radius, int rings, int slices, Color color);
382    alias pDrawCylinder = void function(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color);
383    alias pDrawCylinderEx = void function(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color);
384    alias pDrawCylinderWires = void function(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color);
385    alias pDrawCylinderWiresEx = void function(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color);
386    alias pDrawPlane = void function(Vector3 centerPos, Vector2 size, Color color);
387    alias pDrawRay = void function(Ray ray, Color color);
388    alias pDrawGrid = void function(int slices, float spacing);
389    alias pLoadModel = Model function(const(char)* fileName);
390    alias pLoadModelFromMesh = Model function(Mesh mesh);
391    alias pUnloadModel = void function(Model model);
392    alias pUnloadModelKeepMeshes = void function(Model model);
393    alias pGetModelBoundingBox = BoundingBox function(Model model);
394    alias pDrawModel = void function(Model model, Vector3 position, float scale, Color tint);
395    alias pDrawModelEx = void function(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint);
396    alias pDrawModelWires = void function(Model model, Vector3 position, float scale, Color tint);
397    alias pDrawModelWiresEx = void function(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint);
398    alias pDrawBoundingBox = void function(BoundingBox box, Color color);
399    alias pDrawBillboard = void function(Camera camera, Texture2D texture, Vector3 position, float size, Color tint);
400    alias pDrawBillboardRec = void function(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint);
401    alias pDrawBillboardPro = void function(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint);
402    alias pUploadMesh = void function(Mesh* mesh, bool dynamic);
403    alias pUpdateMeshBuffer = void function(Mesh mesh, int index, void* data, int dataSize, int offset);
404    alias pUnloadMesh = void function(Mesh mesh);
405    alias pDrawMesh = void function(Mesh mesh, Material material, Matrix transform);
406    alias pDrawMeshInstanced = void function(Mesh mesh, Material material, Matrix* transforms, int instances);
407    alias pExportMesh = bool function(Mesh mesh, const(char)* fileName);
408    alias pGetMeshBoundingBox = BoundingBox function(Mesh mesh);
409    alias pGenMeshTangents = void function(Mesh* mesh);
410    alias pGenMeshBinormals = void function(Mesh* mesh);
411    alias pGenMeshPoly = Mesh function(int sides, float radius);
412    alias pGenMeshPlane = Mesh function(float width, float length, int resX, int resZ);
413    alias pGenMeshCube = Mesh function(float width, float height, float length);
414    alias pGenMeshSphere = Mesh function(float radius, int rings, int slices);
415    alias pGenMeshHemiSphere = Mesh function(float radius, int rings, int slices);
416    alias pGenMeshCylinder = Mesh function(float radius, float height, int slices);
417    alias pGenMeshCone = Mesh function(float radius, float height, int slices);
418    alias pGenMeshTorus = Mesh function(float radius, float size, int radSeg, int sides);
419    alias pGenMeshKnot = Mesh function(float radius, float size, int radSeg, int sides);
420    alias pGenMeshHeightmap = Mesh function(Image heightmap, Vector3 size);
421    alias pGenMeshCubicmap = Mesh function(Image cubicmap, Vector3 cubeSize);
422    alias pLoadMaterials = Material* function(const(char)* fileName, int* materialCount);
423    alias pLoadMaterialDefault = Material function();
424    alias pUnloadMaterial = void function(Material material);
425    alias pSetMaterialTexture = void function(Material* material, int mapType, Texture2D texture);
426    alias pSetModelMeshMaterial = void function(Model* model, int meshId, int materialId);
427    alias pLoadModelAnimations = ModelAnimation* function(const(char)* fileName, uint* animCount);
428    alias pUpdateModelAnimation = void function(Model model, ModelAnimation anim, int frame);
429    alias pUnloadModelAnimation = void function(ModelAnimation anim);
430    alias pUnloadModelAnimations = void function(ModelAnimation* animations, uint count);
431    alias pIsModelAnimationValid = bool function(Model model, ModelAnimation anim);
432    alias pCheckCollisionSpheres = bool function(Vector3 center1, float radius1, Vector3 center2, float radius2);
433    alias pCheckCollisionBoxes = bool function(BoundingBox box1, BoundingBox box2);
434    alias pCheckCollisionBoxSphere = bool function(BoundingBox box, Vector3 center, float radius);
435    alias pGetRayCollisionSphere = RayCollision function(Ray ray, Vector3 center, float radius);
436    alias pGetRayCollisionBox = RayCollision function(Ray ray, BoundingBox box);
437    alias pGetRayCollisionModel = RayCollision function(Ray ray, Model model);
438    alias pGetRayCollisionMesh = RayCollision function(Ray ray, Mesh mesh, Matrix transform);
439    alias pGetRayCollisionTriangle = RayCollision function(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3);
440    alias pGetRayCollisionQuad = RayCollision function(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4);
441    alias pInitAudioDevice = void function();
442    alias pCloseAudioDevice = void function();
443    alias pIsAudioDeviceReady = bool function();
444    alias pSetMasterVolume = void function(float volume);
445    alias pLoadWave = Wave function(const(char)* fileName);
446    alias pLoadWaveFromMemory = Wave function(const(char)* fileType, const(ubyte)* fileData, int dataSize);
447    alias pLoadSound = Sound function(const(char)* fileName);
448    alias pLoadSoundFromWave = Sound function(Wave wave);
449    alias pUpdateSound = void function(Sound sound, const void* data, int sampleCount);
450    alias pUnloadWave = void function(Wave wave);
451    alias pUnloadSound = void function(Sound sound);
452    alias pExportWave = bool function(Wave wave, const(char)* fileName);
453    alias pExportWaveAsCode = bool function(Wave wave, const(char)* fileName);
454    alias pPlaySound = void function(Sound sound);
455    alias pStopSound = void function(Sound sound);
456    alias pPauseSound = void function(Sound sound);
457    alias pResumeSound = void function(Sound sound);
458    alias pPlaySoundMulti = void function(Sound sound);
459    alias pStopSoundMulti = void function();
460    alias pGetSoundsPlaying = int function();
461    alias pIsSoundPlaying = bool function(Sound sound);
462    alias pSetSoundVolume = void function(Sound sound, float volume);
463    alias pSetSoundPitch = void function(Sound sound, float pitch);
464    alias pWaveFormat = void function(Wave* wave, int sampleRate, int sampleSize, int channels);
465    alias pWaveCopy = Wave function(Wave wave);
466    alias pWaveCrop = void function(Wave* wave, int initSample, int finalSample);
467    alias pLoadWaveSamples = float* function(Wave wave);
468    alias pUnloadWaveSamples = void function(float* samples);
469    alias pLoadMusicStream = Music function(const(char)* fileName);
470    alias pLoadMusicStreamFromMemory = Music function(const(char)* fileType, ubyte* data, int dataSize);
471    alias pUnloadMusicStream = void function(Music music);
472    alias pPlayMusicStream = void function(Music music);
473    alias pIsMusicStreamPlaying = bool function(Music music);
474    alias pUpdateMusicStream = void function(Music music);
475    alias pStopMusicStream = void function(Music music);
476    alias pPauseMusicStream = void function(Music music);
477    alias pResumeMusicStream = void function(Music music);
478    alias pSeekMusicStream = void function(Music music, float position);
479    alias pSetMusicVolume = void function(Music music, float volume);
480    alias pSetMusicPitch = void function(Music music, float pitch);
481    alias pGetMusicTimeLength = float function(Music music);
482    alias pGetMusicTimePlayed = float function(Music music);
483    alias pLoadAudioStream = AudioStream function(uint sampleRate, uint sampleSize, uint channels);
484    alias pUnloadAudioStream = void function(AudioStream stream);
485    alias pUpdateAudioStream = void function(AudioStream stream, const void* data, int frameCount);
486    alias pIsAudioStreamProcessed = bool function(AudioStream stream);
487    alias pPlayAudioStream = void function(AudioStream stream);
488    alias pPauseAudioStream = void function(AudioStream stream);
489    alias pResumeAudioStream = void function(AudioStream stream);
490    alias pIsAudioStreamPlaying = bool function(AudioStream stream);
491    alias pStopAudioStream = void function(AudioStream stream);
492    alias pSetAudioStreamVolume = void function(AudioStream stream, float volume);
493    alias pSetAudioStreamPitch = void function(AudioStream stream, float pitch);
494    alias pSetAudioStreamBufferSizeDefault = void function(int size);
495 }
496 
497 __gshared {
498    pInitWindow InitWindow;
499    pWindowShouldClose WindowShouldClose;
500    pCloseWindow CloseWindow;
501    pIsWindowReady IsWindowReady;
502    pIsWindowFullscreen IsWindowFullscreen;
503    pIsWindowHidden IsWindowHidden;
504    pIsWindowMinimized IsWindowMinimized;
505    pIsWindowMaximized IsWindowMaximized;
506    pIsWindowFocused IsWindowFocused;
507    pIsWindowResized IsWindowResized;
508    pIsWindowState IsWindowState;
509    pSetWindowState SetWindowState;
510    pClearWindowState ClearWindowState;
511    pToggleFullscreen ToggleFullscreen;
512    pMaximizeWindow MaximizeWindow;
513    pMinimizeWindow MinimizeWindow;
514    pRestoreWindow RestoreWindow;
515    pSetWindowIcon SetWindowIcon;
516    pSetWindowTitle SetWindowTitle;
517    pSetWindowPosition SetWindowPosition;
518    pSetWindowMonitor SetWindowMonitor;
519    pSetWindowMinSize SetWindowMinSize;
520    pSetWindowSize SetWindowSize;
521    pGetWindowHandle GetWindowHandle;
522    pGetScreenWidth GetScreenWidth;
523    pGetScreenHeight GetScreenHeight;
524    pGetMonitorCount GetMonitorCount;
525    pGetCurrentMonitor GetCurrentMonitor;
526    pGetMonitorPosition GetMonitorPosition;
527    pGetMonitorWidth GetMonitorWidth;
528    pGetMonitorHeight GetMonitorHeight;
529    pGetMonitorPhysicalWidth GetMonitorPhysicalWidth;
530    pGetMonitorPhysicalHeight GetMonitorPhysicalHeight;
531    pGetMonitorRefreshRate GetMonitorRefreshRate;
532    pGetWindowPosition GetWindowPosition;
533    pGetWindowScaleDPI GetWindowScaleDPI;
534    pGetMonitorName GetMonitorName;
535    pSetClipboardText SetClipboardText;
536    pGetClipboardText GetClipboardText;
537    pSwapScreenBuffer SwapScreenBuffer;
538    pPollInputEvents PollInputEvents;
539    pWaitTime WaitTime;
540    pShowCursor ShowCursor;
541    pHideCursor HideCursor;
542    pIsCursorHidden IsCursorHidden;
543    pEnableCursor EnableCursor;
544    pDisableCursor DisableCursor;
545    pIsCursorOnScreen IsCursorOnScreen;
546    pClearBackground ClearBackground;
547    pBeginDrawing BeginDrawing;
548    pEndDrawing EndDrawing;
549    pBeginMode2D BeginMode2D;
550    pEndMode2D EndMode2D;
551    pBeginMode3D BeginMode3D;
552    pEndMode3D EndMode3D;
553    pBeginTextureMode BeginTextureMode;
554    pEndTextureMode EndTextureMode;
555    pBeginShaderMode BeginShaderMode;
556    pEndShaderMode EndShaderMode;
557    pBeginBlendMode BeginBlendMode;
558    pEndBlendMode EndBlendMode;
559    pBeginScissorMode BeginScissorMode;
560    pEndScissorMode EndScissorMode;
561    pBeginVrStereoMode BeginVrStereoMode;
562    pEndVrStereoMode EndVrStereoMode;
563    pLoadVrStereoConfig LoadVrStereoConfig;
564    pUnloadVrStereoConfig UnloadVrStereoConfig;
565    pLoadShader LoadShader;
566    pLoadShaderFromMemory LoadShaderFromMemory;
567    pGetShaderLocation GetShaderLocation;
568    pGetShaderLocationAttrib GetShaderLocationAttrib;
569    pSetShaderValue SetShaderValue;
570    pSetShaderValueV SetShaderValueV;
571    pSetShaderValueMatrix SetShaderValueMatrix;
572    pSetShaderValueTexture SetShaderValueTexture;
573    pUnloadShader UnloadShader;
574    pGetMouseRay GetMouseRay;
575    pGetCameraMatrix GetCameraMatrix;
576    pGetCameraMatrix2D GetCameraMatrix2D;
577    pGetWorldToScreen GetWorldToScreen;
578    pGetWorldToScreenEx GetWorldToScreenEx;
579    pGetWorldToScreen2D GetWorldToScreen2D;
580    pGetScreenToWorld2D GetScreenToWorld2D;
581    pSetTargetFPS SetTargetFPS;
582    pGetFPS GetFPS;
583    pGetFrameTime GetFrameTime;
584    pGetTime GetTime;
585    pGetRandomValue GetRandomValue;
586    pSetRandomSeed SetRandomSeed;
587    pTakeScreenshot TakeScreenshot;
588    pSetConfigFlags SetConfigFlags;
589    pSetTraceLogLevel SetTraceLogLevel;
590    pMemAlloc MemAlloc;
591    pMemRealloc MemRealloc;
592    pMemFree MemFree;
593    pLoadFileData LoadFileData;
594    pUnloadFileData UnloadFileData;
595    pSaveFileData SaveFileData;
596    pLoadFileText LoadFileText;
597    pUnloadFileText UnloadFileText;
598    pSaveFileText SaveFileText;
599    pFileExists FileExists;
600    pDirectoryExists DirectoryExists;
601    pIsFileExtension IsFileExtension;
602    pGetFileExtension GetFileExtension;
603    pGetFileName GetFileName;
604    pGetFileNameWithoutExt GetFileNameWithoutExt;
605    pGetDirectoryPath GetDirectoryPath;
606    pGetPrevDirectoryPath GetPrevDirectoryPath;
607    pGetWorkingDirectory GetWorkingDirectory;
608    pGetDirectoryFiles GetDirectoryFiles;
609    pClearDirectoryFiles ClearDirectoryFiles;
610    pChangeDirectory ChangeDirectory;
611    pIsFileDropped IsFileDropped;
612    pGetDroppedFiles GetDroppedFiles;
613    pClearDroppedFiles ClearDroppedFiles;
614    pGetFileModTime GetFileModTime;
615    pCompressData CompressData;
616    pDecompressData DecompressData;
617    pEncodeDataBase64 EncodeDataBase64;
618    pDecodeDataBase64 DecodeDataBase64;
619    pSaveStorageValue SaveStorageValue;
620    pLoadStorageValue LoadStorageValue;
621    pOpenURL OpenURL;
622    pIsKeyPressed IsKeyPressed;
623    pIsKeyDown IsKeyDown;
624    pIsKeyReleased IsKeyReleased;
625    pIsKeyUp IsKeyUp;
626    pSetExitKey SetExitKey;
627    pGetKeyPressed GetKeyPressed;
628    pGetCharPressed GetCharPressed;
629    pIsGamepadAvailable IsGamepadAvailable;
630    pGetGamepadName GetGamepadName;
631    pIsGamepadButtonPressed IsGamepadButtonPressed;
632    pIsGamepadButtonDown IsGamepadButtonDown;
633    pIsGamepadButtonReleased IsGamepadButtonReleased;
634    pIsGamepadButtonUp IsGamepadButtonUp;
635    pGetGamepadButtonPressed GetGamepadButtonPressed;
636    pGetGamepadAxisCount GetGamepadAxisCount;
637    pGetGamepadAxisMovement GetGamepadAxisMovement;
638    pSetGamepadMappings SetGamepadMappings;
639    pIsMouseButtonPressed IsMouseButtonPressed;
640    pIsMouseButtonDown IsMouseButtonDown;
641    pIsMouseButtonReleased IsMouseButtonReleased;
642    pIsMouseButtonUp IsMouseButtonUp;
643    pGetMouseX GetMouseX;
644    pGetMouseY GetMouseY;
645    pGetMousePosition GetMousePosition;
646    pGetMouseDelta GetMouseDelta;
647    pSetMousePosition SetMousePosition;
648    pSetMouseOffset SetMouseOffset;
649    pSetMouseScale SetMouseScale;
650    pGetMouseWheelMove GetMouseWheelMove;
651    pSetMouseCursor SetMouseCursor;
652    pGetTouchX GetTouchX;
653    pGetTouchY GetTouchY;
654    pGetTouchPosition GetTouchPosition;
655    pGetTouchPointId GetTouchPointId;
656    pGetTouchPointCount GetTouchPointCount;
657    pSetGesturesEnabled SetGesturesEnabled;
658    pIsGestureDetected IsGestureDetected;
659    pGetGestureDetected GetGestureDetected;
660    pGetGestureHoldDuration GetGestureHoldDuration;
661    pGetGestureDragVector GetGestureDragVector;
662    pGetGestureDragAngle GetGestureDragAngle;
663    pGetGesturePinchVector GetGesturePinchVector;
664    pGetGesturePinchAngle GetGesturePinchAngle;
665    pSetCameraMode SetCameraMode;
666    pUpdateCamera UpdateCamera;
667    pSetCameraPanControl SetCameraPanControl;
668    pSetCameraAltControl SetCameraAltControl;
669    pSetCameraSmoothZoomControl SetCameraSmoothZoomControl;
670    pSetCameraMoveControls SetCameraMoveControls;
671    pSetShapesTexture SetShapesTexture;
672    pDrawPixel DrawPixel;
673    pDrawPixelV DrawPixelV;
674    pDrawLine DrawLine;
675    pDrawLineV DrawLineV;
676    pDrawLineEx DrawLineEx;
677    pDrawLineBezier DrawLineBezier;
678    pDrawLineBezierQuad DrawLineBezierQuad;
679    pDrawLineBezierCubic DrawLineBezierCubic;
680    pDrawLineStrip DrawLineStrip;
681    pDrawCircle DrawCircle;
682    pDrawCircleSector DrawCircleSector;
683    pDrawCircleSectorLines DrawCircleSectorLines;
684    pDrawCircleGradient DrawCircleGradient;
685    pDrawCircleV DrawCircleV;
686    pDrawCircleLines DrawCircleLines;
687    pDrawEllipse DrawEllipse;
688    pDrawEllipseLines DrawEllipseLines;
689    pDrawRing DrawRing;
690    pDrawRingLines DrawRingLines;
691    pDrawRectangle DrawRectangle;
692    pDrawRectangleV DrawRectangleV;
693    pDrawRectangleRec DrawRectangleRec;
694    pDrawRectanglePro DrawRectanglePro;
695    pDrawRectangleGradientV DrawRectangleGradientV;
696    pDrawRectangleGradientH DrawRectangleGradientH;
697    pDrawRectangleGradientEx DrawRectangleGradientEx;
698    pDrawRectangleLines DrawRectangleLines;
699    pDrawRectangleLinesEx DrawRectangleLinesEx;
700    pDrawRectangleRounded DrawRectangleRounded;
701    pDrawRectangleRoundedLines DrawRectangleRoundedLines;
702    pDrawTriangle DrawTriangle;
703    pDrawTriangleLines DrawTriangleLines;
704    pDrawTriangleFan DrawTriangleFan;
705    pDrawTriangleStrip DrawTriangleStrip;
706    pDrawPoly DrawPoly;
707    pDrawPolyLines DrawPolyLines;
708    pDrawPolyLinesEx DrawPolyLinesEx;
709    pCheckCollisionRecs CheckCollisionRecs;
710    pCheckCollisionCircles CheckCollisionCircles;
711    pCheckCollisionCircleRec CheckCollisionCircleRec;
712    pCheckCollisionPointRec CheckCollisionPointRec;
713    pCheckCollisionPointCircle CheckCollisionPointCircle;
714    pCheckCollisionPointTriangle CheckCollisionPointTriangle;
715    pCheckCollisionLines CheckCollisionLines;
716    pCheckCollisionPointLine CheckCollisionPointLine;
717    pGetCollisionRec GetCollisionRec;
718    pLoadImage LoadImage;
719    pLoadImageRaw LoadImageRaw;
720    pLoadImageAnim LoadImageAnim;
721    pLoadImageFromMemory LoadImageFromMemory;
722    pLoadImageFromTexture LoadImageFromTexture;
723    pLoadImageFromScreen LoadImageFromScreen;
724    pUnloadImage UnloadImage;
725    pExportImage ExportImage;
726    pExportImageAsCode ExportImageAsCode;
727    pGenImageColor GenImageColor;
728    pGenImageGradientV GenImageGradientV;
729    pGenImageGradientH GenImageGradientH;
730    pGenImageGradientRadial GenImageGradientRadial;
731    pGenImageChecked GenImageChecked;
732    pGenImageWhiteNoise GenImageWhiteNoise;
733    pGenImageCellular GenImageCellular;
734    pImageCopy ImageCopy;
735    pImageFromImage ImageFromImage;
736    pImageText ImageText;
737    pImageTextEx ImageTextEx;
738    pImageFormat ImageFormat;
739    pImageToPOT ImageToPOT;
740    pImageCrop ImageCrop;
741    pImageAlphaCrop ImageAlphaCrop;
742    pImageAlphaClear ImageAlphaClear;
743    pImageAlphaMask ImageAlphaMask;
744    pImageAlphaPremultiply ImageAlphaPremultiply;
745    pImageResize ImageResize;
746    pImageResizeNN ImageResizeNN;
747    pImageResizeCanvas ImageResizeCanvas;
748    pImageMipmaps ImageMipmaps;
749    pImageDither ImageDither;
750    pImageFlipVertical ImageFlipVertical;
751    pImageFlipHorizontal ImageFlipHorizontal;
752    pImageRotateCW ImageRotateCW;
753    pImageRotateCCW ImageRotateCCW;
754    pImageColorTint ImageColorTint;
755    pImageColorInvert ImageColorInvert;
756    pImageColorGrayscale ImageColorGrayscale;
757    pImageColorContrast ImageColorContrast;
758    pImageColorBrightness ImageColorBrightness;
759    pImageColorReplace ImageColorReplace;
760    pLoadImageColors LoadImageColors;
761    pLoadImagePalette LoadImagePalette;
762    pUnloadImageColors UnloadImageColors;
763    pUnloadImagePalette UnloadImagePalette;
764    pGetImageAlphaBorder GetImageAlphaBorder;
765    pGetImageColor GetImageColor;
766    pImageClearBackground ImageClearBackground;
767    pImageDrawPixel ImageDrawPixel;
768    pImageDrawPixelV ImageDrawPixelV;
769    pImageDrawLine ImageDrawLine;
770    pImageDrawLineV ImageDrawLineV;
771    pImageDrawCircle ImageDrawCircle;
772    pImageDrawCircleV ImageDrawCircleV;
773    pImageDrawRectangle ImageDrawRectangle;
774    pImageDrawRectangleV ImageDrawRectangleV;
775    pImageDrawRectangleRec ImageDrawRectangleRec;
776    pImageDrawRectangleLines ImageDrawRectangleLines;
777    pImageDraw ImageDraw;
778    pImageDrawText ImageDrawText;
779    pImageDrawTextEx ImageDrawTextEx;
780    pLoadTexture LoadTexture;
781    pLoadTextureFromImage LoadTextureFromImage;
782    pLoadTextureCubemap LoadTextureCubemap;
783    pLoadRenderTexture LoadRenderTexture;
784    pUnloadTexture UnloadTexture;
785    pUnloadRenderTexture UnloadRenderTexture;
786    pUpdateTexture UpdateTexture;
787    pUpdateTextureRec UpdateTextureRec;
788    pGenTextureMipmaps GenTextureMipmaps;
789    pSetTextureFilter SetTextureFilter;
790    pSetTextureWrap SetTextureWrap;
791    pDrawTexture DrawTexture;
792    pDrawTextureV DrawTextureV;
793    pDrawTextureEx DrawTextureEx;
794    pDrawTextureRec DrawTextureRec;
795    pDrawTextureQuad DrawTextureQuad;
796    pDrawTextureTiled DrawTextureTiled;
797    pDrawTexturePro DrawTexturePro;
798    pDrawTextureNPatch DrawTextureNPatch;
799    pDrawTexturePoly DrawTexturePoly;
800    pFade Fade;
801    pColorToInt ColorToInt;
802    pColorNormalize ColorNormalize;
803    pColorFromNormalized ColorFromNormalized;
804    pColorToHSV ColorToHSV;
805    pColorFromHSV ColorFromHSV;
806    pColorAlpha ColorAlpha;
807    pColorAlphaBlend ColorAlphaBlend;
808    pGetColor GetColor;
809    pGetPixelColor GetPixelColor;
810    pSetPixelColor SetPixelColor;
811    pGetPixelDataSize GetPixelDataSize;
812    pGetFontDefault GetFontDefault;
813    pLoadFont LoadFont;
814    pLoadFontEx LoadFontEx;
815    pLoadFontFromImage LoadFontFromImage;
816    pLoadFontFromMemory LoadFontFromMemory;
817    pLoadFontData LoadFontData;
818    pGenImageFontAtlas GenImageFontAtlas;
819    pUnloadFontData UnloadFontData;
820    pUnloadFont UnloadFont;
821    pDrawFPS DrawFPS;
822    pDrawText DrawText;
823    pDrawTextEx DrawTextEx;
824    pDrawTextPro DrawTextPro;
825    pDrawTextCodepoint DrawTextCodepoint;
826    pMeasureText MeasureText;
827    pMeasureTextEx MeasureTextEx;
828    pGetGlyphIndex GetGlyphIndex;
829    pGetGlyphInfo GetGlyphInfo;
830    pGetGlyphAtlasRec GetGlyphAtlasRec;
831    pLoadCodepoints LoadCodepoints;
832    pUnloadCodepoints UnloadCodepoints;
833    pGetCodepointCount GetCodepointCount;
834    pGetCodepoint GetCodepoint;
835    pCodepointToUTF8 CodepointToUTF8;
836    pTextCodepointsToUTF8 TextCodepointsToUTF8;
837    pTextCopy TextCopy;
838    pTextIsEqual TextIsEqual;
839    pTextLength TextLength;
840    pTextSubtext TextSubtext;
841    pTextReplace TextReplace;
842    pTextInsert TextInsert;
843    pTextJoin TextJoin;
844    pTextSplit TextSplit;
845    pTextAppend TextAppend;
846    pTextFindIndex TextFindIndex;
847    pTextToUpper TextToUpper;
848    pTextToLower TextToLower;
849    pTextToPascal TextToPascal;
850    pTextToInteger TextToInteger;
851    pDrawLine3D DrawLine3D;
852    pDrawPoint3D DrawPoint3D;
853    pDrawCircle3D DrawCircle3D;
854    pDrawTriangle3D DrawTriangle3D;
855    pDrawTriangleStrip3D DrawTriangleStrip3D;
856    pDrawCube DrawCube;
857    pDrawCubeV DrawCubeV;
858    pDrawCubeWires DrawCubeWires;
859    pDrawCubeWiresV DrawCubeWiresV;
860    pDrawCubeTexture DrawCubeTexture;
861    pDrawCubeTextureRec DrawCubeTextureRec;
862    pDrawSphere DrawSphere;
863    pDrawSphereEx DrawSphereEx;
864    pDrawSphereWires DrawSphereWires;
865    pDrawCylinder DrawCylinder;
866    pDrawCylinderEx DrawCylinderEx;
867    pDrawCylinderWires DrawCylinderWires;
868    pDrawCylinderWiresEx DrawCylinderWiresEx;
869    pDrawPlane DrawPlane;
870    pDrawRay DrawRay;
871    pDrawGrid DrawGrid;
872    pLoadModel LoadModel;
873    pLoadModelFromMesh LoadModelFromMesh;
874    pUnloadModel UnloadModel;
875    pUnloadModelKeepMeshes UnloadModelKeepMeshes;
876    pGetModelBoundingBox GetModelBoundingBox;
877    pDrawModel DrawModel;
878    pDrawModelEx DrawModelEx;
879    pDrawModelWires DrawModelWires;
880    pDrawModelWiresEx DrawModelWiresEx;
881    pDrawBoundingBox DrawBoundingBox;
882    pDrawBillboard DrawBillboard;
883    pDrawBillboardRec DrawBillboardRec;
884    pDrawBillboardPro DrawBillboardPro;
885    pUploadMesh UploadMesh;
886    pUpdateMeshBuffer UpdateMeshBuffer;
887    pUnloadMesh UnloadMesh;
888    pDrawMesh DrawMesh;
889    pDrawMeshInstanced DrawMeshInstanced;
890    pExportMesh ExportMesh;
891    pGetMeshBoundingBox GetMeshBoundingBox;
892    pGenMeshTangents GenMeshTangents;
893    pGenMeshBinormals GenMeshBinormals;
894    pGenMeshPoly GenMeshPoly;
895    pGenMeshPlane GenMeshPlane;
896    pGenMeshCube GenMeshCube;
897    pGenMeshSphere GenMeshSphere;
898    pGenMeshHemiSphere GenMeshHemiSphere;
899    pGenMeshCylinder GenMeshCylinder;
900    pGenMeshCone GenMeshCone;
901    pGenMeshTorus GenMeshTorus;
902    pGenMeshKnot GenMeshKnot;
903    pGenMeshHeightmap GenMeshHeightmap;
904    pGenMeshCubicmap GenMeshCubicmap;
905    pLoadMaterials LoadMaterials;
906    pLoadMaterialDefault LoadMaterialDefault;
907    pUnloadMaterial UnloadMaterial;
908    pSetMaterialTexture SetMaterialTexture;
909    pSetModelMeshMaterial SetModelMeshMaterial;
910    pLoadModelAnimations LoadModelAnimations;
911    pUpdateModelAnimation UpdateModelAnimation;
912    pUnloadModelAnimation UnloadModelAnimation;
913    pUnloadModelAnimations UnloadModelAnimations;
914    pIsModelAnimationValid IsModelAnimationValid;
915    pCheckCollisionSpheres CheckCollisionSpheres;
916    pCheckCollisionBoxes CheckCollisionBoxes;
917    pCheckCollisionBoxSphere CheckCollisionBoxSphere;
918    pGetRayCollisionSphere GetRayCollisionSphere;
919    pGetRayCollisionBox GetRayCollisionBox;
920    pGetRayCollisionModel GetRayCollisionModel;
921    pGetRayCollisionMesh GetRayCollisionMesh;
922    pGetRayCollisionTriangle GetRayCollisionTriangle;
923    pGetRayCollisionQuad GetRayCollisionQuad;
924    pInitAudioDevice InitAudioDevice;
925    pCloseAudioDevice CloseAudioDevice;
926    pIsAudioDeviceReady IsAudioDeviceReady;
927    pSetMasterVolume SetMasterVolume;
928    pLoadWave LoadWave;
929    pLoadWaveFromMemory LoadWaveFromMemory;
930    pLoadSound LoadSound;
931    pLoadSoundFromWave LoadSoundFromWave;
932    pUpdateSound UpdateSound;
933    pUnloadWave UnloadWave;
934    pUnloadSound UnloadSound;
935    pExportWave ExportWave;
936    pExportWaveAsCode ExportWaveAsCode;
937    pPlaySound PlaySound;
938    pStopSound StopSound;
939    pPauseSound PauseSound;
940    pResumeSound ResumeSound;
941    pPlaySoundMulti PlaySoundMulti;
942    pStopSoundMulti StopSoundMulti;
943    pGetSoundsPlaying GetSoundsPlaying;
944    pIsSoundPlaying IsSoundPlaying;
945    pSetSoundVolume SetSoundVolume;
946    pSetSoundPitch SetSoundPitch;
947    pWaveFormat WaveFormat;
948    pWaveCopy WaveCopy;
949    pWaveCrop WaveCrop;
950    pLoadWaveSamples LoadWaveSamples;
951    pUnloadWaveSamples UnloadWaveSamples;
952    pLoadMusicStream LoadMusicStream;
953    pLoadMusicStreamFromMemory LoadMusicStreamFromMemory;
954    pUnloadMusicStream UnloadMusicStream;
955    pPlayMusicStream PlayMusicStream;
956    pIsMusicStreamPlaying IsMusicStreamPlaying;
957    pUpdateMusicStream UpdateMusicStream;
958    pStopMusicStream StopMusicStream;
959    pPauseMusicStream PauseMusicStream;
960    pResumeMusicStream ResumeMusicStream;
961    pSeekMusicStream SeekMusicStream;
962    pSetMusicVolume SetMusicVolume;
963    pSetMusicPitch SetMusicPitch;
964    pGetMusicTimeLength GetMusicTimeLength;
965    pGetMusicTimePlayed GetMusicTimePlayed;
966    pLoadAudioStream LoadAudioStream;
967    pUnloadAudioStream UnloadAudioStream;
968    pUpdateAudioStream UpdateAudioStream;
969    pIsAudioStreamProcessed IsAudioStreamProcessed;
970    pPlayAudioStream PlayAudioStream;
971    pPauseAudioStream PauseAudioStream;
972    pResumeAudioStream ResumeAudioStream;
973    pIsAudioStreamPlaying IsAudioStreamPlaying;
974    pStopAudioStream StopAudioStream;
975    pSetAudioStreamVolume SetAudioStreamVolume;
976    pSetAudioStreamPitch SetAudioStreamPitch;
977    pSetAudioStreamBufferSizeDefault SetAudioStreamBufferSizeDefault;
978 }
979 /**
980  * Raylib binding.
981  *
982  * Automatically generated, do not modify
983  */
984 private {
985    SharedLib lib;
986    RaylibSupport loadedVersion;
987 }
988 
989 @nogc nothrow:
990 
991 void unloadRaylib() {
992    if (lib != invalidHandle) {
993       lib.unload();
994    }
995 }
996 
997 RaylibSupport loadedRaylibVersion() @safe {
998    return loadedVersion;
999 }
1000 
1001 bool isRaylibLoaded() @safe {
1002    return lib != invalidHandle;
1003 }
1004 
1005 RaylibSupport loadRaylib() {
1006    version (Windows) {
1007       const(char)[][1] libNames = ["raylib.dll"];
1008    } else version (Posix) {
1009       const(char)[][3] libNames = [
1010          "libraylib.so",
1011          "/usr/local/lib/libraylib.so" //make install PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED
1012          , "/usr/lib/libraylib.so"
1013       ];
1014    } else {
1015       static assert(0, "bindbc-raylib is not yet supported on this platform");
1016    }
1017 
1018    RaylibSupport ret;
1019    foreach (name; libNames) {
1020       ret = loadRaylib(name.ptr);
1021       if (ret != RaylibSupport.noLibrary) {
1022          break;
1023       }
1024    }
1025    return ret;
1026 }
1027 
1028 RaylibSupport loadRaylib(const(char)* libName) {
1029    lib = load(libName);
1030    if (lib == invalidHandle) {
1031       return RaylibSupport.noLibrary;
1032    }
1033 
1034    auto errCount = errorCount();
1035    loadedVersion = RaylibSupport.badLibrary;
1036 
1037 
1038    lib.bindSymbol(cast(void**)&InitWindow, "InitWindow");
1039    lib.bindSymbol(cast(void**)&WindowShouldClose, "WindowShouldClose");
1040    lib.bindSymbol(cast(void**)&CloseWindow, "CloseWindow");
1041    lib.bindSymbol(cast(void**)&IsWindowReady, "IsWindowReady");
1042    lib.bindSymbol(cast(void**)&IsWindowFullscreen, "IsWindowFullscreen");
1043    lib.bindSymbol(cast(void**)&IsWindowHidden, "IsWindowHidden");
1044    lib.bindSymbol(cast(void**)&IsWindowMinimized, "IsWindowMinimized");
1045    lib.bindSymbol(cast(void**)&IsWindowMaximized, "IsWindowMaximized");
1046    lib.bindSymbol(cast(void**)&IsWindowFocused, "IsWindowFocused");
1047    lib.bindSymbol(cast(void**)&IsWindowResized, "IsWindowResized");
1048    lib.bindSymbol(cast(void**)&IsWindowState, "IsWindowState");
1049    lib.bindSymbol(cast(void**)&SetWindowState, "SetWindowState");
1050    lib.bindSymbol(cast(void**)&ClearWindowState, "ClearWindowState");
1051    lib.bindSymbol(cast(void**)&ToggleFullscreen, "ToggleFullscreen");
1052    lib.bindSymbol(cast(void**)&MaximizeWindow, "MaximizeWindow");
1053    lib.bindSymbol(cast(void**)&MinimizeWindow, "MinimizeWindow");
1054    lib.bindSymbol(cast(void**)&RestoreWindow, "RestoreWindow");
1055    lib.bindSymbol(cast(void**)&SetWindowIcon, "SetWindowIcon");
1056    lib.bindSymbol(cast(void**)&SetWindowTitle, "SetWindowTitle");
1057    lib.bindSymbol(cast(void**)&SetWindowPosition, "SetWindowPosition");
1058    lib.bindSymbol(cast(void**)&SetWindowMonitor, "SetWindowMonitor");
1059    lib.bindSymbol(cast(void**)&SetWindowMinSize, "SetWindowMinSize");
1060    lib.bindSymbol(cast(void**)&SetWindowSize, "SetWindowSize");
1061    lib.bindSymbol(cast(void**)&GetWindowHandle, "GetWindowHandle");
1062    lib.bindSymbol(cast(void**)&GetScreenWidth, "GetScreenWidth");
1063    lib.bindSymbol(cast(void**)&GetScreenHeight, "GetScreenHeight");
1064    lib.bindSymbol(cast(void**)&GetMonitorCount, "GetMonitorCount");
1065    lib.bindSymbol(cast(void**)&GetCurrentMonitor, "GetCurrentMonitor");
1066    lib.bindSymbol(cast(void**)&GetMonitorPosition, "GetMonitorPosition");
1067    lib.bindSymbol(cast(void**)&GetMonitorWidth, "GetMonitorWidth");
1068    lib.bindSymbol(cast(void**)&GetMonitorHeight, "GetMonitorHeight");
1069    lib.bindSymbol(cast(void**)&GetMonitorPhysicalWidth, "GetMonitorPhysicalWidth");
1070    lib.bindSymbol(cast(void**)&GetMonitorPhysicalHeight, "GetMonitorPhysicalHeight");
1071    lib.bindSymbol(cast(void**)&GetMonitorRefreshRate, "GetMonitorRefreshRate");
1072    lib.bindSymbol(cast(void**)&GetWindowPosition, "GetWindowPosition");
1073    lib.bindSymbol(cast(void**)&GetWindowScaleDPI, "GetWindowScaleDPI");
1074    lib.bindSymbol(cast(void**)&GetMonitorName, "GetMonitorName");
1075    lib.bindSymbol(cast(void**)&SetClipboardText, "SetClipboardText");
1076    lib.bindSymbol(cast(void**)&GetClipboardText, "GetClipboardText");
1077    lib.bindSymbol(cast(void**)&SwapScreenBuffer, "SwapScreenBuffer");
1078    lib.bindSymbol(cast(void**)&PollInputEvents, "PollInputEvents");
1079    lib.bindSymbol(cast(void**)&WaitTime, "WaitTime");
1080    lib.bindSymbol(cast(void**)&ShowCursor, "ShowCursor");
1081    lib.bindSymbol(cast(void**)&HideCursor, "HideCursor");
1082    lib.bindSymbol(cast(void**)&IsCursorHidden, "IsCursorHidden");
1083    lib.bindSymbol(cast(void**)&EnableCursor, "EnableCursor");
1084    lib.bindSymbol(cast(void**)&DisableCursor, "DisableCursor");
1085    lib.bindSymbol(cast(void**)&IsCursorOnScreen, "IsCursorOnScreen");
1086    lib.bindSymbol(cast(void**)&ClearBackground, "ClearBackground");
1087    lib.bindSymbol(cast(void**)&BeginDrawing, "BeginDrawing");
1088    lib.bindSymbol(cast(void**)&EndDrawing, "EndDrawing");
1089    lib.bindSymbol(cast(void**)&BeginMode2D, "BeginMode2D");
1090    lib.bindSymbol(cast(void**)&EndMode2D, "EndMode2D");
1091    lib.bindSymbol(cast(void**)&BeginMode3D, "BeginMode3D");
1092    lib.bindSymbol(cast(void**)&EndMode3D, "EndMode3D");
1093    lib.bindSymbol(cast(void**)&BeginTextureMode, "BeginTextureMode");
1094    lib.bindSymbol(cast(void**)&EndTextureMode, "EndTextureMode");
1095    lib.bindSymbol(cast(void**)&BeginShaderMode, "BeginShaderMode");
1096    lib.bindSymbol(cast(void**)&EndShaderMode, "EndShaderMode");
1097    lib.bindSymbol(cast(void**)&BeginBlendMode, "BeginBlendMode");
1098    lib.bindSymbol(cast(void**)&EndBlendMode, "EndBlendMode");
1099    lib.bindSymbol(cast(void**)&BeginScissorMode, "BeginScissorMode");
1100    lib.bindSymbol(cast(void**)&EndScissorMode, "EndScissorMode");
1101    lib.bindSymbol(cast(void**)&BeginVrStereoMode, "BeginVrStereoMode");
1102    lib.bindSymbol(cast(void**)&EndVrStereoMode, "EndVrStereoMode");
1103    lib.bindSymbol(cast(void**)&LoadVrStereoConfig, "LoadVrStereoConfig");
1104    lib.bindSymbol(cast(void**)&UnloadVrStereoConfig, "UnloadVrStereoConfig");
1105    lib.bindSymbol(cast(void**)&LoadShader, "LoadShader");
1106    lib.bindSymbol(cast(void**)&LoadShaderFromMemory, "LoadShaderFromMemory");
1107    lib.bindSymbol(cast(void**)&GetShaderLocation, "GetShaderLocation");
1108    lib.bindSymbol(cast(void**)&GetShaderLocationAttrib, "GetShaderLocationAttrib");
1109    lib.bindSymbol(cast(void**)&SetShaderValue, "SetShaderValue");
1110    lib.bindSymbol(cast(void**)&SetShaderValueV, "SetShaderValueV");
1111    lib.bindSymbol(cast(void**)&SetShaderValueMatrix, "SetShaderValueMatrix");
1112    lib.bindSymbol(cast(void**)&SetShaderValueTexture, "SetShaderValueTexture");
1113    lib.bindSymbol(cast(void**)&UnloadShader, "UnloadShader");
1114    lib.bindSymbol(cast(void**)&GetMouseRay, "GetMouseRay");
1115    lib.bindSymbol(cast(void**)&GetCameraMatrix, "GetCameraMatrix");
1116    lib.bindSymbol(cast(void**)&GetCameraMatrix2D, "GetCameraMatrix2D");
1117    lib.bindSymbol(cast(void**)&GetWorldToScreen, "GetWorldToScreen");
1118    lib.bindSymbol(cast(void**)&GetWorldToScreenEx, "GetWorldToScreenEx");
1119    lib.bindSymbol(cast(void**)&GetWorldToScreen2D, "GetWorldToScreen2D");
1120    lib.bindSymbol(cast(void**)&GetScreenToWorld2D, "GetScreenToWorld2D");
1121    lib.bindSymbol(cast(void**)&SetTargetFPS, "SetTargetFPS");
1122    lib.bindSymbol(cast(void**)&GetFPS, "GetFPS");
1123    lib.bindSymbol(cast(void**)&GetFrameTime, "GetFrameTime");
1124    lib.bindSymbol(cast(void**)&GetTime, "GetTime");
1125    lib.bindSymbol(cast(void**)&GetRandomValue, "GetRandomValue");
1126    lib.bindSymbol(cast(void**)&SetRandomSeed, "SetRandomSeed");
1127    lib.bindSymbol(cast(void**)&TakeScreenshot, "TakeScreenshot");
1128    lib.bindSymbol(cast(void**)&SetConfigFlags, "SetConfigFlags");
1129    lib.bindSymbol(cast(void**)&SetTraceLogLevel, "SetTraceLogLevel");
1130    lib.bindSymbol(cast(void**)&MemAlloc, "MemAlloc");
1131    lib.bindSymbol(cast(void**)&MemRealloc, "MemRealloc");
1132    lib.bindSymbol(cast(void**)&MemFree, "MemFree");
1133    lib.bindSymbol(cast(void**)&LoadFileData, "LoadFileData");
1134    lib.bindSymbol(cast(void**)&UnloadFileData, "UnloadFileData");
1135    lib.bindSymbol(cast(void**)&SaveFileData, "SaveFileData");
1136    lib.bindSymbol(cast(void**)&LoadFileText, "LoadFileText");
1137    lib.bindSymbol(cast(void**)&UnloadFileText, "UnloadFileText");
1138    lib.bindSymbol(cast(void**)&SaveFileText, "SaveFileText");
1139    lib.bindSymbol(cast(void**)&FileExists, "FileExists");
1140    lib.bindSymbol(cast(void**)&DirectoryExists, "DirectoryExists");
1141    lib.bindSymbol(cast(void**)&IsFileExtension, "IsFileExtension");
1142    lib.bindSymbol(cast(void**)&GetFileExtension, "GetFileExtension");
1143    lib.bindSymbol(cast(void**)&GetFileName, "GetFileName");
1144    lib.bindSymbol(cast(void**)&GetFileNameWithoutExt, "GetFileNameWithoutExt");
1145    lib.bindSymbol(cast(void**)&GetDirectoryPath, "GetDirectoryPath");
1146    lib.bindSymbol(cast(void**)&GetPrevDirectoryPath, "GetPrevDirectoryPath");
1147    lib.bindSymbol(cast(void**)&GetWorkingDirectory, "GetWorkingDirectory");
1148    lib.bindSymbol(cast(void**)&GetDirectoryFiles, "GetDirectoryFiles");
1149    lib.bindSymbol(cast(void**)&ClearDirectoryFiles, "ClearDirectoryFiles");
1150    lib.bindSymbol(cast(void**)&ChangeDirectory, "ChangeDirectory");
1151    lib.bindSymbol(cast(void**)&IsFileDropped, "IsFileDropped");
1152    lib.bindSymbol(cast(void**)&GetDroppedFiles, "GetDroppedFiles");
1153    lib.bindSymbol(cast(void**)&ClearDroppedFiles, "ClearDroppedFiles");
1154    lib.bindSymbol(cast(void**)&GetFileModTime, "GetFileModTime");
1155    lib.bindSymbol(cast(void**)&CompressData, "CompressData");
1156    lib.bindSymbol(cast(void**)&DecompressData, "DecompressData");
1157    lib.bindSymbol(cast(void**)&EncodeDataBase64, "EncodeDataBase64");
1158    lib.bindSymbol(cast(void**)&DecodeDataBase64, "DecodeDataBase64");
1159    lib.bindSymbol(cast(void**)&SaveStorageValue, "SaveStorageValue");
1160    lib.bindSymbol(cast(void**)&LoadStorageValue, "LoadStorageValue");
1161    lib.bindSymbol(cast(void**)&OpenURL, "OpenURL");
1162    lib.bindSymbol(cast(void**)&IsKeyPressed, "IsKeyPressed");
1163    lib.bindSymbol(cast(void**)&IsKeyDown, "IsKeyDown");
1164    lib.bindSymbol(cast(void**)&IsKeyReleased, "IsKeyReleased");
1165    lib.bindSymbol(cast(void**)&IsKeyUp, "IsKeyUp");
1166    lib.bindSymbol(cast(void**)&SetExitKey, "SetExitKey");
1167    lib.bindSymbol(cast(void**)&GetKeyPressed, "GetKeyPressed");
1168    lib.bindSymbol(cast(void**)&GetCharPressed, "GetCharPressed");
1169    lib.bindSymbol(cast(void**)&IsGamepadAvailable, "IsGamepadAvailable");
1170    lib.bindSymbol(cast(void**)&GetGamepadName, "GetGamepadName");
1171    lib.bindSymbol(cast(void**)&IsGamepadButtonPressed, "IsGamepadButtonPressed");
1172    lib.bindSymbol(cast(void**)&IsGamepadButtonDown, "IsGamepadButtonDown");
1173    lib.bindSymbol(cast(void**)&IsGamepadButtonReleased, "IsGamepadButtonReleased");
1174    lib.bindSymbol(cast(void**)&IsGamepadButtonUp, "IsGamepadButtonUp");
1175    lib.bindSymbol(cast(void**)&GetGamepadButtonPressed, "GetGamepadButtonPressed");
1176    lib.bindSymbol(cast(void**)&GetGamepadAxisCount, "GetGamepadAxisCount");
1177    lib.bindSymbol(cast(void**)&GetGamepadAxisMovement, "GetGamepadAxisMovement");
1178    lib.bindSymbol(cast(void**)&SetGamepadMappings, "SetGamepadMappings");
1179    lib.bindSymbol(cast(void**)&IsMouseButtonPressed, "IsMouseButtonPressed");
1180    lib.bindSymbol(cast(void**)&IsMouseButtonDown, "IsMouseButtonDown");
1181    lib.bindSymbol(cast(void**)&IsMouseButtonReleased, "IsMouseButtonReleased");
1182    lib.bindSymbol(cast(void**)&IsMouseButtonUp, "IsMouseButtonUp");
1183    lib.bindSymbol(cast(void**)&GetMouseX, "GetMouseX");
1184    lib.bindSymbol(cast(void**)&GetMouseY, "GetMouseY");
1185    lib.bindSymbol(cast(void**)&GetMousePosition, "GetMousePosition");
1186    lib.bindSymbol(cast(void**)&GetMouseDelta, "GetMouseDelta");
1187    lib.bindSymbol(cast(void**)&SetMousePosition, "SetMousePosition");
1188    lib.bindSymbol(cast(void**)&SetMouseOffset, "SetMouseOffset");
1189    lib.bindSymbol(cast(void**)&SetMouseScale, "SetMouseScale");
1190    lib.bindSymbol(cast(void**)&GetMouseWheelMove, "GetMouseWheelMove");
1191    lib.bindSymbol(cast(void**)&SetMouseCursor, "SetMouseCursor");
1192    lib.bindSymbol(cast(void**)&GetTouchX, "GetTouchX");
1193    lib.bindSymbol(cast(void**)&GetTouchY, "GetTouchY");
1194    lib.bindSymbol(cast(void**)&GetTouchPosition, "GetTouchPosition");
1195    lib.bindSymbol(cast(void**)&GetTouchPointId, "GetTouchPointId");
1196    lib.bindSymbol(cast(void**)&GetTouchPointCount, "GetTouchPointCount");
1197    lib.bindSymbol(cast(void**)&SetGesturesEnabled, "SetGesturesEnabled");
1198    lib.bindSymbol(cast(void**)&IsGestureDetected, "IsGestureDetected");
1199    lib.bindSymbol(cast(void**)&GetGestureDetected, "GetGestureDetected");
1200    lib.bindSymbol(cast(void**)&GetGestureHoldDuration, "GetGestureHoldDuration");
1201    lib.bindSymbol(cast(void**)&GetGestureDragVector, "GetGestureDragVector");
1202    lib.bindSymbol(cast(void**)&GetGestureDragAngle, "GetGestureDragAngle");
1203    lib.bindSymbol(cast(void**)&GetGesturePinchVector, "GetGesturePinchVector");
1204    lib.bindSymbol(cast(void**)&GetGesturePinchAngle, "GetGesturePinchAngle");
1205    lib.bindSymbol(cast(void**)&SetCameraMode, "SetCameraMode");
1206    lib.bindSymbol(cast(void**)&UpdateCamera, "UpdateCamera");
1207    lib.bindSymbol(cast(void**)&SetCameraPanControl, "SetCameraPanControl");
1208    lib.bindSymbol(cast(void**)&SetCameraAltControl, "SetCameraAltControl");
1209    lib.bindSymbol(cast(void**)&SetCameraSmoothZoomControl, "SetCameraSmoothZoomControl");
1210    lib.bindSymbol(cast(void**)&SetCameraMoveControls, "SetCameraMoveControls");
1211    lib.bindSymbol(cast(void**)&SetShapesTexture, "SetShapesTexture");
1212    lib.bindSymbol(cast(void**)&DrawPixel, "DrawPixel");
1213    lib.bindSymbol(cast(void**)&DrawPixelV, "DrawPixelV");
1214    lib.bindSymbol(cast(void**)&DrawLine, "DrawLine");
1215    lib.bindSymbol(cast(void**)&DrawLineV, "DrawLineV");
1216    lib.bindSymbol(cast(void**)&DrawLineEx, "DrawLineEx");
1217    lib.bindSymbol(cast(void**)&DrawLineBezier, "DrawLineBezier");
1218    lib.bindSymbol(cast(void**)&DrawLineBezierQuad, "DrawLineBezierQuad");
1219    lib.bindSymbol(cast(void**)&DrawLineBezierCubic, "DrawLineBezierCubic");
1220    lib.bindSymbol(cast(void**)&DrawLineStrip, "DrawLineStrip");
1221    lib.bindSymbol(cast(void**)&DrawCircle, "DrawCircle");
1222    lib.bindSymbol(cast(void**)&DrawCircleSector, "DrawCircleSector");
1223    lib.bindSymbol(cast(void**)&DrawCircleSectorLines, "DrawCircleSectorLines");
1224    lib.bindSymbol(cast(void**)&DrawCircleGradient, "DrawCircleGradient");
1225    lib.bindSymbol(cast(void**)&DrawCircleV, "DrawCircleV");
1226    lib.bindSymbol(cast(void**)&DrawCircleLines, "DrawCircleLines");
1227    lib.bindSymbol(cast(void**)&DrawEllipse, "DrawEllipse");
1228    lib.bindSymbol(cast(void**)&DrawEllipseLines, "DrawEllipseLines");
1229    lib.bindSymbol(cast(void**)&DrawRing, "DrawRing");
1230    lib.bindSymbol(cast(void**)&DrawRingLines, "DrawRingLines");
1231    lib.bindSymbol(cast(void**)&DrawRectangle, "DrawRectangle");
1232    lib.bindSymbol(cast(void**)&DrawRectangleV, "DrawRectangleV");
1233    lib.bindSymbol(cast(void**)&DrawRectangleRec, "DrawRectangleRec");
1234    lib.bindSymbol(cast(void**)&DrawRectanglePro, "DrawRectanglePro");
1235    lib.bindSymbol(cast(void**)&DrawRectangleGradientV, "DrawRectangleGradientV");
1236    lib.bindSymbol(cast(void**)&DrawRectangleGradientH, "DrawRectangleGradientH");
1237    lib.bindSymbol(cast(void**)&DrawRectangleGradientEx, "DrawRectangleGradientEx");
1238    lib.bindSymbol(cast(void**)&DrawRectangleLines, "DrawRectangleLines");
1239    lib.bindSymbol(cast(void**)&DrawRectangleLinesEx, "DrawRectangleLinesEx");
1240    lib.bindSymbol(cast(void**)&DrawRectangleRounded, "DrawRectangleRounded");
1241    lib.bindSymbol(cast(void**)&DrawRectangleRoundedLines, "DrawRectangleRoundedLines");
1242    lib.bindSymbol(cast(void**)&DrawTriangle, "DrawTriangle");
1243    lib.bindSymbol(cast(void**)&DrawTriangleLines, "DrawTriangleLines");
1244    lib.bindSymbol(cast(void**)&DrawTriangleFan, "DrawTriangleFan");
1245    lib.bindSymbol(cast(void**)&DrawTriangleStrip, "DrawTriangleStrip");
1246    lib.bindSymbol(cast(void**)&DrawPoly, "DrawPoly");
1247    lib.bindSymbol(cast(void**)&DrawPolyLines, "DrawPolyLines");
1248    lib.bindSymbol(cast(void**)&DrawPolyLinesEx, "DrawPolyLinesEx");
1249    lib.bindSymbol(cast(void**)&CheckCollisionRecs, "CheckCollisionRecs");
1250    lib.bindSymbol(cast(void**)&CheckCollisionCircles, "CheckCollisionCircles");
1251    lib.bindSymbol(cast(void**)&CheckCollisionCircleRec, "CheckCollisionCircleRec");
1252    lib.bindSymbol(cast(void**)&CheckCollisionPointRec, "CheckCollisionPointRec");
1253    lib.bindSymbol(cast(void**)&CheckCollisionPointCircle, "CheckCollisionPointCircle");
1254    lib.bindSymbol(cast(void**)&CheckCollisionPointTriangle, "CheckCollisionPointTriangle");
1255    lib.bindSymbol(cast(void**)&CheckCollisionLines, "CheckCollisionLines");
1256    lib.bindSymbol(cast(void**)&CheckCollisionPointLine, "CheckCollisionPointLine");
1257    lib.bindSymbol(cast(void**)&GetCollisionRec, "GetCollisionRec");
1258    lib.bindSymbol(cast(void**)&LoadImage, "LoadImage");
1259    lib.bindSymbol(cast(void**)&LoadImageRaw, "LoadImageRaw");
1260    lib.bindSymbol(cast(void**)&LoadImageAnim, "LoadImageAnim");
1261    lib.bindSymbol(cast(void**)&LoadImageFromMemory, "LoadImageFromMemory");
1262    lib.bindSymbol(cast(void**)&LoadImageFromTexture, "LoadImageFromTexture");
1263    lib.bindSymbol(cast(void**)&LoadImageFromScreen, "LoadImageFromScreen");
1264    lib.bindSymbol(cast(void**)&UnloadImage, "UnloadImage");
1265    lib.bindSymbol(cast(void**)&ExportImage, "ExportImage");
1266    lib.bindSymbol(cast(void**)&ExportImageAsCode, "ExportImageAsCode");
1267    lib.bindSymbol(cast(void**)&GenImageColor, "GenImageColor");
1268    lib.bindSymbol(cast(void**)&GenImageGradientV, "GenImageGradientV");
1269    lib.bindSymbol(cast(void**)&GenImageGradientH, "GenImageGradientH");
1270    lib.bindSymbol(cast(void**)&GenImageGradientRadial, "GenImageGradientRadial");
1271    lib.bindSymbol(cast(void**)&GenImageChecked, "GenImageChecked");
1272    lib.bindSymbol(cast(void**)&GenImageWhiteNoise, "GenImageWhiteNoise");
1273    lib.bindSymbol(cast(void**)&GenImageCellular, "GenImageCellular");
1274    lib.bindSymbol(cast(void**)&ImageCopy, "ImageCopy");
1275    lib.bindSymbol(cast(void**)&ImageFromImage, "ImageFromImage");
1276    lib.bindSymbol(cast(void**)&ImageText, "ImageText");
1277    lib.bindSymbol(cast(void**)&ImageTextEx, "ImageTextEx");
1278    lib.bindSymbol(cast(void**)&ImageFormat, "ImageFormat");
1279    lib.bindSymbol(cast(void**)&ImageToPOT, "ImageToPOT");
1280    lib.bindSymbol(cast(void**)&ImageCrop, "ImageCrop");
1281    lib.bindSymbol(cast(void**)&ImageAlphaCrop, "ImageAlphaCrop");
1282    lib.bindSymbol(cast(void**)&ImageAlphaClear, "ImageAlphaClear");
1283    lib.bindSymbol(cast(void**)&ImageAlphaMask, "ImageAlphaMask");
1284    lib.bindSymbol(cast(void**)&ImageAlphaPremultiply, "ImageAlphaPremultiply");
1285    lib.bindSymbol(cast(void**)&ImageResize, "ImageResize");
1286    lib.bindSymbol(cast(void**)&ImageResizeNN, "ImageResizeNN");
1287    lib.bindSymbol(cast(void**)&ImageResizeCanvas, "ImageResizeCanvas");
1288    lib.bindSymbol(cast(void**)&ImageMipmaps, "ImageMipmaps");
1289    lib.bindSymbol(cast(void**)&ImageDither, "ImageDither");
1290    lib.bindSymbol(cast(void**)&ImageFlipVertical, "ImageFlipVertical");
1291    lib.bindSymbol(cast(void**)&ImageFlipHorizontal, "ImageFlipHorizontal");
1292    lib.bindSymbol(cast(void**)&ImageRotateCW, "ImageRotateCW");
1293    lib.bindSymbol(cast(void**)&ImageRotateCCW, "ImageRotateCCW");
1294    lib.bindSymbol(cast(void**)&ImageColorTint, "ImageColorTint");
1295    lib.bindSymbol(cast(void**)&ImageColorInvert, "ImageColorInvert");
1296    lib.bindSymbol(cast(void**)&ImageColorGrayscale, "ImageColorGrayscale");
1297    lib.bindSymbol(cast(void**)&ImageColorContrast, "ImageColorContrast");
1298    lib.bindSymbol(cast(void**)&ImageColorBrightness, "ImageColorBrightness");
1299    lib.bindSymbol(cast(void**)&ImageColorReplace, "ImageColorReplace");
1300    lib.bindSymbol(cast(void**)&LoadImageColors, "LoadImageColors");
1301    lib.bindSymbol(cast(void**)&LoadImagePalette, "LoadImagePalette");
1302    lib.bindSymbol(cast(void**)&UnloadImageColors, "UnloadImageColors");
1303    lib.bindSymbol(cast(void**)&UnloadImagePalette, "UnloadImagePalette");
1304    lib.bindSymbol(cast(void**)&GetImageAlphaBorder, "GetImageAlphaBorder");
1305    lib.bindSymbol(cast(void**)&GetImageColor, "GetImageColor");
1306    lib.bindSymbol(cast(void**)&ImageClearBackground, "ImageClearBackground");
1307    lib.bindSymbol(cast(void**)&ImageDrawPixel, "ImageDrawPixel");
1308    lib.bindSymbol(cast(void**)&ImageDrawPixelV, "ImageDrawPixelV");
1309    lib.bindSymbol(cast(void**)&ImageDrawLine, "ImageDrawLine");
1310    lib.bindSymbol(cast(void**)&ImageDrawLineV, "ImageDrawLineV");
1311    lib.bindSymbol(cast(void**)&ImageDrawCircle, "ImageDrawCircle");
1312    lib.bindSymbol(cast(void**)&ImageDrawCircleV, "ImageDrawCircleV");
1313    lib.bindSymbol(cast(void**)&ImageDrawRectangle, "ImageDrawRectangle");
1314    lib.bindSymbol(cast(void**)&ImageDrawRectangleV, "ImageDrawRectangleV");
1315    lib.bindSymbol(cast(void**)&ImageDrawRectangleRec, "ImageDrawRectangleRec");
1316    lib.bindSymbol(cast(void**)&ImageDrawRectangleLines, "ImageDrawRectangleLines");
1317    lib.bindSymbol(cast(void**)&ImageDraw, "ImageDraw");
1318    lib.bindSymbol(cast(void**)&ImageDrawText, "ImageDrawText");
1319    lib.bindSymbol(cast(void**)&ImageDrawTextEx, "ImageDrawTextEx");
1320    lib.bindSymbol(cast(void**)&LoadTexture, "LoadTexture");
1321    lib.bindSymbol(cast(void**)&LoadTextureFromImage, "LoadTextureFromImage");
1322    lib.bindSymbol(cast(void**)&LoadTextureCubemap, "LoadTextureCubemap");
1323    lib.bindSymbol(cast(void**)&LoadRenderTexture, "LoadRenderTexture");
1324    lib.bindSymbol(cast(void**)&UnloadTexture, "UnloadTexture");
1325    lib.bindSymbol(cast(void**)&UnloadRenderTexture, "UnloadRenderTexture");
1326    lib.bindSymbol(cast(void**)&UpdateTexture, "UpdateTexture");
1327    lib.bindSymbol(cast(void**)&UpdateTextureRec, "UpdateTextureRec");
1328    lib.bindSymbol(cast(void**)&GenTextureMipmaps, "GenTextureMipmaps");
1329    lib.bindSymbol(cast(void**)&SetTextureFilter, "SetTextureFilter");
1330    lib.bindSymbol(cast(void**)&SetTextureWrap, "SetTextureWrap");
1331    lib.bindSymbol(cast(void**)&DrawTexture, "DrawTexture");
1332    lib.bindSymbol(cast(void**)&DrawTextureV, "DrawTextureV");
1333    lib.bindSymbol(cast(void**)&DrawTextureEx, "DrawTextureEx");
1334    lib.bindSymbol(cast(void**)&DrawTextureRec, "DrawTextureRec");
1335    lib.bindSymbol(cast(void**)&DrawTextureQuad, "DrawTextureQuad");
1336    lib.bindSymbol(cast(void**)&DrawTextureTiled, "DrawTextureTiled");
1337    lib.bindSymbol(cast(void**)&DrawTexturePro, "DrawTexturePro");
1338    lib.bindSymbol(cast(void**)&DrawTextureNPatch, "DrawTextureNPatch");
1339    lib.bindSymbol(cast(void**)&DrawTexturePoly, "DrawTexturePoly");
1340    lib.bindSymbol(cast(void**)&Fade, "Fade");
1341    lib.bindSymbol(cast(void**)&ColorToInt, "ColorToInt");
1342    lib.bindSymbol(cast(void**)&ColorNormalize, "ColorNormalize");
1343    lib.bindSymbol(cast(void**)&ColorFromNormalized, "ColorFromNormalized");
1344    lib.bindSymbol(cast(void**)&ColorToHSV, "ColorToHSV");
1345    lib.bindSymbol(cast(void**)&ColorFromHSV, "ColorFromHSV");
1346    lib.bindSymbol(cast(void**)&ColorAlpha, "ColorAlpha");
1347    lib.bindSymbol(cast(void**)&ColorAlphaBlend, "ColorAlphaBlend");
1348    lib.bindSymbol(cast(void**)&GetColor, "GetColor");
1349    lib.bindSymbol(cast(void**)&GetPixelColor, "GetPixelColor");
1350    lib.bindSymbol(cast(void**)&SetPixelColor, "SetPixelColor");
1351    lib.bindSymbol(cast(void**)&GetPixelDataSize, "GetPixelDataSize");
1352    lib.bindSymbol(cast(void**)&GetFontDefault, "GetFontDefault");
1353    lib.bindSymbol(cast(void**)&LoadFont, "LoadFont");
1354    lib.bindSymbol(cast(void**)&LoadFontEx, "LoadFontEx");
1355    lib.bindSymbol(cast(void**)&LoadFontFromImage, "LoadFontFromImage");
1356    lib.bindSymbol(cast(void**)&LoadFontFromMemory, "LoadFontFromMemory");
1357    lib.bindSymbol(cast(void**)&LoadFontData, "LoadFontData");
1358    lib.bindSymbol(cast(void**)&GenImageFontAtlas, "GenImageFontAtlas");
1359    lib.bindSymbol(cast(void**)&UnloadFontData, "UnloadFontData");
1360    lib.bindSymbol(cast(void**)&UnloadFont, "UnloadFont");
1361    lib.bindSymbol(cast(void**)&DrawFPS, "DrawFPS");
1362    lib.bindSymbol(cast(void**)&DrawText, "DrawText");
1363    lib.bindSymbol(cast(void**)&DrawTextEx, "DrawTextEx");
1364    lib.bindSymbol(cast(void**)&DrawTextPro, "DrawTextPro");
1365    lib.bindSymbol(cast(void**)&DrawTextCodepoint, "DrawTextCodepoint");
1366    lib.bindSymbol(cast(void**)&MeasureText, "MeasureText");
1367    lib.bindSymbol(cast(void**)&MeasureTextEx, "MeasureTextEx");
1368    lib.bindSymbol(cast(void**)&GetGlyphIndex, "GetGlyphIndex");
1369    lib.bindSymbol(cast(void**)&GetGlyphInfo, "GetGlyphInfo");
1370    lib.bindSymbol(cast(void**)&GetGlyphAtlasRec, "GetGlyphAtlasRec");
1371    lib.bindSymbol(cast(void**)&LoadCodepoints, "LoadCodepoints");
1372    lib.bindSymbol(cast(void**)&UnloadCodepoints, "UnloadCodepoints");
1373    lib.bindSymbol(cast(void**)&GetCodepointCount, "GetCodepointCount");
1374    lib.bindSymbol(cast(void**)&GetCodepoint, "GetCodepoint");
1375    lib.bindSymbol(cast(void**)&CodepointToUTF8, "CodepointToUTF8");
1376    lib.bindSymbol(cast(void**)&TextCodepointsToUTF8, "TextCodepointsToUTF8");
1377    lib.bindSymbol(cast(void**)&TextCopy, "TextCopy");
1378    lib.bindSymbol(cast(void**)&TextIsEqual, "TextIsEqual");
1379    lib.bindSymbol(cast(void**)&TextLength, "TextLength");
1380    lib.bindSymbol(cast(void**)&TextSubtext, "TextSubtext");
1381    lib.bindSymbol(cast(void**)&TextReplace, "TextReplace");
1382    lib.bindSymbol(cast(void**)&TextInsert, "TextInsert");
1383    lib.bindSymbol(cast(void**)&TextJoin, "TextJoin");
1384    lib.bindSymbol(cast(void**)&TextSplit, "TextSplit");
1385    lib.bindSymbol(cast(void**)&TextAppend, "TextAppend");
1386    lib.bindSymbol(cast(void**)&TextFindIndex, "TextFindIndex");
1387    lib.bindSymbol(cast(void**)&TextToUpper, "TextToUpper");
1388    lib.bindSymbol(cast(void**)&TextToLower, "TextToLower");
1389    lib.bindSymbol(cast(void**)&TextToPascal, "TextToPascal");
1390    lib.bindSymbol(cast(void**)&TextToInteger, "TextToInteger");
1391    lib.bindSymbol(cast(void**)&DrawLine3D, "DrawLine3D");
1392    lib.bindSymbol(cast(void**)&DrawPoint3D, "DrawPoint3D");
1393    lib.bindSymbol(cast(void**)&DrawCircle3D, "DrawCircle3D");
1394    lib.bindSymbol(cast(void**)&DrawTriangle3D, "DrawTriangle3D");
1395    lib.bindSymbol(cast(void**)&DrawTriangleStrip3D, "DrawTriangleStrip3D");
1396    lib.bindSymbol(cast(void**)&DrawCube, "DrawCube");
1397    lib.bindSymbol(cast(void**)&DrawCubeV, "DrawCubeV");
1398    lib.bindSymbol(cast(void**)&DrawCubeWires, "DrawCubeWires");
1399    lib.bindSymbol(cast(void**)&DrawCubeWiresV, "DrawCubeWiresV");
1400    lib.bindSymbol(cast(void**)&DrawCubeTexture, "DrawCubeTexture");
1401    lib.bindSymbol(cast(void**)&DrawCubeTextureRec, "DrawCubeTextureRec");
1402    lib.bindSymbol(cast(void**)&DrawSphere, "DrawSphere");
1403    lib.bindSymbol(cast(void**)&DrawSphereEx, "DrawSphereEx");
1404    lib.bindSymbol(cast(void**)&DrawSphereWires, "DrawSphereWires");
1405    lib.bindSymbol(cast(void**)&DrawCylinder, "DrawCylinder");
1406    lib.bindSymbol(cast(void**)&DrawCylinderEx, "DrawCylinderEx");
1407    lib.bindSymbol(cast(void**)&DrawCylinderWires, "DrawCylinderWires");
1408    lib.bindSymbol(cast(void**)&DrawCylinderWiresEx, "DrawCylinderWiresEx");
1409    lib.bindSymbol(cast(void**)&DrawPlane, "DrawPlane");
1410    lib.bindSymbol(cast(void**)&DrawRay, "DrawRay");
1411    lib.bindSymbol(cast(void**)&DrawGrid, "DrawGrid");
1412    lib.bindSymbol(cast(void**)&LoadModel, "LoadModel");
1413    lib.bindSymbol(cast(void**)&LoadModelFromMesh, "LoadModelFromMesh");
1414    lib.bindSymbol(cast(void**)&UnloadModel, "UnloadModel");
1415    lib.bindSymbol(cast(void**)&UnloadModelKeepMeshes, "UnloadModelKeepMeshes");
1416    lib.bindSymbol(cast(void**)&GetModelBoundingBox, "GetModelBoundingBox");
1417    lib.bindSymbol(cast(void**)&DrawModel, "DrawModel");
1418    lib.bindSymbol(cast(void**)&DrawModelEx, "DrawModelEx");
1419    lib.bindSymbol(cast(void**)&DrawModelWires, "DrawModelWires");
1420    lib.bindSymbol(cast(void**)&DrawModelWiresEx, "DrawModelWiresEx");
1421    lib.bindSymbol(cast(void**)&DrawBoundingBox, "DrawBoundingBox");
1422    lib.bindSymbol(cast(void**)&DrawBillboard, "DrawBillboard");
1423    lib.bindSymbol(cast(void**)&DrawBillboardRec, "DrawBillboardRec");
1424    lib.bindSymbol(cast(void**)&DrawBillboardPro, "DrawBillboardPro");
1425    lib.bindSymbol(cast(void**)&UploadMesh, "UploadMesh");
1426    lib.bindSymbol(cast(void**)&UpdateMeshBuffer, "UpdateMeshBuffer");
1427    lib.bindSymbol(cast(void**)&UnloadMesh, "UnloadMesh");
1428    lib.bindSymbol(cast(void**)&DrawMesh, "DrawMesh");
1429    lib.bindSymbol(cast(void**)&DrawMeshInstanced, "DrawMeshInstanced");
1430    lib.bindSymbol(cast(void**)&ExportMesh, "ExportMesh");
1431    lib.bindSymbol(cast(void**)&GetMeshBoundingBox, "GetMeshBoundingBox");
1432    lib.bindSymbol(cast(void**)&GenMeshTangents, "GenMeshTangents");
1433    lib.bindSymbol(cast(void**)&GenMeshBinormals, "GenMeshBinormals");
1434    lib.bindSymbol(cast(void**)&GenMeshPoly, "GenMeshPoly");
1435    lib.bindSymbol(cast(void**)&GenMeshPlane, "GenMeshPlane");
1436    lib.bindSymbol(cast(void**)&GenMeshCube, "GenMeshCube");
1437    lib.bindSymbol(cast(void**)&GenMeshSphere, "GenMeshSphere");
1438    lib.bindSymbol(cast(void**)&GenMeshHemiSphere, "GenMeshHemiSphere");
1439    lib.bindSymbol(cast(void**)&GenMeshCylinder, "GenMeshCylinder");
1440    lib.bindSymbol(cast(void**)&GenMeshCone, "GenMeshCone");
1441    lib.bindSymbol(cast(void**)&GenMeshTorus, "GenMeshTorus");
1442    lib.bindSymbol(cast(void**)&GenMeshKnot, "GenMeshKnot");
1443    lib.bindSymbol(cast(void**)&GenMeshHeightmap, "GenMeshHeightmap");
1444    lib.bindSymbol(cast(void**)&GenMeshCubicmap, "GenMeshCubicmap");
1445    lib.bindSymbol(cast(void**)&LoadMaterials, "LoadMaterials");
1446    lib.bindSymbol(cast(void**)&LoadMaterialDefault, "LoadMaterialDefault");
1447    lib.bindSymbol(cast(void**)&UnloadMaterial, "UnloadMaterial");
1448    lib.bindSymbol(cast(void**)&SetMaterialTexture, "SetMaterialTexture");
1449    lib.bindSymbol(cast(void**)&SetModelMeshMaterial, "SetModelMeshMaterial");
1450    lib.bindSymbol(cast(void**)&LoadModelAnimations, "LoadModelAnimations");
1451    lib.bindSymbol(cast(void**)&UpdateModelAnimation, "UpdateModelAnimation");
1452    lib.bindSymbol(cast(void**)&UnloadModelAnimation, "UnloadModelAnimation");
1453    lib.bindSymbol(cast(void**)&UnloadModelAnimations, "UnloadModelAnimations");
1454    lib.bindSymbol(cast(void**)&IsModelAnimationValid, "IsModelAnimationValid");
1455    lib.bindSymbol(cast(void**)&CheckCollisionSpheres, "CheckCollisionSpheres");
1456    lib.bindSymbol(cast(void**)&CheckCollisionBoxes, "CheckCollisionBoxes");
1457    lib.bindSymbol(cast(void**)&CheckCollisionBoxSphere, "CheckCollisionBoxSphere");
1458    lib.bindSymbol(cast(void**)&GetRayCollisionSphere, "GetRayCollisionSphere");
1459    lib.bindSymbol(cast(void**)&GetRayCollisionBox, "GetRayCollisionBox");
1460    lib.bindSymbol(cast(void**)&GetRayCollisionModel, "GetRayCollisionModel");
1461    lib.bindSymbol(cast(void**)&GetRayCollisionMesh, "GetRayCollisionMesh");
1462    lib.bindSymbol(cast(void**)&GetRayCollisionTriangle, "GetRayCollisionTriangle");
1463    lib.bindSymbol(cast(void**)&GetRayCollisionQuad, "GetRayCollisionQuad");
1464    lib.bindSymbol(cast(void**)&InitAudioDevice, "InitAudioDevice");
1465    lib.bindSymbol(cast(void**)&CloseAudioDevice, "CloseAudioDevice");
1466    lib.bindSymbol(cast(void**)&IsAudioDeviceReady, "IsAudioDeviceReady");
1467    lib.bindSymbol(cast(void**)&SetMasterVolume, "SetMasterVolume");
1468    lib.bindSymbol(cast(void**)&LoadWave, "LoadWave");
1469    lib.bindSymbol(cast(void**)&LoadWaveFromMemory, "LoadWaveFromMemory");
1470    lib.bindSymbol(cast(void**)&LoadSound, "LoadSound");
1471    lib.bindSymbol(cast(void**)&LoadSoundFromWave, "LoadSoundFromWave");
1472    lib.bindSymbol(cast(void**)&UpdateSound, "UpdateSound");
1473    lib.bindSymbol(cast(void**)&UnloadWave, "UnloadWave");
1474    lib.bindSymbol(cast(void**)&UnloadSound, "UnloadSound");
1475    lib.bindSymbol(cast(void**)&ExportWave, "ExportWave");
1476    lib.bindSymbol(cast(void**)&ExportWaveAsCode, "ExportWaveAsCode");
1477    lib.bindSymbol(cast(void**)&PlaySound, "PlaySound");
1478    lib.bindSymbol(cast(void**)&StopSound, "StopSound");
1479    lib.bindSymbol(cast(void**)&PauseSound, "PauseSound");
1480    lib.bindSymbol(cast(void**)&ResumeSound, "ResumeSound");
1481    lib.bindSymbol(cast(void**)&PlaySoundMulti, "PlaySoundMulti");
1482    lib.bindSymbol(cast(void**)&StopSoundMulti, "StopSoundMulti");
1483    lib.bindSymbol(cast(void**)&GetSoundsPlaying, "GetSoundsPlaying");
1484    lib.bindSymbol(cast(void**)&IsSoundPlaying, "IsSoundPlaying");
1485    lib.bindSymbol(cast(void**)&SetSoundVolume, "SetSoundVolume");
1486    lib.bindSymbol(cast(void**)&SetSoundPitch, "SetSoundPitch");
1487    lib.bindSymbol(cast(void**)&WaveFormat, "WaveFormat");
1488    lib.bindSymbol(cast(void**)&WaveCopy, "WaveCopy");
1489    lib.bindSymbol(cast(void**)&WaveCrop, "WaveCrop");
1490    lib.bindSymbol(cast(void**)&LoadWaveSamples, "LoadWaveSamples");
1491    lib.bindSymbol(cast(void**)&UnloadWaveSamples, "UnloadWaveSamples");
1492    lib.bindSymbol(cast(void**)&LoadMusicStream, "LoadMusicStream");
1493    lib.bindSymbol(cast(void**)&LoadMusicStreamFromMemory, "LoadMusicStreamFromMemory");
1494    lib.bindSymbol(cast(void**)&UnloadMusicStream, "UnloadMusicStream");
1495    lib.bindSymbol(cast(void**)&PlayMusicStream, "PlayMusicStream");
1496    lib.bindSymbol(cast(void**)&IsMusicStreamPlaying, "IsMusicStreamPlaying");
1497    lib.bindSymbol(cast(void**)&UpdateMusicStream, "UpdateMusicStream");
1498    lib.bindSymbol(cast(void**)&StopMusicStream, "StopMusicStream");
1499    lib.bindSymbol(cast(void**)&PauseMusicStream, "PauseMusicStream");
1500    lib.bindSymbol(cast(void**)&ResumeMusicStream, "ResumeMusicStream");
1501    lib.bindSymbol(cast(void**)&SeekMusicStream, "SeekMusicStream");
1502    lib.bindSymbol(cast(void**)&SetMusicVolume, "SetMusicVolume");
1503    lib.bindSymbol(cast(void**)&SetMusicPitch, "SetMusicPitch");
1504    lib.bindSymbol(cast(void**)&GetMusicTimeLength, "GetMusicTimeLength");
1505    lib.bindSymbol(cast(void**)&GetMusicTimePlayed, "GetMusicTimePlayed");
1506    lib.bindSymbol(cast(void**)&LoadAudioStream, "LoadAudioStream");
1507    lib.bindSymbol(cast(void**)&UnloadAudioStream, "UnloadAudioStream");
1508    lib.bindSymbol(cast(void**)&UpdateAudioStream, "UpdateAudioStream");
1509    lib.bindSymbol(cast(void**)&IsAudioStreamProcessed, "IsAudioStreamProcessed");
1510    lib.bindSymbol(cast(void**)&PlayAudioStream, "PlayAudioStream");
1511    lib.bindSymbol(cast(void**)&PauseAudioStream, "PauseAudioStream");
1512    lib.bindSymbol(cast(void**)&ResumeAudioStream, "ResumeAudioStream");
1513    lib.bindSymbol(cast(void**)&IsAudioStreamPlaying, "IsAudioStreamPlaying");
1514    lib.bindSymbol(cast(void**)&StopAudioStream, "StopAudioStream");
1515    lib.bindSymbol(cast(void**)&SetAudioStreamVolume, "SetAudioStreamVolume");
1516    lib.bindSymbol(cast(void**)&SetAudioStreamPitch, "SetAudioStreamPitch");
1517    lib.bindSymbol(cast(void**)&SetAudioStreamBufferSizeDefault, "SetAudioStreamBufferSizeDefault");
1518    if (errorCount() != errCount) {
1519       return RaylibSupport.badLibrary;
1520    } else {
1521       loadedVersion = RaylibSupport.raylib370;
1522    }
1523    static if (raylibSupport >= RaylibSupport.raylib400) {
1524       loadedVersion = RaylibSupport.raylib400;
1525    }
1526 
1527    return loadedVersion;
1528 }
1529