diff options
| author | Wilhem Barbier <[email protected]> | 2017-06-28 12:56:04 +0200 |
|---|---|---|
| committer | Wilhem Barbier <[email protected]> | 2017-06-28 12:56:04 +0200 |
| commit | fcd13fd5d22219d8ed69b88e9cc1138b96b9a16d (patch) | |
| tree | 9397f2a6a93e6681d98508e3fbc36763848b1619 /examples/textures | |
| parent | c46abd34d4fb86ffd08c5e25ded52ac6e52efbf0 (diff) | |
| download | raylib-fcd13fd5d22219d8ed69b88e9cc1138b96b9a16d.tar.gz raylib-fcd13fd5d22219d8ed69b88e9cc1138b96b9a16d.zip | |
Add some functions to generate images
Namely:
- GenImageHorizontalV
- GenImageHorizontalH
- GenImageChecked
- GenImageWhiteNoise
- GenImageCellular
The gradient implementation may be a bit naive, for example it doesn't do any gamma correction.
Diffstat (limited to 'examples/textures')
| -rw-r--r-- | examples/textures/textures_image_generation.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/textures/textures_image_generation.c b/examples/textures/textures_image_generation.c new file mode 100644 index 00000000..9db64ef7 --- /dev/null +++ b/examples/textures/textures_image_generation.c @@ -0,0 +1,57 @@ +/******************************************************************************************* +* +* raylib [textures] example - Procedural images generation +* +* This example has been created using raylib 1.7 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2O17 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define TEXTURES_NUM 5 // for now we have 5 generation algorithms + +int main() +{ + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - procedural images generation"); + + Image verticalGradient = GenImageGradientV(screenWidth, screenHeight, RED, BLUE); + Image horizontalGradient = GenImageGradientH(screenWidth, screenHeight, RED, BLUE); + Image checked = GenImageChecked(screenWidth, screenHeight, 32, 32, RED, BLUE); + Image whiteNoise = GenImageWhiteNoise(screenWidth, screenHeight, 0.5f); + Image cellular = GenImageCellular(screenWidth, screenHeight, 32); + + Texture2D textures[TEXTURES_NUM]; + textures[0] = LoadTextureFromImage(verticalGradient); + textures[1] = LoadTextureFromImage(horizontalGradient); + textures[2] = LoadTextureFromImage(checked); + textures[3] = LoadTextureFromImage(whiteNoise); + textures[4] = LoadTextureFromImage(cellular); + + int currentTexture = 0; + + while (!WindowShouldClose()) + { + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + currentTexture = (currentTexture + 1) % TEXTURES_NUM; // cycle between the 5 textures + } + + BeginDrawing(); + ClearBackground(RAYWHITE); + DrawTexture(textures[currentTexture], 0, 0, WHITE); + EndDrawing(); + } + + for (int i = 0; i < TEXTURES_NUM; i++) // unload the textures + { + UnloadTexture(textures[i]); + } + + CloseWindow(); +} |
