From 3a09171e41570b2d457e34476d42c8f4be1416aa Mon Sep 17 00:00:00 2001 From: realtradam Date: Mon, 16 May 2022 03:42:28 -0400 Subject: init --- .gitmodules | 6 ++ Makefile | 2 + assets/kenney.png | Bin 0 -> 22779 bytes assets/lavanda.rgs | Bin 0 -> 4541 bytes assets/ray.png | Bin 0 -> 40510 bytes game | Bin 0 -> 1341792 bytes main.c | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++ raygui | 1 + raylib | 1 + 9 files changed, 237 insertions(+) create mode 100644 .gitmodules create mode 100644 Makefile create mode 100644 assets/kenney.png create mode 100644 assets/lavanda.rgs create mode 100644 assets/ray.png create mode 100755 game create mode 100644 main.c create mode 160000 raygui create mode 160000 raylib diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e43e647 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "raylib"] + path = raylib + url = git@github.com:raysan5/raylib.git +[submodule "raygui"] + path = raygui + url = git@github.com:raysan5/raygui.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3478d8f --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +desktop: + zig cc -target native main.c -o game -lGL -lm -lpthread -ldl -lrt -lX11 -Iraylib/src -Iraygui/src raylib/src/libraylib.a && ./game diff --git a/assets/kenney.png b/assets/kenney.png new file mode 100644 index 0000000..8763cb0 Binary files /dev/null and b/assets/kenney.png differ diff --git a/assets/lavanda.rgs b/assets/lavanda.rgs new file mode 100644 index 0000000..3aa3e6f Binary files /dev/null and b/assets/lavanda.rgs differ diff --git a/assets/ray.png b/assets/ray.png new file mode 100644 index 0000000..2eefcb7 Binary files /dev/null and b/assets/ray.png differ diff --git a/game b/game new file mode 100755 index 0000000..c48bafc Binary files /dev/null and b/game differ diff --git a/main.c b/main.c new file mode 100644 index 0000000..b4de147 --- /dev/null +++ b/main.c @@ -0,0 +1,227 @@ +// Credit: +// Raylib, Raygui, and the ray.png sprite are all made by Ramon Santamaria (@raysan5) (https://www.raylib.com) +// kenney.png is made by Kenney (https://www.kenney.nl/assets/simplified-platformer-pack) +// Code is by _Tradam + +#include "raylib.h" +#include + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" + + +const int screenWidth = 900; +const int screenHeight = 600; + +const int elementMargin = 10; +const int elementBorderThickness = 3; +const Rectangle elementSliders = { + .x = 0 + elementMargin, + .y = 28 + elementMargin, + .width = screenWidth - (elementMargin * 2), + .height = (screenHeight / 3) - (elementMargin) - 28 +}; +const Rectangle elementCode = { + .x = 0 + elementMargin, + .y = (screenHeight / 3) + (elementMargin), + .width = (screenWidth / 3) - elementMargin + 3, + .height = ((2 * screenHeight) / 3) - (elementMargin * 2) +}; +const Rectangle elementPreRender = { + .x = (screenWidth / 3) + elementMargin, + .y = (screenHeight / 3) + elementMargin, + .width = (screenWidth / 3) - elementMargin, + .height = ((2 * screenHeight) / 3) - (elementMargin * 2) +}; +const Rectangle elementRender = { + .x = ((2 * screenWidth) / 3) + elementMargin, + .y = (screenHeight / 3) + elementMargin, + .width = (screenWidth / 3) - (elementMargin * 2), + .height = ((2 * screenHeight) / 3) - (elementMargin * 2) +}; + + +// dtp mean draw texture pro +Rectangle dtpSource = { + .x = 0, + .y = 0, + .width = 100, + .height = 100 +}; +Rectangle dtpDest = { + .x = 0, + .y = 0, + .width = 100, + .height = 100 +}; +Vector2 dtpOrigin = { + .x = 0, + .y = 0 +}; +int dtpRotation = 0; + +Texture2D raySprite; +Texture2D kenneySprite; +Texture2D* selectedTexture; + +RenderTexture2D previewElement; + +void DrawElementBorders(); +void DrawUI(); +void DrawCodeDisplay(); +void DrawOutput(); + +int main() +{ + InitWindow(screenWidth, screenHeight, "DrawTexturePro Example"); + SetTargetFPS(60); + GuiLoadStyle("assets/lavanda.rgs"); + + raySprite = LoadTexture("assets/ray.png"); + kenneySprite = LoadTexture("assets/kenney.png"); + + selectedTexture = &raySprite; + + while (!WindowShouldClose()) + { + BeginDrawing(); + ClearBackground(RAYWHITE); + + DrawElementBorders(); + DrawUI(); + DrawCodeDisplay(); + DrawOutput(); + + EndDrawing(); + } + CloseWindow(); + + return 0; +} + +void DrawElementBorders() { + GuiPanel( + (Rectangle) { + .x = 0, + .y = 0, + .width = screenWidth, + .height = screenHeight + 5 + }, + "DrawTexturePro Experimenter" + ); + GuiGroupBox( + elementSliders, + "Control Sliders" + ); + GuiGroupBox( + elementCode, + "Equivalent Code" + ); + DrawRectangle( + elementCode.x + 10, + elementCode.y + 10, + elementCode.width - 20, + elementCode.height - 20, + RAYWHITE + ); + GuiGroupBox( + elementPreRender, + "Texture Being Read" + ); + DrawRectangle( + elementPreRender.x + 10, + elementPreRender.y + 10, + elementPreRender.width - 20, + elementPreRender.height - 20, + RAYWHITE + ); + GuiGroupBox( + elementRender, + "Texture Being Rendered" + ); + DrawRectangle( + elementRender.x + 10, + elementRender.y + 10, + elementRender.width - 20, + elementRender.height - 20, + RAYWHITE + ); +} + +void DrawUI() { + //elementSlider.x + elementBorderWidth + char buffer[10]; + int xOffset = 50; + int yOffset = 40; + const int sliderSpacing = 10; + const int sliderHeight = 20; + + GuiLabel( + (Rectangle) { + .x = elementSliders.x + xOffset - 25, + .y = elementSliders.y + yOffset - sliderHeight - (sliderSpacing / 2), + .width = 200, + .height = sliderHeight + }, + "Source" + ); + sprintf(buffer, "%d", (int)dtpSource.x), + dtpSource.x = GuiSlider( + (Rectangle) { + .x = elementSliders.x + xOffset, + .y = elementSliders.y + yOffset, + .width = 200, + .height = sliderHeight + }, + "x", + buffer, + dtpSource.x, + 0, + 100 + ); + sprintf(buffer, "%d", (int)dtpSource.y), + dtpSource.y = GuiSlider( + (Rectangle) { + .x = elementSliders.x + xOffset, + .y = elementSliders.y + yOffset + sliderHeight + sliderSpacing, + .width = 200, + .height = sliderHeight + }, + "y", + buffer, + dtpSource.y, + 0, + 100 + ); + sprintf(buffer, "%d", (int)dtpSource.width), + dtpSource.width = GuiSlider( + (Rectangle) { + .x = elementSliders.x + xOffset, + .y = elementSliders.y + yOffset + ((sliderHeight + sliderSpacing) * 2), + .width = 200, + .height = sliderHeight + }, + "Width", + buffer, + dtpSource.width, + 0, + 100 + ); + sprintf(buffer, "%d", (int)dtpSource.height), + dtpSource.height = GuiSlider( + (Rectangle) { + .x = elementSliders.x + xOffset, + .y = elementSliders.y + yOffset + ((sliderHeight + sliderSpacing) * 3), + .width = 200, + .height = sliderHeight + }, + "Height", + buffer, + dtpSource.height, + 0, + 100 + ); + +}; +void DrawCodeDisplay() {}; +void DrawOutput() {}; diff --git a/raygui b/raygui new file mode 160000 index 0000000..c991cbc --- /dev/null +++ b/raygui @@ -0,0 +1 @@ +Subproject commit c991cbcaf884ed29a604ff18c0f1ab35659fc3ea diff --git a/raylib b/raylib new file mode 160000 index 0000000..020e903 --- /dev/null +++ b/raylib @@ -0,0 +1 @@ +Subproject commit 020e90319388fb6e0975d2bb502d4824d369aece -- cgit v1.2.3