纳瓦里安/raylib-ffi

使用 FFI 为 PHP 提供的 Raylib 绑定

dev-main 2021-12-20 20:01 UTC

This package is auto-updated.

Last update: 2024-09-23 00:06:06 UTC


README

使用 FFI 为 PHP 提供的 Raylib 绑定。

贡献

该项目仍在开发中,欢迎贡献!

请参阅此快速指南了解如何开始贡献.

用法

请参阅 examples/ 以获取完整的实现示例。

每个程序最初看起来都像以下这样

<?php

declare(strict_types=1);

require_once __DIR__ . '/vendor/autoload.php';

use Nawarian\Raylib\Types\Color;
use function Nawarian\Raylib\{
    BeginDrawing,
    ClearBackground,
    CloseWindow,
    DrawText,
    EndDrawing,
    InitWindow,
    WindowShouldClose
};

InitWindow(800, 600, 'My raylib Window using FFI');

while (!WindowShouldClose()) {
    BeginDrawing();
        ClearBackground(Color::white());
        DrawText('Hello from raylib-ffi!', 400, 300, 20, Color::red());
    EndDrawing();
}

CloseWindow();

最近的精彩截图

以下是从 core_3d_camera_first_person 程序中捕获的截图。

它启动时生成随机建筑并创建一个 3D 第一人称摄像机,允许玩家使用 W,A,S,D 键和光标自由行走。

3D screen displaying blocks

路线图

以下是在此项目中要开发的事项列表。

项目

  • main 和 Pull Requests 上自动检查:编译 raylib 并测试 FFI 对 Linux、Windows 和 MacOS 的支持
  • Raylib 中的方法重命名为遵循 No Camel Caps 规范(PSR-1)
  • 使 RaylibFactory 检测当前操作系统并相应地加载 raylib.h
  • 创建一个 generated-functions.php 文件,该文件将通过注册全局函数来模仿 Raylib

