diff --git a/raylib-data-structures.md b/raylib-data-structures.md index d11aa0a..7679283 100644 --- a/raylib-data-structures.md +++ b/raylib-data-structures.md @@ -62,33 +62,76 @@ raylib slightly abuses the ability to pass-by-value. In fact, only around 10% of ### raylib functions that modify data passed by reference ```c -// core.c -char **GetDirectoryFiles(const char *dirPath, int *count); // Get filenames in a directory path (memory should be freed) -char **GetDroppedFiles(int *count); // Get dropped files names (memory should be freed) - // camera.h -void UpdateCamera(Camera *camera); // Update camera position for selected mode +void UpdateCamera(Camera *camera); // Update camera position for selected +void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation // textures.c -// NOTE: By design, MOST of the [Image*()] functions require passing an [Image *image] for modification void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture +void SetPixelColor(void *dstPtr, Color color, int format); // Set color formatted into destination pixel pointer +void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) +void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value +void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color +void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image +void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel +void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to image +void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) +void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) +void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color +void ImageMipmaps(Image *image); // Compute all mipmap levels for a provided image +void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) +void ImageFlipVertical(Image *image); // Flip image vertically +void ImageFlipHorizontal(Image *image); // Flip image horizontally +void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) +void ImageRotateCW(Image *image); // Rotate image clockwise 90deg +void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg +void ImageColorTint(Image *image, Color color); // Modify image color: tint +void ImageColorInvert(Image *image); // Modify image color: invert +void ImageColorGrayscale(Image *image); // Modify image color: grayscale +void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) +void ImageColorReplace(Image *image, Color color, Color replace); // Modify image color: replace color +void ImageClearBackground(Image *dst, Color color); // Clear image background with given color +void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image +void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) +void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image +void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image +void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image +void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) +void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image +void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) +void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image +void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) +void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image +void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) +void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) +void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) // text.c Image GenImageFontAtlas(const CharInfo *chars, Rectangle **recs, int charsCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings -int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters -int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure -const char *CodepointToUtf8(int codepoint, int *byteLength); // Encode codepoint into utf8 text (char array length returned as parameter) +void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor! +int GetCodepoint(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) // models.c -Mesh *LoadMeshes(const char *fileName, int *meshCount); // Load meshes from model file +void UploadMesh(Mesh *mesh, bool dynamic); // Upload mesh vertex data in GPU and provide VAO/VBO ids void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh ModelAnimation *LoadModelAnimations(const char *fileName, int *animsCount); // Load model animations from file void GenMeshTangents(Mesh *mesh); // Compute mesh tangents -void GenMeshBinormals(Mesh *mesh); // Compute mesh binormals -bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point -void UpdateVrTracking(Camera *camera); // Update VR tracking (position and orientation) and camera // audio.c void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format