Initial Cross Platform Work

This commit is contained in:
2025-04-24 16:39:24 +02:00
parent dbffb7f316
commit 13c2869ba8
170 changed files with 18611 additions and 10292 deletions

View File

@ -22,13 +22,12 @@ SOFTWARE.
*/
#include <pd/external/json.hpp>
#include <pd/core/color.hpp>
#include <pd/overlays/keyboard.hpp>
#include <pd/lib3ds/gamepad_icons.hpp>
// #include <pd/lib3ds/gamepad_icons.hpp>
namespace PD {
struct Key {
Key(const std::string& key, const vec2& p, const vec2& s,
Key(const std::string& key, const fvec2& p, const fvec2& s,
Keyboard::KeyOperation o) {
k = key;
pos = p;
@ -36,8 +35,8 @@ struct Key {
op = o;
}
std::string k;
vec2 pos;
vec2 size;
fvec2 pos;
fvec2 size;
Keyboard::KeyOperation op;
};
@ -45,198 +44,198 @@ using Layout = std::vector<Key>;
Layout layouts[3] = {
{
// 1st row
Key("`", vec2(5, 0), 18, Keyboard::AppendSelf),
Key("1", vec2(25, 0), 18, Keyboard::AppendSelf),
Key("2", vec2(45, 0), 18, Keyboard::AppendSelf),
Key("3", vec2(65, 0), 18, Keyboard::AppendSelf),
Key("4", vec2(85, 0), 18, Keyboard::AppendSelf),
Key("5", vec2(105, 0), 18, Keyboard::AppendSelf),
Key("6", vec2(125, 0), 18, Keyboard::AppendSelf),
Key("7", vec2(145, 0), 18, Keyboard::AppendSelf),
Key("8", vec2(165, 0), 18, Keyboard::AppendSelf),
Key("9", vec2(185, 0), 18, Keyboard::AppendSelf),
Key("0", vec2(205, 0), 18, Keyboard::AppendSelf),
Key("-", vec2(225, 0), 18, Keyboard::AppendSelf),
Key("=", vec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", vec2(265, 0), vec2(50, 18), Keyboard::Backspace),
Key("`", fvec2(5, 0), 18, Keyboard::AppendSelf),
Key("1", fvec2(25, 0), 18, Keyboard::AppendSelf),
Key("2", fvec2(45, 0), 18, Keyboard::AppendSelf),
Key("3", fvec2(65, 0), 18, Keyboard::AppendSelf),
Key("4", fvec2(85, 0), 18, Keyboard::AppendSelf),
Key("5", fvec2(105, 0), 18, Keyboard::AppendSelf),
Key("6", fvec2(125, 0), 18, Keyboard::AppendSelf),
Key("7", fvec2(145, 0), 18, Keyboard::AppendSelf),
Key("8", fvec2(165, 0), 18, Keyboard::AppendSelf),
Key("9", fvec2(185, 0), 18, Keyboard::AppendSelf),
Key("0", fvec2(205, 0), 18, Keyboard::AppendSelf),
Key("-", fvec2(225, 0), 18, Keyboard::AppendSelf),
Key("=", fvec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", fvec2(265, 0), fvec2(50, 18), Keyboard::Backspace),
// 2nd row
Key("Tab", vec2(5, 20), vec2(40, 18), Keyboard::Tab),
Key("q", vec2(47, 20), 18, Keyboard::AppendSelf),
Key("w", vec2(67, 20), 18, Keyboard::AppendSelf),
Key("e", vec2(87, 20), 18, Keyboard::AppendSelf),
Key("r", vec2(107, 20), 18, Keyboard::AppendSelf),
Key("t", vec2(127, 20), 18, Keyboard::AppendSelf),
Key("y", vec2(147, 20), 18, Keyboard::AppendSelf),
Key("u", vec2(167, 20), 18, Keyboard::AppendSelf),
Key("i", vec2(187, 20), 18, Keyboard::AppendSelf),
Key("o", vec2(207, 20), 18, Keyboard::AppendSelf),
Key("p", vec2(227, 20), 18, Keyboard::AppendSelf),
Key("[", vec2(247, 20), 18, Keyboard::AppendSelf),
Key("]", vec2(267, 20), 18, Keyboard::AppendSelf),
Key("\\", vec2(287, 20), vec2(28, 18), Keyboard::AppendSelf),
Key("Tab", fvec2(5, 20), fvec2(40, 18), Keyboard::Tab),
Key("q", fvec2(47, 20), 18, Keyboard::AppendSelf),
Key("w", fvec2(67, 20), 18, Keyboard::AppendSelf),
Key("e", fvec2(87, 20), 18, Keyboard::AppendSelf),
Key("r", fvec2(107, 20), 18, Keyboard::AppendSelf),
Key("t", fvec2(127, 20), 18, Keyboard::AppendSelf),
Key("y", fvec2(147, 20), 18, Keyboard::AppendSelf),
Key("u", fvec2(167, 20), 18, Keyboard::AppendSelf),
Key("i", fvec2(187, 20), 18, Keyboard::AppendSelf),
Key("o", fvec2(207, 20), 18, Keyboard::AppendSelf),
Key("p", fvec2(227, 20), 18, Keyboard::AppendSelf),
Key("[", fvec2(247, 20), 18, Keyboard::AppendSelf),
Key("]", fvec2(267, 20), 18, Keyboard::AppendSelf),
Key("\\", fvec2(287, 20), fvec2(28, 18), Keyboard::AppendSelf),
// 3rd row
Key("Caps", vec2(5, 40), vec2(50, 18), Keyboard::Caps),
Key("a", vec2(57, 40), 18, Keyboard::AppendSelf),
Key("s", vec2(77, 40), 18, Keyboard::AppendSelf),
Key("d", vec2(97, 40), 18, Keyboard::AppendSelf),
Key("f", vec2(117, 40), 18, Keyboard::AppendSelf),
Key("g", vec2(137, 40), 18, Keyboard::AppendSelf),
Key("h", vec2(157, 40), 18, Keyboard::AppendSelf),
Key("j", vec2(177, 40), 18, Keyboard::AppendSelf),
Key("k", vec2(197, 40), 18, Keyboard::AppendSelf),
Key("l", vec2(217, 40), 18, Keyboard::AppendSelf),
Key(";", vec2(237, 40), 18, Keyboard::AppendSelf),
Key("'", vec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", vec2(277, 40), vec2(38, 18), Keyboard::Enter),
Key("Caps", fvec2(5, 40), fvec2(50, 18), Keyboard::Caps),
Key("a", fvec2(57, 40), 18, Keyboard::AppendSelf),
Key("s", fvec2(77, 40), 18, Keyboard::AppendSelf),
Key("d", fvec2(97, 40), 18, Keyboard::AppendSelf),
Key("f", fvec2(117, 40), 18, Keyboard::AppendSelf),
Key("g", fvec2(137, 40), 18, Keyboard::AppendSelf),
Key("h", fvec2(157, 40), 18, Keyboard::AppendSelf),
Key("j", fvec2(177, 40), 18, Keyboard::AppendSelf),
Key("k", fvec2(197, 40), 18, Keyboard::AppendSelf),
Key("l", fvec2(217, 40), 18, Keyboard::AppendSelf),
Key(";", fvec2(237, 40), 18, Keyboard::AppendSelf),
Key("'", fvec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", fvec2(277, 40), fvec2(38, 18), Keyboard::Enter),
// 4th row
Key("Shift", vec2(5, 60), vec2(60, 18), Keyboard::Shift),
Key("z", vec2(67, 60), 18, Keyboard::AppendSelf),
Key("x", vec2(87, 60), 18, Keyboard::AppendSelf),
Key("c", vec2(107, 60), 18, Keyboard::AppendSelf),
Key("v", vec2(127, 60), 18, Keyboard::AppendSelf),
Key("b", vec2(147, 60), 18, Keyboard::AppendSelf),
Key("n", vec2(167, 60), 18, Keyboard::AppendSelf),
Key("m", vec2(187, 60), 18, Keyboard::AppendSelf),
Key(",", vec2(207, 60), 18, Keyboard::AppendSelf),
Key(".", vec2(227, 60), 18, Keyboard::AppendSelf),
Key("/", vec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", vec2(267, 60), vec2(48, 18), Keyboard::Shift),
Key("Shift", fvec2(5, 60), fvec2(60, 18), Keyboard::Shift),
Key("z", fvec2(67, 60), 18, Keyboard::AppendSelf),
Key("x", fvec2(87, 60), 18, Keyboard::AppendSelf),
Key("c", fvec2(107, 60), 18, Keyboard::AppendSelf),
Key("v", fvec2(127, 60), 18, Keyboard::AppendSelf),
Key("b", fvec2(147, 60), 18, Keyboard::AppendSelf),
Key("n", fvec2(167, 60), 18, Keyboard::AppendSelf),
Key("m", fvec2(187, 60), 18, Keyboard::AppendSelf),
Key(",", fvec2(207, 60), 18, Keyboard::AppendSelf),
Key(".", fvec2(227, 60), 18, Keyboard::AppendSelf),
Key("/", fvec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", fvec2(267, 60), fvec2(48, 18), Keyboard::Shift),
// 5th row
Key("Cancel", vec2(5, 80), vec2(70, 18), Keyboard::OpCancel),
Key("(X)", vec2(77, 80), vec2(23, 18), Keyboard::Op1),
Key("Space", vec2(102, 80), vec2(108, 18), Keyboard::Space),
Key("(!)", vec2(212, 80), vec2(23, 18), Keyboard::Op2),
Key("Confirm", vec2(237, 80), vec2(78, 18), Keyboard::OpConfirm),
Key("Cancel", fvec2(5, 80), fvec2(70, 18), Keyboard::OpCancel),
Key("(X)", fvec2(77, 80), fvec2(23, 18), Keyboard::Op1),
Key("Space", fvec2(102, 80), fvec2(108, 18), Keyboard::Space),
Key("(!)", fvec2(212, 80), fvec2(23, 18), Keyboard::Op2),
Key("Confirm", fvec2(237, 80), fvec2(78, 18), Keyboard::OpConfirm),
},
{
// 1st row
Key("`", vec2(5, 0), 18, Keyboard::AppendSelf),
Key("1", vec2(25, 0), 18, Keyboard::AppendSelf),
Key("2", vec2(45, 0), 18, Keyboard::AppendSelf),
Key("3", vec2(65, 0), 18, Keyboard::AppendSelf),
Key("4", vec2(85, 0), 18, Keyboard::AppendSelf),
Key("5", vec2(105, 0), 18, Keyboard::AppendSelf),
Key("6", vec2(125, 0), 18, Keyboard::AppendSelf),
Key("7", vec2(145, 0), 18, Keyboard::AppendSelf),
Key("8", vec2(165, 0), 18, Keyboard::AppendSelf),
Key("9", vec2(185, 0), 18, Keyboard::AppendSelf),
Key("0", vec2(205, 0), 18, Keyboard::AppendSelf),
Key("-", vec2(225, 0), 18, Keyboard::AppendSelf),
Key("=", vec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", vec2(265, 0), vec2(50, 18), Keyboard::Backspace),
Key("`", fvec2(5, 0), 18, Keyboard::AppendSelf),
Key("1", fvec2(25, 0), 18, Keyboard::AppendSelf),
Key("2", fvec2(45, 0), 18, Keyboard::AppendSelf),
Key("3", fvec2(65, 0), 18, Keyboard::AppendSelf),
Key("4", fvec2(85, 0), 18, Keyboard::AppendSelf),
Key("5", fvec2(105, 0), 18, Keyboard::AppendSelf),
Key("6", fvec2(125, 0), 18, Keyboard::AppendSelf),
Key("7", fvec2(145, 0), 18, Keyboard::AppendSelf),
Key("8", fvec2(165, 0), 18, Keyboard::AppendSelf),
Key("9", fvec2(185, 0), 18, Keyboard::AppendSelf),
Key("0", fvec2(205, 0), 18, Keyboard::AppendSelf),
Key("-", fvec2(225, 0), 18, Keyboard::AppendSelf),
Key("=", fvec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", fvec2(265, 0), fvec2(50, 18), Keyboard::Backspace),
// 2nd row
Key("Tab", vec2(5, 20), vec2(40, 18), Keyboard::Tab),
Key("Q", vec2(47, 20), 18, Keyboard::AppendSelf),
Key("W", vec2(67, 20), 18, Keyboard::AppendSelf),
Key("E", vec2(87, 20), 18, Keyboard::AppendSelf),
Key("R", vec2(107, 20), 18, Keyboard::AppendSelf),
Key("T", vec2(127, 20), 18, Keyboard::AppendSelf),
Key("Y", vec2(147, 20), 18, Keyboard::AppendSelf),
Key("U", vec2(167, 20), 18, Keyboard::AppendSelf),
Key("I", vec2(187, 20), 18, Keyboard::AppendSelf),
Key("O", vec2(207, 20), 18, Keyboard::AppendSelf),
Key("P", vec2(227, 20), 18, Keyboard::AppendSelf),
Key("[", vec2(247, 20), 18, Keyboard::AppendSelf),
Key("]", vec2(267, 20), 18, Keyboard::AppendSelf),
Key("\\", vec2(287, 20), vec2(28, 18), Keyboard::AppendSelf),
Key("Tab", fvec2(5, 20), fvec2(40, 18), Keyboard::Tab),
Key("Q", fvec2(47, 20), 18, Keyboard::AppendSelf),
Key("W", fvec2(67, 20), 18, Keyboard::AppendSelf),
Key("E", fvec2(87, 20), 18, Keyboard::AppendSelf),
Key("R", fvec2(107, 20), 18, Keyboard::AppendSelf),
Key("T", fvec2(127, 20), 18, Keyboard::AppendSelf),
Key("Y", fvec2(147, 20), 18, Keyboard::AppendSelf),
Key("U", fvec2(167, 20), 18, Keyboard::AppendSelf),
Key("I", fvec2(187, 20), 18, Keyboard::AppendSelf),
Key("O", fvec2(207, 20), 18, Keyboard::AppendSelf),
Key("P", fvec2(227, 20), 18, Keyboard::AppendSelf),
Key("[", fvec2(247, 20), 18, Keyboard::AppendSelf),
Key("]", fvec2(267, 20), 18, Keyboard::AppendSelf),
Key("\\", fvec2(287, 20), fvec2(28, 18), Keyboard::AppendSelf),
// 3rd row
Key("Caps", vec2(5, 40), vec2(50, 18), Keyboard::Caps),
Key("A", vec2(57, 40), 18, Keyboard::AppendSelf),
Key("S", vec2(77, 40), 18, Keyboard::AppendSelf),
Key("D", vec2(97, 40), 18, Keyboard::AppendSelf),
Key("F", vec2(117, 40), 18, Keyboard::AppendSelf),
Key("G", vec2(137, 40), 18, Keyboard::AppendSelf),
Key("H", vec2(157, 40), 18, Keyboard::AppendSelf),
Key("J", vec2(177, 40), 18, Keyboard::AppendSelf),
Key("K", vec2(197, 40), 18, Keyboard::AppendSelf),
Key("L", vec2(217, 40), 18, Keyboard::AppendSelf),
Key(";", vec2(237, 40), 18, Keyboard::AppendSelf),
Key("'", vec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", vec2(277, 40), vec2(38, 18), Keyboard::Enter),
Key("Caps", fvec2(5, 40), fvec2(50, 18), Keyboard::Caps),
Key("A", fvec2(57, 40), 18, Keyboard::AppendSelf),
Key("S", fvec2(77, 40), 18, Keyboard::AppendSelf),
Key("D", fvec2(97, 40), 18, Keyboard::AppendSelf),
Key("F", fvec2(117, 40), 18, Keyboard::AppendSelf),
Key("G", fvec2(137, 40), 18, Keyboard::AppendSelf),
Key("H", fvec2(157, 40), 18, Keyboard::AppendSelf),
Key("J", fvec2(177, 40), 18, Keyboard::AppendSelf),
Key("K", fvec2(197, 40), 18, Keyboard::AppendSelf),
Key("L", fvec2(217, 40), 18, Keyboard::AppendSelf),
Key(";", fvec2(237, 40), 18, Keyboard::AppendSelf),
Key("'", fvec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", fvec2(277, 40), fvec2(38, 18), Keyboard::Enter),
// 4th row
Key("Shift", vec2(5, 60), vec2(60, 18), Keyboard::Shift),
Key("Z", vec2(67, 60), 18, Keyboard::AppendSelf),
Key("X", vec2(87, 60), 18, Keyboard::AppendSelf),
Key("C", vec2(107, 60), 18, Keyboard::AppendSelf),
Key("V", vec2(127, 60), 18, Keyboard::AppendSelf),
Key("B", vec2(147, 60), 18, Keyboard::AppendSelf),
Key("N", vec2(167, 60), 18, Keyboard::AppendSelf),
Key("M", vec2(187, 60), 18, Keyboard::AppendSelf),
Key(",", vec2(207, 60), 18, Keyboard::AppendSelf),
Key(".", vec2(227, 60), 18, Keyboard::AppendSelf),
Key("/", vec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", vec2(267, 60), vec2(48, 18), Keyboard::Shift),
Key("Shift", fvec2(5, 60), fvec2(60, 18), Keyboard::Shift),
Key("Z", fvec2(67, 60), 18, Keyboard::AppendSelf),
Key("X", fvec2(87, 60), 18, Keyboard::AppendSelf),
Key("C", fvec2(107, 60), 18, Keyboard::AppendSelf),
Key("V", fvec2(127, 60), 18, Keyboard::AppendSelf),
Key("B", fvec2(147, 60), 18, Keyboard::AppendSelf),
Key("N", fvec2(167, 60), 18, Keyboard::AppendSelf),
Key("M", fvec2(187, 60), 18, Keyboard::AppendSelf),
Key(",", fvec2(207, 60), 18, Keyboard::AppendSelf),
Key(".", fvec2(227, 60), 18, Keyboard::AppendSelf),
Key("/", fvec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", fvec2(267, 60), fvec2(48, 18), Keyboard::Shift),
// 5th row
Key("Cancel", vec2(5, 80), vec2(70, 18), Keyboard::OpCancel),
Key("(X)", vec2(77, 80), vec2(23, 18), Keyboard::Op1),
Key("Space", vec2(102, 80), vec2(108, 18), Keyboard::Space),
Key("(!)", vec2(212, 80), vec2(23, 18), Keyboard::Op2),
Key("Confirm", vec2(237, 80), vec2(78, 18), Keyboard::OpConfirm),
Key("Cancel", fvec2(5, 80), fvec2(70, 18), Keyboard::OpCancel),
Key("(X)", fvec2(77, 80), fvec2(23, 18), Keyboard::Op1),
Key("Space", fvec2(102, 80), fvec2(108, 18), Keyboard::Space),
Key("(!)", fvec2(212, 80), fvec2(23, 18), Keyboard::Op2),
Key("Confirm", fvec2(237, 80), fvec2(78, 18), Keyboard::OpConfirm),
},
{
// 1st row
Key("~", vec2(5, 0), 18, Keyboard::AppendSelf),
Key("!", vec2(25, 0), 18, Keyboard::AppendSelf),
Key("@", vec2(45, 0), 18, Keyboard::AppendSelf),
Key("#", vec2(65, 0), 18, Keyboard::AppendSelf),
Key("$", vec2(85, 0), 18, Keyboard::AppendSelf),
Key("%", vec2(105, 0), 18, Keyboard::AppendSelf),
Key("^", vec2(125, 0), 18, Keyboard::AppendSelf),
Key("&", vec2(145, 0), 18, Keyboard::AppendSelf),
Key("*", vec2(165, 0), 18, Keyboard::AppendSelf),
Key("(", vec2(185, 0), 18, Keyboard::AppendSelf),
Key(")", vec2(205, 0), 18, Keyboard::AppendSelf),
Key("_", vec2(225, 0), 18, Keyboard::AppendSelf),
Key("+", vec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", vec2(265, 0), vec2(50, 18), Keyboard::Backspace),
Key("~", fvec2(5, 0), 18, Keyboard::AppendSelf),
Key("!", fvec2(25, 0), 18, Keyboard::AppendSelf),
Key("@", fvec2(45, 0), 18, Keyboard::AppendSelf),
Key("#", fvec2(65, 0), 18, Keyboard::AppendSelf),
Key("$", fvec2(85, 0), 18, Keyboard::AppendSelf),
Key("%", fvec2(105, 0), 18, Keyboard::AppendSelf),
Key("^", fvec2(125, 0), 18, Keyboard::AppendSelf),
Key("&", fvec2(145, 0), 18, Keyboard::AppendSelf),
Key("*", fvec2(165, 0), 18, Keyboard::AppendSelf),
Key("(", fvec2(185, 0), 18, Keyboard::AppendSelf),
Key(")", fvec2(205, 0), 18, Keyboard::AppendSelf),
Key("_", fvec2(225, 0), 18, Keyboard::AppendSelf),
Key("+", fvec2(245, 0), 18, Keyboard::AppendSelf),
Key("<---", fvec2(265, 0), fvec2(50, 18), Keyboard::Backspace),
// 2nd row
Key("Tab", vec2(5, 20), vec2(40, 18), Keyboard::Tab),
Key("Q", vec2(47, 20), 18, Keyboard::AppendSelf),
Key("W", vec2(67, 20), 18, Keyboard::AppendSelf),
Key("E", vec2(87, 20), 18, Keyboard::AppendSelf),
Key("R", vec2(107, 20), 18, Keyboard::AppendSelf),
Key("T", vec2(127, 20), 18, Keyboard::AppendSelf),
Key("Y", vec2(147, 20), 18, Keyboard::AppendSelf),
Key("U", vec2(167, 20), 18, Keyboard::AppendSelf),
Key("I", vec2(187, 20), 18, Keyboard::AppendSelf),
Key("O", vec2(207, 20), 18, Keyboard::AppendSelf),
Key("P", vec2(227, 20), 18, Keyboard::AppendSelf),
Key("{", vec2(247, 20), 18, Keyboard::AppendSelf),
Key("}", vec2(267, 20), 18, Keyboard::AppendSelf),
Key("|", vec2(287, 20), vec2(28, 18), Keyboard::AppendSelf),
Key("Tab", fvec2(5, 20), fvec2(40, 18), Keyboard::Tab),
Key("Q", fvec2(47, 20), 18, Keyboard::AppendSelf),
Key("W", fvec2(67, 20), 18, Keyboard::AppendSelf),
Key("E", fvec2(87, 20), 18, Keyboard::AppendSelf),
Key("R", fvec2(107, 20), 18, Keyboard::AppendSelf),
Key("T", fvec2(127, 20), 18, Keyboard::AppendSelf),
Key("Y", fvec2(147, 20), 18, Keyboard::AppendSelf),
Key("U", fvec2(167, 20), 18, Keyboard::AppendSelf),
Key("I", fvec2(187, 20), 18, Keyboard::AppendSelf),
Key("O", fvec2(207, 20), 18, Keyboard::AppendSelf),
Key("P", fvec2(227, 20), 18, Keyboard::AppendSelf),
Key("{", fvec2(247, 20), 18, Keyboard::AppendSelf),
Key("}", fvec2(267, 20), 18, Keyboard::AppendSelf),
Key("|", fvec2(287, 20), fvec2(28, 18), Keyboard::AppendSelf),
// 3rd row
Key("Caps", vec2(5, 40), vec2(50, 18), Keyboard::Caps),
Key("A", vec2(57, 40), 18, Keyboard::AppendSelf),
Key("S", vec2(77, 40), 18, Keyboard::AppendSelf),
Key("D", vec2(97, 40), 18, Keyboard::AppendSelf),
Key("F", vec2(117, 40), 18, Keyboard::AppendSelf),
Key("G", vec2(137, 40), 18, Keyboard::AppendSelf),
Key("H", vec2(157, 40), 18, Keyboard::AppendSelf),
Key("J", vec2(177, 40), 18, Keyboard::AppendSelf),
Key("K", vec2(197, 40), 18, Keyboard::AppendSelf),
Key("L", vec2(217, 40), 18, Keyboard::AppendSelf),
Key(":", vec2(237, 40), 18, Keyboard::AppendSelf),
Key("\"", vec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", vec2(277, 40), vec2(38, 18), Keyboard::Enter),
Key("Caps", fvec2(5, 40), fvec2(50, 18), Keyboard::Caps),
Key("A", fvec2(57, 40), 18, Keyboard::AppendSelf),
Key("S", fvec2(77, 40), 18, Keyboard::AppendSelf),
Key("D", fvec2(97, 40), 18, Keyboard::AppendSelf),
Key("F", fvec2(117, 40), 18, Keyboard::AppendSelf),
Key("G", fvec2(137, 40), 18, Keyboard::AppendSelf),
Key("H", fvec2(157, 40), 18, Keyboard::AppendSelf),
Key("J", fvec2(177, 40), 18, Keyboard::AppendSelf),
Key("K", fvec2(197, 40), 18, Keyboard::AppendSelf),
Key("L", fvec2(217, 40), 18, Keyboard::AppendSelf),
Key(":", fvec2(237, 40), 18, Keyboard::AppendSelf),
Key("\"", fvec2(257, 40), 18, Keyboard::AppendSelf),
Key("Enter", fvec2(277, 40), fvec2(38, 18), Keyboard::Enter),
// 4th row
Key("Shift", vec2(5, 60), vec2(60, 18), Keyboard::Shift),
Key("Z", vec2(67, 60), 18, Keyboard::AppendSelf),
Key("X", vec2(87, 60), 18, Keyboard::AppendSelf),
Key("C", vec2(107, 60), 18, Keyboard::AppendSelf),
Key("V", vec2(127, 60), 18, Keyboard::AppendSelf),
Key("B", vec2(147, 60), 18, Keyboard::AppendSelf),
Key("N", vec2(167, 60), 18, Keyboard::AppendSelf),
Key("M", vec2(187, 60), 18, Keyboard::AppendSelf),
Key("<", vec2(207, 60), 18, Keyboard::AppendSelf),
Key(">", vec2(227, 60), 18, Keyboard::AppendSelf),
Key("?", vec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", vec2(267, 60), vec2(48, 18), Keyboard::Shift),
Key("Shift", fvec2(5, 60), fvec2(60, 18), Keyboard::Shift),
Key("Z", fvec2(67, 60), 18, Keyboard::AppendSelf),
Key("X", fvec2(87, 60), 18, Keyboard::AppendSelf),
Key("C", fvec2(107, 60), 18, Keyboard::AppendSelf),
Key("V", fvec2(127, 60), 18, Keyboard::AppendSelf),
Key("B", fvec2(147, 60), 18, Keyboard::AppendSelf),
Key("N", fvec2(167, 60), 18, Keyboard::AppendSelf),
Key("M", fvec2(187, 60), 18, Keyboard::AppendSelf),
Key("<", fvec2(207, 60), 18, Keyboard::AppendSelf),
Key(">", fvec2(227, 60), 18, Keyboard::AppendSelf),
Key("?", fvec2(247, 60), 18, Keyboard::AppendSelf),
Key("Shift", fvec2(267, 60), fvec2(48, 18), Keyboard::Shift),
// 5th row
Key("Cancel", vec2(5, 80), vec2(70, 18), Keyboard::OpCancel),
Key("(X)", vec2(77, 80), vec2(23, 18), Keyboard::Op1),
Key("Space", vec2(102, 80), vec2(108, 18), Keyboard::Space),
Key("(!)", vec2(212, 80), vec2(23, 18), Keyboard::Op2),
Key("Confirm", vec2(237, 80), vec2(78, 18), Keyboard::OpConfirm),
Key("Cancel", fvec2(5, 80), fvec2(70, 18), Keyboard::OpCancel),
Key("(X)", fvec2(77, 80), fvec2(23, 18), Keyboard::Op1),
Key("Space", fvec2(102, 80), fvec2(108, 18), Keyboard::Space),
Key("(!)", fvec2(212, 80), fvec2(23, 18), Keyboard::Op2),
Key("Confirm", fvec2(237, 80), fvec2(78, 18), Keyboard::OpConfirm),
},
};
@ -248,10 +247,10 @@ void DumpLayout(const std::string& path) {
for (size_t j = 0; j < layouts[0].size(); j++) {
nlohmann::json key;
key["display_char"] = layouts[i][j].k;
key["pos_x"] = layouts[i][j].pos[0];
key["pos_y"] = layouts[i][j].pos[1];
key["size_x"] = layouts[i][j].size[0];
key["size_y"] = layouts[i][j].size[1];
key["pos_x"] = layouts[i][j].pos.x;
key["pos_y"] = layouts[i][j].pos.y;
key["size_x"] = layouts[i][j].size.x;
key["size_y"] = layouts[i][j].size.y;
key["op"] = layouts[i][j].op;
l1.push_back(key);
}
@ -521,20 +520,20 @@ void Keyboard::Update(float delta, LI::Renderer::Ref ren, Hid::Ref inp) {
}
if (flags & Flags_BlendTop) {
ren->OnScreen(ren->GetScreen(false));
ren->DrawRectSolid(0, vec2(400, 240), fade);
ren->DrawRectSolid(0, fvec2(400, 240), fade);
}
if (flags & Flags_BlendBottom) {
ren->OnScreen(ren->GetScreen(true));
ren->DrawRectSolid(0, vec2(320, 240), fade);
ren->DrawRectSolid(0, fvec2(320, 240), fade);
}
}
/// Get the current start possition
vec2 start = flymgr;
// Draw head and Keyboard background
ren->DrawRectSolid(
vec2(0, start.y()), vec2(320, 125),
fvec2(0, start.y()), fvec2(320, 125),
PD::Color("#222222ff").a((flags & Flags_Transparency) ? 0xaa : 0xff));
ren->DrawRectSolid(vec2(0, start.y()), vec2(320, 17), 0xaa000000);
ren->DrawRectSolid(fvec2(0, start.y()), fvec2(320, 17), 0xaa000000);
/// Grab the base layer and go one up for texts
int l = ren->Layer();
ren->Layer(l + 2);
@ -548,11 +547,11 @@ void Keyboard::Update(float delta, LI::Renderer::Ref ren, Hid::Ref inp) {
// s << GamePadIcons::GetIcon(GamePadIcons::R) << " CAPS\n";
// s << GamePadIcons::GetIcon(GamePadIcons::Dpad) << " Move ";
// s << GamePadIcons::GetIcon(GamePadIcons::A) << " Select\n";
// ren->DrawText(vec2(5, start.y() -
// ren->DrawText(fvec2(5, start.y() -
// ren->GetTextDimensions(s.str()).y()+16),
// 0xffffffff, s.str());
// }
ren->DrawText(vec2(5, start.y()), 0xffffffff, "> " + *text);
ren->DrawText(fvec2(5, start.y()), 0xffffffff, "> " + *text);
ren->Layer(l + 1);
/// Offset Keys start height by 22
start[1] += 22;
@ -592,7 +591,7 @@ void Keyboard::Update(float delta, LI::Renderer::Ref ren, Hid::Ref inp) {
if (raw_sel != -1) {
ren->Layer(l);
ren->DrawRectSolid(start + selector - vec2(1), vec2(sel_szs) + vec2(2),
ren->DrawRectSolid(start + selector - fvec2(1), fvec2(sel_szs) + fvec2(2),
0xaaffffff);
ren->Layer(l);
}

View File

@ -28,7 +28,7 @@ MessageMgr::Container::Container(const std::string& title,
const std::string& msg) {
this->title = title;
this->msg = msg;
size = vec2(150, 50);
size = fvec2(150, 50);
// Precalculate colors
col_bg = PD::Color("#111111aa");
col_text = PD::Color("#ffffff");
@ -42,11 +42,11 @@ void MessageMgr::Container::Render(PD::LI::Renderer::Ref ren) {
// result in the same we would waste a lot
// of cpu performance which is a big issue
// espeacilly on the Old3ds...
vec2 tpos = pos;
fvec2 tpos = pos;
// Check if it goes out of screen
// Instant kills cause it will never be on
// Screen agains
if (tpos[1] + size[1] < 0) {
if (tpos.y + size.y < 0) {
kill = true;
}
// If should be removed modify the color by fade
@ -58,7 +58,7 @@ void MessageMgr::Container::Render(PD::LI::Renderer::Ref ren) {
}
// Create a backup Layer to Render
// Text onto the next layer
int l = ren->Layer();
//int l = ren->Layer();
ren->DrawRectSolid(tpos, size, col_bg);
ren->Layer(l + 1);
ren->DrawText(tpos + vec2(4, 2), col_text, title);