FFI 代理

  • void InitWindow(int width, int height, const char *title)
  • bool WindowShouldClose(void)
  • void CloseWindow(void)
  • bool IsWindowReady(void)
  • bool IsWindowFullscreen(void)
  • bool IsWindowHidden(void)
  • bool IsWindowMinimized(void)
  • bool IsWindowMaximized(void)
  • bool IsWindowFocused(void)
  • bool IsWindowResized(void)
  • bool IsWindowState(unsigned int flag)
  • void SetWindowState(unsigned int flags)
  • void ClearWindowState(unsigned int flags)
  • void ToggleFullscreen(void)
  • void MaximizeWindow(void)
  • void MinimizeWindow(void)
  • void RestoreWindow(void)
  • void SetWindowIcon(Image image)
  • void SetWindowTitle(const char *title)
  • void SetWindowPosition(int x, int y)
  • void SetWindowMonitor(int monitor)
  • void SetWindowMinSize(int width, int height)
  • void SetWindowSize(int width, int height)
  • void *GetWindowHandle(void)
  • int GetScreenWidth(void)
  • int GetScreenHeight(void)
  • int GetMonitorCount(void)
  • Vector2 GetMonitorPosition(int monitor)
  • int GetMonitorWidth(int monitor)
  • int GetMonitorHeight(int monitor)
  • int GetMonitorPhysicalWidth(int monitor)
  • int GetMonitorPhysicalHeight(int monitor)
  • int GetMonitorRefreshRate(int monitor)
  • Vector2 GetWindowPosition(void)
  • Vector2 GetWindowScaleDPI(void)
  • const char *GetMonitorName(int monitor)
  • void SetClipboardText(const char *text)
  • const char *GetClipboardText(void)
  • void ShowCursor(void)
  • void HideCursor(void)
  • bool IsCursorHidden(void)
  • void EnableCursor(void)
  • void DisableCursor(void)
  • bool IsCursorOnScreen(void)
  • void ClearBackground(Color color)
  • void BeginDrawing(void)
  • void EndDrawing(void)
  • void BeginMode2D(Camera2D camera)
  • void EndMode2D(void)
  • void BeginMode3D(Camera3D camera)
  • void EndMode3D(void)
  • void BeginTextureMode(RenderTexture2D target)
  • void EndTextureMode(void)
  • void BeginScissorMode(int x, int y, int width, int height)
  • void EndScissorMode(void)
  • Ray GetMouseRay(Vector2 mousePosition, Camera camera)
  • Matrix GetCameraMatrix(Camera camera)
  • Matrix GetCameraMatrix2D(Camera2D camera)
  • Vector2 GetWorldToScreen(Vector3 position, Camera camera)
  • Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height)
  • Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera)
  • 获取屏幕到世界2D的向量 Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera)
  • 设置目标帧率 void SetTargetFPS(int fps)
  • 获取帧率 int GetFPS(void)
  • 获取帧时间 float GetFrameTime(void)
  • 获取时间 double GetTime(void)
  • 设置配置标志 void SetConfigFlags(unsigned int flags)
  • 设置跟踪日志级别 void SetTraceLogLevel(int logType)
  • 设置跟踪日志退出 void SetTraceLogExit(int logType)
  • 设置跟踪日志回调 void SetTraceLogCallback(TraceLogCallback callback)
  • 跟踪日志 void TraceLog(int logType, const char *text, ...)
  • 内存分配 void *MemAlloc(int size)
  • 内存释放 void MemFree(void *ptr)
  • 截图 void TakeScreenshot(const char *fileName)
  • 获取随机值 int GetRandomValue(int min, int max)
  • 加载文件数据 unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead)
  • 卸载文件数据 void UnloadFileData(unsigned char *data)
  • 保存文件数据 bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite)
  • 加载文件文本 char *LoadFileText(const char *fileName)
  • 卸载文件文本 void UnloadFileText(unsigned char *text)
  • 保存文件文本 bool SaveFileText(const char *fileName, char *text)
  • 文件存在 bool FileExists(const char *fileName)
  • 目录存在 bool DirectoryExists(const char *dirPath)
  • 文件扩展名 bool IsFileExtension(const char *fileName, const char *ext)
  • 获取文件扩展名 const char *GetFileExtension(const char *fileName)
  • 获取文件名 const char *GetFileName(const char *filePath)
  • 获取不带扩展名的文件名 const char *GetFileNameWithoutExt(const char *filePath)
  • 获取目录路径 const char *GetDirectoryPath(const char *filePath)
  • 获取上一级目录路径 const char *GetPrevDirectoryPath(const char *dirPath)
  • 获取工作目录 const char *GetWorkingDirectory(void)
  • 获取目录文件 char **GetDirectoryFiles(const char *dirPath, int *count)
  • 清除目录文件 void ClearDirectoryFiles(void)
  • 更改目录 bool ChangeDirectory(const char *dir)
  • 文件是否被拖动 bool IsFileDropped(void)
  • 获取拖动的文件 char **GetDroppedFiles(int *count)
  • 清除拖动的文件 void ClearDroppedFiles(void)
  • 获取文件修改时间 long GetFileModTime(const char *fileName)
  • 压缩数据 unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength)
  • 解压缩数据 unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength)
  • 保存存储值 bool SaveStorageValue(unsigned int position, int value)
  • 加载存储值 int LoadStorageValue(unsigned int position)
  • 打开URL void OpenURL(const char *url)
  • 按键是否被按下 bool IsKeyPressed(int key)
  • 按键是否按下 bool IsKeyDown(int key)
  • 按键是否释放 bool IsKeyReleased(int key)
  • 按键是否抬起 bool IsKeyUp(int key)
  • 设置退出键 void SetExitKey(int key)
  • 获取按下的键 int GetKeyPressed(void)
  • 获取按下的字符 int GetCharPressed(void)
  • 手柄是否可用 bool IsGamepadAvailable(int gamepad)
  • 手柄名称 bool IsGamepadName(int gamepad, const char *name)
  • 获取手柄名称 const char *GetGamepadName(int gamepad)
  • 手柄按钮是否被按下 bool IsGamepadButtonPressed(int gamepad, int button)
  • 手柄按钮是否按下 bool IsGamepadButtonDown(int gamepad, int button)
  • 手柄按钮是否释放 bool IsGamepadButtonReleased(int gamepad, int button)
  • 手柄按钮是否抬起 bool IsGamepadButtonUp(int gamepad, int button)
  • 获取按下的手柄按钮 int GetGamepadButtonPressed(void)
  • 获取手柄轴数量 int GetGamepadAxisCount(int gamepad)
  • 获取手柄轴移动量 float GetGamepadAxisMovement(int gamepad, int axis)
  • 鼠标按钮是否被按下 bool IsMouseButtonPressed(int button)
  • 鼠标按钮是否按下 bool IsMouseButtonDown(int button)
  • 鼠标按钮是否释放 bool IsMouseButtonReleased(int button)
  • 鼠标按钮是否抬起 bool IsMouseButtonUp(int button)
  • 获取鼠标X坐标 int GetMouseX(void)
  • 获取鼠标Y坐标 int GetMouseY(void)
  • 获取鼠标位置 Vector2 GetMousePosition(void)
  • 设置鼠标位置 void SetMousePosition(int x, int y)
  • 设置鼠标偏移量 void SetMouseOffset(int offsetX, int offsetY)
  • 设置鼠标缩放 void SetMouseScale(float scaleX, float scaleY)
  • 获取鼠标滚轮移动量 float GetMouseWheelMove(void)
  • 获取鼠标光标 int GetMouseCursor(void)
  • 设置鼠标光标 void SetMouseCursor(int cursor)
  • 获取触摸X坐标 int GetTouchX(void)
  • 获取触摸Y坐标 int GetTouchY(void)
  • 获取触摸位置 Vector2 GetTouchPosition(int index)
  • 启用手势 void SetGesturesEnabled(unsigned int gestureFlags)
  • 是否有检测到的手势 bool IsGestureDetected(int gesture)
  • 获取检测到的手势 int GetGestureDetected(void)
  • 获取触摸点数量 int GetTouchPointsCount(void)
  • 获取手势握持持续时间 float GetGestureHoldDuration(void)
  • 获取手势拖拽向量 Vector2 GetGestureDragVector(void)
  • 获取手势拖拽角度 float GetGestureDragAngle(void)
  • 获取手势捏合向量 Vector2 GetGesturePinchVector(void)
  • 获取手势捏合角度 float GetGesturePinchAngle(void)
  • 设置相机模式 void SetCameraMode(Camera camera, int mode)
  • 更新相机 void UpdateCamera(Camera *camera)
  • 设置相机平移控制键 void SetCameraPanControl(int keyPan)
  • 设置相机交替控制键 void SetCameraAltControl(int keyAlt)
  • 设置相机平滑缩放控制键 void SetCameraSmoothZoomControl(int keySmoothZoom)
  • 设置相机移动控制键 void SetCameraMoveControls(int keyFront, int keyBack, int keyRight, int keyLeft, int keyUp, int keyDown)
  • 绘制像素 void DrawPixel(int posX, int posY, Color color)
  • 绘制像素 void DrawPixelV(Vector2 position, Color color)
  • 绘制线 void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color)
  • 绘制线 void DrawLineV(Vector2 startPos, Vector2 endPos, Color color)
  • 绘制线 void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color)
  • 绘制贝塞尔线 void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color)
  • void DrawLineStrip(Vector2 *points, int pointsCount, Color color)
  • void DrawCircle(int centerX, int centerY, float radius, Color color)
  • void DrawCircleSector(Vector2 center, float radius, int startAngle, int endAngle, int segments, Color color)
  • void DrawCircleSectorLines(Vector2 center, float radius, int startAngle, int endAngle, int segments, Color color)
  • void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2)
  • void DrawCircleV(Vector2 center, float radius, Color color)
  • void DrawCircleLines(int centerX, int centerY, float radius, Color color)
  • void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color)
  • void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color)
  • void DrawRing(Vector2 center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color color)
  • void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color color)
  • void DrawRectangle(int posX, int posY, int width, int height, Color color)
  • void DrawRectangleV(Vector2 position, Vector2 size, Color color)
  • void DrawRectangleRec(Rectangle rec, Color color)
  • void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color)
  • void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2)
  • void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2)
  • void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4)
  • void DrawRectangleLines(int posX, int posY, int width, int height, Color color)
  • void DrawRectangleLinesEx(Rectangle rec, int lineThick, Color color)
  • void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color)
  • void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int lineThick, Color color)
  • void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color)
  • void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color)
  • void DrawTriangleFan(Vector2 *points, int pointsCount, Color color)
  • void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color)
  • void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color)
  • void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color)
  • bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2)
  • bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2)
  • bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec)
  • bool CheckCollisionPointRec(Vector2 point, Rectangle rec)
  • bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius)
  • bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3)
  • bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint)
  • Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2)
  • Image LoadImage(const char *fileName)
  • Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize)
  • Image LoadImageAnim(const char *fileName, int *frames)
  • Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize)
  • void UnloadImage(Image image)
  • bool ExportImage(Image image, const char *fileName)
  • bool ExportImageAsCode(Image image, const char *fileName)
  • Image GenImageColor(int width, int height, Color color)
  • Image GenImageGradientV(int width, int height, Color top, Color bottom)
  • Image GenImageGradientH(int width, int height, Color left, Color right)
  • Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer)
  • Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2)
  • Image GenImageWhiteNoise(int width, int height, float factor)
  • Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale)
  • Image GenImageCellular(int width, int height, int tileSize)
  • Image ImageCopy(Image image)
  • Image ImageFromImage(Image image, Rectangle rec)
  • Image ImageText(const char *text, int fontSize, Color color)
  • Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint)
  • void ImageFormat(Image *image, int newFormat)
  • void ImageToPOT(Image *image, Color fill)
  • void ImageCrop(Image *image, Rectangle crop)
  • void ImageAlphaCrop(Image *image, float threshold)
  • void ImageAlphaClear(Image *image, Color color, float threshold)
  • void ImageAlphaMask(Image *image, Image alphaMask)
  • void ImageAlphaPremultiply(Image *image)
  • void ImageResize(Image *image, int newWidth, int newHeight)
  • void ImageResizeNN(Image *image, int newWidth, int newHeight)
  • void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill)
  • void ImageMipmaps(Image *image)
  • void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp)
  • void ImageFlipVertical(Image *image)
  • void ImageFlipHorizontal(Image *image)
  • void ImageRotateCW(Image *image)
  • void ImageRotateCCW(Image *image)
  • void ImageColorTint(Image *image, Color color)
  • void ImageColorInvert(Image *image)
  • void ImageColorGrayscale(Image *image)
  • void ImageColorContrast(Image *image, float contrast)
  • void ImageColorBrightness(Image *image, int brightness)
  • void ImageColorReplace(Image *image, Color color, Color replace)
  • Color *LoadImageColors(Image image)
  • Color *LoadImagePalette(Image image, int maxPaletteSize, int *colorsCount)
  • void UnloadImageColors(Color *colors)
  • void UnloadImagePalette(Color *colors)
  • Rectangle GetImageAlphaBorder(Image image, float threshold)
  • void ImageClearBackground(Image *dst, Color color)
  • void ImageDrawPixel(Image *dst, int posX, int posY, Color color)
  • void ImageDrawPixelV(Image *dst, Vector2 position, Color color)
  • void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color)
  • void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color)
  • void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color)
  • void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color)
  • void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color)
  • void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color)
  • void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color)
  • void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color)
  • void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint)
  • void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color)
  • void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint)
  • Texture2D LoadTexture(const char *fileName)
  • Texture2D LoadTextureFromImage(Image image)
  • TextureCubemap LoadTextureCubemap(Image image, int layoutType)
  • RenderTexture2D LoadRenderTexture(int width, int height)
  • void UnloadTexture(Texture2D texture)
  • void UnloadRenderTexture(RenderTexture2D target)
  • void UpdateTexture(Texture2D texture, const void *pixels)
  • void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels)
  • Image GetTextureData(Texture2D texture)
  • Image GetScreenData(void)
  • void GenTextureMipmaps(Texture2D *texture)
  • void SetTextureFilter(Texture2D texture, int filterMode)
  • void SetTextureWrap(Texture2D texture, int wrapMode)
  • void DrawTexture(Texture2D texture, int posX, int posY, Color tint)
  • void DrawTextureV(Texture2D texture, Vector2 position, Color tint)
  • void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint)
  • void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint)
  • void DrawTextureQuad(Texture2D texture, Vector2 tiling, Vector2 offset, Rectangle quad, Color tint)
  • void DrawTextureTiled(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, float scale, Color tint)
  • void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint)
  • void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint)
  • Color Fade(Color color, float alpha)
  • int ColorToInt(Color color)
  • Vector4 ColorNormalize(Color color)
  • Color ColorFromNormalized(Vector4 normalized)
  • Vector3 ColorToHSV(Color color)
  • Color ColorFromHSV(float hue, float saturation, float value)
  • Color ColorAlpha(Color color, float alpha)
  • Color ColorAlphaBlend(Color dst, Color src, Color tint)
  • Color GetColor(int hexValue)
  • Color GetPixelColor(void *srcPtr, int format)
  • void SetPixelColor(void *dstPtr, Color color, int format)
  • int GetPixelDataSize(int width, int height, int format)
  • Font GetFontDefault(void)
  • Font LoadFont(const char *fileName)
  • Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int charsCount)
  • Font LoadFontFromImage(Image image, Color key, int firstChar)
  • Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount)
  • CharInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount, int type)
  • Image GenImageFontAtlas(const CharInfo *chars, Rectangle **recs, int charsCount, int fontSize, int padding, int packMethod)
  • void UnloadFontData(CharInfo *chars, int charsCount)
  • void UnloadFont(Font font)
  • void DrawFPS(int posX, int posY)
  • void DrawText(const char *text, int posX, int posY, int fontSize, Color color)
  • void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint)
  • void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint)
  • void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint)
  • void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSize, Color tint)
  • int MeasureText(const char *text, int fontSize)
  • Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing)
  • int GetGlyphIndex(Font font, int codepoint)
  • int TextCopy(char *dst, const char *src)
  • bool TextIsEqual(const char *text1, const char *text2)
  • unsigned int TextLength(const char *text)
  • const char *TextFormat(const char *text, ...)
  • const char *TextSubtext(const char *text, int position, int length)
  • char *TextReplace(char *text, const char *replace, const char *by)
  • char *TextInsert(const char *text, const char *insert, int position)
  • const char *TextJoin(const char **textList, int count, const char *delimiter)
  • const char **TextSplit(const char *text, char delimiter, int *count)
  • void TextAppend(char *text, const char *append, int *position)
  • int TextFindIndex(const char *text, const char *find)
  • const char *TextToUpper(const char *text)
  • const char *TextToLower(const char *text)
  • const char *TextToPascal(const char *text)
  • int TextToInteger(const char *text)
  • char *TextToUtf8(int *codepoints, int length)
  • int *GetCodepoints(const char *text, int *count)
  • int GetCodepointsCount(const char *text)
  • int GetNextCodepoint(const char *text, int *bytesProcessed)
  • const char *CodepointToUtf8(int codepoint, int *byteLength)
  • void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color)
  • void DrawPoint3D(Vector3 position, Color color)
  • void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color)
  • void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color)
  • void DrawTriangleStrip3D(Vector3 *points, int pointsCount, Color color)
  • void DrawCube(Vector3 position, float width, float height, float length, Color color)
  • void DrawCubeV(Vector3 position, Vector3 size, Color color)
  • void DrawCubeWires(Vector3 position, float width, float height, float length, Color color)
  • void DrawCubeWiresV(Vector3 position, Vector3 size, Color color)
  • void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float length, Color color)
  • void DrawSphere(Vector3 centerPos, float radius, Color color)
  • void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color)
  • void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color)
  • void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color)
  • void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color)
  • void DrawPlane(Vector3 centerPos, Vector2 size, Color color)
  • void DrawRay(Ray ray, Color color)
  • void DrawGrid(int slices, float spacing)
  • void DrawGizmo(Vector3 position)
  • Model LoadModel(const char *fileName)
  • Model LoadModelFromMesh(Mesh mesh)
  • void UnloadModel(Model model)
  • void UnloadModelKeepMeshes(Model model)
  • Mesh *LoadMeshes(const char *fileName, int *meshCount)
  • void UnloadMesh(Mesh mesh)
  • bool ExportMesh(Mesh mesh, const char *fileName)
  • Material *LoadMaterials(const char *fileName, int *materialCount)
  • Material LoadMaterialDefault(void)
  • void UnloadMaterial(Material material)
  • void SetMaterialTexture(Material *material, int mapType, Texture2D texture)
  • void SetModelMeshMaterial(Model *model, int meshId, int materialId)
  • ModelAnimation *LoadModelAnimations(const char *fileName, int *animsCount)
  • void UpdateModelAnimation(Model model, ModelAnimation anim, int frame)
  • void UnloadModelAnimation(ModelAnimation anim)
  • bool IsModelAnimationValid(Model model, ModelAnimation anim)
  • Mesh GenMeshPoly(int sides, float radius)
  • Mesh GenMeshPlane(float width, float length, int resX, int resZ)
  • Mesh GenMeshCube(float width, float height, float length)
  • Mesh GenMeshSphere(float radius, int rings, int slices)
  • Mesh GenMeshHemiSphere(float radius, int rings, int slices)
  • Mesh GenMeshCylinder(float radius, float height, int slices)
  • Mesh GenMeshTorus(float radius, float size, int radSeg, int sides)
  • Mesh GenMeshKnot(float radius, float size, int radSeg, int sides)
  • Mesh GenMeshHeightmap(Image heightmap, Vector3 size)
  • Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize)
  • BoundingBox MeshBoundingBox(Mesh mesh)
  • void MeshTangents(Mesh *mesh)
  • void MeshBinormals(Mesh *mesh)
  • void MeshNormalsSmooth(Mesh *mesh)
  • void DrawModel(Model model, Vector3 position, float scale, Color tint)
  • void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint)
  • void DrawModelWires(Model model, Vector3 position, float scale, Color tint)
  • void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint)
  • void DrawBoundingBox(BoundingBox box, Color color)
  • void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint)
  • void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 center, float size, Color tint)
  • bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2)
  • bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2)
  • bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius)
  • bool CheckCollisionRaySphere(Ray ray, Vector3 center, float radius)
  • bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint)
  • bool CheckCollisionRayBox(Ray ray, BoundingBox box)
  • RayHitInfo GetCollisionRayMesh(Ray ray, Mesh mesh, Matrix transform)
  • RayHitInfo GetCollisionRayModel(Ray ray, Model model)
  • RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3)
  • RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight)
  • Shader LoadShader(const char *vsFileName, const char *fsFileName)
  • Shader LoadShaderCode(const char *vsCode, const char *fsCode)
  • void UnloadShader(Shader shader)
  • Shader GetShaderDefault(void)
  • Texture2D GetTextureDefault(void)
  • Texture2D GetShapesTexture(void)
  • Rectangle GetShapesTextureRec(void)
  • void SetShapesTexture(Texture2D texture, Rectangle source)
  • int GetShaderLocation(Shader shader, const char *uniformName)
  • int GetShaderLocationAttrib(Shader shader, const char *attribName)
  • void SetShaderValue(Shader shader, int uniformLoc, const void *value, int uniformType)
  • void SetShaderValueV(Shader shader, int uniformLoc, const void *value, int uniformType, int count)
  • void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat)
  • void SetShaderValueTexture(Shader shader, int uniformLoc, Texture2D texture)
  • void SetMatrixProjection(Matrix proj)
  • void SetMatrixModelview(Matrix view)
  • Matrix GetMatrixModelview(void)
  • Matrix GetMatrixProjection(void)
  • TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format)
  • TextureCubemap GenTextureIrradiance(Shader shader, TextureCubemap cubemap, int size)
  • TextureCubemap GenTexturePrefilter(Shader shader, TextureCubemap cubemap, int size)
  • Texture2D GenTextureBRDF(Shader shader, int size)
  • void BeginShaderMode(Shader shader)
  • void EndShaderMode(void)
  • void BeginBlendMode(int mode)
  • void EndBlendMode(void)
  • void InitVrSimulator(void)
  • void CloseVrSimulator(void)
  • void UpdateVrTracking(Camera *camera)
  • void SetVrConfiguration(VrDeviceInfo info, Shader distortion)
  • bool IsVrSimulatorReady(void)
  • void ToggleVrMode(void)
  • void BeginVrDrawing(void)
  • void EndVrDrawing(void)
  • void InitAudioDevice(void)
  • void CloseAudioDevice(void)
  • bool IsAudioDeviceReady(void)
  • void SetMasterVolume(float volume)
  • Wave LoadWave(const char *fileName)
  • Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize)
  • Sound LoadSound(const char *fileName)
  • Sound LoadSoundFromWave(Wave wave)
  • void UpdateSound(Sound sound, const void *data, int samplesCount)
  • void UnloadWave(Wave wave)
  • void UnloadSound(Sound sound)
  • bool ExportWave(Wave wave, const char *fileName)
  • bool ExportWaveAsCode(Wave wave, const char *fileName)
  • void PlaySound(Sound sound)
  • void StopSound(Sound sound)
  • void PauseSound(Sound sound)
  • void ResumeSound(Sound sound)
  • void PlaySoundMulti(Sound sound)
  • void StopSoundMulti(void)
  • int GetSoundsPlaying(void)
  • bool IsSoundPlaying(Sound sound)
  • void SetSoundVolume(Sound sound, float volume)
  • void SetSoundPitch(Sound sound, float pitch)
  • void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels)
  • Wave WaveCopy(Wave wave)
  • void WaveCrop(Wave *wave, int initSample, int finalSample)
  • float *LoadWaveSamples(Wave wave)
  • void UnloadWaveSamples(float *samples)
  • Music LoadMusicStream(const char *fileName)
  • void UnloadMusicStream(Music music)
  • void PlayMusicStream(Music music)
  • void UpdateMusicStream(Music music)
  • void StopMusicStream(Music music)
  • void PauseMusicStream(Music music)
  • void ResumeMusicStream(Music music)
  • bool IsMusicPlaying(Music music)
  • void SetMusicVolume(Music music, float volume)
  • void SetMusicPitch(Music music, float pitch)
  • float GetMusicTimeLength(Music music)
  • float GetMusicTimePlayed(Music music)
  • AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels)
  • void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount)
  • void CloseAudioStream(AudioStream stream)
  • bool IsAudioStreamProcessed(AudioStream stream)
  • void PlayAudioStream(AudioStream stream)
  • void PauseAudioStream(AudioStream stream)
  • void ResumeAudioStream(AudioStream stream)
  • bool IsAudioStreamPlaying(AudioStream stream)
  • void StopAudioStream(AudioStream stream)
  • void SetAudioStreamVolume(AudioStream stream, float volume)
  • void SetAudioStreamPitch(AudioStream stream, float pitch)
  • void SetAudioStreamBufferSizeDefault(int size)

