|
|
@ -65,13 +65,13 @@ int main(void) |
|
|
|
// Main game loop |
|
|
|
while (!WindowShouldClose()) // Detect window close button or ESC key |
|
|
|
{ |
|
|
|
// Update |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
Vector2 mousePos = GetMousePosition(); |
|
|
|
// Update |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
Vector2 mousePos = GetMousePosition(); |
|
|
|
|
|
|
|
// Switch between colors |
|
|
|
if (IsKeyPressed(KEY_RIGHT)) colorSelected++; |
|
|
|
else if (IsKeyPressed(KEY_LEFT)) colorSelected--; |
|
|
|
// Switch between colors |
|
|
|
if (IsKeyPressed(KEY_RIGHT)) colorSelected++; |
|
|
|
else if (IsKeyPressed(KEY_LEFT)) colorSelected--; |
|
|
|
else if (IsKeyPressed(KEY_UP)) colorSelected -= 3; |
|
|
|
else if (IsKeyPressed(KEY_DOWN)) colorSelected += 3; |
|
|
|
|
|
|
@ -91,41 +91,41 @@ int main(void) |
|
|
|
colorSelectedPrev = colorSelected; |
|
|
|
} |
|
|
|
|
|
|
|
if (colorSelected >= MAX_COLORS_COUNT) colorSelected = MAX_COLORS_COUNT - 1; |
|
|
|
else if (colorSelected < 0) colorSelected = 0; |
|
|
|
if (colorSelected >= MAX_COLORS_COUNT) colorSelected = MAX_COLORS_COUNT - 1; |
|
|
|
else if (colorSelected < 0) colorSelected = 0; |
|
|
|
|
|
|
|
// Change brush size |
|
|
|
brushSize += GetMouseWheelMove()*5; |
|
|
|
if (brushSize < 2) brushSize = 2; |
|
|
|
if (brushSize > 50) brushSize = 50; |
|
|
|
brushSize += GetMouseWheelMove()*5; |
|
|
|
if (brushSize < 2) brushSize = 2; |
|
|
|
if (brushSize > 50) brushSize = 50; |
|
|
|
|
|
|
|
if (IsKeyPressed(KEY_C)) |
|
|
|
if (IsKeyPressed(KEY_C)) |
|
|
|
{ |
|
|
|
// Clear render texture to clear color |
|
|
|
BeginTextureMode(target); |
|
|
|
ClearBackground(colors[0]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
BeginTextureMode(target); |
|
|
|
ClearBackground(colors[0]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
|
|
|
|
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) |
|
|
|
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) |
|
|
|
{ |
|
|
|
// Paint circle into render texture |
|
|
|
// NOTE: To avoid discontinuous circles, we could store |
|
|
|
// previous-next mouse points and just draw a line using brush size |
|
|
|
BeginTextureMode(target); |
|
|
|
if (mousePos.y > 50) DrawCircle(mousePos.x, mousePos.y, brushSize, colors[colorSelected]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
BeginTextureMode(target); |
|
|
|
if (mousePos.y > 50) DrawCircle(mousePos.x, mousePos.y, brushSize, colors[colorSelected]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
|
|
|
|
if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) |
|
|
|
if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) |
|
|
|
{ |
|
|
|
colorSelected = 0; |
|
|
|
|
|
|
|
// Erase circle from render texture |
|
|
|
BeginTextureMode(target); |
|
|
|
if (mousePos.y > 50) DrawCircle(mousePos.x, mousePos.y, brushSize, colors[0]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
BeginTextureMode(target); |
|
|
|
if (mousePos.y > 50) DrawCircle(mousePos.x, mousePos.y, brushSize, colors[0]); |
|
|
|
EndTextureMode(); |
|
|
|
} |
|
|
|
else colorSelected = colorSelectedPrev; |
|
|
|
|
|
|
|
// Check mouse hover save button |
|
|
@ -152,16 +152,16 @@ int main(void) |
|
|
|
saveMessageCounter = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
// Draw |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
BeginDrawing(); |
|
|
|
// Draw |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
BeginDrawing(); |
|
|
|
|
|
|
|
ClearBackground(RAYWHITE); |
|
|
|
|
|
|
|
// NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) |
|
|
|
DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); |
|
|
|
// NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) |
|
|
|
DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); |
|
|
|
|
|
|
|
// Draw drawing circle for reference |
|
|
|
if (mousePos.y > 50) |
|
|
@ -194,8 +194,8 @@ int main(void) |
|
|
|
DrawText("IMAGE SAVED: my_amazing_texture_painting.png", 150, 180, 20, RAYWHITE); |
|
|
|
} |
|
|
|
|
|
|
|
EndDrawing(); |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
EndDrawing(); |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
} |
|
|
|
|
|
|
|
// De-Initialization |
|
|
|