actually add vendor folder
@@ -0,0 +1,8 @@
|
||||
Art used in examples is provided under a free and permissive license.
|
||||
Check individual licenses for details:
|
||||
|
||||
- [Jupiter Crash] font by Brian Kent (AEnigma) - https://www.dafont.com/es/jupiter-crash.font
|
||||
- [Kaiserzeit Gotisch] font by Dieter Steffmann - https://www.dafont.com/es/kaiserzeit-gotisch.font
|
||||
- [Scarfy spritesheet](scarfy.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)
|
||||
- [Fudesumi image](fudesumi.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)
|
||||
- [Cyberpunk Street Environment](https://ansimuz.itch.io/cyberpunk-street-environment) by Luis Zuno ([@ansimuz](https://twitter.com/ansimuz)), licensed as [CC-BY-3.0](http://creativecommons.org/licenses/by/3.0/)
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 379 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 811 KiB |
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 288 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 496 B |
@@ -0,0 +1,109 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raylib [textures] example - Bunnymark
|
||||
*
|
||||
* This example has been created using raylib 1.6 (www.raylib.com)
|
||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||
*
|
||||
* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
********************************************************************************************/
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "raylib-cpp.hpp"
|
||||
|
||||
// This is the maximum amount of elements (quads) per batch
|
||||
// NOTE: This value is defined in [rlgl] module and can be changed there
|
||||
#define MAX_BATCH_ELEMENTS 8192
|
||||
|
||||
class Bunny {
|
||||
public:
|
||||
Bunny() {
|
||||
position = GetMousePosition();
|
||||
speed.x = static_cast<float>(GetRandomValue(-250, 250)) / 60.0f;
|
||||
speed.y = static_cast<float>(GetRandomValue(-250, 250)) / 60.0f;
|
||||
color = raylib::Color(
|
||||
GetRandomValue(50, 240),
|
||||
GetRandomValue(80, 240),
|
||||
GetRandomValue(100, 240));
|
||||
}
|
||||
|
||||
void Update(const raylib::Texture2D& texBunny) {
|
||||
position.x += speed.x;
|
||||
position.y += speed.y;
|
||||
|
||||
if (((position.x + texBunny.width/2) > GetScreenWidth()) ||
|
||||
((position.x + texBunny.width/2) < 0)) speed.x *= -1;
|
||||
if (((position.y + texBunny.height/2) > GetScreenHeight()) ||
|
||||
((position.y + texBunny.height/2 - 40) < 0)) speed.y *= -1;
|
||||
}
|
||||
|
||||
Vector2 position;
|
||||
Vector2 speed;
|
||||
Color color;
|
||||
};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
// Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
|
||||
raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - bunnymark");
|
||||
|
||||
// Load bunny texture
|
||||
raylib::Texture2D texBunny("resources/wabbit_alpha.png");
|
||||
|
||||
std::list<Bunny> bunnies;
|
||||
|
||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!window.ShouldClose()) { // Detect window close button or ESC key
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) {
|
||||
// Create more bunnies
|
||||
for (int i = 0; i < 100; i++) {
|
||||
bunnies.emplace_back();
|
||||
}
|
||||
}
|
||||
|
||||
// Update bunnies
|
||||
|
||||
for (Bunny& bunny: bunnies) {
|
||||
bunny.Update(texBunny);
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
{
|
||||
window.ClearBackground(RAYWHITE);
|
||||
|
||||
for (Bunny& bunny : bunnies) {
|
||||
// NOTE: When internal batch buffer limit is reached (MAX_BATCH_ELEMENTS),
|
||||
// a draw call is launched and buffer starts being filled again;
|
||||
// before issuing a draw call, updated vertex data from internal CPU buffer is send to GPU...
|
||||
// Process of sending data is costly and it could happen that GPU data has not been completely
|
||||
// processed for drawing while new data is tried to be sent (updating current in-use buffers)
|
||||
// it could generates a stall and consequently a frame drop, limiting the number of drawn bunnies
|
||||
texBunny.Draw(bunny.position, bunny.color);
|
||||
}
|
||||
|
||||
DrawRectangle(0, 0, screenWidth, 40, BLACK);
|
||||
raylib::DrawText(TextFormat("bunnies: %i", bunnies.size()), 120, 10, 20, GREEN);
|
||||
raylib::DrawText(TextFormat("batched draw calls: %i", 1 + bunnies.size()/MAX_BATCH_ELEMENTS), 320, 10, 20, MAROON);
|
||||
|
||||
DrawFPS(10, 10);
|
||||
}
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raylib [textures] example - Image loading and drawing on it
|
||||
*
|
||||
* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM)
|
||||
*
|
||||
* This example has been created using raylib 1.4 (www.raylib.com)
|
||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||
*
|
||||
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
********************************************************************************************/
|
||||
|
||||
#include "raylib-cpp.hpp"
|
||||
|
||||
int main(void) {
|
||||
// Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
|
||||
raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - image drawing");
|
||||
raylib::Color darkGray = DARKGRAY;
|
||||
|
||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||
raylib::Image cat("resources/cat.png"); // Load image in CPU memory (RAM)
|
||||
cat.Crop(raylib::Rectangle(100, 10, 280, 380)) // Crop an image piece
|
||||
.FlipHorizontal() // Flip cropped image horizontally
|
||||
.Resize(150, 200); // Resize flipped-cropped image
|
||||
|
||||
raylib::Image parrots("resources/parrots.png"); // Load image in CPU memory (RAM)
|
||||
|
||||
// Draw one image over the other with a scaling of 1.5f
|
||||
parrots
|
||||
.Draw(cat,
|
||||
raylib::Rectangle(0, 0, cat.GetWidth(), cat.GetHeight()),
|
||||
raylib::Rectangle(30, 40, cat.GetWidth() * 1.5f, cat.GetHeight() * 1.5f));
|
||||
parrots.Crop(raylib::Rectangle(0, 50, parrots.GetWidth(), parrots.GetHeight() - 100)); // Crop resulting image
|
||||
|
||||
// Load custom font for frawing on image
|
||||
raylib::Font font("resources/custom_jupiter_crash.png");
|
||||
|
||||
// Draw over image using custom font
|
||||
parrots.DrawText(font, "PARROTS & CAT", raylib::Vector2(300, 230), font.baseSize, -2);
|
||||
|
||||
raylib::Texture2D texture(parrots); // Image converted to texture, uploaded to GPU memory (VRAM)
|
||||
|
||||
SetTargetFPS(60);
|
||||
//---------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!window.ShouldClose()) { // Detect window close button or ESC key
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
// Update your variables here
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
{
|
||||
window.ClearBackground(RAYWHITE);
|
||||
|
||||
texture.Draw(screenWidth / 2 - texture.width / 2,
|
||||
screenHeight / 2 - texture.height / 2 - 40);
|
||||
darkGray.DrawRectangleLines(screenWidth / 2 - texture.width / 2,
|
||||
screenHeight / 2 - texture.height / 2 - 40,
|
||||
texture.width, texture.height);
|
||||
|
||||
darkGray.DrawText("We are drawing only one texture from various images composed!",
|
||||
240, 350, 10);
|
||||
darkGray.DrawText("Source images have been cropped, scaled, flipped and copied one over the other.",
|
||||
190, 370, 10);
|
||||
}
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raylib [textures] example - Image loading and texture creation
|
||||
*
|
||||
* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM)
|
||||
*
|
||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||
*
|
||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
********************************************************************************************/
|
||||
|
||||
#include "raylib-cpp.hpp"
|
||||
|
||||
int main() {
|
||||
// Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
int screenWidth = 800;
|
||||
int screenHeight = 450;
|
||||
|
||||
raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - image loading");
|
||||
raylib::Texture texture("resources/raylib_logo.png");
|
||||
raylib::Color textColor = raylib::Color::LightGray();
|
||||
|
||||
// Main game loop
|
||||
while (!window.ShouldClose()) { // Detect window close button or ESC key
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
// Update your variables here
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
{
|
||||
window.ClearBackground(raylib::Color::RayWhite());
|
||||
|
||||
texture.Draw(screenWidth / 2 - texture.GetWidth() / 2, screenHeight / 2 - texture.GetHeight() / 2);
|
||||
|
||||
textColor.DrawText("this IS a texture loaded from an image!", 300, 370, 10);
|
||||
}
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||