From 8e229ada1dcaf5c0c5a1c8172def3e06eeea8a91 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 7 Jul 2022 12:15:55 +0200 Subject: [PATCH] ADDED: example: `textures_gif_player` --- examples/Makefile | 2 +- examples/README.md | 2 +- examples/textures/resources/scarfy_run.gif | Bin 0 -> 21261 bytes examples/textures/textures_gif_player.c | 119 ++++++ examples/textures/textures_gif_player.png | Bin 0 -> 19690 bytes .../examples/textures_gif_player.vcxproj | 387 ++++++++++++++++++ projects/VS2022/raylib.sln | 18 + 7 files changed, 526 insertions(+), 2 deletions(-) create mode 100644 examples/textures/resources/scarfy_run.gif create mode 100644 examples/textures/textures_gif_player.c create mode 100644 examples/textures/textures_gif_player.png create mode 100644 projects/VS2022/examples/textures_gif_player.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 8517a91c2..82e41f63a 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -431,7 +431,7 @@ TEXTURES = \ textures/textures_blend_modes \ textures/textures_draw_tiled \ textures/textures_polygon \ - textures/textures_gif_anim + textures/textures_gif_player TEXT = \ text/text_raylib_fonts \ diff --git a/examples/README.md b/examples/README.md index 6fb655145..4769ff559 100644 --- a/examples/README.md +++ b/examples/README.md @@ -96,7 +96,7 @@ Examples using raylib textures functionality, including image/textures loading/g | 57 | [textures_blend_modes](textures/textures_blend_modes.c) | textures_blend_modes | [Karlo Licudine](https://github.com/accidentalrebel) | | | 58 | [textures_draw_tiled](textures/textures_draw_tiled.c) | textures_draw_tiled | [Vlad Adrian](https://github.com/demizdor) | | | -- | [textures_poly](textures/textures_poly.c) | textures_poly | [Chris Camacho](https://github.com/codifies) | ⭐️ | -| -- | [textures_gif_anim](textures/textures_gif_anim.c) | textures_gif_anim | [Chris Camacho](https://github.com/codifies) | ⭐️ | +| -- | [textures_gif_player](textures/textures_gif_player.c) | textures_gif_player | [Chris Camacho](https://github.com/codifies) | ⭐️ | ### category: text diff --git a/examples/textures/resources/scarfy_run.gif b/examples/textures/resources/scarfy_run.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0f712ccdc1fa1b8addc74f1fef5cf61b93c0ab7 GIT binary patch literal 21261 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 frameDelay) + { + // Move to next frame + // NOTE: If final frame is reached we return to first frame + currentAnimFrame++; + if (currentAnimFrame >= animFrames) currentAnimFrame = 0; + + // Get memory offset position for next frame data in image.data + nextFrameDataOffset = imScarfyAnim.width*imScarfyAnim.height*4*currentAnimFrame; + + // Update GPU texture data with next frame image data + // WARNING: Data size (frame size) and pixel format must match already created texture + UpdateTexture(texScarfyAnim, ((unsigned char *)imScarfyAnim.data) + nextFrameDataOffset); + + frameCounter = 0; + } + + // Control frames delay + if (IsKeyPressed(KEY_RIGHT)) frameDelay++; + else if (IsKeyPressed(KEY_LEFT)) frameDelay--; + + if (frameDelay > MAX_FRAME_DELAY) frameDelay = MAX_FRAME_DELAY; + else if (frameDelay < MIN_FRAME_DELAY) frameDelay = MIN_FRAME_DELAY; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText(TextFormat("TOTAL GIF FRAMES: %02i", animFrames), 50, 30, 20, LIGHTGRAY); + DrawText(TextFormat("CURRENT FRAME: %02i", currentAnimFrame), 50, 60, 20, GRAY); + DrawText(TextFormat("CURRENT FRAME IMAGE.DATA OFFSET: %02i", nextFrameDataOffset), 50, 90, 20, GRAY); + + DrawText("FRAMES DELAY: ", 100, 305, 10, DARKGRAY); + DrawText(TextFormat("%02i frames", frameDelay), 620, 305, 10, DARKGRAY); + DrawText("PRESS RIGHT/LEFT KEYS to CHANGE SPEED!", 290, 350, 10, DARKGRAY); + + for (int i = 0; i < MAX_FRAME_DELAY; i++) + { + if (i < frameDelay) DrawRectangle(190 + 21*i, 300, 20, 20, RED); + DrawRectangleLines(190 + 21*i, 300, 20, 20, MAROON); + } + + DrawTexture(texScarfyAnim, GetScreenWidth()/2 - texScarfyAnim.width/2, 140, WHITE); + + DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texScarfyAnim); // Unload texture + UnloadImage(imScarfyAnim); // Unload image (contains all frames) + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/textures/textures_gif_player.png b/examples/textures/textures_gif_player.png new file mode 100644 index 0000000000000000000000000000000000000000..20db76ed34a21ace35dfd9dd22b53966501ec8c0 GIT binary patch literal 19690 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 + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {191A5289-BA65-4638-A215-C521F0187313} + Win32Proj + textures_gif_player + 10.0 + textures_gif_player + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + 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) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + 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) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + 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) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + 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) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + 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) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + 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) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + 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) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + 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) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + \ No newline at end of file diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 36c312204..b54bb3b14 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -251,6 +251,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_window_should_close", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_fog_of_war", "examples\textures_fog_of_war.vcxproj", "{EBBBF4A0-2DA2-4DE6-B4FE-C6654A2417A0}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_gif_player", "examples\textures_gif_player.vcxproj", "{191A5289-BA65-4638-A215-C521F0187313}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug.DLL|x64 = Debug.DLL|x64 @@ -2099,6 +2101,22 @@ Global {EBBBF4A0-2DA2-4DE6-B4FE-C6654A2417A0}.Release|x64.Build.0 = Release|x64 {EBBBF4A0-2DA2-4DE6-B4FE-C6654A2417A0}.Release|x86.ActiveCfg = Release|Win32 {EBBBF4A0-2DA2-4DE6-B4FE-C6654A2417A0}.Release|x86.Build.0 = Release|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Debug|x64.ActiveCfg = Debug|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Debug|x64.Build.0 = Debug|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Debug|x86.ActiveCfg = Debug|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Debug|x86.Build.0 = Debug|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Release|x64.ActiveCfg = Release|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Release|x64.Build.0 = Release|x64 + {191A5289-BA65-4638-A215-C521F0187313}.Release|x86.ActiveCfg = Release|Win32 + {191A5289-BA65-4638-A215-C521F0187313}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE