diff --git a/examples/models/models_loading_gltf.c b/examples/models/models_loading_gltf.c index d8b34efed6ce..d5ebff237231 100644 --- a/examples/models/models_loading_gltf.c +++ b/examples/models/models_loading_gltf.c @@ -86,6 +86,7 @@ int main(void) EndMode3D(); DrawText("Use the UP/DOWN arrow keys to switch animation", 10, 10, 20, GRAY); + DrawText(TextFormat("Animation: %s", anim.name), 10, GetScreenHeight() - 20, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/src/raylib.h b/src/raylib.h index 6e5d023bfdf7..2a5a2f63f944 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -402,6 +402,7 @@ typedef struct ModelAnimation { int frameCount; // Number of animation frames BoneInfo *bones; // Bones information (skeleton) Transform **framePoses; // Poses array by frame + char name[32]; // Animation name } ModelAnimation; // Ray, ray for raycasting diff --git a/src/rmodels.c b/src/rmodels.c index 6db7016a2fb5..ba81bf3ff285 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5379,6 +5379,9 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, unsigned in animDuration = (t > animDuration)? t : animDuration; } + strncpy(animations[i].name, animData.name, sizeof(animations[i].name)); + animations[i].name[sizeof(animations[i].name) - 1] = '\0'; + animations[i].frameCount = (int)(animDuration*1000.0f/GLTF_ANIMDELAY); animations[i].framePoses = RL_MALLOC(animations[i].frameCount*sizeof(Transform *));