mirror of
https://github.com/raysan5/raylib.git
synced 2026-02-20 20:49:17 -05:00
[rmodels] Added implementation of UpdateModelAnimationBonesWithBlending() function (#4578)
* [rmodels] Added implementation of `UpdateModelAnimationBonesWithBlending()` function Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * [rmodels] Added example for animation blending and fixed wrap issue for blend factor Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * [rmodels] Updated build information for animation blending example Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * [rmodels] Fixed typos in anmation blending example Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * [rmodels] Updated blend function signature and added function to update verts from bones Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * [rmodels] Updated documentation Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> * rlparser: update raylib_api.* by CI * rlparser: update raylib_api.* by CI --------- Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com> Co-authored-by: Ray <raysan5@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
97023def48
commit
0e6cb0993d
152
examples/models/models_animation_blending.c
Normal file
152
examples/models/models_animation_blending.c
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raylib [core] example - Model animation blending
|
||||||
|
*
|
||||||
|
* Example originally created with raylib 5.5
|
||||||
|
*
|
||||||
|
* Example contributed by Kirandeep (@Kirandeep-Singh-Khehra)
|
||||||
|
*
|
||||||
|
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
|
||||||
|
* BSD-like license that allows static linking with closed source software
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 Kirandeep (@Kirandeep-Singh-Khehra)
|
||||||
|
*
|
||||||
|
* Note: Due to limitations in the Apple OpenGL driver, this feature does not work on MacOS
|
||||||
|
* Note: This example uses CPU for updating meshes.
|
||||||
|
* For GPU skinning see comments with 'INFO:'.
|
||||||
|
*
|
||||||
|
********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#define clamp(x,a,b) ((x < a)? a : (x > b)? b : x)
|
||||||
|
|
||||||
|
#if defined(PLATFORM_DESKTOP)
|
||||||
|
#define GLSL_VERSION 330
|
||||||
|
#else // PLATFORM_ANDROID, PLATFORM_WEB
|
||||||
|
#define GLSL_VERSION 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
const int screenWidth = 800;
|
||||||
|
const int screenHeight = 450;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raylib [models] example - Model Animation Blending");
|
||||||
|
|
||||||
|
// Define the camera to look into our 3d world
|
||||||
|
Camera camera = { 0 };
|
||||||
|
camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; // Camera position
|
||||||
|
camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point
|
||||||
|
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
||||||
|
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||||
|
camera.projection = CAMERA_PERSPECTIVE; // Camera projection type
|
||||||
|
|
||||||
|
// Load gltf model
|
||||||
|
Model characterModel = LoadModel("resources/models/gltf/robot.glb"); // Load character model
|
||||||
|
|
||||||
|
/* INFO: Uncomment this to use GPU skinning
|
||||||
|
// Load skinning shader
|
||||||
|
Shader skinningShader = LoadShader(TextFormat("resources/shaders/glsl%i/skinning.vs", GLSL_VERSION),
|
||||||
|
TextFormat("resources/shaders/glsl%i/skinning.fs", GLSL_VERSION));
|
||||||
|
|
||||||
|
for (int i = 0; i < characterModel.materialCount; i++)
|
||||||
|
{
|
||||||
|
characterModel.materials[i].shader = skinningShader;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load gltf model animations
|
||||||
|
int animsCount = 0;
|
||||||
|
unsigned int animIndex0 = 0;
|
||||||
|
unsigned int animIndex1 = 0;
|
||||||
|
unsigned int animCurrentFrame = 0;
|
||||||
|
ModelAnimation *modelAnimations = LoadModelAnimations("resources/models/gltf/robot.glb", &animsCount);
|
||||||
|
|
||||||
|
float blendFactor = 0.5f;
|
||||||
|
|
||||||
|
DisableCursor(); // Limit cursor to relative movement inside the window
|
||||||
|
|
||||||
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main game loop
|
||||||
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Update
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
UpdateCamera(&camera, CAMERA_THIRD_PERSON);
|
||||||
|
|
||||||
|
// Select current animation
|
||||||
|
if (IsKeyPressed(KEY_T)) animIndex0 = (animIndex0 + 1)%animsCount;
|
||||||
|
else if (IsKeyPressed(KEY_G)) animIndex0 = (animIndex0 + animsCount - 1)%animsCount;
|
||||||
|
if (IsKeyPressed(KEY_Y)) animIndex1 = (animIndex1 + 1)%animsCount;
|
||||||
|
else if (IsKeyPressed(KEY_H)) animIndex1 = (animIndex1 + animsCount - 1)%animsCount;
|
||||||
|
|
||||||
|
// Select blend factor
|
||||||
|
if (IsKeyPressed(KEY_U)) blendFactor = clamp(blendFactor - 0.1, 0.0f, 1.0f);
|
||||||
|
else if (IsKeyPressed(KEY_J)) blendFactor = clamp(blendFactor + 0.1, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
// Update animation
|
||||||
|
animCurrentFrame++;
|
||||||
|
|
||||||
|
// Update bones
|
||||||
|
// Note: Same animation frame index is used below. By default it loops both animations
|
||||||
|
UpdateModelAnimationBonesLerp(characterModel, modelAnimations[animIndex0], animCurrentFrame, modelAnimations[animIndex1], animCurrentFrame, blendFactor);
|
||||||
|
|
||||||
|
// INFO: Comment the following line to use GPU skinning
|
||||||
|
UpdateModelVertsToCurrentBones(characterModel);
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
|
BeginMode3D(camera);
|
||||||
|
|
||||||
|
/* INFO: Uncomment this to use GPU skinning
|
||||||
|
// Draw character mesh, pose calculation is done in shader (GPU skinning)
|
||||||
|
for (int i = 0; i < characterModel.meshCount; i++)
|
||||||
|
{
|
||||||
|
DrawMesh(characterModel.meshes[i], characterModel.materials[characterModel.meshMaterial[i]], characterModel.transform);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// INFO: Comment the following line to use GPU skinning
|
||||||
|
DrawModel(characterModel, (Vector3){0.0f, 0.0f, 0.0f}, 1.0f, WHITE);
|
||||||
|
|
||||||
|
|
||||||
|
DrawGrid(10, 1.0f);
|
||||||
|
|
||||||
|
EndMode3D();
|
||||||
|
|
||||||
|
DrawText("Use the U/J to adjust blend factor", 10, 10, 20, GRAY);
|
||||||
|
DrawText("Use the T/G to switch first animation", 10, 30, 20, GRAY);
|
||||||
|
DrawText("Use the Y/H to switch second animation", 10, 50, 20, GRAY);
|
||||||
|
DrawText(TextFormat("Animations: %s, %s", modelAnimations[animIndex0].name, modelAnimations[animIndex1].name), 10, 70, 20, BLACK);
|
||||||
|
DrawText(TextFormat("Blend Factor: %f", blendFactor), 10, 86, 20, BLACK);
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
// De-Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
UnloadModelAnimations(modelAnimations, animsCount); // Unload model animation
|
||||||
|
UnloadModel(characterModel); // Unload model and meshes/material
|
||||||
|
|
||||||
|
// INFO: Uncomment the following line to use GPU skinning
|
||||||
|
// UnloadShader(skinningShader); // Unload GPU skinning shader
|
||||||
|
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
BIN
examples/models/models_animation_blending.png
Normal file
BIN
examples/models/models_animation_blending.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
387
projects/VS2022/examples/models_animation_blending.vcxproj
Normal file
387
projects/VS2022/examples/models_animation_blending.vcxproj
Normal file
@ -0,0 +1,387 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug.DLL|Win32">
|
||||||
|
<Configuration>Debug.DLL</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug.DLL|x64">
|
||||||
|
<Configuration>Debug.DLL</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release.DLL|Win32">
|
||||||
|
<Configuration>Release.DLL</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release.DLL|x64">
|
||||||
|
<Configuration>Release.DLL</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{AFDDE100-2D36-4749-817D-12E54C56312F}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>models_animation_blending</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
<ProjectName>models_animation_blending</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
|
||||||
|
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\examples\models</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalOptions>/FS %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
|
||||||
|
<Message>Copy Debug DLL to output directory</Message>
|
||||||
|
</PostBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
|
||||||
|
<Message>Copy Debug DLL to output directory</Message>
|
||||||
|
</PostBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy Release DLL to output directory</Message>
|
||||||
|
</PostBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Message>Copy Release DLL to output directory</Message>
|
||||||
|
</PostBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\..\examples\models\models_animation_blending.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\raylib\raylib.vcxproj">
|
||||||
|
<Project>{e89d61ac-55de-4482-afd4-df7242ebc859}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
@ -1621,6 +1621,8 @@ RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId);
|
|||||||
RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file
|
RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file
|
||||||
RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU)
|
RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU)
|
||||||
RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning)
|
RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning)
|
||||||
|
RLAPI void UpdateModelAnimationBonesLerp(Model model, ModelAnimation animA, int frameA, ModelAnimation animB, int frameB, float value); // Update model animation mesh bone matrices with interpolation between two poses(GPU skinning)
|
||||||
|
RLAPI void UpdateModelVertsToCurrentBones(Model model); // Update model vertices according to mesh bone matrices (CPU)
|
||||||
RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data
|
RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data
|
||||||
RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // Unload animation array data
|
RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // Unload animation array data
|
||||||
RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match
|
RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match
|
||||||
|
|||||||
@ -2346,12 +2346,70 @@ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// at least 2x speed up vs the old method
|
// Update model animated bones transform matrices by interpolating between two different given frames of different ModelAnimation(could be same too)
|
||||||
// Update model animated vertex data (positions and normals) for a given frame
|
// NOTE: Updated data is not uploaded to GPU but kept at model.meshes[i].boneMatrices[boneId],
|
||||||
// NOTE: Updated data is uploaded to GPU
|
// to be uploaded to shader at drawing, in case GPU skinning is enabled
|
||||||
void UpdateModelAnimation(Model model, ModelAnimation anim, int frame)
|
void UpdateModelAnimationBonesLerp(Model model, ModelAnimation animA, int frameA, ModelAnimation animB, int frameB, float value)
|
||||||
{
|
{
|
||||||
UpdateModelAnimationBones(model,anim,frame);
|
if ((animA.frameCount > 0) && (animA.bones != NULL) && (animA.framePoses != NULL) &&
|
||||||
|
(animB.frameCount > 0) && (animB.bones != NULL) && (animB.framePoses != NULL) &&
|
||||||
|
(value >= 0.0f) && (value <= 1.0f))
|
||||||
|
{
|
||||||
|
frameA = frameA % animA.frameCount;
|
||||||
|
frameB = frameB % animB.frameCount;
|
||||||
|
|
||||||
|
for (int i = 0; i < model.meshCount; i++)
|
||||||
|
{
|
||||||
|
if (model.meshes[i].boneMatrices)
|
||||||
|
{
|
||||||
|
assert(model.meshes[i].boneCount == animA.boneCount);
|
||||||
|
assert(model.meshes[i].boneCount == animB.boneCount);
|
||||||
|
|
||||||
|
for (int boneId = 0; boneId < model.meshes[i].boneCount; boneId++)
|
||||||
|
{
|
||||||
|
Vector3 inTranslation = model.bindPose[boneId].translation;
|
||||||
|
Quaternion inRotation = model.bindPose[boneId].rotation;
|
||||||
|
Vector3 inScale = model.bindPose[boneId].scale;
|
||||||
|
|
||||||
|
Vector3 outATranslation = animA.framePoses[frameA][boneId].translation;
|
||||||
|
Quaternion outARotation = animA.framePoses[frameA][boneId].rotation;
|
||||||
|
Vector3 outAScale = animA.framePoses[frameA][boneId].scale;
|
||||||
|
|
||||||
|
Vector3 outBTranslation = animB.framePoses[frameB][boneId].translation;
|
||||||
|
Quaternion outBRotation = animB.framePoses[frameB][boneId].rotation;
|
||||||
|
Vector3 outBScale = animB.framePoses[frameB][boneId].scale;
|
||||||
|
|
||||||
|
Vector3 outTranslation = Vector3Lerp(outATranslation, outBTranslation, value);
|
||||||
|
Quaternion outRotation = QuaternionSlerp(outARotation, outBRotation, value);
|
||||||
|
Vector3 outScale = Vector3Lerp(outAScale, outBScale, value);
|
||||||
|
|
||||||
|
Vector3 invTranslation = Vector3RotateByQuaternion(Vector3Negate(inTranslation), QuaternionInvert(inRotation));
|
||||||
|
Quaternion invRotation = QuaternionInvert(inRotation);
|
||||||
|
Vector3 invScale = Vector3Divide((Vector3){ 1.0f, 1.0f, 1.0f }, inScale);
|
||||||
|
|
||||||
|
Vector3 boneTranslation = Vector3Add(
|
||||||
|
Vector3RotateByQuaternion(Vector3Multiply(outScale, invTranslation),
|
||||||
|
outRotation), outTranslation);
|
||||||
|
Quaternion boneRotation = QuaternionMultiply(outRotation, invRotation);
|
||||||
|
Vector3 boneScale = Vector3Multiply(outScale, invScale);
|
||||||
|
|
||||||
|
Matrix boneMatrix = MatrixMultiply(MatrixMultiply(
|
||||||
|
QuaternionToMatrix(boneRotation),
|
||||||
|
MatrixTranslate(boneTranslation.x, boneTranslation.y, boneTranslation.z)),
|
||||||
|
MatrixScale(boneScale.x, boneScale.y, boneScale.z));
|
||||||
|
|
||||||
|
model.meshes[i].boneMatrices[boneId] = boneMatrix;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update model vertex data (positions and normals) from mesh bone data
|
||||||
|
// NOTE: Updated data is uploaded to GPU
|
||||||
|
void UpdateModelVertsToCurrentBones(Model model)
|
||||||
|
{
|
||||||
|
//UpdateModelAnimationBones(model, anim, frame); // TODO: Review
|
||||||
|
|
||||||
for (int m = 0; m < model.meshCount; m++)
|
for (int m = 0; m < model.meshCount; m++)
|
||||||
{
|
{
|
||||||
@ -2416,6 +2474,15 @@ void UpdateModelAnimation(Model model, ModelAnimation anim, int frame)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// at least 2x speed up vs the old method
|
||||||
|
// Update model animated vertex data (positions and normals) for a given frame
|
||||||
|
// NOTE: Updated data is uploaded to GPU
|
||||||
|
void UpdateModelAnimation(Model model, ModelAnimation anim, int frame)
|
||||||
|
{
|
||||||
|
UpdateModelAnimationBones(model,anim,frame);
|
||||||
|
UpdateModelVertsToCurrentBones(model);
|
||||||
|
}
|
||||||
|
|
||||||
// Unload animation array data
|
// Unload animation array data
|
||||||
void UnloadModelAnimations(ModelAnimation *animations, int animCount)
|
void UnloadModelAnimations(ModelAnimation *animations, int animCount)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -11436,6 +11436,48 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "UpdateModelAnimationBonesLerp",
|
||||||
|
"description": "Update model animation mesh bone matrices with interpolation between two poses(GPU skinning)",
|
||||||
|
"returnType": "void",
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Model",
|
||||||
|
"name": "model"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ModelAnimation",
|
||||||
|
"name": "animA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "int",
|
||||||
|
"name": "frameA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ModelAnimation",
|
||||||
|
"name": "animB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "int",
|
||||||
|
"name": "frameB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "float",
|
||||||
|
"name": "value"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UpdateModelVertsToCurrentBones",
|
||||||
|
"description": "Update model vertices according to mesh bone matrices (CPU)",
|
||||||
|
"returnType": "void",
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Model",
|
||||||
|
"name": "model"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "UnloadModelAnimation",
|
"name": "UnloadModelAnimation",
|
||||||
"description": "Unload animation data",
|
"description": "Unload animation data",
|
||||||
|
|||||||
@ -7812,6 +7812,27 @@ return {
|
|||||||
{type = "int", name = "frame"}
|
{type = "int", name = "frame"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name = "UpdateModelAnimationBonesLerp",
|
||||||
|
description = "Update model animation mesh bone matrices with interpolation between two poses(GPU skinning)",
|
||||||
|
returnType = "void",
|
||||||
|
params = {
|
||||||
|
{type = "Model", name = "model"},
|
||||||
|
{type = "ModelAnimation", name = "animA"},
|
||||||
|
{type = "int", name = "frameA"},
|
||||||
|
{type = "ModelAnimation", name = "animB"},
|
||||||
|
{type = "int", name = "frameB"},
|
||||||
|
{type = "float", name = "value"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "UpdateModelVertsToCurrentBones",
|
||||||
|
description = "Update model vertices according to mesh bone matrices (CPU)",
|
||||||
|
returnType = "void",
|
||||||
|
params = {
|
||||||
|
{type = "Model", name = "model"}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "UnloadModelAnimation",
|
name = "UnloadModelAnimation",
|
||||||
description = "Unload animation data",
|
description = "Unload animation data",
|
||||||
|
|||||||
@ -992,7 +992,7 @@ Callback 006: AudioCallback() (2 input parameters)
|
|||||||
Param[1]: bufferData (type: void *)
|
Param[1]: bufferData (type: void *)
|
||||||
Param[2]: frames (type: unsigned int)
|
Param[2]: frames (type: unsigned int)
|
||||||
|
|
||||||
Functions found: 599
|
Functions found: 601
|
||||||
|
|
||||||
Function 001: InitWindow() (3 input parameters)
|
Function 001: InitWindow() (3 input parameters)
|
||||||
Name: InitWindow
|
Name: InitWindow
|
||||||
@ -4354,24 +4354,39 @@ Function 522: UpdateModelAnimationBones() (3 input parameters)
|
|||||||
Param[1]: model (type: Model)
|
Param[1]: model (type: Model)
|
||||||
Param[2]: anim (type: ModelAnimation)
|
Param[2]: anim (type: ModelAnimation)
|
||||||
Param[3]: frame (type: int)
|
Param[3]: frame (type: int)
|
||||||
Function 523: UnloadModelAnimation() (1 input parameters)
|
Function 523: UpdateModelAnimationBonesLerp() (6 input parameters)
|
||||||
|
Name: UpdateModelAnimationBonesLerp
|
||||||
|
Return type: void
|
||||||
|
Description: Update model animation mesh bone matrices with interpolation between two poses(GPU skinning)
|
||||||
|
Param[1]: model (type: Model)
|
||||||
|
Param[2]: animA (type: ModelAnimation)
|
||||||
|
Param[3]: frameA (type: int)
|
||||||
|
Param[4]: animB (type: ModelAnimation)
|
||||||
|
Param[5]: frameB (type: int)
|
||||||
|
Param[6]: value (type: float)
|
||||||
|
Function 524: UpdateModelVertsToCurrentBones() (1 input parameters)
|
||||||
|
Name: UpdateModelVertsToCurrentBones
|
||||||
|
Return type: void
|
||||||
|
Description: Update model vertices according to mesh bone matrices (CPU)
|
||||||
|
Param[1]: model (type: Model)
|
||||||
|
Function 525: UnloadModelAnimation() (1 input parameters)
|
||||||
Name: UnloadModelAnimation
|
Name: UnloadModelAnimation
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload animation data
|
Description: Unload animation data
|
||||||
Param[1]: anim (type: ModelAnimation)
|
Param[1]: anim (type: ModelAnimation)
|
||||||
Function 524: UnloadModelAnimations() (2 input parameters)
|
Function 526: UnloadModelAnimations() (2 input parameters)
|
||||||
Name: UnloadModelAnimations
|
Name: UnloadModelAnimations
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload animation array data
|
Description: Unload animation array data
|
||||||
Param[1]: animations (type: ModelAnimation *)
|
Param[1]: animations (type: ModelAnimation *)
|
||||||
Param[2]: animCount (type: int)
|
Param[2]: animCount (type: int)
|
||||||
Function 525: IsModelAnimationValid() (2 input parameters)
|
Function 527: IsModelAnimationValid() (2 input parameters)
|
||||||
Name: IsModelAnimationValid
|
Name: IsModelAnimationValid
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check model animation skeleton match
|
Description: Check model animation skeleton match
|
||||||
Param[1]: model (type: Model)
|
Param[1]: model (type: Model)
|
||||||
Param[2]: anim (type: ModelAnimation)
|
Param[2]: anim (type: ModelAnimation)
|
||||||
Function 526: CheckCollisionSpheres() (4 input parameters)
|
Function 528: CheckCollisionSpheres() (4 input parameters)
|
||||||
Name: CheckCollisionSpheres
|
Name: CheckCollisionSpheres
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check collision between two spheres
|
Description: Check collision between two spheres
|
||||||
@ -4379,40 +4394,40 @@ Function 526: CheckCollisionSpheres() (4 input parameters)
|
|||||||
Param[2]: radius1 (type: float)
|
Param[2]: radius1 (type: float)
|
||||||
Param[3]: center2 (type: Vector3)
|
Param[3]: center2 (type: Vector3)
|
||||||
Param[4]: radius2 (type: float)
|
Param[4]: radius2 (type: float)
|
||||||
Function 527: CheckCollisionBoxes() (2 input parameters)
|
Function 529: CheckCollisionBoxes() (2 input parameters)
|
||||||
Name: CheckCollisionBoxes
|
Name: CheckCollisionBoxes
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check collision between two bounding boxes
|
Description: Check collision between two bounding boxes
|
||||||
Param[1]: box1 (type: BoundingBox)
|
Param[1]: box1 (type: BoundingBox)
|
||||||
Param[2]: box2 (type: BoundingBox)
|
Param[2]: box2 (type: BoundingBox)
|
||||||
Function 528: CheckCollisionBoxSphere() (3 input parameters)
|
Function 530: CheckCollisionBoxSphere() (3 input parameters)
|
||||||
Name: CheckCollisionBoxSphere
|
Name: CheckCollisionBoxSphere
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check collision between box and sphere
|
Description: Check collision between box and sphere
|
||||||
Param[1]: box (type: BoundingBox)
|
Param[1]: box (type: BoundingBox)
|
||||||
Param[2]: center (type: Vector3)
|
Param[2]: center (type: Vector3)
|
||||||
Param[3]: radius (type: float)
|
Param[3]: radius (type: float)
|
||||||
Function 529: GetRayCollisionSphere() (3 input parameters)
|
Function 531: GetRayCollisionSphere() (3 input parameters)
|
||||||
Name: GetRayCollisionSphere
|
Name: GetRayCollisionSphere
|
||||||
Return type: RayCollision
|
Return type: RayCollision
|
||||||
Description: Get collision info between ray and sphere
|
Description: Get collision info between ray and sphere
|
||||||
Param[1]: ray (type: Ray)
|
Param[1]: ray (type: Ray)
|
||||||
Param[2]: center (type: Vector3)
|
Param[2]: center (type: Vector3)
|
||||||
Param[3]: radius (type: float)
|
Param[3]: radius (type: float)
|
||||||
Function 530: GetRayCollisionBox() (2 input parameters)
|
Function 532: GetRayCollisionBox() (2 input parameters)
|
||||||
Name: GetRayCollisionBox
|
Name: GetRayCollisionBox
|
||||||
Return type: RayCollision
|
Return type: RayCollision
|
||||||
Description: Get collision info between ray and box
|
Description: Get collision info between ray and box
|
||||||
Param[1]: ray (type: Ray)
|
Param[1]: ray (type: Ray)
|
||||||
Param[2]: box (type: BoundingBox)
|
Param[2]: box (type: BoundingBox)
|
||||||
Function 531: GetRayCollisionMesh() (3 input parameters)
|
Function 533: GetRayCollisionMesh() (3 input parameters)
|
||||||
Name: GetRayCollisionMesh
|
Name: GetRayCollisionMesh
|
||||||
Return type: RayCollision
|
Return type: RayCollision
|
||||||
Description: Get collision info between ray and mesh
|
Description: Get collision info between ray and mesh
|
||||||
Param[1]: ray (type: Ray)
|
Param[1]: ray (type: Ray)
|
||||||
Param[2]: mesh (type: Mesh)
|
Param[2]: mesh (type: Mesh)
|
||||||
Param[3]: transform (type: Matrix)
|
Param[3]: transform (type: Matrix)
|
||||||
Function 532: GetRayCollisionTriangle() (4 input parameters)
|
Function 534: GetRayCollisionTriangle() (4 input parameters)
|
||||||
Name: GetRayCollisionTriangle
|
Name: GetRayCollisionTriangle
|
||||||
Return type: RayCollision
|
Return type: RayCollision
|
||||||
Description: Get collision info between ray and triangle
|
Description: Get collision info between ray and triangle
|
||||||
@ -4420,7 +4435,7 @@ Function 532: GetRayCollisionTriangle() (4 input parameters)
|
|||||||
Param[2]: p1 (type: Vector3)
|
Param[2]: p1 (type: Vector3)
|
||||||
Param[3]: p2 (type: Vector3)
|
Param[3]: p2 (type: Vector3)
|
||||||
Param[4]: p3 (type: Vector3)
|
Param[4]: p3 (type: Vector3)
|
||||||
Function 533: GetRayCollisionQuad() (5 input parameters)
|
Function 535: GetRayCollisionQuad() (5 input parameters)
|
||||||
Name: GetRayCollisionQuad
|
Name: GetRayCollisionQuad
|
||||||
Return type: RayCollision
|
Return type: RayCollision
|
||||||
Description: Get collision info between ray and quad
|
Description: Get collision info between ray and quad
|
||||||
@ -4429,158 +4444,158 @@ Function 533: GetRayCollisionQuad() (5 input parameters)
|
|||||||
Param[3]: p2 (type: Vector3)
|
Param[3]: p2 (type: Vector3)
|
||||||
Param[4]: p3 (type: Vector3)
|
Param[4]: p3 (type: Vector3)
|
||||||
Param[5]: p4 (type: Vector3)
|
Param[5]: p4 (type: Vector3)
|
||||||
Function 534: InitAudioDevice() (0 input parameters)
|
Function 536: InitAudioDevice() (0 input parameters)
|
||||||
Name: InitAudioDevice
|
Name: InitAudioDevice
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Initialize audio device and context
|
Description: Initialize audio device and context
|
||||||
No input parameters
|
No input parameters
|
||||||
Function 535: CloseAudioDevice() (0 input parameters)
|
Function 537: CloseAudioDevice() (0 input parameters)
|
||||||
Name: CloseAudioDevice
|
Name: CloseAudioDevice
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Close the audio device and context
|
Description: Close the audio device and context
|
||||||
No input parameters
|
No input parameters
|
||||||
Function 536: IsAudioDeviceReady() (0 input parameters)
|
Function 538: IsAudioDeviceReady() (0 input parameters)
|
||||||
Name: IsAudioDeviceReady
|
Name: IsAudioDeviceReady
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check if audio device has been initialized successfully
|
Description: Check if audio device has been initialized successfully
|
||||||
No input parameters
|
No input parameters
|
||||||
Function 537: SetMasterVolume() (1 input parameters)
|
Function 539: SetMasterVolume() (1 input parameters)
|
||||||
Name: SetMasterVolume
|
Name: SetMasterVolume
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set master volume (listener)
|
Description: Set master volume (listener)
|
||||||
Param[1]: volume (type: float)
|
Param[1]: volume (type: float)
|
||||||
Function 538: GetMasterVolume() (0 input parameters)
|
Function 540: GetMasterVolume() (0 input parameters)
|
||||||
Name: GetMasterVolume
|
Name: GetMasterVolume
|
||||||
Return type: float
|
Return type: float
|
||||||
Description: Get master volume (listener)
|
Description: Get master volume (listener)
|
||||||
No input parameters
|
No input parameters
|
||||||
Function 539: LoadWave() (1 input parameters)
|
Function 541: LoadWave() (1 input parameters)
|
||||||
Name: LoadWave
|
Name: LoadWave
|
||||||
Return type: Wave
|
Return type: Wave
|
||||||
Description: Load wave data from file
|
Description: Load wave data from file
|
||||||
Param[1]: fileName (type: const char *)
|
Param[1]: fileName (type: const char *)
|
||||||
Function 540: LoadWaveFromMemory() (3 input parameters)
|
Function 542: LoadWaveFromMemory() (3 input parameters)
|
||||||
Name: LoadWaveFromMemory
|
Name: LoadWaveFromMemory
|
||||||
Return type: Wave
|
Return type: Wave
|
||||||
Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
|
Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
|
||||||
Param[1]: fileType (type: const char *)
|
Param[1]: fileType (type: const char *)
|
||||||
Param[2]: fileData (type: const unsigned char *)
|
Param[2]: fileData (type: const unsigned char *)
|
||||||
Param[3]: dataSize (type: int)
|
Param[3]: dataSize (type: int)
|
||||||
Function 541: IsWaveValid() (1 input parameters)
|
Function 543: IsWaveValid() (1 input parameters)
|
||||||
Name: IsWaveValid
|
Name: IsWaveValid
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Checks if wave data is valid (data loaded and parameters)
|
Description: Checks if wave data is valid (data loaded and parameters)
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Function 542: LoadSound() (1 input parameters)
|
Function 544: LoadSound() (1 input parameters)
|
||||||
Name: LoadSound
|
Name: LoadSound
|
||||||
Return type: Sound
|
Return type: Sound
|
||||||
Description: Load sound from file
|
Description: Load sound from file
|
||||||
Param[1]: fileName (type: const char *)
|
Param[1]: fileName (type: const char *)
|
||||||
Function 543: LoadSoundFromWave() (1 input parameters)
|
Function 545: LoadSoundFromWave() (1 input parameters)
|
||||||
Name: LoadSoundFromWave
|
Name: LoadSoundFromWave
|
||||||
Return type: Sound
|
Return type: Sound
|
||||||
Description: Load sound from wave data
|
Description: Load sound from wave data
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Function 544: LoadSoundAlias() (1 input parameters)
|
Function 546: LoadSoundAlias() (1 input parameters)
|
||||||
Name: LoadSoundAlias
|
Name: LoadSoundAlias
|
||||||
Return type: Sound
|
Return type: Sound
|
||||||
Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data
|
Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data
|
||||||
Param[1]: source (type: Sound)
|
Param[1]: source (type: Sound)
|
||||||
Function 545: IsSoundValid() (1 input parameters)
|
Function 547: IsSoundValid() (1 input parameters)
|
||||||
Name: IsSoundValid
|
Name: IsSoundValid
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Checks if a sound is valid (data loaded and buffers initialized)
|
Description: Checks if a sound is valid (data loaded and buffers initialized)
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 546: UpdateSound() (3 input parameters)
|
Function 548: UpdateSound() (3 input parameters)
|
||||||
Name: UpdateSound
|
Name: UpdateSound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Update sound buffer with new data (default data format: 32 bit float, stereo)
|
Description: Update sound buffer with new data (default data format: 32 bit float, stereo)
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Param[2]: data (type: const void *)
|
Param[2]: data (type: const void *)
|
||||||
Param[3]: sampleCount (type: int)
|
Param[3]: sampleCount (type: int)
|
||||||
Function 547: UnloadWave() (1 input parameters)
|
Function 549: UnloadWave() (1 input parameters)
|
||||||
Name: UnloadWave
|
Name: UnloadWave
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload wave data
|
Description: Unload wave data
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Function 548: UnloadSound() (1 input parameters)
|
Function 550: UnloadSound() (1 input parameters)
|
||||||
Name: UnloadSound
|
Name: UnloadSound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload sound
|
Description: Unload sound
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 549: UnloadSoundAlias() (1 input parameters)
|
Function 551: UnloadSoundAlias() (1 input parameters)
|
||||||
Name: UnloadSoundAlias
|
Name: UnloadSoundAlias
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload a sound alias (does not deallocate sample data)
|
Description: Unload a sound alias (does not deallocate sample data)
|
||||||
Param[1]: alias (type: Sound)
|
Param[1]: alias (type: Sound)
|
||||||
Function 550: ExportWave() (2 input parameters)
|
Function 552: ExportWave() (2 input parameters)
|
||||||
Name: ExportWave
|
Name: ExportWave
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Export wave data to file, returns true on success
|
Description: Export wave data to file, returns true on success
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Param[2]: fileName (type: const char *)
|
Param[2]: fileName (type: const char *)
|
||||||
Function 551: ExportWaveAsCode() (2 input parameters)
|
Function 553: ExportWaveAsCode() (2 input parameters)
|
||||||
Name: ExportWaveAsCode
|
Name: ExportWaveAsCode
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Export wave sample data to code (.h), returns true on success
|
Description: Export wave sample data to code (.h), returns true on success
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Param[2]: fileName (type: const char *)
|
Param[2]: fileName (type: const char *)
|
||||||
Function 552: PlaySound() (1 input parameters)
|
Function 554: PlaySound() (1 input parameters)
|
||||||
Name: PlaySound
|
Name: PlaySound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Play a sound
|
Description: Play a sound
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 553: StopSound() (1 input parameters)
|
Function 555: StopSound() (1 input parameters)
|
||||||
Name: StopSound
|
Name: StopSound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Stop playing a sound
|
Description: Stop playing a sound
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 554: PauseSound() (1 input parameters)
|
Function 556: PauseSound() (1 input parameters)
|
||||||
Name: PauseSound
|
Name: PauseSound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Pause a sound
|
Description: Pause a sound
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 555: ResumeSound() (1 input parameters)
|
Function 557: ResumeSound() (1 input parameters)
|
||||||
Name: ResumeSound
|
Name: ResumeSound
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Resume a paused sound
|
Description: Resume a paused sound
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 556: IsSoundPlaying() (1 input parameters)
|
Function 558: IsSoundPlaying() (1 input parameters)
|
||||||
Name: IsSoundPlaying
|
Name: IsSoundPlaying
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check if a sound is currently playing
|
Description: Check if a sound is currently playing
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Function 557: SetSoundVolume() (2 input parameters)
|
Function 559: SetSoundVolume() (2 input parameters)
|
||||||
Name: SetSoundVolume
|
Name: SetSoundVolume
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set volume for a sound (1.0 is max level)
|
Description: Set volume for a sound (1.0 is max level)
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Param[2]: volume (type: float)
|
Param[2]: volume (type: float)
|
||||||
Function 558: SetSoundPitch() (2 input parameters)
|
Function 560: SetSoundPitch() (2 input parameters)
|
||||||
Name: SetSoundPitch
|
Name: SetSoundPitch
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pitch for a sound (1.0 is base level)
|
Description: Set pitch for a sound (1.0 is base level)
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Param[2]: pitch (type: float)
|
Param[2]: pitch (type: float)
|
||||||
Function 559: SetSoundPan() (2 input parameters)
|
Function 561: SetSoundPan() (2 input parameters)
|
||||||
Name: SetSoundPan
|
Name: SetSoundPan
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pan for a sound (-1.0 left, 0.0 center, 1.0 right)
|
Description: Set pan for a sound (-1.0 left, 0.0 center, 1.0 right)
|
||||||
Param[1]: sound (type: Sound)
|
Param[1]: sound (type: Sound)
|
||||||
Param[2]: pan (type: float)
|
Param[2]: pan (type: float)
|
||||||
Function 560: WaveCopy() (1 input parameters)
|
Function 562: WaveCopy() (1 input parameters)
|
||||||
Name: WaveCopy
|
Name: WaveCopy
|
||||||
Return type: Wave
|
Return type: Wave
|
||||||
Description: Copy a wave to a new wave
|
Description: Copy a wave to a new wave
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Function 561: WaveCrop() (3 input parameters)
|
Function 563: WaveCrop() (3 input parameters)
|
||||||
Name: WaveCrop
|
Name: WaveCrop
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Crop a wave to defined frames range
|
Description: Crop a wave to defined frames range
|
||||||
Param[1]: wave (type: Wave *)
|
Param[1]: wave (type: Wave *)
|
||||||
Param[2]: initFrame (type: int)
|
Param[2]: initFrame (type: int)
|
||||||
Param[3]: finalFrame (type: int)
|
Param[3]: finalFrame (type: int)
|
||||||
Function 562: WaveFormat() (4 input parameters)
|
Function 564: WaveFormat() (4 input parameters)
|
||||||
Name: WaveFormat
|
Name: WaveFormat
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Convert wave data to desired format
|
Description: Convert wave data to desired format
|
||||||
@ -4588,203 +4603,203 @@ Function 562: WaveFormat() (4 input parameters)
|
|||||||
Param[2]: sampleRate (type: int)
|
Param[2]: sampleRate (type: int)
|
||||||
Param[3]: sampleSize (type: int)
|
Param[3]: sampleSize (type: int)
|
||||||
Param[4]: channels (type: int)
|
Param[4]: channels (type: int)
|
||||||
Function 563: LoadWaveSamples() (1 input parameters)
|
Function 565: LoadWaveSamples() (1 input parameters)
|
||||||
Name: LoadWaveSamples
|
Name: LoadWaveSamples
|
||||||
Return type: float *
|
Return type: float *
|
||||||
Description: Load samples data from wave as a 32bit float data array
|
Description: Load samples data from wave as a 32bit float data array
|
||||||
Param[1]: wave (type: Wave)
|
Param[1]: wave (type: Wave)
|
||||||
Function 564: UnloadWaveSamples() (1 input parameters)
|
Function 566: UnloadWaveSamples() (1 input parameters)
|
||||||
Name: UnloadWaveSamples
|
Name: UnloadWaveSamples
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload samples data loaded with LoadWaveSamples()
|
Description: Unload samples data loaded with LoadWaveSamples()
|
||||||
Param[1]: samples (type: float *)
|
Param[1]: samples (type: float *)
|
||||||
Function 565: LoadMusicStream() (1 input parameters)
|
Function 567: LoadMusicStream() (1 input parameters)
|
||||||
Name: LoadMusicStream
|
Name: LoadMusicStream
|
||||||
Return type: Music
|
Return type: Music
|
||||||
Description: Load music stream from file
|
Description: Load music stream from file
|
||||||
Param[1]: fileName (type: const char *)
|
Param[1]: fileName (type: const char *)
|
||||||
Function 566: LoadMusicStreamFromMemory() (3 input parameters)
|
Function 568: LoadMusicStreamFromMemory() (3 input parameters)
|
||||||
Name: LoadMusicStreamFromMemory
|
Name: LoadMusicStreamFromMemory
|
||||||
Return type: Music
|
Return type: Music
|
||||||
Description: Load music stream from data
|
Description: Load music stream from data
|
||||||
Param[1]: fileType (type: const char *)
|
Param[1]: fileType (type: const char *)
|
||||||
Param[2]: data (type: const unsigned char *)
|
Param[2]: data (type: const unsigned char *)
|
||||||
Param[3]: dataSize (type: int)
|
Param[3]: dataSize (type: int)
|
||||||
Function 567: IsMusicValid() (1 input parameters)
|
Function 569: IsMusicValid() (1 input parameters)
|
||||||
Name: IsMusicValid
|
Name: IsMusicValid
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Checks if a music stream is valid (context and buffers initialized)
|
Description: Checks if a music stream is valid (context and buffers initialized)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 568: UnloadMusicStream() (1 input parameters)
|
Function 570: UnloadMusicStream() (1 input parameters)
|
||||||
Name: UnloadMusicStream
|
Name: UnloadMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload music stream
|
Description: Unload music stream
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 569: PlayMusicStream() (1 input parameters)
|
Function 571: PlayMusicStream() (1 input parameters)
|
||||||
Name: PlayMusicStream
|
Name: PlayMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Start music playing
|
Description: Start music playing
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 570: IsMusicStreamPlaying() (1 input parameters)
|
Function 572: IsMusicStreamPlaying() (1 input parameters)
|
||||||
Name: IsMusicStreamPlaying
|
Name: IsMusicStreamPlaying
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check if music is playing
|
Description: Check if music is playing
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 571: UpdateMusicStream() (1 input parameters)
|
Function 573: UpdateMusicStream() (1 input parameters)
|
||||||
Name: UpdateMusicStream
|
Name: UpdateMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Updates buffers for music streaming
|
Description: Updates buffers for music streaming
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 572: StopMusicStream() (1 input parameters)
|
Function 574: StopMusicStream() (1 input parameters)
|
||||||
Name: StopMusicStream
|
Name: StopMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Stop music playing
|
Description: Stop music playing
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 573: PauseMusicStream() (1 input parameters)
|
Function 575: PauseMusicStream() (1 input parameters)
|
||||||
Name: PauseMusicStream
|
Name: PauseMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Pause music playing
|
Description: Pause music playing
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 574: ResumeMusicStream() (1 input parameters)
|
Function 576: ResumeMusicStream() (1 input parameters)
|
||||||
Name: ResumeMusicStream
|
Name: ResumeMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Resume playing paused music
|
Description: Resume playing paused music
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 575: SeekMusicStream() (2 input parameters)
|
Function 577: SeekMusicStream() (2 input parameters)
|
||||||
Name: SeekMusicStream
|
Name: SeekMusicStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Seek music to a position (in seconds)
|
Description: Seek music to a position (in seconds)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Param[2]: position (type: float)
|
Param[2]: position (type: float)
|
||||||
Function 576: SetMusicVolume() (2 input parameters)
|
Function 578: SetMusicVolume() (2 input parameters)
|
||||||
Name: SetMusicVolume
|
Name: SetMusicVolume
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set volume for music (1.0 is max level)
|
Description: Set volume for music (1.0 is max level)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Param[2]: volume (type: float)
|
Param[2]: volume (type: float)
|
||||||
Function 577: SetMusicPitch() (2 input parameters)
|
Function 579: SetMusicPitch() (2 input parameters)
|
||||||
Name: SetMusicPitch
|
Name: SetMusicPitch
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pitch for a music (1.0 is base level)
|
Description: Set pitch for a music (1.0 is base level)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Param[2]: pitch (type: float)
|
Param[2]: pitch (type: float)
|
||||||
Function 578: SetMusicPan() (2 input parameters)
|
Function 580: SetMusicPan() (2 input parameters)
|
||||||
Name: SetMusicPan
|
Name: SetMusicPan
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pan for a music (-1.0 left, 0.0 center, 1.0 right)
|
Description: Set pan for a music (-1.0 left, 0.0 center, 1.0 right)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Param[2]: pan (type: float)
|
Param[2]: pan (type: float)
|
||||||
Function 579: GetMusicTimeLength() (1 input parameters)
|
Function 581: GetMusicTimeLength() (1 input parameters)
|
||||||
Name: GetMusicTimeLength
|
Name: GetMusicTimeLength
|
||||||
Return type: float
|
Return type: float
|
||||||
Description: Get music time length (in seconds)
|
Description: Get music time length (in seconds)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 580: GetMusicTimePlayed() (1 input parameters)
|
Function 582: GetMusicTimePlayed() (1 input parameters)
|
||||||
Name: GetMusicTimePlayed
|
Name: GetMusicTimePlayed
|
||||||
Return type: float
|
Return type: float
|
||||||
Description: Get current music time played (in seconds)
|
Description: Get current music time played (in seconds)
|
||||||
Param[1]: music (type: Music)
|
Param[1]: music (type: Music)
|
||||||
Function 581: LoadAudioStream() (3 input parameters)
|
Function 583: LoadAudioStream() (3 input parameters)
|
||||||
Name: LoadAudioStream
|
Name: LoadAudioStream
|
||||||
Return type: AudioStream
|
Return type: AudioStream
|
||||||
Description: Load audio stream (to stream raw audio pcm data)
|
Description: Load audio stream (to stream raw audio pcm data)
|
||||||
Param[1]: sampleRate (type: unsigned int)
|
Param[1]: sampleRate (type: unsigned int)
|
||||||
Param[2]: sampleSize (type: unsigned int)
|
Param[2]: sampleSize (type: unsigned int)
|
||||||
Param[3]: channels (type: unsigned int)
|
Param[3]: channels (type: unsigned int)
|
||||||
Function 582: IsAudioStreamValid() (1 input parameters)
|
Function 584: IsAudioStreamValid() (1 input parameters)
|
||||||
Name: IsAudioStreamValid
|
Name: IsAudioStreamValid
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Checks if an audio stream is valid (buffers initialized)
|
Description: Checks if an audio stream is valid (buffers initialized)
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 583: UnloadAudioStream() (1 input parameters)
|
Function 585: UnloadAudioStream() (1 input parameters)
|
||||||
Name: UnloadAudioStream
|
Name: UnloadAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Unload audio stream and free memory
|
Description: Unload audio stream and free memory
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 584: UpdateAudioStream() (3 input parameters)
|
Function 586: UpdateAudioStream() (3 input parameters)
|
||||||
Name: UpdateAudioStream
|
Name: UpdateAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Update audio stream buffers with data
|
Description: Update audio stream buffers with data
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: data (type: const void *)
|
Param[2]: data (type: const void *)
|
||||||
Param[3]: frameCount (type: int)
|
Param[3]: frameCount (type: int)
|
||||||
Function 585: IsAudioStreamProcessed() (1 input parameters)
|
Function 587: IsAudioStreamProcessed() (1 input parameters)
|
||||||
Name: IsAudioStreamProcessed
|
Name: IsAudioStreamProcessed
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check if any audio stream buffers requires refill
|
Description: Check if any audio stream buffers requires refill
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 586: PlayAudioStream() (1 input parameters)
|
Function 588: PlayAudioStream() (1 input parameters)
|
||||||
Name: PlayAudioStream
|
Name: PlayAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Play audio stream
|
Description: Play audio stream
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 587: PauseAudioStream() (1 input parameters)
|
Function 589: PauseAudioStream() (1 input parameters)
|
||||||
Name: PauseAudioStream
|
Name: PauseAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Pause audio stream
|
Description: Pause audio stream
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 588: ResumeAudioStream() (1 input parameters)
|
Function 590: ResumeAudioStream() (1 input parameters)
|
||||||
Name: ResumeAudioStream
|
Name: ResumeAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Resume audio stream
|
Description: Resume audio stream
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 589: IsAudioStreamPlaying() (1 input parameters)
|
Function 591: IsAudioStreamPlaying() (1 input parameters)
|
||||||
Name: IsAudioStreamPlaying
|
Name: IsAudioStreamPlaying
|
||||||
Return type: bool
|
Return type: bool
|
||||||
Description: Check if audio stream is playing
|
Description: Check if audio stream is playing
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 590: StopAudioStream() (1 input parameters)
|
Function 592: StopAudioStream() (1 input parameters)
|
||||||
Name: StopAudioStream
|
Name: StopAudioStream
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Stop audio stream
|
Description: Stop audio stream
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Function 591: SetAudioStreamVolume() (2 input parameters)
|
Function 593: SetAudioStreamVolume() (2 input parameters)
|
||||||
Name: SetAudioStreamVolume
|
Name: SetAudioStreamVolume
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set volume for audio stream (1.0 is max level)
|
Description: Set volume for audio stream (1.0 is max level)
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: volume (type: float)
|
Param[2]: volume (type: float)
|
||||||
Function 592: SetAudioStreamPitch() (2 input parameters)
|
Function 594: SetAudioStreamPitch() (2 input parameters)
|
||||||
Name: SetAudioStreamPitch
|
Name: SetAudioStreamPitch
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pitch for audio stream (1.0 is base level)
|
Description: Set pitch for audio stream (1.0 is base level)
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: pitch (type: float)
|
Param[2]: pitch (type: float)
|
||||||
Function 593: SetAudioStreamPan() (2 input parameters)
|
Function 595: SetAudioStreamPan() (2 input parameters)
|
||||||
Name: SetAudioStreamPan
|
Name: SetAudioStreamPan
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Set pan for audio stream (0.5 is centered)
|
Description: Set pan for audio stream (0.5 is centered)
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: pan (type: float)
|
Param[2]: pan (type: float)
|
||||||
Function 594: SetAudioStreamBufferSizeDefault() (1 input parameters)
|
Function 596: SetAudioStreamBufferSizeDefault() (1 input parameters)
|
||||||
Name: SetAudioStreamBufferSizeDefault
|
Name: SetAudioStreamBufferSizeDefault
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Default size for new audio streams
|
Description: Default size for new audio streams
|
||||||
Param[1]: size (type: int)
|
Param[1]: size (type: int)
|
||||||
Function 595: SetAudioStreamCallback() (2 input parameters)
|
Function 597: SetAudioStreamCallback() (2 input parameters)
|
||||||
Name: SetAudioStreamCallback
|
Name: SetAudioStreamCallback
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Audio thread callback to request new data
|
Description: Audio thread callback to request new data
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: callback (type: AudioCallback)
|
Param[2]: callback (type: AudioCallback)
|
||||||
Function 596: AttachAudioStreamProcessor() (2 input parameters)
|
Function 598: AttachAudioStreamProcessor() (2 input parameters)
|
||||||
Name: AttachAudioStreamProcessor
|
Name: AttachAudioStreamProcessor
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo)
|
Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo)
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: processor (type: AudioCallback)
|
Param[2]: processor (type: AudioCallback)
|
||||||
Function 597: DetachAudioStreamProcessor() (2 input parameters)
|
Function 599: DetachAudioStreamProcessor() (2 input parameters)
|
||||||
Name: DetachAudioStreamProcessor
|
Name: DetachAudioStreamProcessor
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Detach audio stream processor from stream
|
Description: Detach audio stream processor from stream
|
||||||
Param[1]: stream (type: AudioStream)
|
Param[1]: stream (type: AudioStream)
|
||||||
Param[2]: processor (type: AudioCallback)
|
Param[2]: processor (type: AudioCallback)
|
||||||
Function 598: AttachAudioMixedProcessor() (1 input parameters)
|
Function 600: AttachAudioMixedProcessor() (1 input parameters)
|
||||||
Name: AttachAudioMixedProcessor
|
Name: AttachAudioMixedProcessor
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo)
|
Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo)
|
||||||
Param[1]: processor (type: AudioCallback)
|
Param[1]: processor (type: AudioCallback)
|
||||||
Function 599: DetachAudioMixedProcessor() (1 input parameters)
|
Function 601: DetachAudioMixedProcessor() (1 input parameters)
|
||||||
Name: DetachAudioMixedProcessor
|
Name: DetachAudioMixedProcessor
|
||||||
Return type: void
|
Return type: void
|
||||||
Description: Detach audio stream processor from the entire audio pipeline
|
Description: Detach audio stream processor from the entire audio pipeline
|
||||||
|
|||||||
@ -678,7 +678,7 @@
|
|||||||
<Param type="unsigned int" name="frames" desc="" />
|
<Param type="unsigned int" name="frames" desc="" />
|
||||||
</Callback>
|
</Callback>
|
||||||
</Callbacks>
|
</Callbacks>
|
||||||
<Functions count="599">
|
<Functions count="601">
|
||||||
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
|
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
|
||||||
<Param type="int" name="width" desc="" />
|
<Param type="int" name="width" desc="" />
|
||||||
<Param type="int" name="height" desc="" />
|
<Param type="int" name="height" desc="" />
|
||||||
@ -2918,6 +2918,17 @@
|
|||||||
<Param type="ModelAnimation" name="anim" desc="" />
|
<Param type="ModelAnimation" name="anim" desc="" />
|
||||||
<Param type="int" name="frame" desc="" />
|
<Param type="int" name="frame" desc="" />
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name="UpdateModelAnimationBonesLerp" retType="void" paramCount="6" desc="Update model animation mesh bone matrices with interpolation between two poses(GPU skinning)">
|
||||||
|
<Param type="Model" name="model" desc="" />
|
||||||
|
<Param type="ModelAnimation" name="animA" desc="" />
|
||||||
|
<Param type="int" name="frameA" desc="" />
|
||||||
|
<Param type="ModelAnimation" name="animB" desc="" />
|
||||||
|
<Param type="int" name="frameB" desc="" />
|
||||||
|
<Param type="float" name="value" desc="" />
|
||||||
|
</Function>
|
||||||
|
<Function name="UpdateModelVertsToCurrentBones" retType="void" paramCount="1" desc="Update model vertices according to mesh bone matrices (CPU)">
|
||||||
|
<Param type="Model" name="model" desc="" />
|
||||||
|
</Function>
|
||||||
<Function name="UnloadModelAnimation" retType="void" paramCount="1" desc="Unload animation data">
|
<Function name="UnloadModelAnimation" retType="void" paramCount="1" desc="Unload animation data">
|
||||||
<Param type="ModelAnimation" name="anim" desc="" />
|
<Param type="ModelAnimation" name="anim" desc="" />
|
||||||
</Function>
|
</Function>
|
||||||
|
|||||||
Reference in New Issue
Block a user