From 879c874330e2946ca0dcce74a5dfbe852b4d1f4a Mon Sep 17 00:00:00 2001 From: ChrisDill Date: Sun, 28 Jul 2019 10:12:13 +0100 Subject: Added scissor test and mouse painting examples proposed in #890 (#919) - Updated Makefile with new examples --- examples/core/core_scissor_test.c | 77 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 examples/core/core_scissor_test.c (limited to 'examples/core') diff --git a/examples/core/core_scissor_test.c b/examples/core/core_scissor_test.c new file mode 100644 index 00000000..acc84202 --- /dev/null +++ b/examples/core/core_scissor_test.c @@ -0,0 +1,77 @@ +/******************************************************************************************* +* +* raylib [core] example - Scissor test +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Chris Dill (@MysteriousSpace) +* +********************************************************************************************/ + +#include "raylib.h" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - scissor test"); + + Rectangle scissorArea = { 0, 0, 300, 300}; + bool scissorMode = true; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_S)) + { + scissorMode = !scissorMode; + } + + // Centre the scissor area around the mouse position + scissorArea.x = GetMouseX() - scissorArea.width / 2; + scissorArea.y = GetMouseY() - scissorArea.height / 2; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (scissorMode) + { + BeginScissorMode(scissorArea.x, scissorArea.y, scissorArea.width, scissorArea.height); + } + + DrawRectangle(80, 45, 640, 360, RED); + DrawRectangleLines(80, 45, 640, 360, BLACK); + DrawText("Move the mouse around to reveal this text!", 190, 200, 20, LIGHTGRAY); + + if (scissorMode) + { + EndScissorMode(); + } + + DrawRectangleLinesEx(scissorArea, 2, BLACK); + DrawText("Press s to toggle scissor test", 10, 10, 20, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} -- cgit v1.2.3