@ -0,0 +1,25 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include "type/font.hpp" | |||||
namespace type { | |||||
} // namespace type |
@ -0,0 +1,40 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef ANTKEEPER_TYPE_FONT_HPP | |||||
#define ANTKEEPER_TYPE_FONT_HPP | |||||
#include <string> | |||||
namespace type { | |||||
class font | |||||
{ | |||||
public: | |||||
//font(); | |||||
//float measure(const std::u32string& text) const; | |||||
private: | |||||
}; | |||||
} // namespace type | |||||
#endif // ANTKEEPER_TYPE_FONT_HPP |
@ -0,0 +1,39 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef ANTKEEPER_TYPE_GLYPH_HPP | |||||
#define ANTKEEPER_TYPE_GLYPH_HPP | |||||
namespace type { | |||||
/** | |||||
* | |||||
*/ | |||||
struct glyph_metrics | |||||
{ | |||||
float2 size; | |||||
float2 bearing_h; | |||||
float2 bearing_v; | |||||
float advance_h; | |||||
float advance_v; | |||||
}; | |||||
} // namespace type | |||||
#endif // ANTKEEPER_TYPE_GLYPH_HPP |
@ -0,0 +1,29 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef ANTKEEPER_TYPE_HPP | |||||
#define ANTKEEPER_TYPE_HPP | |||||
/// Text and typography. | |||||
namespace type {} | |||||
#include "type/font.hpp" | |||||
#include "type/unicode/unicode.hpp" | |||||
#endif // ANTKEEPER_TYPE_HPP |
@ -0,0 +1,39 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include "type/unicode/convert.hpp" | |||||
#include <codecvt> | |||||
namespace font { | |||||
namespace unicode { | |||||
std::u32string u32(const std::string& u8) | |||||
{ | |||||
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert; | |||||
return convert.from_bytes(u8); | |||||
} | |||||
std::string u8(const std::u32string& u32) | |||||
{ | |||||
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert; | |||||
return convert.to_bytes(u32); | |||||
} | |||||
} // namespace unicode | |||||
} // namespace font |
@ -0,0 +1,47 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef ANTKEEPER_TYPE_UNICODE_CONVERT_HPP | |||||
#define ANTKEEPER_TYPE_UNICODE_CONVERT_HPP | |||||
#include <string> | |||||
namespace type { | |||||
namespace unicode { | |||||
/** | |||||
* Converts a UTF-8 string to UTF-32. | |||||
* | |||||
* @param u8 UTF-8 string. | |||||
* @return UTF-32 string. | |||||
*/ | |||||
std::u32string u32(const std::string& u8); | |||||
/** | |||||
* Converts a UTF-32 string to UTF-8. | |||||
* | |||||
* @param u32 UTF-32 string. | |||||
* @return UTF-8 string. | |||||
*/ | |||||
std::string u32(const std::u32string& u32); | |||||
} // namespace unicode | |||||
} // namespace type | |||||
#endif // ANTKEEPER_TYPE_UNICODE_CONVERT_HPP |
@ -0,0 +1,33 @@ | |||||
/* | |||||
* Copyright (C) 2021 Christopher J. Howard | |||||
* | |||||
* This file is part of Antkeeper source code. | |||||
* | |||||
* Antkeeper source code is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* Antkeeper source code is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef ANTKEEPER_TYPE_UNICODE_HPP | |||||
#define ANTKEEPER_TYPE_UNICODE_HPP | |||||
namespace type { | |||||
/// Unicode-related functions and data. | |||||
namespace unicode {} | |||||
} // namespace type | |||||
#include "type/unicode/block.hpp" | |||||
#include "type/unicode/convert.hpp" | |||||
#endif // ANTKEEPER_TYPE_UNICODE_HPP |