@ -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 |