Ray Math

  • float Clamp(float value, float min, float max)
  • float Lerp(float start, float end, float amount)
  • float Normalize(float value, float start, float end)
  • float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd)
  • Vector2 Vector2Zero(void)
  • Vector2 Vector2One(void)
  • Vector2 Vector2Add(Vector2 v1, Vector2 v2)
  • Vector2 Vector2AddValue(Vector2 v, float add)
  • Vector2 Vector2Subtract(Vector2 v1, Vector2 v2)
  • Vector2 Vector2SubtractValue(Vector2 v, float sub)
  • float Vector2Length(Vector2 v)
  • float Vector2LengthSqr(Vector2 v)
  • float Vector2DotProduct(Vector2 v1, Vector2 v2)
  • float Vector2Distance(Vector2 v1, Vector2 v2)
  • float Vector2Angle(Vector2 v1, Vector2 v2)
  • Vector2 Vector2Scale(Vector2 v, float scale)
  • Vector2 Vector2Multiply(Vector2 v1, Vector2 v2)
  • Vector2 Vector2Negate(Vector2 v)
  • Vector2 Vector2Divide(Vector2 v1, Vector2 v2)
  • Vector2 Vector2Normalize(Vector2 v)
  • Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount)
  • Vector2 Vector2Reflect(Vector2 v, Vector2 normal)
  • Vector2 Vector2Rotate(Vector2 v, float degs)
  • Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance)
  • Vector3 Vector3Zero(void)
  • Vector3 Vector3One(void)
  • Vector3 Vector3Add(Vector3 v1, Vector3 v2)
  • Vector3 Vector3AddValue(Vector3 v, float add)
  • Vector3 Vector3Subtract(Vector3 v1, Vector3 v2)
  • Vector3 Vector3SubtractValue(Vector3 v, float sub)
  • Vector3 Vector3Scale(Vector3 v, float scalar)
  • Vector3 Vector3Multiply(Vector3 v1, Vector3 v2)
  • Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2)
  • Vector3 Vector3Perpendicular(Vector3 v)
  • float Vector3Length(const Vector3 v)
  • float Vector3LengthSqr(const Vector3 v)
  • float Vector3DotProduct(Vector3 v1, Vector3 v2)
  • float Vector3Distance(Vector3 v1, Vector3 v2)
  • Vector3 Vector3Negate(Vector3 v)
  • Vector3 Vector3Divide(Vector3 v1, Vector3 v2)
  • Vector3 Vector3Normalize(Vector3 v)
  • void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2)
  • Vector3 Vector3Transform(Vector3 v, Matrix mat)
  • Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q)
  • Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount)
  • Vector3 Vector3Reflect(Vector3 v, Vector3 normal)
  • Vector3 Vector3Min(Vector3 v1, Vector3 v2)
  • Vector3 Vector3Max(Vector3 v1, Vector3 v2)
  • Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c)
  • float3 Vector3ToFloatV(Vector3 v)
  • float MatrixDeterminant(Matrix mat)
  • float MatrixTrace(Matrix mat)
  • Matrix MatrixTranspose(Matrix mat)
  • Matrix MatrixInvert(Matrix mat)
  • Matrix MatrixNormalize(Matrix mat)
  • Matrix MatrixIdentity(void)
  • Matrix MatrixAdd(Matrix left, Matrix right)
  • Matrix MatrixSubtract(Matrix left, Matrix right)
  • Matrix MatrixMultiply(Matrix left, Matrix right)
  • Matrix MatrixTranslate(float x, float y, float z)
  • Matrix MatrixRotate(Vector3 axis, float angle)
  • Matrix MatrixRotateX(float angle)
  • Matrix MatrixRotateY(float angle)
  • Matrix MatrixRotateZ(float angle)
  • Matrix MatrixRotateXYZ(Vector3 ang)
  • Matrix MatrixRotateZYX(Vector3 ang)
  • Matrix MatrixScale(float x, float y, float z)
  • Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far)
  • Matrix MatrixPerspective(double fovy, double aspect, double near, double far)
  • Matrix MatrixOrtho(double left, double right, double bottom, double top, double near, double far)
  • Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up)
  • float16 MatrixToFloatV(Matrix mat)
  • Quaternion QuaternionAdd(Quaternion q1, Quaternion q2)
  • Quaternion QuaternionAddValue(Quaternion q, float add)
  • Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2)
  • Quaternion QuaternionSubtractValue(Quaternion q, float sub)
  • Quaternion QuaternionIdentity(void)
  • float QuaternionLength(Quaternion q)
  • Quaternion QuaternionNormalize(Quaternion q)
  • Quaternion QuaternionInvert(Quaternion q)
  • Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2)
  • Quaternion QuaternionScale(Quaternion q, float mul)
  • Quaternion QuaternionDivide(Quaternion q1, Quaternion q2)
  • Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount)
  • Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount)
  • Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount)
  • Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to)
  • Quaternion QuaternionFromMatrix(Matrix mat)
  • Matrix QuaternionToMatrix(Quaternion q)
  • Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle)
  • void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle)
  • Quaternion QuaternionFromEuler(float pitch, float yaw, float roll)
  • Vector3 QuaternionToEuler(Quaternion q)
  • Quaternion QuaternionTransform(Quaternion q, Matrix mat)
  • Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view)

示例