+
+
+
+ 多態性入門
diff --git a/ja-jp/search/search_index.json b/ja-jp/search/search_index.json
index fe5c9658..3064e870 100644
--- a/ja-jp/search/search_index.json
+++ b/ja-jp/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["ja"],"separator":"[\\s\\-\u3000\u3001\u3002\uff0c\uff0e]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"\u5275\u9020\u306e\u305f\u3081\u306e C++ \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af Siv3D","text":"Siv3D\uff08\u30b7\u30d6\u30b9\u30ea\u30fc\u30c7\u30a3\u30fc\uff09\u306f\u3001\u97f3\u3084\u753b\u50cf\u3001AI \u3092\u4f7f\u3063\u305f\u30b2\u30fc\u30e0\u3084\u30a2\u30d7\u30ea\u3092\u3001\u30e2\u30c0\u30f3\u306a C++ \u30b3\u30fc\u30c9\u3067\u697d\u3057\u304f\u7c21\u5358\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u304d\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3059\u3002\u8c4a\u5bcc\u306a\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u304c\u7528\u610f\u3055\u308c\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u306e\u30e6\u30fc\u30b6\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u6c17\u8efd\u306b\u8cea\u554f\u3084\u76f8\u8ac7\u304c\u3067\u304d\u307e\u3059\u3002\u52d5\u4f5c\u74b0\u5883\u306f Windows / macOS / Linux / Web \u3067\u3059\u3002
"},{"location":"#siv3d-\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9--v0614","title":"Siv3D \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9 | v0.6.14","text":"Windows macOS (Intel / Rosetta) Ubuntu
Apple Silicon (M1 / M2) \u306f\u3001\u73fe\u5728\u958b\u767a\u4e2d\u306e Siv3D v0.8.0 \u304b\u3089\u30cd\u30a4\u30c6\u30a3\u30d6\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3059\u3002
"},{"location":"#web-\u5411\u3051-siv3d-\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u975e\u516c\u5f0f","title":"Web \u5411\u3051 Siv3D \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\uff08\u975e\u516c\u5f0f\uff09","text":"for Web (Windows + Visual Studio) for Web (Visual Studio Code)
"},{"location":"#\u30d0\u30f3\u30c0\u30a4\u30ca\u30e0\u30b3\u30b9\u30bf\u30b8\u30aa\u676f-siv3d-\u30b2\u30fc\u30e0\u30b8\u30e3\u30e0\u7d50\u679c\u767a\u8868","title":"\u30d0\u30f3\u30c0\u30a4\u30ca\u30e0\u30b3\u30b9\u30bf\u30b8\u30aa\u676f Siv3D \u30b2\u30fc\u30e0\u30b8\u30e3\u30e0\u3010\u7d50\u679c\u767a\u8868\u3011","text":"\u7d50\u679c\u767a\u8868\u30da\u30fc\u30b8
"},{"location":"#\u30b2\u30fc\u30e0\u3084\u30a2\u30d7\u30ea\u958b\u767a\u3092\u52b9\u7387\u5316\u3059\u308b\u5727\u5012\u7684\u306a\u6a5f\u80fd","title":"\u30b2\u30fc\u30e0\u3084\u30a2\u30d7\u30ea\u958b\u767a\u3092\u52b9\u7387\u5316\u3059\u308b\u3001\u5727\u5012\u7684\u306a\u6a5f\u80fd","text":"2D / 3D \u30b2\u30fc\u30e0\u3001\u30e1\u30c7\u30a3\u30a2\u30a2\u30fc\u30c8\u3001\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30b6\u3001\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u3092\u52b9\u7387\u7684\u306b\u958b\u767a\u3059\u308b\u305f\u3081\u306e\u3001\u4fbf\u5229\u306a\u30af\u30e9\u30b9\u3084\u95a2\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002
- 2D / 3D \u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9\uff08\u56f3\u5f62\u3001\u753b\u50cf\u3001\u30c6\u30ad\u30b9\u30c8\u3001\u30a2\u30a4\u30b3\u30f3\u3001\u52d5\u753b\u30013D\u30e2\u30c7\u30eb\u306a\u3069\uff09
- \u30aa\u30fc\u30c7\u30a3\u30aa\uff08BGM, \u52b9\u679c\u97f3\u3001\u30c6\u30ad\u30b9\u30c8\u8aad\u307f\u4e0a\u3052\u3001\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a3\u30eb\u30bf\u306a\u3069\uff09
- \u5165\u529b\u30c7\u30d0\u30a4\u30b9\uff08\u30de\u30a6\u30b9\u3001\u30ad\u30fc\u30dc\u30fc\u30c9\u3001Web\u30ab\u30e1\u30e9\u3001\u30de\u30a4\u30af\u3001\u30b2\u30fc\u30e0\u30d1\u30c3\u30c9\u306a\u3069\uff09
- \u30a6\u30a3\u30f3\u30c9\u30a6\u3001\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
- \u753b\u50cf\u51e6\u7406\u3001\u97f3\u58f0\u51e6\u7406\u3001\u7269\u7406\u6f14\u7b97\u3001\u7d4c\u8def\u63a2\u7d22\u3001\u5e7e\u4f55\u306a\u3069\u306e\u8a08\u7b97
- AI (OpenAI API \u3078\u306e\u30a2\u30af\u30bb\u30b9)
Siv3D \u306e\u6a5f\u80fd\u3092\u8a73\u3057\u304f\u898b\u308b
"},{"location":"#\u5b8c\u6210\u307e\u3067\u306e\u6700\u77ed\u8ddd\u96e2","title":"\u5b8c\u6210\u307e\u3067\u306e\u6700\u77ed\u8ddd\u96e2","text":"Siv3D \u3067\u306f\u3001C++ \u306e\u6587\u6cd5\u3092\u4f7f\u3063\u3066\u3001\u308f\u305a\u304b\u6570\u884c\u306e\u30b3\u30fc\u30c9\u3067\u4e16\u754c\u304c\u52d5\u304d\u59cb\u3081\u307e\u3059\u3002\u305f\u304f\u3055\u3093\u306e\u5922\u3084\u30a2\u30a4\u30c7\u30a2\u3092 C++ \u3067\u5b9f\u73fe\u3057\u307e\u3057\u3087\u3046\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF{ 0.8, 0.9, 1.0 }); // \u80cc\u666f\u8272\u3092\u8a2d\u5b9a\u3059\u308b\nconst Texture food{ U\"\ud83c\udf7f\"_emoji }; // \u7d75\u6587\u5b57\u304b\u3089\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u4f5c\u6210\u3059\u308b\nconst Texture chick{ U\"\ud83d\udc25\"_emoji };\t// \u7d75\u6587\u5b57\u304b\u3089\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u4f5c\u6210\u3059\u308b\nwhile (System::Update()) // \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\n{\nCircle{ Scene::Center(), 100 }.draw(); // \u753b\u9762\u306e\u4e2d\u5fc3\u306b\u5186\u3092\u63cf\u304f\nfood.drawAt(Scene::Center()); // \u753b\u9762\u306e\u4e2d\u5fc3\u306b\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u63cf\u304f\nchick.drawAt(Cursor::Pos()); // \u30de\u30a6\u30b9\u30ab\u30fc\u30bd\u30eb\u306e\u4f4d\u7f6e\u306b\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u63cf\u304f\n}\n}\n
\u5b9f\u884c\u7d50\u679c "},{"location":"#siv3d-\u3092\u4f7f\u3046-7-\u3064\u306e\u7406\u7531","title":"Siv3D \u3092\u4f7f\u3046 7 \u3064\u306e\u7406\u7531","text":"1. \u975e\u5e38\u306b\u77ed\u3044\u30b3\u30fc\u30c9\u3067\u66f8\u3051\u308b Siv3D \u306b\u306f\u63cf\u753b\u3084\u5165\u51fa\u529b\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306e\u4fbf\u5229\u306a\u95a2\u6570\u3068\u30af\u30e9\u30b9\u304c\u8c4a\u5bcc\u306b\u63c3\u3063\u3066\u3044\u3066\u30011 \u3064\u306e .cpp \u30d5\u30a1\u30a4\u30eb\u3060\u3051\u3067\u7c21\u5358\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u5b8c\u6210\u3057\u307e\u3059\u3002\u4f5c\u54c1\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092 GitHub \u3084 GitHub Gist \u306a\u3069\u306e\u30b3\u30fc\u30c9\u5171\u6709\u30b5\u30a4\u30c8\u3067\u30b7\u30a7\u30a2\u3057\u3066\u3001\u4e16\u754c\u4e2d\u306e Siv3D \u30e6\u30fc\u30b6\u3068\u6280\u8853\u3092\u4ea4\u63db\u3057\u3001\u5b66\u3073\u5408\u3044\u307e\u3057\u3087\u3046\u3002
2. \u6700\u65b0\u306e C++ \u306e\u66f8\u304d\u65b9\u304c\u8eab\u306b\u3064\u304f Siv3D \u306e API \u3068\u30b5\u30f3\u30d7\u30eb\u306f\u3001\u6700\u65b0\u306e C++ \u898f\u683c\u300cC++20\u300d\u3067\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u3002Siv3D \u3092\u4f7f\u3063\u3066\u3044\u308b\u3060\u3051\u3067\u3001\u73fe\u4ee3\u7684\u306a C++ \u306e\u66f8\u304d\u65b9\u304c\u8eab\u306b\u4ed8\u304d\u307e\u3059\u3002Siv3D \u306e\u4f5c\u8005\u306f\u3001\u65e5\u672c\u6700\u5927\u306e\u30b2\u30fc\u30e0\u958b\u767a\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9 CEDEC \u3067 \u6700\u65b0 C++ \u306e\u6d3b\u7528\u306b\u95a2\u3059\u308b\u8b1b\u6f14 \u3092\u3057\u305f\u308a\u3001C++ \u306e\u60c5\u5831\u30dd\u30fc\u30bf\u30eb \u3092\u4f5c\u6210\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u3001\u6700\u5148\u7aef\u306e C++ \u306e\u666e\u53ca\u6d3b\u52d5\u306b\u52aa\u3081\u3066\u3044\u307e\u3059\u3002\u4f5c\u54c1\u958b\u767a\u3068\u3001C++ \u306e\u5b66\u7fd2\u3092\u540c\u6642\u306b\u9032\u3081\u307e\u3057\u3087\u3046\u3002
3. \u5c0f\u3055\u306a\u5b66\u7fd2\u304c\u5927\u304d\u306a\u529b\u306b\u3064\u306a\u304c\u308b Siv3D \u306e\u88cf\u5074\u306f 2,200 \u30d5\u30a1\u30a4\u30eb\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068 90 \u306e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30fb\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306b\u3088\u3063\u3066\u69cb\u6210\u3055\u308c\u308b\u5927\u898f\u6a21\u306a\u30a8\u30f3\u30b8\u30f3\u3067\u3059\u3002\u5229\u7528\u8005\u306f\u305d\u306e\u30d1\u30ef\u30d5\u30eb\u306a\u6a5f\u80fd\u3092\u3001\u4f7f\u3044\u3084\u3059\u304f\u4e00\u8cab\u3057\u305f Siv3D \u306e API \u3092\u899a\u3048\u308b\u3060\u3051\u3067\u81ea\u5728\u306b\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5b66\u7fd2\u306b\u5fc5\u8981\u306a\u30b3\u30b9\u30c8\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u3001\u4f5c\u54c1\u958b\u767a\u306b\u96c6\u4e2d\u3057\u307e\u3057\u3087\u3046\u3002
4. \u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b Siv3D \u306f MIT \u30e9\u30a4\u30bb\u30f3\u30b9\u3067 \u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u958b\u767a \u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3044\u3064\u3067\u3082\u5185\u90e8\u30b3\u30fc\u30c9\u3092\u8abf\u3079\u305f\u308a\u3001\u6539\u9020\u3057\u305f\u308a\u3067\u304d\u307e\u3059\u3002\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u542b\u3081\u3001\u5546\u7528\u5229\u7528\u3092\u59a8\u3052\u308b\u6761\u4ef6\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u958b\u767a\u3057\u305f\u30b2\u30fc\u30e0\u3084\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u53ce\u76ca\u306f 100% \u958b\u767a\u8005\u304c\u7372\u5f97\u3067\u304d\u307e\u3059\u3002
5. \u8efd\u91cf\u3067\u8fc5\u901f\u306b\u30b9\u30bf\u30fc\u30c8\u3067\u304d\u308b Siv3D \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u59cb\u3081\u308b\u305f\u3081\u306e OpenSiv3D SDK \u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u306f\u308f\u305a\u304b 120 MB \u3067\u3059\uff08Windows \u7248\uff09\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u6570\u30af\u30ea\u30c3\u30af\u3067\u5b8c\u4e86\u3057\u3001Visual Studio \u3092\u8d77\u52d5\u3059\u308c\u3070\u30e1\u30cb\u30e5\u30fc\u306b Siv3D \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9805\u76ee\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u3066\u3001\u3059\u3050\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u59cb\u3081\u3089\u308c\u307e\u3059\u3002
6. \u89aa\u5207\u306a\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u306b\u53c2\u52a0\u3067\u304d\u308b Siv3D \u3067\u56f0\u3063\u305f\u3053\u3068\u304c\u3042\u308c\u3070\u3001Discord \u306a\u3069\u306e Siv3D \u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u304c\u5f79\u306b\u7acb\u3061\u307e\u3059\u3002\u307e\u305f\u3001\u5b66\u6821\u3084\u5730\u57df\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3078\u306e\u7121\u6599\u51fa\u5f35\u52c9\u5f37\u4f1a\u3082\u884c\u3063\u3066\u3044\u307e\u3059\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u306b\u8208\u5473\u306e\u3042\u308b\u5b66\u751f\u306b\u306f\u3001Siv3D \u3092\u7df4\u7fd2\u5834\u306b\u3057\u305f\u30b5\u30dd\u30fc\u30c8\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u6bce\u5e74\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u3002\u4ef2\u9593\u3068\u3068\u3082\u306b\u3088\u308a\u826f\u3044\u4f5c\u54c1\u3092\u4f5c\u308a\u307e\u3057\u3087\u3046\u3002
7. Web \u30d6\u30e9\u30a6\u30b6\u3067\u52d5\u304f \u975e\u516c\u5f0f\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b Web \u7248\uff08OpenSiv3D for Web \uff09\u3092\u4f7f\u3046\u3068\u3001Siv3D \u3067\u4f5c\u3063\u305f C++ \u30a2\u30d7\u30ea\u3092\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u52d5\u304f Web \u30a2\u30d7\u30ea\u306b\u79fb\u690d\u3067\u304d\u307e\u3059\u3002\u30b9\u30de\u30db\u3084\u30bf\u30d6\u30ec\u30c3\u30c8\u3092\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u3057\u3066\u3001\u3053\u308c\u307e\u3067\u3088\u308a\u3082\u305f\u304f\u3055\u3093\u306e\u4eba\u306b\u4f5c\u54c1\u3092\u5c4a\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
"},{"location":"#\u6cd5\u4eba\u5354\u8cdb","title":"\u6cd5\u4eba\u5354\u8cdb","text":""},{"location":"#\u500b\u4eba\u30b9\u30dd\u30f3\u30b5\u30fc","title":"\u500b\u4eba\u30b9\u30dd\u30f3\u30b5\u30fc","text":""},{"location":"#gold-sponsor","title":"Gold Sponsor","text":" - TOMOAKI12345
- CubeSoft, Inc.
"},{"location":"#silver-sponsor","title":"Silver Sponsor","text":""},{"location":"#bronze-sponsor","title":"Bronze Sponsor","text":"\u30a2\u30b2\u30cf\u30de, Fuyutsubaki, \ud83d\ude0a, \ud83d\udc1d, \u91ce\u83dc\u30b8\u30e5\u30fc\u30b9, jacking75, Chris Ohk, qppon, ysaito, \u304a\u304a\u3084\u307e, ShivAlley, lamuda, \ud83c\udf3b, fal_rnd, As Project, \ud83c\udf51, IZUNA, \u67cf\u5d0e\u3067\u3043\u3059\u3053
\u5354\u8cdb\u4f01\u696d\u306e\u52df\u96c6\u306b\u3064\u3044\u3066 Siv3D \u306e\u500b\u4eba\u30b9\u30dd\u30f3\u30b5\u30fc\u306b\u306a\u308b
"},{"location":"acknowledgments/","title":"\u8b1d\u8f9e","text":"Siv3D \u306e\u958b\u767a\u8005\u306f\u3001\u60c5\u5831\u51e6\u7406\u63a8\u9032\u6a5f\u69cb (IPA) \u306b\u3088\u308b \u672a\u8e0fIT\u4eba\u6750\u767a\u6398\u30fb\u80b2\u6210\u4e8b\u696d \u53ca\u3073 \u672a\u8e0f\u30a2\u30c9\u30d0\u30f3\u30b9\u30c8\u4e8b\u696d \u306e\u652f\u63f4\u3092\u53d7\u3051\u307e\u3057\u305f\u3002Siv3D \u3092\u6d3b\u7528\u3057\u305f\u30d3\u30b8\u30e5\u30a2\u30eb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306e\u958b\u767a\u306f\u3001\u79d1\u5b66\u6280\u8853\u632f\u8208\u6a5f\u69cb (JST) \u6226\u7565\u7684\u5275\u9020\u7814\u7a76\u63a8\u9032\u4e8b\u696d (ACT-I) \u53ca\u3073 \u516c\u76ca\u8ca1\u56e3\u6cd5\u4eba I-O DATA \u8ca1\u56e3 \u306e\u652f\u63f4\u3092\u53d7\u3051\u307e\u3057\u305f\u3002Siv3D \u306f \u65e9\u7a32\u7530\u5927\u5b66\u5b9f\u4f53\u60c5\u5831\u5b66\u535a\u58eb\u30d7\u30ed\u30b0\u30e9\u30e0 \u306b\u3088\u308b\u652f\u63f4\u3092\u53d7\u3051\u307e\u3057\u305f\u3002
"},{"location":"features/","title":"Siv3D \u306e\u6a5f\u80fd","text":"Siv3D \u304c\u63d0\u4f9b\u3059\u308b\u4e3b\u8981\u306a\u6a5f\u80fd\u306e\u30ea\u30b9\u30c8\u3067\u3059\u3002
"},{"location":"features/#\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9","title":"\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9","text":" - \u767a\u5c55\u7684\u306a 2D \u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9
- \u57fa\u672c\u7684\u306a 3D \u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9 (Wavefront OBJ, \u3044\u304f\u3064\u304b\u306e\u57fa\u672c\u5f62\u72b6)
- \u30ab\u30b9\u30bf\u30e0\u9802\u70b9\u30fb\u30d4\u30af\u30bb\u30eb\u30b7\u30a7\u30fc\u30c0 (HLSL, GLSL)
- \u30c6\u30ad\u30b9\u30c8\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0 (Bitmap, SDF, MSDF)
- \u753b\u50cf\u5f62\u5f0f (PNG, JPEG, BMP, SVG, GIF, Animated GIF, TGA, PPM, WebP, TIFF)
- Unicode 15.0 \u7d75\u6587\u5b57\u3068 7,000 \u7a2e\u985e\u4ee5\u4e0a\u306e\u30a2\u30a4\u30b3\u30f3
- \u753b\u50cf\u51e6\u7406
- \u30d3\u30c7\u30aa\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0
"},{"location":"features/#\u30aa\u30fc\u30c7\u30a3\u30aa","title":"\u30aa\u30fc\u30c7\u30a3\u30aa","text":" - \u97f3\u58f0\u5f62\u5f0f (WAVE, MP3, AAC, OggVorbis, Opus, MIDI, WMA, FLAC, AIFF)
- \u97f3\u91cf\u3084\u30d1\u30f3\uff0c\u30b9\u30d4\u30fc\u30c9\uff0c\u30d4\u30c3\u30c1\u306e\u8abf\u6574
- \u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u518d\u751f (WAVE, MP3, OggVorbis)
- \u518d\u751f\u4e2d\u306e\u30d0\u30c3\u30d5\u30a1\u3078\u306e\u6ce2\u5f62\u66f8\u304d\u8fbc\u307f
- \u30d5\u30a7\u30fc\u30c9\u30a4\u30f3\uff0c\u30d5\u30a7\u30fc\u30c9\u30a2\u30a6\u30c8
- \u30eb\u30fc\u30d7
- \u30df\u30ad\u30b7\u30f3\u30b0\u30d0\u30b9
- \u30d5\u30a3\u30eb\u30bf\u51e6\u7406 (\u30ed\u30fc\u30d1\u30b9\u30d5\u30a3\u30eb\u30bf\uff0c\u30cf\u30a4\u30d1\u30b9\u30d5\u30a3\u30eb\u30bf, \u30a8\u30b3\u30fc, \u30ea\u30d0\u30fc\u30d6)
- FFT
- \u30b5\u30a6\u30f3\u30c9\u30d5\u30a9\u30f3\u30c8\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0
- \u30c6\u30ad\u30b9\u30c8\u8aad\u307f\u4e0a\u3052
"},{"location":"features/#\u5165\u529b\u30c7\u30d0\u30a4\u30b9","title":"\u5165\u529b\u30c7\u30d0\u30a4\u30b9","text":" - \u30de\u30a6\u30b9
- \u30ad\u30fc\u30dc\u30fc\u30c9
- \u30b2\u30fc\u30e0\u30d1\u30c3\u30c9
- \u30a6\u30a7\u30d6\u30ab\u30e1\u30e9
- \u30de\u30a4\u30af
- Joy-Con / Pro Controller
- XInput \u30b2\u30fc\u30e0\u30d1\u30c3\u30c9
- \u30da\u30f3\u30bf\u30d6\u30ec\u30c3\u30c8
- Leap Motion
"},{"location":"features/#\u30a6\u30a3\u30f3\u30c9\u30a6","title":"\u30a6\u30a3\u30f3\u30c9\u30a6","text":" - \u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u30e2\u30fc\u30c9
- \u9ad8 DPI \u30b5\u30dd\u30fc\u30c8
- \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u30b9\u30bf\u30a4\u30eb\uff08\u30b5\u30a4\u30ba\u5909\u66f4\u3001\u67a0\u7121\u3057\uff09
- \u30d5\u30a1\u30a4\u30eb\u30c0\u30a4\u30a2\u30ed\u30b0
- \u30c9\u30e9\u30c3\u30b0 & \u30c9\u30ed\u30c3\u30d7
- \u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9
- \u30c8\u30fc\u30b9\u30c8\u901a\u77e5
"},{"location":"features/#\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u901a\u4fe1","title":"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u901a\u4fe1","text":" - HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8
- \u30de\u30eb\u30c1\u30d7\u30ec\u30a4 (Photon SDK)
- TCP \u901a\u4fe1
- \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1
- \u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1 (pipe)
- OSC (Open Sound Control) \u901a\u4fe1
"},{"location":"features/#\u6570\u5b66","title":"\u6570\u5b66","text":" - \u30d9\u30af\u30c8\u30eb\u3068\u884c\u5217\u30af\u30e9\u30b9 (
Point
, Float2
, Vec2
, Float3
, Vec3
, Float4
, Vec4
, Mat3x2
, Mat3x3
, Mat4x4
, SIMD_Float4
, Quaternion
) - 2D \u5f62\u72b6\u30af\u30e9\u30b9 (
Line
, Circle
, Ellipse
, Rect
, RectF
, Triangle
, Quad
, RoundRect
, Polygon
, MultiPolygon
, LineString
, Spline2D
, Bezier2
, Bezier3
) - 3D \u5f62\u72b6\u30af\u30e9\u30b9 (
Plane
, InfinitePlane
, Sphere
, Box
, OrientedBox
, Ray
, Line3D
, Triangle3D
, ViewFrustum
, Disc
, Cylinder
, Cone
) - \u8272\u30af\u30e9\u30b9 (
Color
, ColorF
, HSV
) - \u66f2\u5ea7\u6a19\u7cfb\u30af\u30e9\u30b9
- 2D / 3D \u4ea4\u5dee\u5224\u5b9a\u30fb\u4ea4\u70b9\u8a08\u7b97
- 2D / 3D \u5e7e\u4f55\u8a08\u7b97
- \u9577\u65b9\u5f62\u8a70\u8fbc\u307f
- \u5e73\u9762\u7d30\u5206\u5272
- \u30ea\u30cb\u30a2\u8272\u7a7a\u9593\u3068\u30ac\u30f3\u30de\u8272\u7a7a\u9593
- \u7591\u4f3c\u4e71\u6570\u751f\u6210\u5668
- \u88dc\u9593\uff0c\u30a4\u30fc\u30b8\u30f3\u30b0\uff0c\u30b9\u30e0\u30fc\u30b8\u30f3\u30b0
- \u30d1\u30fc\u30ea\u30f3\u30ce\u30a4\u30ba
- \u6570\u5f0f\u30d1\u30fc\u30b5
- \u30ca\u30d3\u30e1\u30c3\u30b7\u30e5
- \u62e1\u5f35\u6570\u5024\u578b (
HalfFloat
, int128
, uint128
, BigInt
, BigFloat
)
"},{"location":"features/#\u6587\u5b57\u5217\u51e6\u7406","title":"\u6587\u5b57\u5217\u51e6\u7406","text":" - \u6587\u5b57\u5217\u30af\u30e9\u30b9 (
String
, StringView
) - Unicode \u5909\u63db (UTF-8 / UTF-16 / UTF-32)
- \u6b63\u898f\u8868\u73fe
{fmt}
\u30b9\u30bf\u30a4\u30eb\u306e\u6587\u5b57\u5217\u30d5\u30a9\u30fc\u30de\u30c3\u30c8 - \u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u66f8\u304d
- CSV / INI / JSON / XML / TOML \u30d1\u30fc\u30b5
- CSV / INI / JSON \u51fa\u529b
- JSON \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3
"},{"location":"features/#\u305d\u306e\u4ed6","title":"\u305d\u306e\u4ed6","text":" - \u57fa\u672c\u7684\u306aGUI (\u30dc\u30bf\u30f3\u3001\u30b9\u30e9\u30a4\u30c0\u30fc\u3001\u30e9\u30b8\u30aa\u30dc\u30bf\u30f3\u3001\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3001\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3001\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u3001\u30ea\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3001\u30ab\u30e9\u30fc\u30d4\u30c3\u30ab\u30fc\u3001\u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u3001\u30c6\u30fc\u30d6\u30eb)
- 2D \u7269\u7406\u30a8\u30f3\u30b8\u30f3\u306e\u7d71\u5408 (Box2D)
- \u914d\u5217\u30af\u30e9\u30b9 (
Array
, Grid
) - Kd-tree
- Disjoint Set Union
- \u975e\u540c\u671f\u30d5\u30a1\u30a4\u30eb\u30ed\u30fc\u30c9
- \u30c7\u30fc\u30bf\u5727\u7e2e (zlib, Zstandard)
- \u30b7\u30fc\u30f3\u9077\u79fb
- \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0
- \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76e3\u8996
- QR \u30b3\u30fc\u30c9
- GeoJSON
- \u65e5\u4ed8\u3068\u6642\u523b
- \u6642\u9593\u8a08\u6e2c
- \u30ed\u30ae\u30f3\u30b0
- \u30b7\u30ea\u30a2\u30e9\u30a4\u30ba
- UUID
- \u5b50\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406
- \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9
- \u96fb\u6e90\u7ba1\u7406
- \u30b9\u30af\u30ea\u30d7\u30c6\u30a3\u30f3\u30b0 (AngelScript)
- OpenAI API (Chat, Image, Embedding)
\uff08*\u4e00\u90e8\u306e\u6a5f\u80fd\u306f\u7279\u5b9a\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u307f\u3067\u306e\u30b5\u30dd\u30fc\u30c8\u3067\u3059\uff09
"},{"location":"learn/","title":"Siv3D \u3092\u5b66\u3076","text":""},{"location":"learn/#\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb","title":"\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb","text":"\u5165\u9580\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 1 \u7ae0 \u30bf\u30a4\u30c8\u30eb \u5185\u5bb9 1 \u306f\u3058\u3081\u3066\u306e Siv3D Siv3D \u306e\u57fa\u672c\u30b5\u30f3\u30d7\u30eb\u306e\u6539\u9020\u3092\u901a\u3057\u3066 Siv3D \u306e\u96f0\u56f2\u6c17\u3092\u4f53\u9a13\u3057\u307e\u3059\u3002 2 Siv3D \u306e\u57fa\u672c Siv3D \u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u57fa\u672c\u7684\u306a\u69cb\u6210\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059\u3002 3 Main \u95a2\u6570\u306e\u69cb\u6210 \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\u3084\u305d\u306e\u524d\u5f8c\u306b\u5b9f\u884c\u3055\u308c\u308b\u51e6\u7406\u306e\u69cb\u6210\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059\u3002 4 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u57fa\u672c\u64cd\u4f5c Siv3D \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u65b9\u6cd5\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059\u3002 5 \u7c21\u6613\u7684\u306a\u30c7\u30fc\u30bf\u8868\u793a \u30d7\u30ed\u30b0\u30e9\u30e0\u5185\u3067\u30c6\u30ad\u30b9\u30c8\u3084\u6570\u5024\u3092\u7c21\u6613\u8868\u793a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 6 \u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u578b Siv3D \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u4f7f\u7528\u3059\u308b\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u578b\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059\u3002 7 \u80cc\u666f\u306e\u8272\u3092\u5909\u3048\u308b \u753b\u9762\u306e\u80cc\u666f\u306e\u8272\u3092\u5909\u3048\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 8 \u5186\u3068\u9577\u65b9\u5f62\u3092\u63cf\u304f \u5186\u3068\u9577\u65b9\u5f62\u3092\u63cf\u304f\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 9 \u6a21\u69d8\u3092\u63cf\u304f \u5186\u3084\u9577\u65b9\u5f62\u3092\u4e26\u3079\u3066\u6a21\u69d8\u3092\u63cf\u304f\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 10 \u7d75\u6587\u5b57\u3092\u63cf\u304f \u7d75\u6587\u5b57\u3092\u63cf\u304f\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 11 \u30c6\u30ad\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b \u8272\u3084\u4f4d\u7f6e\u3092\u6307\u5b9a\u3057\u3066\u6570\u5024\u3084\u30c6\u30ad\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 12 \u5909\u6570\u3068\u52d5\u304d \u6642\u9593\u306e\u7d4c\u904e\u3092\u4f7f\u3063\u3066\u5909\u6570\u3092\u5909\u5316\u3055\u305b\u3066\u30e2\u30fc\u30b7\u30e7\u30f3\uff08\u52d5\u304d\uff09\u3092\u4f5c\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 13 \u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b\u3092\u6271\u3046 \u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u5165\u529b\u3092\u8abf\u3079\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 14 \u30de\u30a6\u30b9\u5165\u529b\u3092\u6271\u3046 \u30de\u30a6\u30b9\u306e\u30af\u30ea\u30c3\u30af\u3084\u30ab\u30fc\u30bd\u30eb\u306e\u4f4d\u7f6e\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 15 \u30dc\u30bf\u30f3\u3092\u4f5c\u308b \u3053\u3053\u307e\u3067\u5b66\u3093\u3060\u3053\u3068\u3092\u4f7f\u3063\u3066\u3001\u30dc\u30bf\u30f3\u3092\u4f5c\u308b\u7df4\u7fd2\u3092\u3057\u307e\u3059\u3002 16 \u30af\u30c3\u30ad\u30fc\u30af\u30ea\u30c3\u30ab\u30fc\u98a8\u306e\u30b2\u30fc\u30e0\u3092\u4f5c\u308b \u3053\u3053\u307e\u3067\u5b66\u3093\u3060\u3053\u3068\u3092\u4f7f\u3063\u3066\u3001\u30af\u30c3\u30ad\u30fc\u30af\u30ea\u30c3\u30ab\u30fc\u98a8\u306e\u30b2\u30fc\u30e0\u3092\u4f5c\u308a\u307e\u3059\u3002 \u5165\u9580\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 2 \u7ae0 \u30bf\u30a4\u30c8\u30eb \u5185\u5bb9 17 \u56f3\u5f62\u3092\u63cf\u304f Siv3D \u306b\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u3055\u307e\u3056\u307e\u306a 2D \u56f3\u5f62\u306e\u63cf\u753b\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 18 \u52d5\u304d\u3092\u4f5c\u308b \u52d5\u304d\u306e\u8868\u73fe\u306b\u5f79\u7acb\u3064 Siv3D \u306e\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 19 \u6587\u5b57\u5217\u30af\u30e9\u30b9 \u6587\u5b57\u5217\u30af\u30e9\u30b9 String
\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u307e\u3059\u3002 20 \u52d5\u7684\u914d\u5217 \u52d5\u7684\u914d\u5217\u30af\u30e9\u30b9 Array
\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u8aac\u660e\u3057\u307e\u3059\u3002 21 \u4e8c\u6b21\u5143\u914d\u5217 \u4e8c\u6b21\u5143\u914d\u5217\u30af\u30e9\u30b9 Grid
\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u307e\u3059\u3002 22 \u30cf\u30c3\u30b7\u30e5\u30c6\u30fc\u30d6\u30eb \u30cf\u30c3\u30b7\u30e5\u30bb\u30c3\u30c8 HashSet
\u3068\u30cf\u30c3\u30b7\u30e5\u30c6\u30fc\u30d6\u30eb HashTable
\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u307e\u3059\u3002 23 \u7121\u52b9\u5024\u3092\u8868\u73fe\u3067\u304d\u308b\u578b \u7121\u52b9\u5024\u3092\u8868\u73fe\u3067\u304d\u308b\u578b Optional
\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u307e\u3059\u3002 24 \u3042\u305f\u308a\u5224\u5b9a \u56f3\u5f62\u306e\u4ea4\u5dee\u5224\u5b9a\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 25 \u30c6\u30af\u30b9\u30c1\u30e3\u3092\u63cf\u304f \u7d75\u6587\u5b57\u3084\u30a2\u30a4\u30b3\u30f3\u3001\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u4f5c\u6210\u3057\u63cf\u753b\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 26 \u52d5\u753b\u3092\u63cf\u304f \u52d5\u753b\u3084 GIF \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u30b7\u30fc\u30f3\u306b\u63cf\u304f\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 27 \u6570\u5024\u3068\u6587\u5b57\u5217\u306e\u5909\u63db \u6570\u5024\u30c7\u30fc\u30bf\u3092\u6587\u5b57\u5217\u306b\u5909\u63db\u3059\u308b\u65b9\u6cd5\u3068\u3001\u6587\u5b57\u5217\u3092\u6570\u5024\u30c7\u30fc\u30bf\u306b\u5909\u63db\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 28 GUI \u30dc\u30bf\u30f3\u3084\u30b9\u30e9\u30a4\u30c0\u30fc\u3001\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306a\u3069\u306e GUI \u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 29 \u30e9\u30f3\u30c0\u30e0 \u6570\u3084\u8272\u3001\u5ea7\u6a19\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u751f\u6210\u3057\u305f\u308a\u3001\u8907\u6570\u306e\u9078\u629e\u80a2\u304b\u3089\u8981\u7d20\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3057\u305f\u308a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 30 \u65e5\u4ed8\u3068\u6642\u523b\u3001\u6642\u9593 \u6642\u9593\u306e\u8a08\u6e2c\u3084\u3001\u65e5\u4ed8\u3001\u6642\u523b\u306b\u95a2\u3059\u308b\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 31 \u30c6\u30ad\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b \u30d5\u30a9\u30f3\u30c8\u3092\u4f7f\u3063\u3066\u69d8\u3005\u306a\u30b9\u30bf\u30a4\u30eb\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u63cf\u304f\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 32 \u30b7\u30fc\u30f3\u3068\u30a6\u30a3\u30f3\u30c9\u30a6 Siv3D \u306e\u30b7\u30fc\u30f3\u3068\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 33 \u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b \u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u5165\u529b\u3092\u51e6\u7406\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 34 \u30de\u30a6\u30b9\u5165\u529b \u30de\u30a6\u30b9\u306b\u3088\u308b\u5165\u529b\u3092\u51e6\u7406\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 35 \u4fbf\u5229\u306a\u95a2\u6570 Siv3D \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u5f79\u7acb\u3064\u5c0f\u3055\u306a\u4fbf\u5229\u95a2\u6570\u3084\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 36 \u30a4\u30f3\u30bf\u30e9\u30af\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5 \u3053\u3053\u307e\u3067\u5b66\u3093\u3060\u3053\u3068\u3092\u4f7f\u3063\u3066\u3001\u69d8\u3005\u306a\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u8981\u7d20\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u5165\u9580\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 3 \u7ae0 \u30bf\u30a4\u30c8\u30eb \u5185\u5bb9 37 \u30aa\u30fc\u30c7\u30a3\u30aa\u518d\u751f \u52b9\u679c\u97f3\u3084\u97f3\u697d\u306e\u518d\u751f\u3092\u5236\u5fa1\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 38 \u30a2\u30bb\u30c3\u30c8\u7ba1\u7406 \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u3042\u3089\u3086\u308b\u3068\u3053\u308d\u304b\u3089 Texture
, Font
, Audio
\u306a\u3069\u306e\u30a2\u30bb\u30c3\u30c8\u30c7\u30fc\u30bf\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 39 2D \u30ec\u30f3\u30c0\u30fc\u30b9\u30c6\u30fc\u30c8 2D \u63cf\u753b\u306e\u8a2d\u5b9a\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u3066\u3001\u3055\u307e\u3056\u307e\u306a\u52b9\u679c\u3092\u5f97\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 40 \u30a8\u30d5\u30a7\u30af\u30c8 \u3061\u3087\u3063\u3068\u3057\u305f\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3084\u30a8\u30d5\u30a7\u30af\u30c8\u306e\u6f14\u51fa\u306b\u4fbf\u5229\u306a Effect
\u30af\u30e9\u30b9\u306e\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u307e\u3059\u3002 41 \u30ec\u30f3\u30c0\u30fc\u30c6\u30af\u30b9\u30c1\u30e3 \u56f3\u5f62\u3084\u30c6\u30af\u30b9\u30c1\u30e3\u3001\u30d5\u30a9\u30f3\u30c8\u306e\u63cf\u753b\u5148\u3092\u30b7\u30fc\u30f3\u3067\u306f\u306a\u304f\u30c6\u30af\u30b9\u30c1\u30e3\u306b\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 42 \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0 \u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u60c5\u5831\u53d6\u5f97\u304a\u3088\u3073\u64cd\u4f5c\u306b\u95a2\u3059\u308b\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 43 \u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb \u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u8aad\u307f\u8fbc\u3093\u3060\u308a\u3001\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u6587\u5b57\u5217\u3092\u66f8\u304d\u8fbc\u3093\u3060\u308a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 44 \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb CSV, INI, JSON, TOML, XML \u306a\u3069\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u66f8\u304d\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 45 \u30d0\u30a4\u30ca\u30ea\u30d5\u30a1\u30a4\u30eb \u30d0\u30a4\u30ca\u30ea\u5f62\u5f0f\u3067\u30c7\u30fc\u30bf\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3057\u3001\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 46 \u30d5\u30a1\u30a4\u30eb\u30c0\u30a4\u30a2\u30ed\u30b0 \u30d5\u30a1\u30a4\u30eb\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u958b\u3044\u3066\u753b\u50cf\u3084\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u8aad\u307f\u8fbc\u3093\u3060\u308a\u3001\u30aa\u30fc\u30d7\u30f3\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u3084\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u5b58\u540d\u3092\u6c7a\u3081\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 47 \u30c9\u30e9\u30c3\u30b0 & \u30c9\u30ed\u30c3\u30d7 \u30c9\u30e9\u30c3\u30b0&\u30c9\u30ed\u30c3\u30d7\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 48 \u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9 \u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u3092\u8868\u793a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 49 \u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\u306b\u753b\u50cf\u3084\u97f3\u58f0\u306a\u3069\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u57cb\u3081\u8fbc\u307f\u3001\u305d\u308c\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 50 HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306a\u3069\u306e HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 51 \u30b7\u30fc\u30f3\u7ba1\u7406 \u30b2\u30fc\u30e0\u3084\u30a2\u30d7\u30ea\u306b\u304a\u3051\u308b\u30b7\u30fc\u30f3\u9077\u79fb\u3092\u7c21\u5358\u306b\u5b9f\u88c5\u3059\u308b\u300c\u30b7\u30fc\u30f3\u7ba1\u7406\u300d\u306e\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 52 \u30b2\u30fc\u30e0\u30d1\u30c3\u30c9 \u30b2\u30fc\u30e0\u30d1\u30c3\u30c9\u306e\u5165\u529b\u3092\u6271\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 53 \u753b\u50cf\u7de8\u96c6 \u753b\u50cf\u7de8\u96c6\u3068\u3001\u305d\u306e\u7d50\u679c\u3092\u30b7\u30fc\u30f3\u306b\u8868\u793a\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 54 \u97f3\u58f0\u6ce2\u5f62 \u97f3\u58f0\u6ce2\u5f62\u306e\u7de8\u96c6\u3068\u3001\u305d\u306e\u7d50\u679c\u3092\u518d\u751f\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 55 \u30de\u30a4\u30af\u5165\u529b \u30d1\u30bd\u30b3\u30f3\u306b\u5185\u8535\u30fb\u63a5\u7d9a\u3055\u308c\u305f\u30de\u30a4\u30af\u304b\u3089\u97f3\u58f0\u6ce2\u5f62\u3092\u53d6\u5f97\u3057\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 56 Web \u30ab\u30e1\u30e9 \u30d1\u30bd\u30b3\u30f3\u306b\u5185\u8535\u30fb\u63a5\u7d9a\u3055\u308c\u305f Web \u30ab\u30e1\u30e9\u304b\u3089\u6620\u50cf\u3092\u53d6\u5f97\u3057\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 57 \u9ad8\u5ea6\u306a\u56f3\u5f62\u51e6\u7406 2D \u56f3\u5f62\u306e\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 58 \u30d7\u30ed\u30d5\u30a1\u30a4\u30e9\u3068\u6700\u9069\u5316 \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u3084\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 59 OpenAI API OpenAI API \u3068\u9023\u643a\u3059\u308b\u751f\u6210 AI \u306e\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 60 \u30a2\u30d7\u30ea\u306e\u516c\u958b \u4f5c\u6210\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u914d\u5e03\u3059\u308b\u305f\u3081\u306e\u624b\u9806\u3092\u5b66\u3073\u307e\u3059\u3002 \u5165\u9580\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 4 \u7ae0 \u30bf\u30a4\u30c8\u30eb \u5185\u5bb9 61 2D \u30ab\u30b9\u30bf\u30e0\u30b7\u30a7\u30fc\u30c0 2D \u63cf\u753b\u306b\u304a\u3044\u3066\u3001\u30ab\u30b9\u30bf\u30e0\u30b7\u30a7\u30fc\u30c0\u3092\u4f7f\u3063\u3066\u9ad8\u5ea6\u306a\u63cf\u753b\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 62 3D \u5f62\u72b6\u3092\u63cf\u304f \u57fa\u672c\u7684\u306a 3D \u63cf\u753b\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b66\u3073\u307e\u3059\u3002 63 3D \u5f62\u72b6\u3092\u63cf\u304f\uff08\u767a\u5c55\uff09 \u767a\u5c55\u7684\u306a 3D \u63cf\u753b\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b66\u3073\u307e\u3059\u3002 64 3D \u306e\u4ea4\u5dee\u5224\u5b9a 3D \u306e\u4ea4\u5dee\u5224\u5b9a\u3092\u884c\u3046\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 65 TCP \u901a\u4fe1 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9593\u3067 TCP \u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 66 \u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc \u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc\u30b2\u30fc\u30e0\u3092\u4f5c\u308b\u305f\u3081\u306e Photon \u9023\u643a\u6a5f\u80fd\u3092\u5b66\u3073\u307e\u3059\u3002 67 \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1 \u30c7\u30d0\u30a4\u30b9\u3068\u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 68 OSC \u901a\u4fe1 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9593\u3067 OSC \u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 69 \u30d1\u30a4\u30d7\u901a\u4fe1 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9593\u3067\u30d1\u30a4\u30d7\u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 70 \u6587\u7ae0\u306e\u8aad\u307f\u4e0a\u3052 OS \u306e\u6587\u7ae0\u8aad\u307f\u4e0a\u3052\u6a5f\u80fd\u3092\u4f7f\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 71 QR \u30b3\u30fc\u30c9 QR \u30b3\u30fc\u30c9\u306e\u751f\u6210\u3068\u8aad\u307f\u53d6\u308a\u306e\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 72 \u30d5\u30a1\u30a4\u30eb\u306e\u5727\u7e2e \u30c7\u30fc\u30bf\u3084\u30d5\u30a1\u30a4\u30eb\u3092\u5727\u7e2e\u30fb\u5c55\u958b\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 73 \u52d5\u753b\u7de8\u96c6 \u52d5\u753b\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u3084\u7de8\u96c6\u3001\u4fdd\u5b58\u3092\u884c\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 74 \u30da\u30f3\u30bf\u30d6\u30ec\u30c3\u30c8 \u30da\u30f3\u30bf\u30d6\u30ec\u30c3\u30c8\u3092\u6271\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 75 Leap \u30c7\u30d0\u30a4\u30b9 Leap \u30c7\u30d0\u30a4\u30b9\u3092\u6271\u3046\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 76 \u30ca\u30d3\u30e1\u30c3\u30b7\u30e5 \u30ca\u30d3\u30e1\u30c3\u30b7\u30e5\u3092\u7528\u3044\u305f\u7d4c\u8def\u63a2\u7d22\u306e\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 77 2D \u7269\u7406\u6f14\u7b97 2D \u7269\u7406\u6f14\u7b97\u306e\u6a5f\u80fd\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059\u3002 78 \u6570\u5f0f\u30d1\u30fc\u30b5 \u6570\u5f0f\u30d1\u30fc\u30b5\u3092\u7528\u3044\u3066\u6570\u5f0f\u3092\u8a55\u4fa1\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 79 \u30e6\u30fc\u30b6\u74b0\u5883\u306e\u53d6\u5f97 \u30e6\u30fc\u30b6\u540d\u306a\u3069\u3001\u30e6\u30fc\u30b6\u74b0\u5883\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002 80 \u30a2\u30c9\u30aa\u30f3\u3092\u4f5c\u308b \u30a2\u30c9\u30aa\u30f3\u3092\u4f5c\u6210\u3057\u3066 Siv3D \u30a8\u30f3\u30b8\u30f3\u306b\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u3073\u307e\u3059\u3002"},{"location":"learn/#\u30b5\u30f3\u30d7\u30eb\u96c6","title":"\u30b5\u30f3\u30d7\u30eb\u96c6","text":" - \u30b2\u30fc\u30e0\u306e\u30b5\u30f3\u30d7\u30eb
- \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30b5\u30f3\u30d7\u30eb
- Web \u30b5\u30fc\u30d3\u30b9\u3068\u306e\u9023\u643a\u30b5\u30f3\u30d7\u30eb
- \u56f3\u5f62\u306e\u30b5\u30f3\u30d7\u30eb
- 2D \u63cf\u753b\u306e\u30b5\u30f3\u30d7\u30eb
- \u753b\u50cf\u306e\u30b5\u30f3\u30d7\u30eb
- \u6587\u5b57\u8868\u793a\u306e\u30b5\u30f3\u30d7\u30eb
- UI \u306e\u30b5\u30f3\u30d7\u30eb
- \u30c7\u30fc\u30bf\u53ef\u8996\u5316\u306e\u30b5\u30f3\u30d7\u30eb
- \u30e2\u30fc\u30b7\u30e7\u30f3\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9\u306e\u30b5\u30f3\u30d7\u30eb
- \u97f3\u306e\u30b5\u30f3\u30d7\u30eb
- 2D \u7269\u7406\u6f14\u7b97\u306e\u30b5\u30f3\u30d7\u30eb
- 3D \u63cf\u753b\u306e\u30b5\u30f3\u30d7\u30eb
- \u30b2\u30fc\u30e0\u30e9\u30f3\u30c1\u30e3\u30fc\u3092\u4f5c\u308b
"},{"location":"learn/#github-\u30ea\u30dd\u30b8\u30c8\u30ea\u63b2\u8f09\u306e\u30b5\u30f3\u30d7\u30eb\u96c6","title":"GitHub \u30ea\u30dd\u30b8\u30c8\u30ea\u63b2\u8f09\u306e\u30b5\u30f3\u30d7\u30eb\u96c6","text":"Siv3D-Sample \u30b2\u30fc\u30e0\u5178\u578b
"},{"location":"learn/#\u8a18\u4e8b","title":"\u8a18\u4e8b","text":" - \u30b2\u30fc\u30e0\u958b\u767a\u306e\u30d2\u30f3\u30c8\u96c6
- \u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9
- \u975e\u540c\u671f\u51e6\u7406
- \u81ea\u4f5c\u30af\u30e9\u30b9\u3068 Siv3D \u306e\u9023\u4fc2
- Siv3D \u3067 Hello world \u3059\u308b 21 \u306e\u65b9\u6cd5
- \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3068\u3057\u3066\u4f5c\u6210\u3067\u304d\u306a\u3044\u30af\u30e9\u30b9
- \u591a\u614b\u6027\u3092\u4f7f\u3063\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0
"},{"location":"learn/#\u30e6\u30fc\u30b6\u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u96c6","title":"\u30e6\u30fc\u30b6\u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u96c6","text":" - Siv3D \u30df\u30cb\u30b5\u30f3\u30d7\u30eb\u96c6
- Siv3D \u30d7\u30c1\u30b5\u30f3\u30d7\u30eb
- Siv3D \u6b8b\u9ab8\u7f6e\u304d\u5834
"},{"location":"learn/#\u8cea\u554f\u3067\u304d\u308b\u30b3\u30df\u30e5\u30cb\u30c6\u30a3","title":"\u8cea\u554f\u3067\u304d\u308b\u30b3\u30df\u30e5\u30cb\u30c6\u30a3","text":" Discord Siv3D \u30b5\u30fc\u30d0\u30fc\u306b\u53c2\u52a0\u3059\u308b
"},{"location":"mascot/","title":"Siv3D \u304f\u3093","text":"\u300cSiv3D \u304f\u3093\u300d\u306f\u3001C++ \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af Siv3D \u306e\u30de\u30b9\u30b3\u30c3\u30c8\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3067\u3059\u3002\u30c7\u30b6\u30a4\u30f3\u3092 2015 \u5e74\u306b\u516c\u52df\u3057\u3001\u7070\u8272 \u3055\u3093\u306e\u30c7\u30b6\u30a4\u30f3\u304c\u9078\u3070\u308c\u307e\u3057\u305f\u3002
"},{"location":"mascot/#\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u306e\u8a2d\u5b9a","title":"\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u306e\u8a2d\u5b9a","text":" - \u5e74\u9f62: 12 \u6b73 / \u8eab\u9577: 144 cm / \u4f53\u91cd: 36 kg
- \u30b9\u30d4\u30fc\u30c9\u30bf\u30a4\u30d7\u306e\u8133\u7b4b\u30d5\u30a1\u30a4\u30bf\u30fc
- \u3057\u3063\u307d\u306f\u81ea\u5206\u3067\u52d5\u304b\u305b\u308b
- \u9577\u3044\u8155\u304c\u30ba\u30dc\u30f3\u306e\u88fe\u3088\u308a\u4e0b\u307e\u3067\u4f38\u3073\u308b
"},{"location":"mascot/#\u95a2\u9023\u30d5\u30a1\u30a4\u30eb","title":"\u95a2\u9023\u30d5\u30a1\u30a4\u30eb","text":"Siv3D \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u540c\u68b1\u3055\u308c\u3066\u3044\u307e\u3059\u3002
- \u516c\u5f0f\u753b\u50cf
example/siv3d-kun.png
- 3D \u30e2\u30c7\u30eb
example/obj/siv3d-kun.obj
- \u30c9\u30c3\u30c8\u7d75
example/spritesheet/siv3d-kun-16.png
"},{"location":"mascot/#\u30ae\u30e3\u30e9\u30ea\u30fc","title":"\u30ae\u30e3\u30e9\u30ea\u30fc","text":""},{"location":"mascot/#3d-\u30e2\u30c7\u30eb","title":"3D \u30e2\u30c7\u30eb","text":" - Siv3D \u304f\u3093 VRM \u30e2\u30c7\u30eb (itakawa \u69d8 \u63d0\u4f9b)
"},{"location":"mascot/#\u30b0\u30c3\u30ba","title":"\u30b0\u30c3\u30ba","text":" - Siv3D \u304f\u3093 LINE \u30b9\u30bf\u30f3\u30d7
"},{"location":"mascot/#\u516c\u5f0f\u30a4\u30e9\u30b9\u30c8","title":"\u516c\u5f0f\u30a4\u30e9\u30b9\u30c8","text":""},{"location":"mascot/#siv3d-advent-calendar-2021-\u62db\u5f85\u72b6\u30a4\u30e9\u30b9\u30c8","title":"Siv3D Advent Calendar 2021 \u62db\u5f85\u72b6\u30a4\u30e9\u30b9\u30c8","text":""},{"location":"mascot/#siv3d-\u65e7-web-\u30b5\u30a4\u30c8\u633f\u7d75\u30a4\u30e9\u30b9\u30c8","title":"Siv3D \u65e7 Web \u30b5\u30a4\u30c8\u633f\u7d75\u30a4\u30e9\u30b9\u30c8","text":""},{"location":"mascot/#siv3d-for-kids-\u30bf\u30a4\u30c8\u30eb\u753b\u9762\u30a4\u30e9\u30b9\u30c8","title":"Siv3D for Kids \u30bf\u30a4\u30c8\u30eb\u753b\u9762\u30a4\u30e9\u30b9\u30c8","text":""},{"location":"mascot/#siv3d-game-jam-2016-\u5e74-\u30a4\u30d9\u30f3\u30c8\u30d0\u30ca\u30fc","title":"Siv3D Game Jam (2016 \u5e74) \u30a4\u30d9\u30f3\u30c8\u30d0\u30ca\u30fc","text":""},{"location":"releases/","title":"\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8","text":""},{"location":"releases/#v06-\u4e16\u4ee3","title":"v0.6 \u4e16\u4ee3","text":"v0.6.14 | 2024-02-05 v0.6.13 | 2023-11-15 v0.6.12 | 2023-09-27 v0.6.11 | 2023-08-11 v0.6.10 | 2023-05-17 v0.6.9 | 2023-04-16 v0.6.8 | 2023-04-01 v0.6.7 | 2023-03-18 v0.6.6 | 2022-11-22 v0.6.5 | 2022-08-10 v0.6.4 | 2022-05-21 v0.6.3 | 2021-11-14 v0.6.2 | 2021-09-29 v0.6.1 | 2021-09-21 v0.6.0 | 2021-09-18"},{"location":"releases/#\u524d\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u306e\u66f4\u65b0\u30ac\u30a4\u30c9","title":"\u524d\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u306e\u66f4\u65b0\u30ac\u30a4\u30c9","text":" - v0.6.13 \u304b\u3089\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u624b\u9806\uff08Windows\uff09
"},{"location":"releases/#\u65b0\u6a5f\u80fd","title":"\u65b0\u6a5f\u80fd","text":" Shader::QuadWarp
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#998, #1183) - OpenAI \u306e Vision, TextToSpeech \u3092\u542b\u3080\u65b0\u3057\u3044 API \u3084\u30e2\u30c7\u30eb\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#1126, #1176, #1181, #1194)
Shape2D::Astroid()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1191) Shader::GaussianBlur()
\u306e\u30d5\u30a3\u30eb\u30bf\u30b5\u30a4\u30ba\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1147, #1148) - \u30b7\u30e3\u30c9\u30a6\u306e\u30b5\u30f3\u30d7\u30eb\u30b7\u30a7\u30fc\u30c0\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1140, #1200)
MultiPlayer_Photon::sendEvent()
\u3067\u9001\u4fe1\u5148\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#1170) Trail
, TrailMotion
\u306b .clear()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1149) Point
, Vec2
, Color
, ColorF
\u7b49\u306b\u30011 \u8981\u7d20\u3060\u3051\u3092\u5909\u66f4\u3057\u305f\u30b3\u30d4\u30fc\u3092\u8fd4\u3059 .with\uff5e()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1143) MultiPolygon
\u306b .computeConvexHull()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1195) MultiPolygon
\u306b .centroid()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1186, #1190) MultiPolygon
\u306b .area()
, .perimeter()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1185, #1187) Rect
, RectF
\u306b .rotate90()
\u7cfb\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1094) JSON
\u306b .getUTF8String()
, .assignUTF8String()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1177) PutText()
\u306b const char32*
\u3084 StringView
\u3092\u53d7\u3051\u53d6\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1159) Mat3x3::Homography()
\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1163) - \u5c06\u6765\u306e UI \u6a5f\u80fd\u306e\u5b9f\u88c5\u306e\u305f\u3081\u306b
Cursor::SetCapture()
, Cursor::IsCaptured()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1045)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4","title":"\u4ed5\u69d8\u5909\u66f4","text":" - \u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u540c\u6642\u518d\u751f\u53ef\u80fd\u6570\u3092 16 \u304b\u3089 64 \u306b\u5897\u3084\u3057\u307e\u3057\u305f (#1123)
- \u30ab\u30e9\u30fc\u7d75\u6587\u5b57\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 Unicode 15.0 \u304b\u3089 Unicode 15.1 \u306b\u5f15\u304d\u4e0a\u3052\u307e\u3057\u305f (#1144)
DirectoryWatcher
\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u5f15\u6570\u3092 FilePathView
\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#1197) - OpenAI \u95a2\u9023\u306e API \u306e\u540d\u524d\u7a7a\u9593\u3068\u95a2\u6570\u3092\u8a2d\u8a08\u3057\u306a\u304a\u3057\u307e\u3057\u305f (#1176)
FontAsset
\u306e\u4e00\u90e8\u306e\u95a2\u6570\u306e\u5f15\u6570\u3092 const String&
\u304b\u3089 StringView
\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#1158) - fmt \u30e9\u30a4\u30d6\u30e9\u30ea\u3092 8.1.1 \u304b\u3089 10.1.1 \u306b\u66f4\u65b0\u3057\u307e\u3057\u305f (#1160)
- zstd \u30e9\u30a4\u30d6\u30e9\u30ea\u3092 1.5.1 \u304b\u3089 1.5.5 \u306b\u66f4\u65b0\u3057\u307e\u3057\u305f (#1161, #1162)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" MultiPolygon
\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u5c11\u3057\u3060\u3051\u524a\u6e1b\u3057\u307e\u3057\u305f (#1188, #1189)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" JSON
\u306e\u8907\u6570\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1117, #1165, #1166, #1192) Circle::drawArc(LineStyle::RoundCap)
\u3067\u4e21\u7aef\u304c\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u3057\u306a\u304b\u3063\u305f\u554f\u984c\u304a\u3088\u3073\u5185\u5074\u3068\u5916\u5074\u306e\u8272\u304c\u53cd\u5bfe\u3060\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1013, #1193, #1198) RandomInt8()
, RandomInt16()
, RandomInt32()
, RandomInt64()
\u304c\u6700\u5c0f\u5024\u3092\u8fd4\u3055\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1196) Parse<double>(U\"\")
\u304c ParseError
\u3092\u6295\u3052\u305a\u306b 0 \u3092\u8fd4\u3057\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1173, #1174) MultiPlayer_Photon
\u3067 joinRoomReturn
\u304c\u547c\u3070\u308c\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1169) Cursor::SetPos()
\u304c\u30b7\u30fc\u30f3\u30b5\u30a4\u30ba\u3068\u9069\u5207\u306b\u9023\u52d5\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1167, #1168) RoundRect::drawShadow()
\u306b\u304a\u3044\u3066\u3001blur
\u304c\u5927\u304d\u3044\u3068\u304d\u306e\u63cf\u753b\u306e\u4e71\u308c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1164) ConstantBuffer
\u306e\u30b3\u30d4\u30fc\u304c\u6b63\u3057\u304f\u884c\u308f\u308c\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1154, #1155) RectF
\u306e\u4e00\u90e8\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067 int32
\u3092\u53d7\u3051\u53d6\u308b\u3068\u7e2e\u5c0f\u5909\u63db\u306e\u8b66\u544a\u304c\u51fa\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1184) - \u4e00\u90e8\u306e Windows \u74b0\u5883\u3067 VSync \u7121\u52b9\u6642\u306b\u30d5\u30ec\u30fc\u30e0\u30ec\u30fc\u30c8\u304c\u5236\u9650\u3055\u308c\u3066\u3044\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1179)
ImageDecoder::GetImageInfo()
\u3067\u53d6\u5f97\u3055\u308c\u308b GIF \u753b\u50cf\u306e\u89e3\u50cf\u5ea6\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1172) - \u5e45\u3084\u9ad8\u3055\u304c 16384px \u3088\u308a\u5927\u304d\u3044 GIF \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u3068\u30af\u30e9\u30c3\u30b7\u30e5\u3057\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1171)
DebugCamera3D::drawTouchUI()
\u306b const
\u304c\u3064\u3044\u3066\u3044\u306a\u304b\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1091) - \u56f3\u5f62\u30af\u30e9\u30b9\u306e\u4e00\u90e8\u306e constepr \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u5171\u7528\u4f53\u30e1\u30f3\u30d0\u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1139, #1141)
- \u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3 + \u30ec\u30f3\u30c0\u30fc\u30bf\u30fc\u30b2\u30c3\u30c8\u5909\u66f4\u6642\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u304c\u9069\u5207\u306b\u8868\u793a\u3055\u308c\u306a\u304b\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1150)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - Ogame3334:
MultiPolygon
\u306e\u6a5f\u80fd\u8ffd\u52a0\u30fb\u6539\u5584 - m4saka: VSync \u95a2\u9023\u306e\u554f\u984c\u306e\u4fee\u6b63, GIF \u95a2\u9023\u306e\u4e0d\u5177\u5408\u306e\u4fee\u6b63
- Raclamusi:
Circle::drawArc()
\u306e\u4fee\u6b63, \u56f3\u5f62\u30af\u30e9\u30b9\u306e constexpr
\u5bfe\u5fdc\u306e\u6539\u5584 - sashi0034:
Cursor::SetPos()
\u306e\u4fee\u6b63 - comefrombottom:
Rect
, RectF
\u3078\u306e\u6a5f\u80fd\u8ffd\u52a0
"},{"location":"releases/#\u65b0\u6a5f\u80fd_1","title":"\u65b0\u6a5f\u80fd","text":" - Visual Studio 2022 17.8 \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#1136)
DynamicTexture
\u3067\u30df\u30c3\u30d7\u30de\u30c3\u30d7\u751f\u6210\u3092\u884c\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#1130, #1135) RenderTexture
, MSRenderTexture
\u3067\u30df\u30c3\u30d7\u30de\u30c3\u30d7\u751f\u6210\u3092\u884c\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#1129, #1134) TextureFormat::R16G16_Unorm
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1122)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_1","title":"\u4ed5\u69d8\u5909\u66f4","text":" Texture::isMipped()
\u3092 Texture::hasMipMap()
\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#1131)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - Windows \u7248\u3067
<Siv3D/DLL.hpp>
\u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u305f\u3068\u304d\u306b Polygon
\u3084 RoundRect
\u304c\u4f7f\u7528\u3067\u304d\u306a\u304f\u306a\u308b\u4e0d\u4fbf\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1120) Font
\u306e\u4e00\u90e8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b explicit
\u304c\u3064\u3044\u3066\u3044\u306a\u304b\u3063\u305f\u4e0d\u4fbf\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1115)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_1","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" Texture
\u306e\u30df\u30c3\u30d7\u30de\u30c3\u30d7\u751f\u6210\u3092 GPU \u3067\u884c\u3046\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002TextureDesc::Mipped
\u3092\u6307\u5b9a\u3057\u305f\u753b\u50cf\u3084\u3001\u7d75\u6587\u5b57\u3001\u30a2\u30a4\u30b3\u30f3\u304b\u3089\u306e\u30c6\u30af\u30b9\u30c1\u30e3\u4f5c\u6210\u304c\u5927\u5e45\u306b\u9ad8\u901f\u5316\u3055\u308c\u307e\u3059 (#1133, #1137) Polygon
\u306e scale
\u7cfb\u95a2\u6570\u306e\u30d0\u30a6\u30f3\u30c7\u30a3\u30f3\u30b0\u30dc\u30c3\u30af\u30b9\u518d\u8a08\u7b97\u306e\u901f\u5ea6\u3068\u7cbe\u5ea6\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#1069, #1132)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_1","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - macOS (Apple Silicon) \u3067\u97f3\u58f0\u304c\u518d\u751f\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1127)
- OpenGL \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3067\u3001\u30c6\u30af\u30b9\u30c1\u30e3\u63cf\u753b\u6642\u306b\u30df\u30c3\u30d7\u30de\u30c3\u30d7\u304c\u4f7f\u308f\u308c\u306a\u3044\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1128)
Subdivision2D::findNearest()
\u306e\u4e00\u90e8\u306e\u30b1\u30fc\u30b9\u3067\u7d50\u679c\u306e\u5ea7\u6a19\u304c\u683c\u7d0d\u3055\u308c\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1116) Subdivision2D::initDelaunay()
\u304c m_addedPoints
\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1114) Rect
, RectF
\u306e\u4e00\u90e8\u306e constexpr \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a08\u7b97\u3067\u4f7f\u7528\u3067\u304d\u306a\u304b\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1118)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_1","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - Raclamusi:
Polygon
\u306e scale
\u7cfb\u95a2\u6570\u306e\u6539\u5584
"},{"location":"releases/#\u65b0\u6a5f\u80fd_2","title":"\u65b0\u6a5f\u80fd","text":" Rect
, RectF
\u304b\u3089\u89d2\u5ea6\u3092\u6307\u5b9a\u3057\u3066\u5e73\u884c\u56db\u8fba\u5f62\u306e Quad
\u3092\u4f5c\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1056, #1070) - 2D \u304a\u3088\u3073 3D \u306e Morton Order \u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1072)
- Windows 11 \u3067 IME \u3092\u4f7f\u7528\u3059\u308b\u969b\u306b\u3001\u5909\u63db\u5019\u88dc\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u63cf\u753b\u3059\u308b
SimpleGUI::IMECandidateWindow()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1106, #1107) Point
, Vector2D
\u306b .rotate90(N)
\u306a\u3069\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1093, #1102) SceneManager::init()
\u306b\u6700\u521d\u306e\u30d5\u30a7\u30fc\u30c9\u30a4\u30f3\u6642\u9593\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#1078, #1081) - 2 \u3064\u306e
Image
\u3092\u6bd4\u8f03\u3059\u308b ==
, !=
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1099) Image::rotate90(N)
\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1089, #1090) Point3D
\u578b\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1073, #1074) Point
\u578b\u306b operator%
\u3068 operator%=
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1055, #1058)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_2","title":"\u4ed5\u69d8\u5909\u66f4","text":" ScreenCapture::
\u306e\u4e00\u90e8\u95a2\u6570\u306e\u5f15\u6570\u306e\u4e00\u8cab\u6027\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#1080) - \u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#1100)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_2","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" - SDF/MSDF \u65b9\u5f0f\u306e\u30d5\u30a9\u30f3\u30c8\u306e\u30d7\u30ea\u30ed\u30fc\u30c9\u30b3\u30b9\u30c8\u3092\u5927\u5e45\u306b\u6539\u5584\u3057\u307e\u3057\u305f (#1095, #1096)
Image::clipped()
\u306a\u3069\u306e\u5b9f\u884c\u6642\u6027\u80fd\u3092\u5927\u5e45\u306b\u6539\u5584\u3057\u307e\u3057\u305f (#1087, #1108) Shape2D::indices()
\u304c\u53c2\u7167\u3067\u306f\u306a\u304f\u5024\u3092\u8fd4\u3057\u3066\u3044\u305f\u975e\u52b9\u7387\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1065, #1071) - \u53f3\u8fba\u5024\u306e
Array
, String
, Polygon
\u7b49\u306e\u305f\u3081\u306e\u52b9\u7387\u7684\u306a\u30e1\u30f3\u30d0\u95a2\u6570\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1059, #1060, #1064)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_2","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - \u8907\u96d1\u306a\u5b57\u4f53\u306e SDF/MSDF \u30d5\u30a9\u30f3\u30c8\u306e\u6587\u5b57\u306b\u30ce\u30a4\u30ba\u304c\u5165\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1082, #1096)
- \u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u3068\u304d\u3001\u30ad\u30fc\u3092\u62bc\u3057\u3066\u3044\u306a\u3044\u306e\u306b
.pressed()
\u304c true
\u3092\u8fd4\u3059\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1083) - v0.6.11 \u3067
RoundRect::drawShadow()
\u306e\u4e00\u90e8\u30b1\u30fc\u30b9\u306e\u63cf\u753b\u306b\u7570\u5e38\u304c\u751f\u3058\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1076) RandomHSV(hMinMax, sMinMax, vMinMax)
\u306e\u7d50\u679c\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1084, #1088) String::trimmed()
\u306b\u7a7a\u767d\u6587\u5b57\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u6587\u5b57\u5217\u3092\u6e21\u3059\u3068\u5b9f\u884c\u6642\u30a8\u30e9\u30fc\u306b\u306a\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1101) - Windows \u7248\u306b\u304a\u3051\u308b IME \u306e\u6319\u52d5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#1104, #1107)
P2Body
\u304c\u7a7a\u306e Polygon
\u3092\u6301\u3064\u3068\u304d\u306e\u5b9f\u884c\u6642\u30a8\u30e9\u30fc\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1075) Wave::MaxSampleRate
\u304c Wave::MaxSamlpeRate
\u306b\u306a\u3063\u3066\u3044\u305f\u8aa4\u5b57\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1105) PhongMaterial::ambientColor
\u304c PhongMaterial::amibientColor
\u306b\u306a\u3063\u3066\u3044\u305f\u8aa4\u5b57\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1105) AsyncTask::wait_until()
\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3059\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1068) - \u4e00\u90e8\u306e\u30b7\u30a7\u30fc\u30c0\u30d5\u30a1\u30a4\u30eb\u306e\u8aa4\u5b57\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1105)
- \u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u8aa4\u308a\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1054)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_2","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - Raclamusi: \u53f3\u8fba\u5024\u306e
Array
\u306a\u3069\u306e\u30af\u30e9\u30b9\u5411\u3051\u306e\u52b9\u7387\u7684\u306a\u30e1\u30f3\u30d0\u95a2\u6570\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u306e\u5b9f\u88c5, Image::clipped()
\u7b49\u306e\u9ad8\u901f\u5316, \u4e00\u90e8\u306e\u95a2\u6570\u306e\u623b\u308a\u5024\u306e\u4e0d\u5177\u5408\u306e\u4fee\u6b63 - yama-can:
Rect::skewedX()
\u7b49\u306e\u5b9f\u88c5, SceneManager::init()
\u306e\u30d5\u30a7\u30fc\u30c9\u6642\u9593\u6307\u5b9a\u306e\u5b9f\u88c5 - comefrombottom:
Image::rotate90(n)
\u7b49\u306e\u5b9f\u88c5, Point
\u3084 Vector2D
\u306e .rotate90()
\u306e\u5b9f\u88c5 - ozone010:
Point
\u578b\u306b operator%
\u3068 operator%=
\u3092\u8ffd\u52a0 - voidproc: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u8aa4\u5b57\u4fee\u6b63
- naga-karupi:
RandomHSV()
\u306e\u30d0\u30b0\u4fee\u6b63 - sfpgmr: \u5185\u90e8\u30b3\u30fc\u30c9\u306e\u4fee\u6b63
- aoriika05: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u4fee\u6b63
"},{"location":"releases/#\u65b0\u6a5f\u80fd_3","title":"\u65b0\u6a5f\u80fd","text":" - 2D \u306e\u8ecc\u8de1\u3092\u63cf\u753b\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1006, #1043)
- \u300c9 \u30b9\u30e9\u30a4\u30b9\u300d\u3092\u7c21\u5358\u306b\u6271\u3048\u308b\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1030, #1036)
- \u76ee\u6a19\u306b\u8ffd\u5f93\u3059\u308b\u30b7\u30f3\u30d7\u30eb\u306a 3D \u30ab\u30e1\u30e9\u30af\u30e9\u30b9
SimpleFollowCamera3D
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1048, #1049) - OpenAI Chat API \u306e\u30e2\u30c7\u30eb\u5b9a\u6570\u306b
GPT3_5_Turbo_16K
\uff08gpt-3.5-turbo-16k
\uff09\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1050) Rect
, RectF
, RoundRectF
\u306e .drawShadow()
\u306b\u3001\u5185\u90e8\u3092\u3059\u3079\u3066\u5857\u308a\u3064\u3076\u3055\u306a\u3044\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1039) - \u30d9\u30af\u30c8\u30eb\u306e\u5404\u8981\u7d20\u9593\u3067\u6700\u5927\u5024 / \u6700\u5c0f\u5024\u3092\u8a08\u7b97\u3059\u308b
Math::Max()
, Math::Min()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1032) Line::normalizedVector()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1029) Triangle::isClockwise()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1028) Transition::reset()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1025) Math::MoveTowards()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1024) - 3 \u3064\u306e\u9802\u70b9\u304b\u3089\u6642\u8a08\u56de\u308a\u306e
Triangle
\u3092\u4f5c\u6210\u3059\u308b Triangle::FromPoints(p0, p1, p2)
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1015) Quaternion::RollPitchYaw()
\u306b\u3001Vec3
\u3092\u5f15\u6570\u306b\u3068\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1014)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_1","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - \u521d\u5fc3\u8005\u304c\u8e0f\u307f\u3084\u3059\u3044\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc\u3092\u8e0f\u3093\u3060\u969b\u306b\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e Web \u30da\u30fc\u30b8\u3092\u958b\u304f\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#1007, #1034, #1035)
- \u30a8\u30f3\u30b8\u30f3\u8d77\u52d5\u524d\u306e\u30a2\u30bb\u30c3\u30c8\u30af\u30e9\u30b9\u521d\u671f\u5316\u691c\u77e5\u306e\u5bfe\u8c61\u3092\u62e1\u5927\u3057\u307e\u3057\u305f (#1047)
SimpleGUI::TextBox()
\u306e\u6319\u52d5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#997)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_3","title":"\u4ed5\u69d8\u5909\u66f4","text":" Circle::drawPie()
, Circle::drawArc()
, Circle::drawSegmentFromAngles()
\u3067\u8ca0\u306e angle \u3092\u6307\u5b9a\u3057\u305f\u969b\u306b\u3082\u3001\u901a\u5e38\u901a\u308a\u6642\u8a08\u56de\u308a\u306e\u4e09\u89d2\u5f62\u304c\u63cf\u753b\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#1042)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_3","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" Circle
, Rect
, RectF
, RoundrRect
\u306e .drawShadow()
\u306e CPU \u30b3\u30b9\u30c8\u3092 20\uff5e50 % \u524a\u6e1b\u3057\u307e\u3057\u305f (#1037)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_3","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - Windows \u7248\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7d42\u4e86\u6642\u306b mutex \u306e\u30a8\u30e9\u30fc\u3067\u30af\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1033)
DrawableText::getXAdvances()
\u306e\u7d50\u679c\u306b\u6539\u884c\u6587\u5b57\u306e\u5206\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1038) RoundRect::drawShadow()
\u3067 spread
\u3092\u6307\u5b9a\u3059\u308b\u3068\u63cf\u753b\u306e r \u304c\u305a\u308c\u3066\u3044\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1040) Font::renderPolygon()
\u3067\u8f2a\u90ed\u3068\u7a74\u304c\u9006\u8ee2\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1019, #1027) Font
\u63cf\u753b\u6642\u306b\u30bf\u30d6\u7a7a\u767d\u306e\u9593\u9694\u304c\u4e71\u308c\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1002, #1026) Circle::pieAsPolygon()
\u3068 Circle::arcAsPolygon()
\u304c\u53cd\u6642\u8a08\u56de\u308a\u9802\u70b9\u306e Polygon
\u3092\u751f\u6210\u3057\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1041) - \u4e00\u90e8\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u306e\u30d3\u30eb\u30c9\u306e\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1021)
SimpleGUI::TextBoxAt()
\u3067\u306e Home, End \u30ad\u30fc\u306e\u52d5\u4f5c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#999) - \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u5f15\u6570\u306e\u8aa4\u5b57\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1016, #1017)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_3","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - Raclamusi:
Font::renderPolygon()
\u306e\u30d0\u30b0\u3092\u4fee\u6b63, Font
\u306e\u30bf\u30d6\u7a7a\u767d\u63cf\u753b\u306e\u30d0\u30b0\u3092\u4fee\u6b63 - yksake:
SimpleGUI::TextBoxAt()
\u306e\u6319\u52d5\u6539\u5584 - polyester-CTRL: \u4e00\u90e8\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u306e\u30d3\u30eb\u30c9\u306e\u554f\u984c\u306e\u4fee\u6b63
- voidproc: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u5f15\u6570\u306e\u8aa4\u5b57\u4fee\u6b63
"},{"location":"releases/#\u91cd\u8981","title":"\u91cd\u8981","text":" - Visual Studio 2022 17.6 \u3067\u306e\u30d3\u30eb\u30c9\u306e\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1011)
- v0.6.9 \u4ee5\u524d\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u304b\u3089\u300cISO C++23 \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30d3\u30eb\u30c9\u300d\u3092\u7121\u52b9\u306b\u3059\u308b\u3053\u3068\u3067\u89e3\u6c7a\u3057\u307e\u3059\u3002
"},{"location":"releases/#\u65b0\u6a5f\u80fd_4","title":"\u65b0\u6a5f\u80fd","text":" JSON
\u306b\u304a\u3044\u3066 Binary Values \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#1010)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_4","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" Optional::Optional(Optional<U>&&)
\u306e\u5b9f\u88c5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#1008)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_4","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" ParseOr<double>()
\u3068 ParseOpt<double>()
\u304c float
\u7cbe\u5ea6\u3067\u884c\u308f\u308c\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1009) - \u30d0\u30a4\u30ca\u30ea\u30d5\u30a9\u30fc\u30de\u30c3\u30c8 (BSON/CBOR/MessagePack) \u304b\u3089\u4f5c\u6210\u3057\u305f JSON \u306e\u8981\u7d20\u3092\u4e00\u90e8\u9069\u5207\u306b\u8aad\u307f\u8fbc\u3081\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#1010)
"},{"location":"releases/#\u65b0\u6a5f\u80fd_5","title":"\u65b0\u6a5f\u80fd","text":" - \u8868\u3092\u63cf\u753b\u3059\u308b
SimpleTable
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#988, #991, #992) - \u8907\u6570\u884c\u306e\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9
SimpleGUI::TextArea()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#789, #994, #996)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_4","title":"\u4ed5\u69d8\u5909\u66f4","text":" Timer::isRunnning()
\u306f 0 \u306b\u9054\u3057\u305f\u3068\u304d\u306b false
\u3092\u8fd4\u3059\u3088\u3046\u4ed5\u69d8\u5909\u66f4\u3057\u307e\u3057\u305f (#987) Grid::resize(w, 0)
\u304a\u3088\u3073 Grid::resize(0, h)
\u306f w
\u3068 h
\u3092\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#989)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_5","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" Array::fetch()
\u7b49\u306e\u5b9f\u88c5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#990)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_5","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" Array::fetch()
\u7b49\u306e\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#990) Grid::assign()
\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#995)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_4","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - tomolatoon:
Array::fetch()
\u7b49\u306e\u4fee\u6b63\u30fb\u6539\u5584 - m4saka: SimpleTable \u306e typo \u4fee\u6b63
"},{"location":"releases/#\u65b0\u6a5f\u80fd_6","title":"\u65b0\u6a5f\u80fd","text":" - \u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u958b\u304f
System::LaunchFile(fileName)
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#888, #981) - \u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf\u3067\u958b\u304f
System::LaunchFileWithTextEditor(fileName)
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#888, #981) - \u540c\u68b1\u30ab\u30e9\u30fc\u7d75\u6587\u5b57\u3092 Unicode 14.0 \u304b\u3089 Unicode 15.0 \u306b\u66f4\u65b0\u3057\u307e\u3057\u305f (#980)
- \u540c\u68b1 Material Design Icons \u3092 v6.5.95 \u304b\u3089 v7.2.96 \u306b\u66f4\u65b0\u3057\u307e\u3057\u305f\uff08700 \u7a2e\u985e\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u8ffd\u52a0\uff09 (#980)
- OpenAI \u306e Embeddings API \u3092\u6271\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#982)
- \u30e6\u30fc\u30b6\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u540d\u3084\u540d\u524d\u3001\u8a00\u8a9e\u3092\u53d6\u5f97\u3059\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#678, #968, #974)
- \u30c9\u30e9\u30a4\u30d6\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\uff08Windows \u7248\uff09(#709, #978)
- \u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u8fd4\u3059
Network::IsConnected()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#975, #976)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_2","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" SimpleGUI::ListBox()
\u306e\u9805\u76ee\u3092\u4e0a\u4e0b\u30ad\u30fc\u3067\u9078\u629e\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#984)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_6","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - \u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u306b\u8a2d\u5b9a\u3057\u305f\u7d75\u6587\u5b57\u304c\u7279\u5b9a\u6761\u4ef6\u4e0b\u3067\u6b63\u3057\u304f\u8868\u793a\u3055\u308c\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#971, #973)
SimpleGUI::ListBox()
\u306e\u9805\u76ee\u6570\u304c\u591a\u3044\u3068\u304d\u306b\u3001\u30b9\u30af\u30ed\u30fc\u30eb\u30d0\u30fc\u306e\u3064\u307e\u307f\u304c\u7d30\u304f\u306a\u308b / \u6d88\u5931\u3057\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#985)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_5","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - Raclamusi: \u7d75\u6587\u5b57\u30d5\u30a9\u30f3\u30c8\u306e\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u30d0\u30b0\u3092\u4fee\u6b63
"},{"location":"releases/#\u65b0\u6a5f\u80fd_7","title":"\u65b0\u6a5f\u80fd","text":" - OpenAI API (Chat, Image) \u3092\u6271\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#957)
- OSC \u901a\u4fe1\u3092\u6271\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#515, #919, #922)
- \u5186\u3092\u5272\u7dda\u3067\u5207\u308a\u53d6\u3063\u305f\u5f62\u3092\u63cf\u304f\u95a2\u6570
Circle::drawSegment()
, Circle::drawSegmentFromAngles()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#956) - \u9577\u65b9\u5f62\u3092\u659c\u3081\u65b9\u5411\u306e\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u3067\u63cf\u304f\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#955)
- SimpleMenuBar \u304c\u9805\u76ee\u306e\u30c1\u30a7\u30c3\u30af\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#948)
- JSON \u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3092\u884c\u3046\u30af\u30e9\u30b9
JSONValidator
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#931, #959) - \u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u5f15\u6570\u3092\u76f4\u63a5\u53d6\u5f97\u3059\u308b\u95a2\u6570
System::GetArgc()
, System::GetArgv()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#964) - \u30a2\u30c9\u30aa\u30f3\u306e\u5b9f\u884c\u512a\u5148\u5ea6\u3092
update()
\u3068 draw()
\u3092\u500b\u5225\u306b\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#949) - SimpleHTTP \u306e\u975e\u540c\u671f\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u95a2\u3059\u308b\u95a2\u6570\u3092\u62e1\u5145\u3057\u307e\u3057\u305f (#911, #962)
- \u89d2\u5ea6\u3092
[0, TwoPi)
\u307e\u305f\u306f [-Pi, Pi)
\u306e\u7bc4\u56f2\u306b\u6b63\u898f\u5316\u3059\u308b Math::NormalizeAngle()
\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#927) - \u6642\u9593\u306b\u5bfe\u3057\u3066\u3001\u30c7\u30e5\u30fc\u30c6\u30a3\u30fc\u6bd4\u3092\u6307\u5b9a\u3057\u305f\u77e9\u5f62\u6ce2\u3092\u8fd4\u3059
Periodic::Pulse0_1()
/ Periodic::Pulse1_1()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#966, #967) Input
\u3092\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3059\u308b Input::Serialize()
, Input::Deserialize()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#920) IAddon
\u306b postPresent()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#942) TextEditState
\u304c\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f\uff08\u6587\u5b57\u5217\u306e\u307f\u4fdd\u5b58\uff09 (#930) - Base64 \u306e\u30c7\u30b3\u30fc\u30c9\u306b\u59a5\u5f53\u6027\u30c1\u30a7\u30c3\u30af\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#845, #961)
Math::Damp()
, Math::SmoothDamp()
\u304c ColorF
\u578b\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#947) - C++23 \u3068\u306e\u4e00\u8cab\u6027\u306e\u305f\u3081\u3001
StringView
, String
, Array
\u306b\u3001.includes()
, .includes_if()
\u3068\u540c\u6a5f\u80fd\u306e .contains()
, .contains_if()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#944) JSON
\u306e\u6a5f\u80fd\u3092\u5f37\u5316\u3057\u307e\u3057\u305f (#925, #931, #959)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_3","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - \u30a2\u30bb\u30c3\u30c8\u306e\u6bce\u30d5\u30ec\u30fc\u30e0\u4f5c\u6210\u30fb\u7834\u68c4\u306e\u554f\u984c\u3092\u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u3067\u901a\u77e5\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#926)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_5","title":"\u4ed5\u69d8\u5909\u66f4","text":" - \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0 Hello, Siv3D \u3092\u30ea\u30cb\u30e5\u30fc\u30a2\u30eb\u3057\u307e\u3057\u305f (#940)
- Photon \u30a2\u30c9\u30aa\u30f3\u3092\u6700\u65b0\u306e Photon SDK \u306b\u5bfe\u5fdc\u3055\u305b\u307e\u3057\u305f (#954)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_6","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" - Base64 \u306e\u30c7\u30b3\u30fc\u30c9\u3092\u9ad8\u901f\u5316\u3057\u307e\u3057\u305f (#845, #961)
Array
\u3084 MultiPolygon
\u306a\u3069\u306e\u4e00\u90e8\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#948) Array::includes()
, Array::contains()
\u3092\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#945)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_7","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - macOS \u3067\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3067\u304d\u306a\u3044\u3053\u3068\u304c\u3042\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#963)
Optional
\u306e\u6319\u52d5\u304c std::optional
\u3068\u7570\u306a\u3063\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#938, #939) HTTPResponse
\u306e\u5185\u5bb9\u304c\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u524d\u306e\u30c7\u30fc\u30bf\u306b\u306a\u3063\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#958) IReader
\u3092\u5f15\u6570\u306b\u53d6\u308b JSON::Load()
\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308b\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#937) Polygon::calculateBuffer()
, Polygon::calculateRoundBuffer()
\u304c\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#965) SimpleMenuBar
\u4e0a\u3067\u306e\u30de\u30b9\u30ab\u30fc\u30bd\u30eb\u306e\u6319\u52d5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#950) App/example/script/piano.as
\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u97f3\u304c\u9cf4\u3089\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#935) PlayingCard::Pack
\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u69cb\u7bc9\u3057\u3066\u30b8\u30e7\u30fc\u30ab\u30fc\u306e\u30ab\u30fc\u30c9\u3092\u63cf\u753b\u3059\u308b\u3068\u30af\u30e9\u30c3\u30b7\u30e5\u3057\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#921) GeoJSONGeometry::get()
\u304c\u4f7f\u3048\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#933, #934) - \u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u306e\u4e00\u90e8\u30de\u30af\u30ed\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#923)
- Arch Linux \u3067\u306e\u30d3\u30eb\u30c9\u306e\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#917, #918)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_6","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u3092\u66f4\u65b0
- tomolatoon:
JSONValidator
\u3092\u8ffd\u52a0, JSON
\u306e\u6a5f\u80fd\u5f37\u5316 - m4saka:
Optional
\u306e\u30d0\u30b0\u3092\u4fee\u6b63 - Raclamusi: Base64 \u306e\u30c7\u30b3\u30fc\u30c9\u306e\u6539\u5584,
Array
\u7b49\u306e\u6027\u80fd\u6539\u5584 - voidproc: Periodic \u95a2\u6570\u306e\u8ffd\u52a0
- yksake: SimpleMenuBar \u306e\u6319\u52d5\u6539\u5584\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584
- sthairno:
GeoJSONGeometry
\u306e\u30d0\u30b0\u3092\u4fee\u6b63 - Aikawa3311: \u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4fee\u6b63
- sfpgmr: \u30b7\u30ea\u30a2\u30e9\u30a4\u30ba API \u306e\u30d0\u30b0\u3092\u4fee\u6b63
- hashitaku Arch Linux \u3067\u306e\u30d3\u30eb\u30c9\u3092\u4fee\u6b63
"},{"location":"releases/#\u65b0\u6a5f\u80fd_8","title":"\u65b0\u6a5f\u80fd","text":" - \u30b7\u30f3\u30d7\u30eb\u306a\u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u3092\u6271\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#898)
- \u5165\u529b\u51e6\u7406\u3092\u6253\u3061\u5207\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#897)
std::map
\u306e\u7f6e\u304d\u63db\u3048\u3068\u306a\u308b OrderedTable
\u578b\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#909) RoundRect::draw()
\u306b\u304a\u3044\u3066\u3001\u4e0a\u4e0b\u306e\u8272\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#906) Rect::drawFrame()
, RectF::drawFrame()
, RoundRect::draw()
, RoundRect::drawFrame()
\u306b\u304a\u3044\u3066\u3001\u4e0a\u4e0b\u306e\u8272\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#906) - \uff08Windows \u7248\uff09\u30bf\u30b9\u30af\u30d0\u30fc\u306b\u30bf\u30b9\u30af\u306e\u9032\u6357\u72b6\u6cc1\u3092\u8868\u793a\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#904)
- 2 \u3064\u306e\u9577\u65b9\u5f62\u306e\u91cd\u306a\u308b\u9818\u57df\u3092\u9577\u65b9\u5f62\u3067\u8fd4\u3059\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#872)
P2Body
\u306b\u5f3e\u4e38\u30e2\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#901) - \u6642\u9593\u578b\u304c
_fmt()
\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#894, #895) - \u7a7a\u306e\u9577\u65b9\u5f62\u3092\u4f5c\u6210\u3059\u308b
Rect::Empty()
, RectF::Empty()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#881) - \u9577\u65b9\u5f62\u304c\u7a7a\u3067\u3042\u308b\u304b\u3092\u8fd4\u3059
Rect::isEmpty()
, Rect::operator bool()
, RectF::isEmpty()
, RectF::operator bool()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#879, #880) Array::partition()
, Array::stable_partition()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#869) Camera2DParameters
, LicenseManager
, LicenseInfo
, XInput
\u304c\u30b9\u30af\u30ea\u30d7\u30c8\u5185\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#868)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_4","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - \u30d8\u30c3\u30c0\u306e\u8efd\u91cf\u5316\u306e\u305f\u3081\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3044\u307e\u3057\u305f (#883, #886)
- Windows \u7248\u306b\u304a\u3051\u308b\u3001\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u6642\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u3092\u8868\u793a\u3059\u308b\u3068\u64cd\u4f5c\u4e0d\u80fd\u306b\u306a\u308b\u554f\u984c\u3092\u89e3\u6c7a\u3057\u307e\u3057\u305f\u3002\u30b7\u30fc\u30f3\u5185\u306b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u304c\u8868\u793a\u3055\u308c\u307e\u3059 (#915)
Array
\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u63a8\u8ad6\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#887) CITATION.cff
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#882) Grid::resize()
\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#876)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_6","title":"\u4ed5\u69d8\u5909\u66f4","text":" - \u5404\u7a2e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#914)
PlayingCard
\u306e\u30c7\u30b6\u30a4\u30f3\u3092\u5fae\u4fee\u6b63\u3057\u307e\u3057\u305f (#905) PlayingCard.hpp
\u306f experimental \u304b\u3089\u6b63\u5f0f\u306a\u6a5f\u80fd\u306b\u306a\u308a\u307e\u3057\u305f (#885)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_7","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" DisjointSet
\u306e\u30e1\u30e2\u30ea\u6d88\u8cbb\u3092\u524a\u6e1b\u3057\u307e\u3057\u305f (#878)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_8","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - Web \u7248\u306e\u4e0d\u5177\u5408\u4fee\u6b63\u3001\u4e92\u63db\u6027\u5411\u4e0a\u3092\u884c\u3044\u307e\u3057\u305f
XMLReader
\u306e\u4e00\u90e8\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u4f7f\u3048\u306a\u304b\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#896) - \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#871, #903)
- \u6b63\u898f\u8868\u73fe\u306b\u304a\u3051\u308b\u30ad\u30e3\u30d7\u30c1\u30e3\u306e\u4ed5\u69d8\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#893)
String::removed(StringView)
\u306b\u7a7a\u306e\u6587\u5b57\u5217\u3092\u6e21\u3059\u3068\u7121\u9650\u30eb\u30fc\u30d7\u306b\u306a\u308b\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#892) Allocator
\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#889, #891) DisjointSet::operator bool()
\u306e\u623b\u308a\u5024\u306e true
, false
\u304c\u9006\u3060\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#877) - \u5404\u7a2e\u30af\u30e9\u30b9\u306e
_fmt()
\u5bfe\u5fdc\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#873) LineString::calculateBufferClosed()
, LineString::calculateRoundBufferClosed()
\u304c\u9589\u3058\u306a\u3044\u3053\u3068\u304c\u3042\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#870)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_7","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u3092\u66f4\u65b0
- MayFlyOvO:
OrderedTable
\u306e\u8ffd\u52a0 - Raclamusi:
Array
, Allocator
, \"fmt\" \u306e\u6539\u5584\u30fb\u30d0\u30b0\u4fee\u6b63 - AngelCase:
String::removed()
\u306e\u30d0\u30b0\u4fee\u6b63 - yunba28: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584
- sknjpn: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584
"},{"location":"releases/#\u65b0\u6a5f\u80fd_9","title":"\u65b0\u6a5f\u80fd","text":" - Visual Studio 2022 17.3 \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#859)
LineString::extractLineString(double, CloseRing)
\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#866) JSON
\u304c\u30d0\u30a4\u30ca\u30ea\u30d5\u30a9\u30fc\u30de\u30c3\u30c8 (BSON/CBOR/MessagePack) \u3068\u306e\u76f8\u4e92\u5909\u63db\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#842) - \u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3092\u7d50\u5408\u3059\u308b
FileSystem::PathAppend()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#825) TextEditState
\u306b\u3001Tab \u30ad\u30fc\u3084 Enter \u30ad\u30fc\u306b\u3088\u308b\u5165\u529b\u5b8c\u4e86\u3092\u53d6\u5f97\u3067\u304d\u308b\u30e1\u30f3\u30d0\u5909\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#808) - \u5e95\u8fba\u306e\u4e2d\u5fc3\u3001\u9802\u70b9\u3001\u5e95\u8fba\u306e\u9577\u3055\u304b\u3089\u4e8c\u7b49\u8fba\u4e09\u89d2\u5f62\u3092\u4f5c\u6210\u3059\u308b
Triangle::FromPoints()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#865) - \u6587\u5b57\u5217\u3092\u30d1\u30fc\u30bb\u30f3\u30c8\u30a8\u30f3\u30b3\u30fc\u30c9\u3059\u308b
PercentEncode()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#864) NavMesh::query()
\u306b\u3001\u7d50\u679c\u306e\u683c\u7d0d\u5148\u3092\u53c2\u7167\u3067\u6e21\u3059\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#861) Math::
\u306b Dot()
\u3068 Cross()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002\u3053\u308c\u307e\u3067\u306f Vec2, Vec3
\u306a\u3069\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f (#848) - \u9577\u65b9\u5f62\u306e\u5404\u8fba\u30fb\u4e2d\u5fc3\u306e X \u5ea7\u6a19\u3001Y \u5ea7\u6a19\u3060\u3051\u3092\u8fd4\u3059\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#853)
- \u9577\u65b9\u5f62\u306e\u5de6\u4e0a\u3092 (0 ,0), \u53f3\u4e0b\u3092 (1, 1) \u3068\u3057\u305f\u3068\u304d\u306e (relativeX, relativeY) \u306e\u5ea7\u6a19\u3092\u8fd4\u3059\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#850)
- \u540c\u68b1\u3059\u308b Font Awesome \u3092 5.15.2 \u2192 6.1.1 \u306b\u66f4\u65b0\u3057\u307e\u3057\u305f (#846)
Blob
\u306b\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#843) Font::height(double size)
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#830) - \u540c\u68b1\u3059\u308b\u30e2\u30ce\u30af\u30ed Noto Emoji \u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#816)
- \u6c34\u5e73\u65b9\u5411\u306e\u30a2\u30b9\u30da\u30af\u30c8\u6bd4\u3092\u8fd4\u3059
.horizontalAspectRatio()
\u95a2\u6570\u3092 Point
, Float2
, Vec2
, Rect
, RectF
, Image
, Texture
, Emoji
, Scene::
, RoundRect
\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f (#810), (#812) Multiplayer_Photon
\u306b\u3001\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u95a2\u9023\u306e\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#807) Multiplayer_Photon
\u306b .joinRandomRoomOrCreate()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#806) NotImplementedError
\u4f8b\u5916\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#787)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_5","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - Linux \u7248\u306e CMake \u3092\u6539\u5584\u3057\u307e\u3057\u305f (#829)
- Linux \u7248\u306e CMakeLists.txt \u306b\u304a\u3044\u3066\u3001boost \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u7bc4\u56f2\u6307\u5b9a\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#847)
SimpleGUI::TextBox()
\u306e\u6319\u52d5\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#832), (#804) - \u8aa4\u7528\u9632\u6b62\u306e\u305f\u3081
BigInt operator \"\"_big(long double x)
\u3092 = delete
\u6307\u5b9a\u3057\u307e\u3057\u305f (#826) - \u3044\u304f\u3064\u304b\u306e\u30d8\u30c3\u30c0\u30d5\u30a1\u30a4\u30eb\u3067\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_7","title":"\u4ed5\u69d8\u5909\u66f4","text":" BigFloat
\u306e\u6587\u5b57\u5217\u5909\u63db\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#839) Multiplayer_Photon::getLocalPlayerID()
\u306e\u623b\u308a\u5024\u3092 LocalPlayerID
\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#809) AsyncHTTPTask::isReady
\u3092 const \u30e1\u30f3\u30d0\u95a2\u6570\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#805) - \u5404\u7a2e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#801)
- engine \u30d5\u30a1\u30a4\u30eb\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#817)
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_8","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" NavMesh::query()
\u306e\u5b9f\u884c\u6027\u80fd\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#861) HLSL
\u3084 GLSL
\u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#835) SimpleGUI
\u306e\u6587\u5b57\u5217\u5f15\u6570\u3092 const String&
\u2192 StringView
\u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#827) - \u7b97\u8853\u578b\u304b\u3089
BigInt
, BigFloat
\u3092\u5f15\u304f\u3068\u304d\u306e\u5b9f\u884c\u6027\u80fd\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#822) Rect
, RectF
\u306e constexpr
\u5bfe\u5fdc\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#813)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_9","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" LineString::extractLineString()
\u304c\u6b63\u3057\u304f\u306a\u3044\u7d50\u679c\u3092\u8fd4\u3059\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#862) - \u59cb\u70b9\u3068\u7d42\u70b9\u304c\u4e00\u81f4\u3059\u308b
LineString
\u306e .calculateRoundBuffer()
\u306b\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#860) - macOS, Linux \u7248\u3067 NULL \u304c\u30de\u30af\u30ed\u3067\u7a7a\u6587\u5b57\u5217\u306b\u7f6e\u63db\u3055\u308c\u308b\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#858)
RoundRect::drawFrmae()
\u3067\u4e0d\u6b63\u306a\u5024\u3092\u6e21\u3057\u305f\u3068\u304d\u306b\u3001\u63cf\u753b\u304c\u4e71\u308c\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#856) BasicCamera3D
\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u540d\u3092 .getVerticlaFOV()
\u2192 .getVerticalFOV()
\u306b\u4fee\u6b63\u3057\u307e\u3057\u305f (#854) Grid::choice()
\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u306b\u5931\u6557\u3059\u308b\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#840) Base64::Decode()
\u3067\u3001\u7279\u5b9a\u6761\u4ef6\u306b\u304a\u3044\u3066\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30e9\u30f3\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#837) Parse<double>
\u304c float
\u578b\u306e\u7cbe\u5ea6\u3067\u884c\u308f\u308c\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#831) - \u4e00\u90e8\u6761\u4ef6\u3067 Line \u540c\u58eb\u306e Intersect, IntersectAt \u306e\u5224\u5b9a\u304c\u8aa4\u3063\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#823)
BigInt
, BigFloat
\u306e\u6bd4\u8f03\u6f14\u7b97\u5b50\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#821) - macOS \u7248\u3001Linux \u7248\u306e
FileSystem::SelectFolder()
\u304c\u7d50\u679c\u306e\u672b\u5c3e\u306b /
\u3092\u4ed8\u3051\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#824) - macOS \u7248\u306e
FileSystem::FullPath()
\u306e\u7d50\u679c\u304c\u4e0d\u6b63\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#824) SFMT
\u306e\u30d8\u30c3\u30c0\u30fb\u30d5\u30a9\u30eb\u30c0\u540d\u306e typo \u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#818) - macOS \u7248\u3067
TCPClient
\u306e\u5207\u65ad\u304c TCPServer
\u306b\u4f1d\u308f\u3089\u306a\u304b\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#799)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_8","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u3092\u66f4\u65b0
- MurakamiShun: Linux \u7248\u306e CMake \u3092\u6539\u5584
- m4saka: Line \u540c\u58eb\u306e Intersect, IntersectAt \u306e\u30d0\u30b0\u3092\u4fee\u6b63
- Raclamusi:
BigInt
, BigFloat
\u306e\u6539\u5584\u30fb\u30d0\u30b0\u4fee\u6b63\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584 - kestrel-90r: \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d\u306e typo \u306e\u4fee\u6b63
- ShivAlley:
Math::
\u306e\u6570\u5b66\u95a2\u6570\u3092\u8ffd\u52a0 - tas9n:
AsyncHTTPTask
\u306e\u6539\u5584 - ROCKTAKEY: CMakeLists.txt \u306e\u6539\u5584
- yknishidate: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- agehama: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584
- curay168: \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6539\u5584
"},{"location":"releases/#\u65b0\u6a5f\u80fd_10","title":"\u65b0\u6a5f\u80fd","text":" - Visual Studio 2022 17.2 \u4ee5\u964d\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#790)
- Xcode 13.3 \u4ee5\u964d\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#753)
- Photon SDK \u3068\u9023\u4fc2\u3059\u308b
Multiplayer_Photon
\uff08\u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc\u6a5f\u80fd\uff09\u30a2\u30c9\u30aa\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#734) - \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb
- \u30b5\u30f3\u30d7\u30eb
- 3D \u6a19\u6e96\u9802\u70b9\u30b7\u30a7\u30fc\u30c0\u306e\u5b9a\u6570\u30d0\u30c3\u30d5\u30a1\u306b UV transform \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#764)
MeshData::RoundedBox()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#769) - \u518d\u751f\u4e2d\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u306b\u52d5\u7684\u306b\u6ce2\u5f62\u3092\u66f8\u304d\u8fbc\u3080\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#736)
- Windows \u7248\u306e\u30c8\u30fc\u30b9\u30c8\u901a\u77e5\u306b\u304a\u3051\u308b\u901a\u77e5\u97f3\u306e\u7121\u52b9\u5316\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#748)
DisjointSet
(Union Find) \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#742) Shader::LinearToScreen()
\u306b\u304a\u3044\u3066\u30c6\u30af\u30b9\u30c1\u30e3\u30d5\u30a3\u30eb\u30bf\u3092\u5909\u66f4\u53ef\u80fd\u306b\u3057\u307e\u3057\u305f (#762) Polygon::addHole()
\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#786) Font
\u306b\u5408\u5b57\u3092\u56de\u907f\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#792) - -1.0 \uff5e 1.0 \u306e\u7bc4\u56f2\u3092\u8fd4\u3059
Periodic::
\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#761) ManagedScript
\u306b\u3001\u30ea\u30ed\u30fc\u30c9\u3092\u767a\u751f\u3055\u305b\u308b\u30ab\u30b9\u30bf\u30e0\u30c8\u30ea\u30ac\u30fc\u3092\u8a2d\u5b9a\u3059\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#768) Script
\u5185\u3067 include \u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#767) JSON::push_back()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#725) String::replace()
\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u5897\u3084\u3057\u307e\u3057\u305f (#729) ImageProcessing::GenerateMips()
\u3067\u6700\u5927\u30ec\u30d9\u30eb\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#763) - \u30b9\u30af\u30ea\u30d7\u30c8\u3067 enum \u306e\u5024\u3092\u8868\u793a\u53ef\u80fd\u306b\u3057\u307e\u3057\u305f (#774)
- \u30b9\u30af\u30ea\u30d7\u30c8\u306b
OpenMode
, TextEncoding
, TextReader
, TextWriter
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#775) - \u30b9\u30af\u30ea\u30d7\u30c8\u306b
Parse
\u7cfb\u306e\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#782) - \u30b9\u30af\u30ea\u30d7\u30c8\u306b
INI
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#783) Deserializer<MemoryViewReader>
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#777) Serializer<Writer>::operator ->() const
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#776) Geometry2D::Or()
\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#793)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_6","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - (\u975e\u516c\u5f0f) ARM \u5411\u3051\u306e\u30d3\u30eb\u30c9\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#707)
SceneManager
\u306e\u30b3\u30fc\u30c9\u3092\u6539\u5584\u3057\u307e\u3057\u305f (#750) NavMesh
\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u30de\u30c3\u30d7\u69cb\u7bc9\u3092\u53ef\u80fd\u306b\u3057\u307e\u3057\u305f (#785)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_8","title":"\u4ed5\u69d8\u5909\u66f4","text":" - \u5404\u7a2e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#726), (#728), (#727), (#731), (#756), (#757), (#758), (#759), (#773), (#760)
Polygon::addHole()
\u306e\u4ed5\u69d8\u3092\u5909\u66f4\u3057\u307e\u3057\u305f (#786) - engine / example \u30d5\u30a1\u30a4\u30eb\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f (#740)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_10","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" Circle::boundingRect()
\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#718) SimpleAnimation::isDone()
\u306e\u623b\u308a\u5024\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#710) TextEditState::TextEditState(String&& defaultText)
\u306e use after move \u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#703) JSON
\u30af\u30e9\u30b9\u3067\u7a7a\u306e\u914d\u5217\u3092\u4f5c\u308c\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#723) operator>>(basic_istream&, Color&)
\u306e\u8b66\u544a\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#720) - \u30ea\u30e2\u30fc\u30c8\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u3067
System::EnumActiveMonitors()
\u306b\u5931\u6557\u3057\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#719) TOMLReader
\u3067\u5b58\u5728\u3057\u306a\u3044\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u3082\u5931\u6557\u5224\u5b9a\u306b\u306a\u3089\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#732) - Windows \u7248\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u30dc\u30c3\u30af\u30b9\u304c\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u80cc\u9762\u306b\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#706)
- \u30b9\u30af\u30ea\u30d7\u30c8\u306e\u30d0\u30a4\u30f3\u30c9\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#741)
Shape2D::Stairs()
\u306e\u7b2c 5 \u5f15\u6570\u304c false
\u3060\u3068\u4e09\u89d2\u5f62\u306e\u5411\u304d\u304c\u9006\u306b\u306a\u3063\u3066\u3044\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#708) - macOS \u7248\u3067
RectanglePacking
\u304c\u5229\u7528\u3067\u304d\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#754) - ARM \u5411\u3051\u30d3\u30eb\u30c9\u306b\u304a\u3051\u308b
Image
\u3068 OpenCV \u306e\u9023\u643a\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#778) SimpleGUI::ListBox()
\u3067\u7bc4\u56f2\u5916\u30a2\u30af\u30bb\u30b9\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#780) WaveSample
\u306e\u5909\u63db\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#795)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_9","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u3092\u66f4\u65b0
- tana: ARM \u5411\u3051\u30d3\u30eb\u30c9\u306e\u6539\u5584
- mak1a: Multiplayer_Photon \u306e\u5b9f\u88c5,
SimpleAnimation::isDone()
\u306e\u4fee\u6b63 - Ryoga-exe: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- k-sunako: CMakeLists.txt \u306e\u6539\u5584
- falrnd:
Circle::boundingRect()
\u306e\u4fee\u6b63 - polyester-CTRL: OpenCV_Bridge \u306e\u6539\u5584
- yaito3014: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- NachiaVivias:
WaveSample
\u306e\u6539\u5584
"},{"location":"releases/#opensiv3d-\u30c1\u30e3\u30ec\u30f3\u30b8","title":"OpenSiv3D \u30c1\u30e3\u30ec\u30f3\u30b8","text":" - #12 Photon: mak1a, Luke, sthairno
"},{"location":"releases/#\u65b0\u6a5f\u80fd_11","title":"\u65b0\u6a5f\u80fd","text":" - Visual Studio 2022 \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#683)
- SimpleGUI \u306b\u30ea\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#659)
# include <Siv3D.hpp>\nvoid Main()\n{\nWindow::Resize(1280, 720);\nScene::SetBackground(ColorF{ 0.8, 0.9, 1.0 });\nListBoxState ls1{\n{\nU\"\u5317\u6d77\u9053\", U\"\u9752\u68ee\u770c\", U\"\u5ca9\u624b\u770c\", U\"\u5bae\u57ce\u770c\", U\"\u79cb\u7530\u770c\", U\"\u5c71\u5f62\u770c\", U\"\u798f\u5cf6\u770c\", U\"\u8328\u57ce\u770c\",\nU\"\u6803\u6728\u770c\", U\"\u7fa4\u99ac\u770c\", U\"\u57fc\u7389\u770c\", U\"\u5343\u8449\u770c\", U\"\u6771\u4eac\u90fd\", U\"\u795e\u5948\u5ddd\u770c\", U\"\u65b0\u6f5f\u770c\", U\"\u5bcc\u5c71\u770c\",\nU\"\u77f3\u5ddd\u770c\", U\"\u798f\u4e95\u770c\", U\"\u5c71\u68a8\u770c\", U\"\u9577\u91ce\u770c\", U\"\u5c90\u961c\u770c\", U\"\u9759\u5ca1\u770c\", U\"\u611b\u77e5\u770c\", U\"\u4e09\u91cd\u770c\",\nU\"\u6ecb\u8cc0\u770c\", U\"\u4eac\u90fd\u5e9c\", U\"\u5927\u962a\u5e9c\", U\"\u5175\u5eab\u770c\", U\"\u5948\u826f\u770c\", U\"\u548c\u6b4c\u5c71\u770c\", U\"\u9ce5\u53d6\u770c\", U\"\u5cf6\u6839\u770c\",\nU\"\u5ca1\u5c71\u770c\", U\"\u5e83\u5cf6\u770c\", U\"\u5c71\u53e3\u770c\", U\"\u5fb3\u5cf6\u770c\", U\"\u9999\u5ddd\u770c\", U\"\u611b\u5a9b\u770c\", U\"\u9ad8\u77e5\u770c\", U\"\u798f\u5ca1\u770c\",\nU\"\u4f50\u8cc0\u770c\", U\"\u9577\u5d0e\u770c\", U\"\u718a\u672c\u770c\", U\"\u5927\u5206\u770c\", U\"\u5bae\u5d0e\u770c\", U\"\u9e7f\u5150\u5cf6\u770c\", U\"\u6c96\u7e04\u770c\",\n}\n};\nListBoxState ls2{\n{\nU\"\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\uff081905\u5e741\u6708 - 1906\u5e748\u6708\u3001\u300e\u30db\u30c8\u30c8\u30ae\u30b9\u300f/1905\u5e7410\u6708 - 1907\u5e745\u6708\u3001\u5927\u5009\u66f8\u5e97\u30fb\u670d\u90e8\u66f8\u5e97\uff09\",\nU\"\u574a\u3063\u3061\u3083\u3093\uff081906\u5e744\u6708\u3001\u300e\u30db\u30c8\u30c8\u30ae\u30b9\u300f/1907\u5e74\u3001\u6625\u967d\u5802\u520a\u300e\u9d89\u7c60\u300f\u53ce\u9332\uff09\",\nU\"\u8349\u6795\uff081906\u5e749\u6708\u3001\u300e\u65b0\u5c0f\u8aac\u300f/\u300e\u9d89\u7c60\u300f\u53ce\u9332\uff09\",\nU\"\u4e8c\u767e\u5341\u65e5\uff081906\u5e7410\u6708\u3001\u300e\u4e2d\u592e\u516c\u8ad6\u300f/\u300e\u9d89\u7c60\u300f\u53ce\u9332\uff09\",\nU\"\u91ce\u5206\uff081907\u5e741\u6708\u3001\u300e\u30db\u30c8\u30c8\u30ae\u30b9\u300f/1908\u5e74\u3001\u6625\u967d\u5802\u520a\u300e\u8349\u5408\u300f\u53ce\u9332\uff09\",\nU\"\u865e\u7f8e\u4eba\u8349\uff081907\u5e746\u6708 - 10\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1908\u5e741\u6708\u3001\u6625\u967d\u5802\uff09\",\nU\"\u5751\u592b\uff081908\u5e741\u6708 - 4\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/\u300e\u8349\u5408\u300f\u53ce\u9332\uff09\",\nU\"\u4e09\u56db\u90ce\uff081908\u5e749 - 12\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1909\u5e745\u6708\u3001\u6625\u967d\u5802\uff09\",\nU\"\u305d\u308c\u304b\u3089\uff081909\u5e746 - 10\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1910\u5e741\u6708\u3001\u6625\u967d\u5802\uff09\",\nU\"\u9580\uff081910\u5e743\u6708 - 6\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1911\u5e741\u6708\u3001\u6625\u967d\u5802\uff09\",\nU\"\u5f7c\u5cb8\u904e\u8fc4\uff081912\u5e741\u6708 - 4\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1912\u5e749\u6708\u3001\u6625\u967d\u5802\uff09\",\nU\"\u884c\u4eba\uff081912\u5e7412\u6708 - 1913\u5e7411\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1914\u5e741\u6708\u3001\u5927\u5009\u66f8\u5e97\uff09\",\nU\"\u3053\u309d\u308d\uff081914\u5e744\u6708 - 8\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1914\u5e749\u6708\u3001\u5ca9\u6ce2\u66f8\u5e97\uff09\",\nU\"\u9053\u8349\uff081915\u5e746\u6708 - 9\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1915\u5e7410\u6708\u3001\u5ca9\u6ce2\u66f8\u5e97\uff09\",\nU\"\u660e\u6697\uff081916\u5e745\u6708 - 12\u6708\u3001\u300e\u671d\u65e5\u65b0\u805e\u300f/1917\u5e741\u6708\u3001\u5ca9\u6ce2\u66f8\u5e97\uff09\",\n}\n};\nls2.selectedItemIndex = 3;\nListBoxState ls3 = ls2;\nwhile (System::Update())\n{\nif (SimpleGUI::ListBox(ls1, Vec2{ 20, 20 }, 120, 156) && ls1.selectedItemIndex)\n{\n}\nif (SimpleGUI::ListBox(ls2, Vec2{ 180, 20 }, 240, 156, false) && ls2.selectedItemIndex)\n{\n}\nif (SimpleGUI::ListBox(ls3, Vec2{ 20, 200 }, 1020, 480) && ls3.selectedItemIndex)\n{\n}\n}\n}\n
- \u540c\u68b1\u3059\u308b Color Emoji \u3092\u66f4\u65b0\u3057\u3001Unicode 14.0 \u306e\u7d75\u6587\u5b57\u3092\u6271\u3048\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#694)
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF{ 0.4, 0.5, 0.6 });\nconst Texture e0{ U\"\ud83e\udee0\"_emoji };\nconst Texture e1{ U\"\ud83e\udee3\"_emoji };\nconst Texture e2{ U\"\ud83e\udee1\"_emoji };\nconst Texture e3{ U\"\ud83e\udee5\"_emoji };\nconst Texture e4{ U\"\ud83e\udef5\"_emoji };\nconst Texture e5{ U\"\ud83e\uddcc\"_emoji };\nconst Texture e6{ U\"\ud83e\udeb8\"_emoji };\nconst Texture e7{ U\"\ud83e\udeba\"_emoji };\nconst Texture e8{ U\"\ud83e\uded8\"_emoji };\nconst Texture e9{ U\"\ud83e\uded9\"_emoji };\nconst Texture e10{ U\"\ud83e\udee7\"_emoji };\nconst Texture e11{ U\"\ud83d\udede\"_emoji };\nwhile (System::Update())\n{\ne0.drawAt(100, 100);\ne1.drawAt(300, 100);\ne2.drawAt(500, 100);\ne3.drawAt(700, 100);\ne4.drawAt(100, 300);\ne5.drawAt(300, 300);\ne6.drawAt(500, 300);\ne7.drawAt(700, 300);\ne8.drawAt(100, 500);\ne9.drawAt(300, 500);\ne10.drawAt(500, 500);\ne11.drawAt(700, 500);\n}\n}\n
- GUI \u30d5\u30a9\u30f3\u30c8\u306b\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30a2\u30a4\u30b3\u30f3\u30d5\u30a9\u30f3\u30c8\u3078\u306e\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002SimpleGUI \u306e\u30c6\u30ad\u30b9\u30c8\u3067
U\"\\U000F0493 Setting\"
\u306e\u3088\u3046\u306b\u30a2\u30a4\u30b3\u30f3\u30b3\u30fc\u30c9\u3092\u4f7f\u3063\u3066\u30a2\u30a4\u30b3\u30f3\u3092\u8868\u793a\u3067\u304d\u307e\u3059 (#698) # include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF{ 0.8, 0.9, 1.0 });\ndouble volume = 1.0;\nwhile (System::Update())\n{\nSimpleGUI::Button(U\"\\U000F1677 \u3086\u3063\u304f\u308a\", Vec2{ 20, 20 }, 160);\nSimpleGUI::Button(U\"\\U000F0907 \u3044\u305d\u3044\u3067\", Vec2{ 20, 60 }, 160);\nSimpleGUI::Button(U\"\\U000F0493 \u8a2d\u5b9a\", Vec2{ 20, 100 }, 160);\nSimpleGUI::Slider(0.5 < volume ? U\"\\U000F057E\"\n: 0.0 < volume ? U\"\\U000F0580\" : U\"\\U000F0581\", volume, Vec2{ 20, 140 }, 30, 130);\n}\n}\n
- Windows \u7248\u306e
System::EnumerateMonitors()
\u306b\u304a\u3044\u3066\u3001\u3088\u308a\u533a\u5225\u3057\u3084\u3059\u3044\u30e2\u30cb\u30bf\u30fc\u306e\u540d\u524d\u3092\u53d6\u5f97\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#695) - \u6587\u5b57\u3092 3D \u306e Mesh \u3067\u8868\u73fe\u3059\u308b\u305f\u3081\u306e
MeshGlyph
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#680) # include <Siv3D.hpp>\nclass Font3D\n{\npublic:\nFont3D() = default;\nSIV3D_NODISCARD_CXX20\nexplicit Font3D(const Font& font)\n: m_font{ font } {}\n[[nodiscard]]\nArray<MeshGlyph> getGlyphs(StringView s) const\n{\nArray<MeshGlyph> results;\nfor (auto ch : s)\n{\nauto it = m_table.find(ch);\nif (it == m_table.end())\n{\nit = m_table.emplace(ch, m_font.createMesh(ch)).first;\n}\nresults << it->second;\n}\nreturn results;\n}\nvoid drawCylindricalInner(StringView s, const Vec3& center, double r, double scale, double startAngle, const ColorF& color) const\n{\nconst double perimeter = (r * Math::TwoPi);\ndouble penPosX = 0.0;\nstartAngle += 90_deg;\nfor (auto meshGlyph : getGlyphs(s))\n{\npenPosX += (meshGlyph.xOffset * scale);\nif (meshGlyph.mesh)\n{\nconst double angle = (penPosX / perimeter) * 360_deg;\nconst Quaternion q = Quaternion::RotateY(-90_deg + angle - startAngle);\nconst Vec3 pos = Cylindrical{ r, (-180_deg - angle + startAngle), 0.0 } + center;\nconst Mat4x4 mat = Mat4x4::Translate(-meshGlyph.xOffset, 0, 0)\n.scaled(scale)\n.rotated(q)\n.translated(pos);\nmeshGlyph.mesh.draw(mat, color);\n}\npenPosX += (meshGlyph.xAdvance - meshGlyph.xOffset) * scale;\n}\n}\nvoid drawCylindricalOuter(StringView s, const Vec3& center, double r, double scale, double startAngle, const ColorF& color) const\n{\nconst double perimeter = (r * Math::TwoPi);\ndouble penPosX = 0.0;\nstartAngle += 90_deg;\nfor (auto meshGlyph : getGlyphs(s))\n{\npenPosX += (meshGlyph.xOffset * scale);\nif (meshGlyph.mesh)\n{\nconst double angle = (penPosX / perimeter) * 360_deg;\nconst Quaternion q = Quaternion::RotateY(90_deg - angle - startAngle);\nconst Vec3 pos = Cylindrical{ r, (180_deg + angle + startAngle), 0.0 } + center;\nconst Mat4x4 mat = Mat4x4::Translate(-meshGlyph.xOffset, 0, 0)\n.scaled(scale)\n.rotated(q)\n.translated(pos);\nmeshGlyph.mesh.draw(mat, color);\n}\npenPosX += (meshGlyph.xAdvance - meshGlyph.xOffset) * scale;\n}\n}\nprivate:\nFont m_font;\nmutable HashTable<char32, MeshGlyph> m_table;\n};\nvoid Main()\n{\nWindow::Resize(1280, 720);\nconst ColorF backgroundColor = ColorF{ 0.5, 0.6, 0.6 }.removeSRGBCurve();\nconst Texture uvChecker{ U\"example/texture/uv.png\", TextureDesc::MippedSRGB };\nconst MSRenderTexture renderTexture{ Scene::Size(), TextureFormat::R8G8B8A8_Unorm_SRGB, HasDepth::Yes };\nDebugCamera3D camera{ renderTexture.size(), 30_deg, Vec3{ 10, 16, -32 } };\nconst Font3D font3D{ Font{ 60 } };\nwhile (System::Update())\n{\nconst double t = Scene::Time();\ncamera.update(2.0);\nGraphics3D::SetCameraTransform(camera);\n// 3D \u63cf\u753b\n{\nGraphics3D::SetGlobalAmbientColor(Graphics3D::DefaultGlobalAmbientColor);\nGraphics3D::SetSunColor(ColorF{ 0.75 });\nconst ScopedRenderTarget3D target{ renderTexture.clear(backgroundColor) };\nPlane{ 64 }.draw(uvChecker);\nCylinder{ Vec3{0,0,0}, Vec3{0, 16, 0}, 5.6 }.draw(ColorF{ 0.25 }.removeSRGBCurve());\n// 3D Text Circle\n{\n// \u4e21\u9762\u63cf\u753b\u3001\u30e9\u30a4\u30c6\u30a3\u30f3\u30b0\u7121\u52b9\u5316\nconst ScopedRenderStates3D rasterizer{ RasterizerState::SolidCullNone, BlendState::Additive };\nGraphics3D::SetGlobalAmbientColor(ColorF{ 1.0 });\nGraphics3D::SetSunColor(ColorF{ 0.0 });\nfont3D.drawCylindricalOuter(DateTime::Now().format(U\"HH:mm:ss\"), Vec3{ 0, 11.5, 0 }, 6 * 1.2, 3.0 * 1.2, (t * -25_deg), ColorF{ 1.0, 0.98, 0.9 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(DateTime::Now().format(U\"HH:mm:ss\"), Vec3{ 0, 11.5, 0 }, 6 * 1.2, 3.0 * 1.2, (t * -25_deg) + 180_deg, ColorF{ 1.0, 0.98, 0.9 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"Monday, September 27, 2021\", Vec3{ 0, 10, 0 }, 6 * 1.2, 1.2 * 1.2, (t * -50_deg), ColorF{ 1.0, 0.98, 0.9 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"NIKKEI 225 30,248.81 +609.41\", Vec3{ 0, 8, 0 }, 6, 1.0, (t * -72_deg), ColorF{ 0.6, 1.0, 0.8 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"HANG SENG 24,192,16 -318.82\", Vec3{ 0, 7, 0 }, 6, 1.0, (t * -62_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"SHANGHAI 3,613.07 -29.15\", Vec3{ 0, 6, 0 }, 6, 1.0, (t * -58_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"FTSE 7,051.48 -26.87\", Vec3{ 0, 5, 0 }, 6, 1.0, (t * -70_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"CAC 6,638.46 -63.52\", Vec3{ 0, 4, 0 }, 6, 1.0, (t * -60_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"DAX 15,531.75 -112.22\", Vec3{ 0, 3, 0 }, 6, 1.0, (t * -66_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"NASDAQ 15,047.70 -4.54\", Vec3{ 0, 2, 0 }, 6, 1.0, (t * -68_deg), ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"NIKKEI 225 30,248.81 +609.41\", Vec3{ 0, 8, 0 }, 6, 1.0, (t * -72_deg) + 180_deg, ColorF{ 0.6, 1.0, 0.8 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"HANG SENG 24,192,16 -318.82\", Vec3{ 0, 7, 0 }, 6, 1.0, (t * -62_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"SHANGHAI 3,613.07 -29.15\", Vec3{ 0, 6, 0 }, 6, 1.0, (t * -58_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"FTSE 7,051.48 -26.87\", Vec3{ 0, 5, 0 }, 6, 1.0, (t * -70_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"CAC 6,638.46 -63.52\", Vec3{ 0, 4, 0 }, 6, 1.0, (t * -60_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"DAX 15,531.75 -112.22\", Vec3{ 0, 3, 0 }, 6, 1.0, (t * -66_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\nfont3D.drawCylindricalOuter(U\"NASDAQ 15,047.70 -4.54\", Vec3{ 0, 2, 0 }, 6, 1.0, (t * -68_deg) + 180_deg, ColorF{ 1.0, 0.6, 0.6 }.removeSRGBCurve());\n}\n}\n// 3D \u30b7\u30fc\u30f3\u3092 2D \u30b7\u30fc\u30f3\u306b\u63cf\u753b\n{\nGraphics3D::Flush();\nrenderTexture.resolve();\nShader::LinearToScreen(renderTexture);\n}\n}\n}\n
- Windows \u7248\u306b\u304a\u3044\u3066\u3001Leap Motion \u30c7\u30d0\u30a4\u30b9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3057\u305f (#677)
// Ultraleap SDK \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\n// 1. \u30a4\u30f3\u30af\u30eb\u30fc\u30c9 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\n// C:\\Program Files\\Ultraleap\\LeapSDK\\include \u3092\u8ffd\u52a0\u3002\n// 2. \u30e9\u30a4\u30d6\u30e9\u30ea \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\n// C:\\Program Files\\Ultraleap\\LeapSDK\\lib\\x64 \u3092\u8ffd\u52a0\u3002\n// 3. App \u30d5\u30a9\u30eb\u30c0\u306b LeapC.dll \u3092\u30b3\u30d4\u30fc\u3002\n# include <Siv3D.hpp>\ninline constexpr double HandScale = 0.08;\nvoid DrawSphere(uint32 handID, const Vec3& pos)\n{\nSphere{ (pos * HandScale), (6 * HandScale) }\n.draw(HSV{ handID * 60 }.removeSRGBCurve());\n}\nvoid DrawCylinder(const Vec3& from, const Vec3& to)\n{\nCylinder{ (from * HandScale), (to * HandScale), (3 * HandScale) }.draw();\n}\nvoid Main()\n{\nWindow::Resize(1280, 720);\nconst ColorF backgroundColor = ColorF{ 0.4, 0.6, 0.8 }.removeSRGBCurve();\nconst Texture uvChecker{ U\"example/texture/uv.png\", TextureDesc::MippedSRGB };\nconst MSRenderTexture renderTexture{ Scene::Size(), TextureFormat::R8G8B8A8_Unorm_SRGB, HasDepth::Yes };\nDebugCamera3D camera{ renderTexture.size(), 30_deg, Vec3{ 0, 32, -32 } };\nconst Font font{ FontMethod::MSDF, 48, Typeface::Bold };\nsize_t trackingModeIndex = 0;\nbool showInfo = true;\nLeap::Connection leap{ Leap::TrackingMode::Desktop };\nif (not leap)\n{\nthrow Error{ U\"Leap device not found\" };\n}\nwhile (System::Update())\n{\nleap.update();\ncamera.update(2.0);\nGraphics3D::SetCameraTransform(camera);\n// 3D \u63cf\u753b\n{\nconst ScopedRenderTarget3D target{ renderTexture.clear(backgroundColor) };\nif (trackingModeIndex == 0)\n{\nPlane{ 64 }.draw(uvChecker);\nconst double z = 6;\nfor (auto x : Range(-2, 2))\n{\nCylinder{ (x * 6.0), 4, z, 2, 8 }.draw(ColorF{ 0.8 }.removeSRGBCurve());\n}\nfor (auto x : Range(-8, 8))\n{\nconst Box box{ (x * 2), 10, z, 1.8, 1, 10 };\nbool intersect = false;\nfor (const auto& hand : leap.getHands())\n{\nfor (auto fingerIndex : step(5))\n{\nfor (auto boneIndex : Range(1, 3))\n{\nconst Vec3 to = hand.fingerBone(fingerIndex, boneIndex).to;\nconst Sphere sphere{ (to * HandScale), (6 * HandScale) };\nif (sphere.intersects(box))\n{\nintersect = true;\nbreak;\n}\n}\nif (intersect)\n{\nbreak;\n}\n}\nif (intersect)\n{\nbreak;\n}\n}\nbox.draw(HSV{ (x * 40), (intersect ? 0.8 : 0.15), 1.0 }.removeSRGBCurve());\n}\n}\nfor (const auto& hand : leap.getHands())\n{\nconst auto handID = hand.id();\nfor (auto fingerIndex : step(5))\n{\nfor (auto boneIndex : step(4))\n{\nconst Vec3 from = hand.fingerBone(fingerIndex, boneIndex).from;\nconst Vec3 to = hand.fingerBone(fingerIndex, boneIndex).to;\nif (fingerIndex == 4 && boneIndex == 0)\n{\nDrawSphere(handID, from);\n}\nDrawSphere(handID, to);\nif ((fingerIndex != 0 && fingerIndex != 4) && boneIndex == 0)\n{\ncontinue;\n}\nDrawCylinder(from, to);\n}\n}\nDrawSphere(handID, hand.palmPosition());\nDrawCylinder(hand.fingerBone(0, 0).from, hand.fingerBone(1, 1).from);\nDrawCylinder(hand.fingerBone(1, 1).from, hand.fingerBone(2, 1).from);\nDrawCylinder(hand.fingerBone(2, 1).from, hand.fingerBone(3, 1).from);\nDrawCylinder(hand.fingerBone(3, 1).from, hand.fingerBone(4, 1).from);\nDrawCylinder(hand.fingerBone(0, 0).from, hand.fingerBone(4, 0).from);\n}\n}\n{\nGraphics3D::Flush();\nrenderTexture.resolve();\nShader::LinearToScreen(renderTexture);\n}\nif (SimpleGUI::RadioButtons(trackingModeIndex, { U\"Desktop\", U\"Head-mounted\", U\"Screentop\" }, Vec2{ 20,20 }))\n{\nleap.setTrackingMode(static_cast<Leap::TrackingMode>(trackingModeIndex));\nif (trackingModeIndex == 0)\n{\ncamera = DebugCamera3D{ renderTexture.size(), 30_deg, Vec3{ 0, 32, -32 } };\n}\nelse if (trackingModeIndex == 1)\n{\ncamera = DebugCamera3D{ renderTexture.size(), 30_deg, Vec3{ 0, 32, -24 }, Vec3{ 0, 0, 8 } };\n}\nelse\n{\ncamera = DebugCamera3D{ renderTexture.size(), 30_deg, Vec3{ 0, 32, -56 }, Vec3{ 0, 0, -24 } };\n}\n}\nSimpleGUI::CheckBox(showInfo, U\"showInfo\", Vec2{ 20, 140 });\nif (showInfo)\n{\nfor (const auto& hand : leap.getHands())\n{\nconst Vec2 palmPos = camera.worldToScreenPoint(hand.palmPosition() * HandScale).xy();\nString ext;\nfor (auto fingerIndex : step(5))\n{\next << (hand.isExtended(fingerIndex) ? U'1' : U'0');\n}\nconst String state = U\"pinchDistance: {:.2f}\\ngrabAngle: {:.2f}\\npinchStrength: {:.2f}\\ngrabStrength: {:.2f}\\nfingers:{}\"_fmt(\nhand.pinchDistance(), hand.grabAngle(), hand.pinchStrength(), hand.grabStrength(), ext);\nfont(hand.isLeftHand() ? U\"L\" : U\"R\")\n.draw(TextStyle::Outline(0.15, ColorF{ 0.0 }), 100, Arg::rightCenter = palmPos.movedBy(-20, 0));\nfont(state)\n.draw(30, Arg::leftCenter = palmPos, ColorF{ 0.15 });\n}\n}\n}\n}\n
Math::Tau
\u3084 0.5_tau
\u306a\u3069\u30012\u03c0 \u3092\u8868\u3059\u5b9a\u6570 \u03c4 \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f (#673) # include <Siv3D.hpp>\nvoid Main()\n{\nPrint << Math::Pi;\nPrint << Math::Tau;\nPrint << Math::PiF;\nPrint << Math::TauF;\nPrint << 0.5_pi;\nPrint << 0.5_tau;\nwhile (System::Update())\n{\n}\n}\n
- \u7570\u306a\u308b\u7a2e\u985e\u3069\u3046\u3057\u306e
Optional
\u306e\u6bd4\u8f03\u6f14\u7b97\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#670) BigFloat
\u306b .isNan()
, .isInf()
\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#669) Array
, Optional
, BigInt
, BigFloat
\u306b\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092\u5b9f\u88c5\u3057\u307e\u3057\u305f (#658) String
, StringView
, UUIDValue
\u306b\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092\u5b9f\u88c5\u3057\u307e\u3057\u305f (#664) DrawableText::regionBase()
\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#666) - Windows \u7248\u306b\u304a\u3044\u3066\u3001\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u30ec\u30fc\u30c8\u4ee5\u4e0a\u306e\u983b\u5ea6\u3067\u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b\u3092\u53d6\u5f97\u3067\u304d\u308b\u95a2\u6570
Platform::Windows::Keyboard::GetEvents()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#662) # include <Siv3D.hpp>\nvoid Main()\n{\nuint64 eventIndex = 0;\nwhile (System::Update())\n{\nif (SimpleGUI::Button(U\"Clear\", Vec2{ 680, 20 }))\n{\nClearPrint();\n}\nfor (const auto& event : Platform::Windows::Keyboard::GetEvents())\n{\nif (eventIndex < event.eventIndex)\n{\nPrint << event.timeMillisec << U\": \" << Input { InputDeviceType::Keyboard, event.code }.name() << (event.down ? U\" down (event)\" : U\" up (event)\");\neventIndex = event.eventIndex;\n}\n}\n/*\n\t\tfor (const auto& key : Keyboard::GetAllInputs())\n\t\t{\n\t\t\tif (key.down())\n\t\t\t{\n\t\t\t\tPrint << Time::GetMillisec() << U\": \" << key.name() << U\" down\";\n\t\t\t}\n\t\t\telse if (key.up())\n\t\t\t{\n\t\t\t\tPrint << Time::GetMillisec() << U\": \" << key.name() << U\" up\";\n\t\t\t}\n\t\t}\n\t\t*/\n}\n}\n
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_9","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" - \u30b9\u30af\u30ea\u30d7\u30c8\u30a8\u30f3\u30b8\u30f3\u306e\u521d\u671f\u5316\u3092\u9045\u5ef6\u3055\u305b\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u6a5f\u80fd\u3092\u4f7f\u308f\u306a\u3044\u5834\u5408\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u521d\u671f\u5316\u306b\u304b\u304b\u308b\u6642\u9593\u3092\u77ed\u7e2e\u3057\u307e\u3057\u305f\uff08\u6570\u5341\u30df\u30ea\u79d2\uff09 (#657)
- GLSL \u30b7\u30a7\u30fc\u30c0\u30d5\u30a1\u30a4\u30eb\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u8a18\u8ff0\u3092\u7c21\u7d20\u5316\u3057\u3001\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\u3092\u5c11\u3057\u524a\u6e1b\u3057\u307e\u3057\u305f (#687)
HalfFloat
\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u3092 constexpr \u306b\u3057\u307e\u3057\u305f (#689)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_7","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" NotoEmoji-Regular.ttf
\u3092\u30a8\u30f3\u30b8\u30f3\u30ea\u30bd\u30fc\u30b9\u306b\u542b\u307e\u306a\u304f\u3066\u3082\u30a8\u30f3\u30b8\u30f3\u3092\u521d\u671f\u5316\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#684) NotoSansCJK-Regular.ttc.zstdcmp
\u3084 NotoSansJP-Regular.otf.zstdcmp
\u306e\u4ee3\u66ff\u306b\u3067\u304d\u308b\u3001\u6700\u4f4e\u9650\u5fc5\u8981\u306a\u30b0\u30ea\u30d5\u3092\u683c\u7d0d\u3057\u305f\u30d5\u30a9\u30f3\u30c8 engine/font/min/siv3d-min.woff
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#682) - Windows \u7248\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u306e\u5bfe\u5fdc\u8a00\u8a9e\u3092\u5897\u3084\u3057\u307e\u3057\u305f (#671)
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_9","title":"\u4ed5\u69d8\u5909\u66f4","text":" - Web \u7248\u3067\u901a\u5e38\u3068\u540c\u3058\u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\u304c\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u305f\u3081\u3001
SIV3D_MAINLOOP_BEGIN
\u3092\u524a\u9664\u3057\u307e\u3057\u305f (#674) - macOS \u7248\u3068 Linux \u7248\u306b\u304a\u3044\u3066\u3001\u30ed\u30b0\u306f
std::cout
\u3067\u306f\u306a\u304f std::clog
\u304a\u3088\u3073 std::cerr
\u306b\u51fa\u529b\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#630) engine
\u304a\u3088\u3073 example
\u30d5\u30a9\u30eb\u30c0\u306e\u66f4\u65b0 (#686)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_11","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" DrawableText::draw(double, Arg:: ...)
\u3084 DrawableText::region(double, Arg ...)
\u306e\u4f4d\u7f6e\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#665) - Windows \u7248\u306b\u304a\u3044\u3066
Window::IsToggleFullscreenEnabled()
\u304c\u5e38\u306b false
\u3092\u8fd4\u3059\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#699) HalfFloat{ 0.0f } == HalfFloat{ -0.0f }
\u304c false
\u306b\u306a\u308b\u30d0\u30b0\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#660) CircularBase<float, Oclock>
\u4f7f\u7528\u6642\u306b\u767a\u751f\u3059\u308b\u8b66\u544a\u3092\u89e3\u6d88\u3057\u307e\u3057\u305f (#667)
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_10","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u3092\u66f4\u65b0
- tetsurom:
HalfFloat
\u306e\u5b9f\u88c5\u6539\u5584, Optional
\u306e\u5b9f\u88c5\u6539\u5584, BigFloat
\u306e\u5b9f\u88c5\u6539\u5584, \u5404\u7a2e\u30af\u30e9\u30b9\u3078\u306e\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97\u5b50\u306e\u5b9f\u88c5
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_10","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" - Windows \u7248\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8d77\u52d5\u3092\u9ad8\u901f\u5316\u3057\u307e\u3057\u305f (#650, #651)
- \u30e1\u30e2\u30ea / VRAM \u306e\u6d88\u8cbb\u91cf\u3092\u524a\u6e1b\u3057\u307e\u3057\u305f (#648)
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_12","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - Windows \u7248\u3067\u91cd\u3044\u63cf\u753b\u51e6\u7406\u3092\u884c\u3063\u305f\u3068\u304d\u306b v0.4.3 \u3088\u308a\u3082\u30d5\u30ec\u30fc\u30e0\u30ec\u30fc\u30c8\u304c\u4f4e\u4e0b\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#652)
- Windows \u7248\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e stdafx.h \u3092 Header Files \u30d5\u30a3\u30eb\u30bf\u306b\u79fb\u52d5\u3057\u307e\u3057\u305f (#653)
"},{"location":"releases/#\u65b0\u6a5f\u80fd_12","title":"\u65b0\u6a5f\u80fd","text":" - SDF / MSDF \u30c6\u30af\u30b9\u30c1\u30e3\u63cf\u753b\u6642\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u7c21\u5358\u306b\u6307\u5b9a\u3067\u304d\u308b
Graphics2D::SetSDFParameters(const TextStyle&)
, Graphics2D::SetMSDFParameters(const TextStyle&)
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#647)
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_8","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - Windows \u7248\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u767a\u751f\u3057\u3066\u3044\u305f\u30d3\u30eb\u30c9\u6642\u306e IntelliSense \u306e\u8b66\u544a\u3092 2 \u4ef6\u6291\u5236\u3057\u307e\u3057\u305f (#643)
- \u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_10","title":"\u4ed5\u69d8\u5909\u66f4","text":" Monitor
\u306f MonitorInfo
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f (#649) UUID
\u306f UUIDValue
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_13","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" - v0.6.0 \u306b\u304a\u3044\u3066\u3001Windows \u7248\u3067\u30bf\u30c3\u30c1\u64cd\u4f5c\u3092\u3057\u305f\u3068\u304d\u306b\u5de6\u30af\u30ea\u30c3\u30af\u3068\u5224\u5b9a\u3055\u308c\u306b\u304f\u304f\u306a\u3063\u3066\u3044\u305f\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#645)
- v0.6.0 \u306b\u304a\u3044\u3066\u3001
<Siv3D/Windows/Windows.hpp>
\u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3059\u308b\u3068\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3044\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#644) - v0.6.0 \u306b\u304a\u3044\u3066\u3001
Platform::Windows::GetHWND()
\u304c\u5b9f\u88c5\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f (#646) MathParser
\u306b\u7a7a\u306e\u6587\u5b57\u5217\u3092\u6e21\u3057\u305f\u3068\u304d\u306b\u4f8b\u5916\u3092\u6295\u3052\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3057\u305f (#641)
"},{"location":"releases/#\u65b0\u6a5f\u80fd_13","title":"\u65b0\u6a5f\u80fd","text":" - \u57fa\u672c\u7684\u306a 3D \u63cf\u753b\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- C++20 \u306b\u5bfe\u5fdc\u3057\u3001Concepts \u3084 Designated initialization, \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3078\u306e
[[nodiscard]]
, \u5b87\u5b99\u8239\u6f14\u7b97\u5b50\u3001\u3088\u308a\u591a\u304f\u306e constexpr
, \u65b0\u3057\u3044\u6a19\u6e96\u6a5f\u80fd\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306a\u3069\u304c\u6d3b\u7528\u3055\u308c\u3066\u3044\u307e\u3059 - \u8a66\u9a13\u7684\u306a Web \u7248\u306e\u5b9f\u88c5\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (\u8a73\u3057\u304f\u306f OpenSiv3D for Web)
- Windows \u3067 OpenGL \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u304c\u5229\u7528\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f (\u8a73\u3057\u304f\u306f \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 35)
- \u30d5\u30a1\u30a4\u30eb\u306e\u975e\u540c\u671f\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306a\u3069\u3092\u884c\u3046 HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30c7\u30d5\u30a9\u30eb\u30c8\u3067 HighDPI \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- SVG \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- MIDI \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u52d5\u753b\u3092\u30c6\u30af\u30b9\u30c1\u30e3\u3068\u3057\u3066\u6271\u3048\u308b
VideoTexture
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - Windows \u3067\u30da\u30f3\u30bf\u30d6\u30ec\u30c3\u30c8\u306e\u5165\u529b\uff08\u7b46\u5727\u30fb\u50be\u304d\uff09\u3092\u53d6\u5f97\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- 2D \u63cf\u753b\u3067\u30ab\u30b9\u30bf\u30e0\u9802\u70b9\u30b7\u30a7\u30fc\u30c0\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u30023D \u3067\u3082\u9802\u70b9\u30b7\u30a7\u30fc\u30c0\u3001\u30d4\u30af\u30bb\u30eb\u30b7\u30a7\u30fc\u30c0\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059
- \u3059\u3079\u3066\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u30d5\u30a7\u30fc\u30c9\u30a4\u30f3\u30fb\u30d5\u30a7\u30fc\u30c9\u30a2\u30a6\u30c8\uff08\u518d\u751f\u3001\u505c\u6b62\u3001\u97f3\u91cf\u3001\u30d1\u30f3\u3001\u30b9\u30d4\u30fc\u30c9\uff09\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3057\u305f
- HPF, LPF, \u30d4\u30c3\u30c1\u30b7\u30d5\u30c8\u306a\u3069\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u97f3\u58f0\u30d5\u30a3\u30eb\u30bf\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u6587\u5b57\u306e\u8f2a\u90ed\u3084 Polygon \u3092\u6b63\u78ba\u306b\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
Font
\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u5f62\u5f0f\u306b SDF / MSDF \u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f Font
\u306e\u62e1\u5927\u7e2e\u5c0f\u63cf\u753b\u3001\u8f2a\u90ed\u3001\u30b7\u30e3\u30c9\u30a6\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f - \u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a1\u30a4\u30eb\u306e\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u518d\u751f\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
String
\u578b\u306b\u5bfe\u5fdc\u3057\u305f\u3001\u6b63\u898f\u8868\u73fe\u3092\u6271\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - \u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\u306b\u57cb\u3081\u308b\u6587\u5b57\u5217\u306e\u96e3\u8aad\u5316\u3092\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30c7\u30de\u30f3\u30b0\u30eb\u3092\u884c\u3046\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Kahan \u306e\u52a0\u7b97\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u884c\u3046\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- 128-bit \u6574\u6570\u578b\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
Stopwatch
\u3084 Timer
\u304c\u30e6\u30fc\u30b6\u5b9a\u7fa9\u306e\u57fa\u6e96\u6642\u523b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 ISteadyClock
\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u8907\u6570\u306e Stopwatch
\u3084 Timer
\u3092\u4e00\u62ec\u3057\u3066\u4e00\u6642\u505c\u6b62\u3055\u305b\u305f\u308a\u3001\u9045\u304f/\u65e9\u304f\u9032\u884c\u3055\u305b\u308b\u3053\u3068\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3057\u305f TimeProfiler
\u304c\u3088\u308a\u8a73\u7d30\u306a\u7d71\u8a08\u60c5\u5831\u3092\u63d0\u4f9b\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f - \u5730\u7406\u7a7a\u9593\u30c7\u30fc\u30bf\u306e\u4ea4\u63db\u5f62\u5f0f\u3067\u3042\u308b GeoJSON \u3092\u8aad\u307f\u8fbc\u3080\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u591a\u304f\u306e\u6570\u5b66\u5b9a\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
JSONReader
, JSONWriter
\u3092\u7d71\u5408\u3057\u305f JSON
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - \u7c21\u6613\u7684\u306a\u30ad\u30fc\u30d5\u30ec\u30fc\u30e0\u306b\u3088\u308b\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u884c\u3046
SimpleAnimation
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - \u7d71\u8a08\u51e6\u7406\u3092\u884c\u3046\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u6570\u5024\u306b\u5fdc\u3058\u305f\u30ab\u30e9\u30fc\u30de\u30c3\u30d7\u3092\u884c\u3046\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30d9\u30af\u30c8\u30eb\u30af\u30e9\u30b9\u306b\u591a\u6570\u306e\u4fbf\u5229\u306a\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u56f3\u5f62\u30af\u30e9\u30b9\u306b\u591a\u6570\u306e\u4fbf\u5229\u306a\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
Shape2D
\u306b\u30cf\u30fc\u30c8\u5f62\u3001\u4e21\u65b9\u5411\u77e2\u5370\u3001Squircle \u5f62\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f Polygon
\u306b\u67d4\u8edf\u306b\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u30de\u30c3\u30d4\u30f3\u30b0\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - \u9577\u65b9\u5f62\u8a70\u8fbc\u307f\u306b 90\u00b0 \u56de\u8ee2\u3092\u8a31\u53ef\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30db\u30e2\u30b0\u30e9\u30d5\u30a3\u5909\u63db\u3092\u884c\u3046\u305f\u3081\u306e\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u5404\u7a2e\u4e71\u6570\u95a2\u6570\u304c\u4e71\u6570\u30a8\u30f3\u30b8\u30f3\u3092\u5f15\u6570\u306b\u53d6\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
- UUID \u751f\u6210\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u74b0\u5883\u5909\u6570\u306e\u53d6\u5f97\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u5f15\u6570\u306e\u53d6\u5f97\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30e2\u30cb\u30bf\u30fc\u306e\u7269\u7406\u30b5\u30a4\u30ba\u306a\u3069\u3001\u8a73\u7d30\u306a\u60c5\u5831\u3092\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
- \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u306e\u8a73\u7d30\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Klat \u65b9\u5f0f\u306b\u3088\u308b\u97f3\u58f0\u8aad\u307f\u4e0a\u3052\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u753b\u50cf\u5f62\u5f0f WebP, TIFF \u306e\u8aad\u307f\u8fbc\u307f\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u97f3\u58f0\u5f62\u5f0f Opus, AIFF, FLAC, MIDI, WMA \u306e\u8aad\u307f\u8fbc\u307f\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u753b\u50cf\u306e\u4e00\u90e8\u5206\u306b\u753b\u50cf\u51e6\u7406\u3092\u9069\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
- GrabCut \u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- QR \u30b3\u30fc\u30c9\u751f\u6210\u6a5f\u80fd\u3092\u6539\u5584\u3057\u307e\u3057\u305f
VideoWriter
\u3092\u6539\u5584\u3057\u307e\u3057\u305f - \u30b5\u30a6\u30f3\u30c9\u30d5\u30a9\u30f3\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
- \u30de\u30a6\u30b9\u30ab\u30fc\u30bd\u30eb\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u5168\u3066\u306e\u30ad\u30fc\u5165\u529b\u3092\u53d6\u5f97\u3059\u308b\u95a2\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30a2\u30bb\u30c3\u30c8\u7ba1\u7406\u306b\u304a\u3051\u308b\u975e\u540c\u671f\u30ed\u30fc\u30c9\u304c\u3088\u308a\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f
- example \u30d5\u30a1\u30a4\u30eb\u3092\u591a\u6570\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u30ca\u30d3\u30e1\u30c3\u30b7\u30e5\u304c\u3088\u308a\u7c21\u5358\u306b\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
Spline2D
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - \u56f3\u5f62\u306e\u8f2a\u90ed\u306e\u4e00\u90e8\u306e\u53d6\u5f97\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u56f3\u5f62\u306e Lerp \u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- GPU \u3060\u3051\u3067\u306e\u4e09\u89d2\u5f62\u63cf\u753b\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u30ab\u30b9\u30bf\u30e0\u30de\u30a6\u30b9\u30ab\u30fc\u30bd\u30eb\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u30b0\u30eb\u30fc\u30d7\u3054\u3068\u306b\u97f3\u91cf\u3092\u8abf\u6574\u3067\u304d\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Ogg Vorbis \u306e\u30eb\u30fc\u30d7\u30bf\u30b0\u53d6\u5f97\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u30ec\u30fc\u30d9\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3\u8ddd\u96e2\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u51f9\u5305 (Concave hull) \u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u67d4\u8edf\u306a\u753b\u50cf\u30c7\u30b3\u30fc\u30c0\u3001\u30a8\u30f3\u30b3\u30fc\u30c0\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f
- \u9589 / \u958b\u533a\u9593\u3092\u6307\u5b9a\u3057\u305f\u4e71\u6570\u751f\u6210\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- SIV3D_SET() \u306b\u3088\u308b\u30d3\u30eb\u30c9\u6642\u306e\u30a8\u30f3\u30b8\u30f3\u8a2d\u5b9a\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Effect \u306e\u518d\u5e30\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f
- CJK \u30d5\u30a9\u30f3\u30c8\u3092\u8ffd\u52a0\u3057\u3001
Print
\u304c\u4e2d\u56fd\u8a9e\u3001\u97d3\u56fd\u8a9e\u306e\u8868\u793a\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f - \u52d5\u753b\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080
VideoReader
\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f - 2D \u7269\u7406\u6f14\u7b97\u306e\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Siv3D \u304f\u3093\u30c9\u30c3\u30c8\u7d75\u7d20\u6750\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f
- Siv3D \u304f\u3093 .obj 3D \u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f
Image::stamp()
\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f Line::drawDoubleHeadedArrow()
\u3067\u4e21\u65b9\u5411\u77e2\u5370\u3092\u63cf\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f - \u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u4fdd\u5b58\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u30ad\u30fc\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f
- \u30b9\u30af\u30ea\u30d7\u30c8\u6a5f\u80fd\u3092\u5927\u5e45\u306b\u6539\u5584\u3057\u307e\u3057\u305f
- 2D \u56f3\u5f62\u306e\u4ea4\u5dee\u5224\u5b9a\u3092\u3088\u308a\u591a\u304f\u306e\u7d44\u307f\u5408\u308f\u305b\u306b\u5bfe\u5fdc\u3057\u307e\u3057\u305f
- \u591a\u304f\u306e 3D \u5f62\u72b6\u306e\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- Linux \u7248\u306e IME\u306e\u6319\u52d5\u3092\u6539\u5584\u3057\u307e\u3057\u305f
- \u30e6\u30fc\u30b6\u30a2\u30c9\u30aa\u30f3\u306e\u8ffd\u52a0\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
- \u305d\u306e\u4ed6\u591a\u6570\u306e\u65b0\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059
"},{"location":"releases/#\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a_11","title":"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a","text":" - Windows \u7248\u306e\u30a2\u30d7\u30ea\u306e\u8d77\u52d5\u6642\u9593\u304c\u6570\u767e\u30df\u30ea\u79d2\u524d\u5f8c\u77ed\u7e2e\u3057\u307e\u3057\u305f
Heterogeneous lookup
\u306b\u3088\u308a\u3001\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3084 StringView
\u3067 HashTable
\u3084 HashSet
\u306e\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u3059\u308b\u969b\u306e\u5b9f\u884c\u6642\u6027\u80fd\u304c\u5411\u4e0a\u3057\u307e\u3057\u305f - \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u66f8\u304d\u3001\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3084\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u306e\u30ed\u30fc\u30c9\u304c\u9ad8\u901f\u306b\u306a\u308a\u307e\u3057\u305f
Parse
/ ParseOpt
/ ParseOr
\u306e\u901f\u5ea6\u3092\u6539\u5584\u3057\u307e\u3057\u305f
"},{"location":"releases/#\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a_9","title":"\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u5411\u4e0a","text":" - \u30a4\u30f3\u30e9\u30a4\u30f3\u95a2\u6570\u304c .hpp \u30d5\u30a1\u30a4\u30eb\u304b\u3089 .ipp \u30d5\u30a1\u30a4\u30eb\u306b\u79fb\u3055\u308c\u3001\u30d8\u30c3\u30c0\u30d5\u30a1\u30a4\u30eb\u304c\u8aad\u307f\u3084\u3059\u304f\u306a\u308a\u307e\u3057\u305f
- Windows \u7248\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30d7\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u30d3\u30eb\u30c9\u304c\u9ad8\u901f\u5316\u3057\u307e\u3057\u305f
"},{"location":"releases/#\u4ed5\u69d8\u5909\u66f4_11","title":"\u4ed5\u69d8\u5909\u66f4","text":" - bool \u578b\u306e\u95a2\u6570\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u591a\u304f\u304c\u3001\u540d\u524d\u306e\u4ed8\u3044\u305f YesNo \u578b\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u304c\u5411\u4e0a\u3057\u307e\u3057\u305f
Optional
\u578b\u304c C++ \u6a19\u6e96\u306e std::optional
\u306b\u8fd1\u3044\u52d5\u4f5c\u3092\u3059\u308b\u3088\u3046\u6539\u5584\u3055\u308c\u307e\u3057\u305f HashTable
\u578b\u304c C++ \u6a19\u6e96\u306e std::unordered_map
\u306b\u8fd1\u3044\u52d5\u4f5c\u3092\u3059\u308b\u3088\u3046\u6539\u5584\u3055\u308c\u307e\u3057\u305f KDTree
\u304c\u3088\u308a\u77ed\u3044\u8a18\u8ff0\u3067\u5229\u7528\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f Concurrenttask
\u306f AsyncTask
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f - \u5b50\u30d7\u30ed\u30bb\u30b9\u4f5c\u6210\u95a2\u6570\u306f
ChildProcess
\u30af\u30e9\u30b9\u306b\u7d71\u5408\u3055\u308c\u307e\u3057\u305f Unicode::FromWString()
\u306f Unicode::FromWstring()
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f - \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u306e
U\"{}\"_fmt(x)
\u306f\u3001\u6709\u52b9\u6841\u6570\u3059\u3079\u3066\u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f Time::Get\uff5e
\u306f\u30b7\u30b9\u30c6\u30e0\u8d77\u52d5\u6642\u9593\u3067\u306f\u306a\u304f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8d77\u52d5\u304b\u3089\u306e\u6642\u9593\u3092\u8fd4\u3059\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f CustomStopwatch
\u306f VariableSpeedStopwatch
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f FileSystem::SpecialFolderPath()
\u306f FileSystem::GetFolderPath()
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f FileSystem::UniqueFilePath()
\u306f UUID \u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u540d\u524d\u3092\u4f5c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f ByteArray
\u306f Blob
\u304a\u3088\u3073 MemoryReader
\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f CSVData
\u306f CSV
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f INIData
\u306f INI
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f JSONReader
, JSONWriter
\u306f JSON
\u306b\u7d71\u5408\u3055\u308c\u307e\u3057\u305f EasingController
\u306f EasingAB
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f Sprite
\u306f Buffer2D
\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f - \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u914d\u5217\u306f
TriangleIndex
\u3092\u4f7f\u3046\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f MessageBox
\u306e\u4ed5\u69d8\u304c\u5909\u308f\u308a\u307e\u3057\u305f - \u30c8\u30fc\u30b9\u30c8\u901a\u77e5\u306e\u4ed5\u69d8\u304c\u5909\u308f\u308a\u307e\u3057\u305f
- \u7269\u4f53\u691c\u51fa\u6a5f\u80fd\u306f
CascadeClassifier
\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f Key
\u306f Input
\u306b\u306a\u308a\u307e\u3057\u305f - \u7d75\u6587\u5b57\u3068\u30a2\u30a4\u30b3\u30f3\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u66f4\u65b0\u3057\u4f7f\u3048\u308b\u7d75\u6587\u5b57\u3084\u30a2\u30a4\u30b3\u30f3\u306e\u7a2e\u985e\u304c\u5927\u5e45\u306b\u5897\u3048\u307e\u3057\u305f
Image
\u306e\u6700\u5927\u30b5\u30a4\u30ba\u3092 1 \u8fba 8192px \u2192 16384px \u306b\u62e1\u5f35\u3057\u307e\u3057\u305f - ConstantBuffer \u30b5\u30a4\u30ba 16 \u00d7 N \u30d0\u30a4\u30c8\u5236\u7d04\u304c\u64a4\u5ec3\u3055\u308c\u307e\u3057\u305f
- \u4e26\u5217\u5b9f\u884c\u306b\u95a2\u3059\u308b\u6a5f\u80fd\u306f
SIV3D_CONCURRENT
\u30de\u30af\u30ed\u3092\u5b9a\u7fa9\u3057\u306a\u304f\u3066\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f - High DPI \u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u306a\u308a\u3001
SIV3D_WINDOWS_HIGH_DPI
\u30de\u30af\u30ed\u306f\u5ec3\u6b62\u3055\u308c\u307e\u3057\u305f
"},{"location":"releases/#\u4e0d\u5177\u5408\u30d0\u30b0\u4fee\u6b63_14","title":"\u4e0d\u5177\u5408\u30fb\u30d0\u30b0\u4fee\u6b63","text":" Array
\u306e\u4e26\u5217\u95a2\u6570\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f AsyncTask
\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u9593\u306b\u3088\u308b\u5dee\u7570\u3092\u89e3\u6d88\u3057\u307e\u3057\u305f - Windows \u306e
MakeDragDrop()
\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f - PPM \u753b\u50cf\u8aad\u307f\u8fbc\u307f\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f
- \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3054\u3068\u306e\u4e71\u6570\u306e\u518d\u73fe\u6027\u306e\u6539\u5584\u3057\u307e\u3057\u305f
- QR \u30b3\u30fc\u30c9\u751f\u6210\u306e\u4e0d\u5177\u5408\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f
"},{"location":"releases/#\u6ce8\u610f\u70b9","title":"\u6ce8\u610f\u70b9","text":" Math::SmoothDmap()
\u306e\u5f15\u6570\u9806\u304c\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u3067\u767a\u898b\u3067\u304d\u307e\u305b\u3093 - \u30d5\u30a9\u30f3\u30c8\u306e\u7e26\u66f8\u304d\u6a5f\u80fd\u306f\u4e00\u6642\u7684\u306b\u975e\u642d\u8f09\u306b\u306a\u308a\u307e\u3057\u305f
- \u81ea\u7136\u8a00\u8a9e\u51e6\u7406\u6a5f\u80fd\u306f\u4e00\u6642\u7684\u306b\u975e\u642d\u8f09\u306b\u306a\u308a\u307e\u3057\u305f
SimpleGUIManager
\u6a5f\u80fd\u306f\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u307e\u3057\u305f NoiseGenerator
\u30af\u30e9\u30b9\u306f\u4e00\u6642\u7684\u306b\u975e\u642d\u8f09\u306b\u306a\u308a\u307e\u3057\u305f - Shift_JIS \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306f\u30b5\u30dd\u30fc\u30c8\u3057\u306a\u304f\u306a\u308a\u307e\u3057\u305f
- \u30b7\u30fc\u30f3\u306e\u30ea\u30b5\u30a4\u30ba\u306b\u3064\u3044\u3066\u3001\u4ed5\u7d44\u307f\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f (\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb 15 \u53c2\u7167)
- \u7d75\u6587\u5b57\u306e\u30c7\u30b6\u30a4\u30f3\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f
- \u4e71\u6570\u306e\u518d\u73fe\u6027\u304c v0.4.3 \u3068\u4e92\u63db\u304c\u3042\u308a\u307e\u305b\u3093
- 2D \u7269\u7406\u6f14\u7b97\u306f cm \u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5358\u4f4d\u306b\u5909\u66f4\u3057\u307e\u3057\u305f
Glyph
\u5358\u4f4d\u3067\u306e\u63cf\u753b\u306e\u65b9\u6cd5\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f - Windows \u7248\u306f
<Siv3D.hpp>
\u306e\u30d7\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u3092\u5168\u3066\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3067\u81ea\u52d5\u3067\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002Main.cpp \u306b\u3042\u308b # include <Siv3D.hpp>
\u306f\u5b9f\u8cea\u7684\u306b\u306f\u7121\u610f\u5473\u3067\u3059\u3002# define NO_S3D_USING
\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u30d7\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u30d8\u30c3\u30c0\u4f5c\u6210\u7528\u30d8\u30c3\u30c0 stdafx.h
\u3067\u884c\u3063\u3066\u304f\u3060\u3055\u3044 Audio
\u306f Wave
\u3068\u4e92\u63db\u306e\u5f62\u5f0f\u3067\u30c7\u30fc\u30bf\u3092\u4fdd\u6301\u3057\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002.getWave()
\u306f .getSamples()
\u306b\u7f6e\u304d\u63db\u308f\u308a\u307e\u3057\u305f\u3002GlobalAudio::BusGetSamples()
\u3082\u5229\u7528\u3067\u304d\u307e\u3059
"},{"location":"releases/#\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3_11","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3","text":" - nokotan: Web \u7248\u958b\u767a\u3092\u5168\u9762\u7684\u306b\u62c5\u5f53
- Ebishu-0309:
Geometry2D::
\u306b\u591a\u6570\u306e\u95a2\u6570\u3092\u5b9f\u88c5, Shape2D::Squircle()
\u306e\u5b9f\u88c5, Bezier2
, Bezier3
\u306e .boundingRect()
\u3092\u5b9f\u88c5, \u30b3\u30fc\u30c9\u306e\u6539\u5584 - taotao54321:
Grid
\u306e\u4fee\u6b63, \u30b3\u30fc\u30c9\u306e\u6539\u5584 - sthairno: Linux \u7248\u306e IME \u51e6\u7406\u6539\u5584
- itakawa : Siv3D \u304f\u3093 .obj \u30d5\u30a1\u30a4\u30eb\u63d0\u4f9b
- take-cheeze: GitHub Actions \u3092\u4f7f\u3063\u305f CI \u306e\u6574\u5099
- Luke256: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- YASAI03: HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u6a5f\u80fd
SimpleHTTP
\u306e\u63d0\u6848\u30fb\u5b9f\u88c5 - falrnd:
Geometry2D
\u306e\u4ea4\u5dee\u5224\u5b9a\u306e\u6539\u5584 - yurkth:
GeoJSON
\u95a2\u9023\u306e\u6a5f\u80fd\u3092\u63d0\u6848\u30fb\u5b9f\u88c5 - ianCK: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- lriki: Siv3D \u304f\u3093\u30c9\u30c3\u30c8\u7d75\u7d20\u6750\u306e\u63d0\u4f9b
- Ryoga-exe:
Color::gamma()
\u306e\u30d0\u30b0\u4fee\u6b63 - sivboard: \u30b9\u30af\u30ea\u30d7\u30c8\u6a5f\u80fd\u306e\u5b9f\u88c5\u8ffd\u52a0\u3068\u30d0\u30b0\u4fee\u6b63
- agehama: PPM \u753b\u50cf\u8aad\u307f\u8fbc\u307f\u306e\u30d0\u30b0\u4fee\u6b63
- kurokoji: Linux \u7248 MessageBox \u306e\u8ffd\u52a0
- ichi-raven: \u30b3\u30fc\u30c9\u306e\u6539\u5584
- azaika:
JSON
\u30af\u30e9\u30b9\u306e\u8a2d\u8a08\u30fb\u5b9f\u88c5
"},{"location":"releases/#opensiv3d-\u30c1\u30e3\u30ec\u30f3\u30b8_1","title":"OpenSiv3D \u30c1\u30e3\u30ec\u30f3\u30b8","text":" - #01 \u7d71\u8a08\u95a2\u6570: \u767d\u5742, \u30de\u30ad\u30a2, fal_rnd
- #03
Shape2D::Heart
: \u91ce\u83dc\u30b8\u30e5\u30fc\u30b9, \u3066\u3083\u3044\u306e - #04 2D \u56f3\u5f62\u306e\u4ea4\u5dee\u5224\u5b9a: Ebishu, fal_rnd, \u304d\u3064\u306d\u3073
- #05 Squircle: Ebishu, Ryoga.exe
- #07 \u56fd\u3068\u90fd\u5e02: torin (yurkth)
- #10
OutlineGlyph
to Array<Polygon>
: Ebishu, fal_rnd
"},{"location":"releases/#v04-\u4e16\u4ee3","title":"v0.4 \u4e16\u4ee3","text":"v0.4.3 | 2020-04-11 v0.4.2 | 2019-12-01 v0.4.1 | 2019-07-20"},{"location":"releases/#1-\u30c9\u30ed\u30cd\u30fc\u56f3\u30dc\u30ed\u30ce\u30a4\u56f3\u306e\u4f5c\u6210","title":"1. \u30c9\u30ed\u30cd\u30fc\u56f3\u3001\u30dc\u30ed\u30ce\u30a4\u56f3\u306e\u4f5c\u6210","text":"\u30c9\u30ed\u30cd\u30fc\u56f3\u3001\u30dc\u30ed\u30ce\u30a4\u56f3\u306e\u8a08\u7b97\u3092\u884c\u3046 Subdivision2D
\u30af\u30e9\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nWindow::Resize(1280, 720);\nScene::SetBackground(ColorF(0.99));\nconst Rect rect(50, 50, Scene::Size() - Size(100, 100));\nSubdivision2D subdiv(rect);\n// \u30c9\u30ed\u30cd\u30fc\u4e09\u89d2\u5f62\u5206\u5272\u306e\u4e09\u89d2\u5f62\u30ea\u30b9\u30c8\nArray<Triangle> triangles;\n// \u30dc\u30ed\u30ce\u30a4\u56f3\u306e\u60c5\u5831\u306e\u30ea\u30b9\u30c8\nArray<VoronoiFacet> facets;\n// facets \u3092\u9577\u65b9\u5f62\u3067\u30af\u30ea\u30c3\u30d7\u3057 Polygon \u306b\u5909\u63db\u3057\u305f\u30ea\u30b9\u30c8\nArray<Polygon> facetPolygons;\nwhile (System::Update())\n{\nconst Vec2 pos = Cursor::Pos();\n// \u9577\u65b9\u5f62\u4e0a\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089\nif (rect.leftClicked())\n{\n// \u70b9\u3092\u8ffd\u52a0\nsubdiv.addPoint(pos);\n// \u30c9\u30ed\u30cd\u30fc\u4e09\u89d2\u5f62\u5206\u5272\u306e\u8a08\u7b97\nsubdiv.calculateTriangles(triangles);\n// \u30dc\u30ed\u30ce\u30a4\u56f3\u306e\u8a08\u7b97\nsubdiv.calculateVoronoiFacets(facets);\n// \u9577\u65b9\u5f62\u306e\u7bc4\u56f2\u5916\u3092\u30af\u30ea\u30c3\u30d7\nfacetPolygons = facets.map([rect = rect.asPolygon()](const VoronoiFacet& f)\n{\nreturn Geometry2D::And(Polygon(f.points), rect).front();\n});\n}\nrect.draw(ColorF(0.75));\nfor (auto [i, facetPolygon] : Indexed(facetPolygons))\n{\nfacetPolygon.draw(HSV(i * 25.0, 0.65, 0.8)).drawFrame(3, ColorF(0.25));\n}\nfor (const auto& triangle : triangles)\n{\ntriangle.drawFrame(2.5, ColorF(0.9));\n}\nfor (const auto& facet : facets)\n{\nCircle(facet.center, 6).drawFrame(5).draw(ColorF(0.25));\n}\n// \u73fe\u5728\u306e\u30de\u30a6\u30b9\u30ab\u30fc\u30bd\u30eb\u304b\u3089\u6700\u77ed\u8ddd\u96e2\u306b\u3042\u308b\u70b9\u3092\u63a2\u3059\nif (const auto nearestVertexID = subdiv.findNearest(pos))\n{\nconst Vec2 nearestVertex = subdiv.getVertex(nearestVertexID.value());\nLine(pos, nearestVertex).draw(LineStyle::RoundDot, 5, ColorF(0.6));\nCircle(nearestVertex, 16).drawFrame(3.5);\n}\n}\n}\n
"},{"location":"releases/#2-\u9577\u65b9\u5f62\u8a70\u8fbc\u307f","title":"2. \u9577\u65b9\u5f62\u8a70\u8fbc\u307f","text":"\u9577\u65b9\u5f62\u306e\u96c6\u5408\u3092\u3001\u5225\u306e\u5927\u304d\u306a\u9577\u65b9\u5f62\u306b\u52b9\u7387\u7684\u306b\u8a70\u3081\u8fbc\u3080\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b std::pair<Array<Rect>, Size> RectanglePacking::Pack(const Array<Rect>& rects, int32 maxSide)
\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u8a70\u3081\u8fbc\u307f\u5f8c\u306e\u9577\u65b9\u5f62\u306e\u30ea\u30b9\u30c8\u3068\u3001\u305d\u308c\u3089\u3092\u8a70\u3081\u8fbc\u3081\u308b\u6700\u5c0f\u306e\u9577\u65b9\u5f62\u306e\u30b5\u30a4\u30ba\u306e\u30da\u30a2\u3092\u8fd4\u3057\u307e\u3059\u3002\u5165\u529b\u306e rects
\u306e\u4f4d\u7f6e\u60c5\u5831\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002maxSide
\u306f\u5e45\u307e\u305f\u306f\u9ad8\u3055\u306e\u6700\u5927\u5024\u3067\u3001\u3053\u308c\u306b\u53ce\u307e\u3089\u306a\u3044\u5834\u5408\u306f\u7a7a\u306e\u914d\u5217\u3068 Size(0, 0)
\u306e\u30da\u30a2\u3092\u8fd4\u3057\u307e\u3059\u3002\u914d\u5217\u306b\u542b\u307e\u308c\u308b\u9577\u65b9\u5f62\u306e\u9806\u756a\u306f\u3001\u5165\u529b\u3068\u51fa\u529b\u3067\u5909\u308f\u308a\u307e\u305b\u3093\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.99));\n// \u8a70\u3081\u8fbc\u3080\u9577\u65b9\u5f62\nconst Array<Rect> input =\n{\nRect(240, 210), Rect(500, 30), Rect(150, 120),\nRect(60, 120), Rect(180, 60), Rect(120, 240)\n};\n// \u8a70\u3081\u8fbc\u307f\u3092\u8a08\u7b97\nconst std::pair<Array<Rect>, Size> result = RectanglePacking::Pack(input, 600);\nwhile (System::Update())\n{\nRect(result.second).draw(ColorF(0.7));\nfor (auto [i, rect] : Indexed(result.first))\n{\nrect.draw(HSV(i * 40.0));\n}\n}\n}\n
\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3
# include <Siv3D.hpp>\n// \u30e9\u30f3\u30c0\u30e0\u306a\u9577\u65b9\u5f62\u306e\u914d\u5217\u3092\u4f5c\u6210\nArray<Rect> GenerateRandomRects()\n{\nArray<Rect> rects(Random(4, 32));\nfor (auto& rect : rects)\n{\nconst Point pos = RandomPoint(Rect(0, 0, Scene::Size() - Size(150, 150)));\nrect.set(pos, Random(20, 150), Random(20, 150));\n}\nreturn rects;\n}\nvoid Main()\n{\nWindow::Resize(1280, 720);\nScene::SetBackground(ColorF(0.99));\nArray<Rect> input, output;\nSize size(0, 0);\nPoint offset(0, 0);\nStopwatch s;\nwhile (System::Update())\n{\nif (!s.isStarted() || s > 1.8s)\n{\ninput = GenerateRandomRects();\nstd::tie(output, size) = RectanglePacking::Pack(input, 1024);\n// \u753b\u9762\u4e2d\u592e\u306b\u8868\u793a\u3059\u308b\u3088\u3046\u4f4d\u7f6e\u3092\u8abf\u6574\noffset = (Scene::Size() - size) / 2;\nfor (auto& rect : output)\n{\nrect.moveBy(offset);\n}\ns.restart();\n}\n// \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\nconst double k = Min(s.sF() * 10, 1.0);\nconst double t = Saturate(s.sF() - 0.2);\nconst double e = EaseInOutExpo(t);\nRect(offset, size).draw(ColorF(0.7, e));\nfor (auto i : step(input.size()))\n{\nconst auto& in = input[i];\nconst auto& out = output[i];\nconst Vec2 pos = in.pos.lerp(out.pos, e);\nconst RectF rect(pos, out.size);\nrect.scaledAt(rect.center(), k)\n.draw(HSV(i * 25.0, 0.65, 0.9))\n.drawFrame(2, 0, ColorF(0.25));\n}\n}\n}\n
"},{"location":"releases/#3-gif-\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u8aad\u307f\u8fbc\u307f","title":"3. GIF \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u8aad\u307f\u8fbc\u307f","text":"GIF \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f\u3001\u4e00\u9023\u306e\u30d5\u30ec\u30fc\u30e0\u306e Image \u3068\u3001\u30d5\u30ec\u30fc\u30e0\u3054\u3068\u306e\u8868\u793a\u6642\u9593\u3092\u53d6\u5f97\u3059\u308b AnimatedGIFReader
\u30af\u30e9\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\n// \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u63cf\u753b\u7528\u306e\u30af\u30e9\u30b9\nstruct AnimationTexture\n{\nArray<Texture> textures;\n// \u30d5\u30ec\u30fc\u30e0\u306e\u6642\u9593\nArray<int32> delays;\nint32 duration = 0;\nexplicit operator bool() const noexcept\n{\nreturn !textures.isEmpty();\n}\nSize size() const noexcept\n{\nif (!textures)\n{\nreturn Size(0, 0);\n}\nreturn textures.front().size();\n}\nsize_t frames() const noexcept\n{\nreturn textures.size();\n}\nsize_t getFrameIndex(int32 timeMillisec) const noexcept\n{\nreturn AnimatedGIFReader::MillisecToIndex(timeMillisec, delays, duration);\n}\nconst Texture& getTexture(int32 timeMillisec) const noexcept\n{\nreturn textures[getFrameIndex(timeMillisec)];\n}\n};\nvoid Main()\n{\nAnimationTexture animation;\n{\n// GIF \u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\nconst AnimatedGIFReader gif(U\"example/test.gif\");\nif (!gif)\n{\nthrow Error(U\"Failed to open a gif file\");\n}\nArray<Image> images;\n// GIF \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u8aad\u307f\u8fbc\u307f\nif (gif.read(images, animation.delays, animation.duration))\n{\n// Image \u3092 Texture \u306b\u5909\u63db\nanimation.textures = images.map([](const Image& i) { return Texture(i); });\n}\nelse\n{\nthrow Error(U\"Failed to load a gif animation\");\n}\n}\n// \u753b\u50cf\u306e\u30b5\u30a4\u30ba\u3001\u30d5\u30ec\u30fc\u30e0\u6570\u3001\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u306e\u9577\u3055\uff08\u30df\u30ea\u79d2\uff09\nPrint << U\"{}, {} frames ({} ms)\"_fmt(animation.size(), animation.frames(), animation.duration);\nconst Point pos(10, 90);\nwhile (System::Update())\n{\nconst int32 timeMillisec = static_cast<int32>(Scene::Time() * 1000);\nanimation.getTexture(timeMillisec).draw(pos);\n}\n}\n
"},{"location":"releases/#4-rectrounded-\u3067-4-\u3064\u306e\u89d2\u306b\u7570\u306a\u308b\u5024\u3092\u6307\u5b9a\u53ef\u80fd\u306b","title":"4. Rect::rounded() \u3067 4 \u3064\u306e\u89d2\u306b\u7570\u306a\u308b\u5024\u3092\u6307\u5b9a\u53ef\u80fd\u306b","text":"Rect::rounded()
\u306b\u3001\u9577\u65b9\u5f62\u306e\u5de6\u4e0a\u3001\u53f3\u4e0a\u3001\u53f3\u4e0b\u3001\u5de6\u4e0b\u3067\u7570\u306a\u308b\u5024\u3092\u6307\u5b9a\u3059\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.3));\nArray<Rect> rects;\nfor (auto p : step(Size(3, 4)))\n{\nrects << Rect(p * Size(220, 140), 180, 100).movedBy(80, 40);\n}\nwhile (System::Update())\n{\nrects[0].rounded(30, 0, 0, 0).draw(HSV(20, 0.75, 1.0));\nrects[1].rounded(30, 30, 0, 0).draw(HSV(40, 0.75, 1.0));\nrects[2].rounded(0, 30, 0, 0).draw(HSV(60, 0.75, 1.0));\nrects[3].rounded(30, 0, 0, 30).draw(HSV(80, 0.75, 1.0));\nrects[4].rounded(10, 20, 30, 40).draw(HSV(100, 0.75, 1.0));\nrects[5].rounded(0, 30, 30, 0).draw(HSV(120, 0.75, 1.0));\nrects[6].rounded(100, 0, 0, 0).draw(HSV(140, 0.75, 1.0));\nrects[7].rounded(100, 0, 100, 0).draw(HSV(160, 0.75, 1.0));\nrects[8].rounded(0, 0, 100, 0).draw(HSV(180, 0.75, 1.0));\nrects[9].rounded(100, 0, 0, 20).draw(HSV(200, 0.75, 1.0));\nrects[10].rounded(100, 20, 100, 20).draw(HSV(220, 0.75, 1.0));\nrects[11].rounded(0, 20, 100, 0).draw(HSV(240, 0.75, 1.0));\n}\n}\n
"},{"location":"releases/#5-simpleguihorizontalradiobuttons","title":"5. SimpleGUI::HorizontalRadioButtons()","text":"\u6c34\u5e73\u306b\u4e26\u3093\u3060\u30e9\u30b8\u30aa\u30dc\u30bf\u30f3 SimpleGUI::HorizontalRadioButtons()
\u304c SimpleGUI \u306b\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.8, 0.9, 1.0));\nconst Array<String> options = { U\"Windows\", U\"macOS\", U\"Linux\" };\nsize_t indexA = 0;\nsize_t indexB = 0;\nwhile (System::Update())\n{\n// \u6c34\u5e73\nSimpleGUI::HorizontalRadioButtons(indexA, options, Vec2(20, 20));\n// \u7e26\nSimpleGUI::RadioButtons(indexB, options, Vec2(20, 60));\n}\n}\n
"},{"location":"releases/#6-mathinvlerp","title":"6. Math::InvLerp()","text":" Math::Lerp(begin, end, t) == value
Math::InvLerp(begin, end, value) == t
\u3068\u306a\u308b\u3088\u3046\u306a\u5024 t
\u3092\u6c42\u3081\u308b Math::InvLerp()
\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.6, 0.8, 0.7));\nconst Font font(40, Typeface::Bold);\nconst double begin = 240.0;\nconst double end = 450.0;\nwhile (System::Update())\n{\nconst double value = Cursor::Pos().y;\n// Math::Lerp(begin, end, t) == value \u306b\u306a\u308b\u5024 t \u3092\u6c42\u3081\u308b\nconst double t = Math::InvLerp(begin, end, value);\n// \u5024\u3092 [0.0, 1.0] \u306e\u7bc4\u56f2\u306b\u53ce\u3081\u308b\nconst double st = Saturate(t);\nfont(st).draw(20, 20);\nLine(Vec2(0, begin), Arg::direction(Scene::Width(), 0)).draw(2, ColorF(0.5));\nLine(Vec2(0, end), Arg::direction(Scene::Width(), 0)).draw(2, ColorF(0.5));\nCircle(Cursor::Pos(), 50).draw(ColorF(st));\n}\n}\n
"},{"location":"releases/#7-line-\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u8ffd\u52a0","title":"7. Line \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u8ffd\u52a0","text":"\u540d\u524d\u4ed8\u304d\u5f15\u6570\u3092\u4f7f\u3063\u305f Line
\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c 2 \u7a2e\u985e\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002Line(pos, pos + dir)
\u306e\u3088\u3046\u306b pos
\u3092 2 \u56de\u66f8\u304f\u5fc5\u8981\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nwhile (System::Update())\n{\n// \u59cb\u70b9\u306e\u4f4d\u7f6e\u3001\u59cb\u70b9\u304b\u3089\u898b\u305f\u7d42\u70b9\u306e\u65b9\u5411\u3001\u7d42\u70b9\u307e\u3067\u306e\u8ddd\u96e2\nLine(Scene::Center(), Arg::angle = 45_deg, 200)\n.draw(LineStyle::RoundCap, 10);\n// \u59cb\u70b9\u306e\u4f4d\u7f6e\u3001\u7d42\u70b9\u307e\u3067\u306e\u30d9\u30af\u30c8\u30eb\nLine(Scene::Center(), Arg::direction = Vec2(0, 200))\n.draw(LineStyle::RoundCap, 10, Palette::Orange);\n}\n}\n
"},{"location":"releases/#8-rectdrawframe-circledrawpie-circledrawarc-\u306e-2-\u8272\u6307\u5b9a","title":"8. Rect::drawFrame(), Circle::drawPie(), Circle::drawArc() \u306e 2 \u8272\u6307\u5b9a","text":"Rect::drawFrame()
, Circle::drawPie()
, Circle::drawArc()
\u306b\u3001\u5185\u5074\u306e\u8272\u3068\u5916\u5074\u306e\u8272\u3092\u5225\u3005\u306b\u6307\u5b9a\u3059\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(Palette::White);\nwhile (System::Update())\n{\n// \u5185\u5074 ColorF(0.1, 0.6, 0.3), \u5916\u5074 ColorF(0.6, 1.0, 0.8)\nRect(50, 50, 300)\n.drawFrame(30, ColorF(0.1, 0.6, 0.3), ColorF(0.6, 1.0, 0.8));\n// \u5185\u5074 HSV(50), \u5916\u5074 HSV(0)\nCircle(200, 200, 100)\n.drawPie(0_deg, 120_deg, HSV(50), HSV(0));\n// \u5185\u5074 Palette::White, \u5916\u5074 Palette::Black\nCircle(200, 200, 100)\n.drawArc(180_deg, 120_deg, 10, 10, Palette::White, Palette::Black);\n}\n}\n
"},{"location":"releases/#9-zip-\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u8aad\u307f\u8fbc\u307f","title":"9. ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u8aad\u307f\u8fbc\u307f","text":"ZIP \u30a2\u30fc\u30ab\u30a4\u30d6 (.zip) \u306e\u4e2d\u8eab\u306e\u53d6\u5f97\u3084\u5c55\u958b\u3092\u884c\u3046 ZIPReader
\u30af\u30e9\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002ZIPReader::extractToMemory()
\u3092\u4f7f\u3046\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u30e1\u30e2\u30ea\u4e0a\u3067\u5c55\u958b\u3057\u3066 Texture
\u3084 Audio
\u306a\u3069\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 - Windows \u3067\u4f5c\u6210\u3055\u308c\u305f Shift-JIS \u30a8\u30f3\u30b3\u30fc\u30c9\u306e ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u542b\u307e\u308c\u308b\u65e5\u672c\u8a9e\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u3001Windows \u4ee5\u5916\u306e\u74b0\u5883\u3067\u306f\u6b63\u3057\u304f\u6271\u3048\u307e\u305b\u3093 - \u65e5\u672c\u8a9e\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u3042\u3089\u3086\u308b\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u6b63\u3057\u304f\u6271\u3044\u305f\u3044\u5834\u5408\u3001UTF-8
\u30a8\u30f3\u30b3\u30fc\u30c9\u3067 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044 (7-zip \u306e\u5834\u5408\u306f cu=on
\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u3064\u3051\u308b\uff09
# include <Siv3D.hpp>\nvoid Main()\n{\nconst ZIPReader zip(U\"example/zip/zip_test.zip\");\n// \u542b\u307e\u308c\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5217\u6319\nfor (const auto& path : zip.enumPaths())\n{\nPrint << path;\n}\n// `zip_test/loremipsum.txt` \u3092 `unzipped1/` \u30d5\u30a9\u30eb\u30c0\u306b\u5c55\u958b\nzip.extract(U\"zip_test/loremipsum.txt\", U\"unzipped1/\");\n// `zip_test/image/` \u306b\u542b\u307e\u308c\u3066\u3044\u308b\u3059\u3079\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u3092 `unzipped2/` \u30d5\u30a9\u30eb\u30c0\u306b\u5c55\u958b\nzip.extract(U\"zip_test/image/*\", U\"unzipped2/\");\n// \u3059\u3079\u3066\u3092 `unzipped3/` \u30d5\u30a9\u30eb\u30c0\u306b\u5c55\u958b\nzip.extractAll(U\"unzipped3/\");\n// `zip_test/image/windmill.png` \u3092\u30e1\u30e2\u30ea\u4e0a\u3067\u5c55\u958b\u3057\u3066\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u4f5c\u6210\nconst Texture textureA(zip.extractToMemory(U\"zip_test/image/windmill.png\"));\n// `zip_test/image/siv3d-kun.png` \u3092\u30e1\u30e2\u30ea\u4e0a\u3067\u5c55\u958b\u3057\u3066\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u4f5c\u6210\nconst Texture textureB(zip.extractToMemory(U\"zip_test/image/siv3d-kun.png\"));\nwhile (System::Update())\n{\ntextureA.draw();\ntextureB.draw();\n}\n}\n
"},{"location":"releases/#10-\u4e0d\u6b63\u306a-polygon-\u9802\u70b9\u306e\u81ea\u52d5\u4fee\u6b63","title":"10. \u4e0d\u6b63\u306a Polygon \u9802\u70b9\u306e\u81ea\u52d5\u4fee\u6b63","text":"\u624b\u5165\u529b\u306a\u3069\u306b\u3088\u308b\u4e0d\u6b63\u306a Polygon
\u306e\u9802\u70b9\u3092\u4fee\u6b63\u3057\u3001\u59a5\u5f53\u306a Array<Polygon>
\u306b\u5909\u63db\u3059\u308b\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nWindow::Resize(1280, 720);\nconst Font font(20, Typeface::Bold);\nArray<Vec2> points;\nArray<Polygon> solvedPolygons;\nwhile (System::Update())\n{\nif (MouseL.down())\n{\npoints << Cursor::Pos();\n// \u9802\u70b9\u5217\u304b\u3089\u9069\u5207\u306a Polygon \u3092\u4f5c\u6210\nsolvedPolygons = Polygon::Correct(points, {});\n}\nelse if (MouseR.down())\n{\npoints.clear();\nsolvedPolygons.clear();\n}\nfor (auto [i, point] : Indexed(points))\n{\nCircle(point, 5).draw();\nLine(points[i], points[(i + 1) % points.size()])\n.drawArrow(2, Vec2(20, 20), Palette::Orange);\n}\nfont(points).draw(Rect(20, 20, 600, 720));\n{\nTransformer2D trans(Mat3x2::Translate(640, 0));\nfont(solvedPolygons).draw(Rect(20, 20, 600, 720));\nfor (auto [i, solvedPolygon] : Indexed(solvedPolygons))\n{\nconst HSV color(i * 40.0, 0.7, 1.0);\nsolvedPolygon.draw(color);\nconst auto& outer = solvedPolygon.outer();\nfor (auto [k, point] : Indexed(outer))\n{\nconst Vec2 begin = outer[k];\nconst Vec2 end = outer[(k + 1) % outer.size()];\nconst Vec2 v = (end - begin).normalized();\nconst Vec2 c = (begin + end) / 2;\nconst Vec2 oc = c + v.rotated(-90_deg) * 10;\nLine(oc - v * 20, oc + v * 20)\n.drawArrow(2, Vec2(10, 10), color);\n}\n}\n}\n}\n}\n
"},{"location":"releases/#11-direct3d-\u30c9\u30e9\u30a4\u30d0--\u30c7\u30d0\u30a4\u30b9\u306e\u7a2e\u985e\u306e\u5909\u66f4","title":"11. Direct3D \u30c9\u30e9\u30a4\u30d0 / \u30c7\u30d0\u30a4\u30b9\u306e\u7a2e\u985e\u306e\u5909\u66f4","text":"Windows \u7248\u3067 #include <Siv3D.hpp>
\u306e\u524d\u306b\u7279\u5225\u306a\u30de\u30af\u30ed\u3092\u5b9a\u7fa9\u3059\u308b\u3068\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u4f7f\u7528\u3059\u308b Direct3D \u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u7a2e\u985e\u3092 WARP, Reference \u306a\u3069\u306b\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002GPU \u306e\u30c9\u30e9\u30a4\u30d0\u306e\u554f\u984c\u3067\u6b63\u5e38\u306a\u63cf\u753b\u304c\u3067\u304d\u306a\u3044\u5834\u5408\u306b WARP \u306b\u3088\u308b\u305f\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u63cf\u753b\u8ca0\u8377\u304c\u8efd\u3044\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3042\u308c\u3070\u3001WARP \u3067\u52d5\u304b\u3059\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u30ea\u30ea\u30fc\u30b9\u3059\u308b\u3053\u3068\u3082\u9078\u629e\u80a2\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30d5\u30e9\u30b0\u306f\u91cd\u8907\u3057\u3066\u6307\u5b9a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
- \u30c7\u30d5\u30a9\u30eb\u30c8 \u2192 dGPU (GeForce \u306a\u3069) \u512a\u5148
SIV3D_WINDOWS_D3D_DRIVER_TYPE_HARDWARE_FAVOR_INTEGRATED
\u2192 iGPU (Intel UHD Graphics \u306a\u3069) \u512a\u5148 SIV3D_WINDOWS_D3D_DRIVER_TYPE_WARP
\u2192 \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30e9\u30b9\u30bf\u30e9\u30a4\u30b6 SIV3D_WINDOWS_D3D_DRIVER_TYPE_REFERENCE
\u2192 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30c9\u30e9\u30a4\u30d0 - \u53c2\u8003: https://docs.microsoft.com/en-us/windows/win32/api/d3dcommon/ne-d3dcommon-d3d_driver_type
// \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30ec\u30f3\u30c0\u30e9\u2015\u3092\u4f7f\u7528 (Windows \u3067\u306e\u307f\u6709\u52b9\uff09\n# define SIV3D_WINDOWS_D3D_DRIVER_TYPE_WARP\n// iGPU (Intel UHD Graphics \u306a\u3069) \u512a\u5148 (Windows \u3067\u306e\u307f\u6709\u52b9\uff09\n//# define SIV3D_WINDOWS_D3D_DRIVER_TYPE_HARDWARE_FAVOR_INTEGRATED\n// \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30c9\u30e9\u30a4\u30d0\u3092\u4f7f\u7528 (Windows \u3067\u306e\u307f\u6709\u52b9\uff09\n//# define SIV3D_WINDOWS_D3D_DRIVER_TYPE_REFERENCE\n// Siv3D.hpp \u3088\u308a\u3082\u524d\u3067\u5b9a\u7fa9\n# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.8, 0.9, 1.0));\nconst Texture texture(U\"example/windmill.png\");\nwhile (System::Update())\n{\ntexture.draw();\n}\n}\n
"},{"location":"releases/#12-\u305d\u306e\u4ed6","title":"12. \u305d\u306e\u4ed6","text":" - Image to Polygon \u306e\u5805\u7262\u6027\u304c\u5411\u4e0a\u3057\u3001\u30af\u30e9\u30c3\u30b7\u30e5\u3057\u306a\u304f\u306a\u308a\u307e\u3057\u305f
- Linux \u7248\u306e\u30d3\u30eb\u30c9\u3067 AngelScript \u306e\u30ea\u30f3\u30af\u304c\u4e0d\u8981\u306b\u306a\u308a\u307e\u3057\u305f
- macOS \u3068 Linux \u306e\u4e00\u90e8\u74b0\u5883\u3067
Microphone
\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f isOpened()
\u3068\u3044\u3046\u30e1\u30f3\u30d0\u95a2\u6570\u306f isOpen()
\u306b\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f - zlib \u306e\u5727\u7e2e\u5c55\u958b\u3092\u884c\u3046
Zlib::Compress()
, Zlib:: Decompress()
\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f ParseOpt<float>()
\u304c\u4f8b\u5916\u3092\u6295\u3052\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f Math::InvSqrt2_v
\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u306e\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f - Visual Studio \u7528\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u30bf\u30b0\u3092\u6307\u5b9a\u3057\u307e\u3057\u305f
- Visual Studio \u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\u6642\u306b Main.cpp \u304c\u81ea\u52d5\u3067\u958b\u304f\u3088\u3046\u306b\u3057\u307e\u3057\u305f
- Windows \u7528\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e Icon.ico \u3092 icon.ico \u306b\u30ea\u30cd\u30fc\u30e0\u3057\u307e\u3057\u305f
Camera2D
\u306e Scene::Size()
\u4f9d\u5b58\u3092\u89e3\u6d88\u3057\u307e\u3057\u305f ParticleSystem2DParameters
\u306e\u4ed5\u69d8\u3092\u6539\u5584\u3057\u307e\u3057\u305f - \u5404\u7a2e RNG \u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3001\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3092\u5b9f\u88c5\u3057\u307e\u3057\u305f
Serial
\u304c\u5207\u65ad\u3055\u308c\u3066\u3082 isOpen()
\u304c true
\u3092\u8fd4\u3057\u3066\u3044\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f RoundRect
\u306e\u9802\u70b9\u751f\u6210\u54c1\u8cea\u306e\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f DynamicTexture
\u3067\u30b5\u30a4\u30ba\u3068\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u307f\u6307\u5b9a\u3057\u305f\u969b\u306e\u30a8\u30e9\u30fc\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f - macOS \u3067\u65e5\u672c\u8a9e\u30d1\u30b9\u3092\u6271\u3046\u3068\u4e00\u90e8\u306e\u95a2\u6570\u304c\u30af\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f
- Windows \u3067
Graphics::SetTargetFrameRateHz()
\u304c\u5927\u304d\u304f\u4e0d\u6b63\u78ba\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f RenderTexture
\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u306f\u3001\u7279\u306b\u660e\u793a\u3057\u306a\u3051\u308c\u3070 ColorF(0.0, 1.0)
\u3067\u4e2d\u8eab\u3092\u30af\u30ea\u30a2\u3059\u308b\u3088\u3046\u4ed5\u69d8\u5909\u66f4\u3057\u307e\u3057\u305f JSONWriter::write(bool)
\u306e\u6319\u52d5\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f BasicCamera3D
\u306e experimental::
\u3092\u5916\u3057\u307e\u3057\u305f - \u305d\u306e\u4ed6\u8efd\u5fae\u306a\u4fee\u6b63\u591a\u6570
"},{"location":"releases/#1-sdffont","title":"1. SDFFont","text":"SDFFont
\u306f\u3001\u30b0\u30ea\u30d5\u306e\u753b\u50cf\u3092 Distance field \u5f62\u5f0f\u3067\u6301\u3064 Font
\u30af\u30e9\u30b9\u3067\u3059\u3002 \u3053\u308c\u307e\u3067\u306e Font
\u30af\u30e9\u30b9\u306f\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u6307\u5b9a\u3057\u305f\u56fa\u5b9a\u30b5\u30a4\u30ba\u3067\u30b0\u30ea\u30d5\u3054\u3068\u306e\u30d3\u30c3\u30c8\u30de\u30c3\u30d7\u753b\u50cf\u3092\u751f\u6210\u3057\u3001\u305d\u308c\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u305f\u3081\u3001\u62e1\u5927\u63cf\u753b\u6642\u306b\u307c\u3084\u3051\u308b\u306a\u3069\u3001\u30b5\u30a4\u30ba\u306e\u5909\u66f4\u306b\u5f31\u304f\u3001\u7e01\u53d6\u308a\u306e\u3088\u3046\u306a\u30a8\u30d5\u30a7\u30af\u30c8\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3082\u56f0\u96e3\u3067\u3057\u305f\u3002 SDFFont
\u30af\u30e9\u30b9\u306f\u3001\u30b0\u30ea\u30d5\u3054\u3068\u306e Distance Field \u3092\u751f\u6210\u3057\u3001\u62e1\u5927\u3057\u3066\u3082\u307c\u3084\u3051\u306a\u3044\u624b\u6cd5\u3067\u30c6\u30ad\u30b9\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3057\u307e\u3059\u3002draw()
\u3054\u3068\u306b\u7b2c\u4e00\u5f15\u6570\u3067\u30d5\u30a9\u30f3\u30c8\u306e\u30b5\u30a4\u30ba\u3092\u6307\u5b9a\u3067\u304d\u3001\u5927\u304d\u306a\u5024\u3092\u5165\u308c\u3066\u3082\u7d50\u679c\u304c\u307c\u3084\u3051\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u307e\u305f\u3001Garphics2D::SetSDFParameters()
\u3067\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8abf\u6574\u3059\u308b\u3053\u3068\u3067\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u6642\u306b\u6587\u5b57\u3092\u592a\u3089\u305b\u3089\u308c\u307e\u3059\u3002\u592a\u3055\u3068\u8272\u3092\u5909\u3048\u3066 2 \u56de\u4ee5\u4e0a\u30c6\u30ad\u30b9\u30c8\u3092\u63cf\u753b\u3059\u308b\u3053\u3068\u3067\u3001\u7e01\u53d6\u308a\u306e\u8868\u73fe\u3082\u53ef\u80fd\u3067\u3059\u3002 \u305f\u3060\u3057\u3001SDFFont
\u306e\u751f\u6210\u3084\u63cf\u753b\u306e\u30b3\u30b9\u30c8\u306f Font
\u306b\u6bd4\u3079\u3066\u5927\u304d\u3044\u305f\u3081\u3001Font
\u3067\u5341\u5206\u306a\u30b1\u30fc\u30b9\u3067\u306f\u5f93\u6765\u901a\u308a Font
\u3092\u4f7f\u3046\u3079\u304d\u3067\u3059\u3002 SDFFont
\u306e\u54c1\u8cea\u306f\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u6307\u5b9a\u3059\u308b\u30b0\u30ea\u30d5\u306e Distance Field \u306e\u30b5\u30a4\u30ba\u3068\u3001\u63cf\u753b\u3059\u308b\u5b57\u5f62\u306e\u8907\u96d1\u3055\u306b\u5f71\u97ff\u3055\u308c\u307e\u3059\u3002\u753b\u6570\u306e\u5c11\u306a\u3044\u6570\u5b57\u3084\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3001\u66f2\u7dda\u7684\u3067\u30b7\u30f3\u30d7\u30eb\u306a\u5b57\u5f62\u3067\u3042\u308c\u3070\u300140 \u30d4\u30af\u30bb\u30eb\u4ee5\u4e0b\u306e Distance Field \u3067\u3082\u304d\u308c\u3044\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u307e\u3059\u304c\u3001\u8907\u96d1\u306a\u5b57\u5f62\u306b\u306a\u308b\u307b\u3069\u3001\u5c0f\u3055\u306a Distance Field \u3067\u306f\u63cf\u753b\u7d50\u679c\u304c\u4e71\u308c\u305f\u308a\u3001\u30ce\u30a4\u30ba\u304c\u76ee\u7acb\u3064\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u6587\u5b57\u306e\u592a\u3089\u305b\u306b\u3064\u3044\u3066\u3082\u3001\u5927\u304d\u3044\u5024\u3067\u306f\u30ce\u30a4\u30ba\u304c\u76ee\u7acb\u3064\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002SDFFont
\u3092\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001\u30c6\u30ad\u30b9\u30c8\u306e\u63cf\u753b\u7d50\u679c\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3001\u9069\u5207\u306a Distance Field \u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\u3057\u307e\u3057\u3087\u3046\u3002
"},{"location":"releases/#sdffont-\u306e\u57fa\u672c","title":"SDFFont \u306e\u57fa\u672c","text":"# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.4, 0.5, 0.6));\n// \u30b0\u30ea\u30d5\u3054\u3068\u306e Distance field \u306e\u30b5\u30a4\u30ba\nconst int32 distanceFieldSize = 60;\n// SDFFont\nconst SDFFont sdfFont(distanceFieldSize, Typeface::Bold);\nconst String text = U\"OpenSiv3D\";\nwhile (System::Update())\n{\n// SDF \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8a2d\u5b9a\nGraphics2D::SetSDFParameters(sdfFont.pixelRange());\nsdfFont(text).draw(40, Vec2(20, 20));\nsdfFont(text).draw(80, Vec2(20, 80));\nsdfFont(text).draw(120, Vec2(20, 180));\n// SDF \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8a2d\u5b9a\u3001\u592a\u3089\u305b\u3092 0.2 \u306b\nGraphics2D::SetSDFParameters(sdfFont.pixelRange(), 0.2);\nsdfFont(text).draw(120, Vec2(20, 320), Palette::Black);\n// SDF \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8a2d\u5b9a\u3001\u592a\u3089\u305b\u3092 0.0 \u306b\nGraphics2D::SetSDFParameters(sdfFont.pixelRange(), 0.0);\nsdfFont(text).draw(120, Vec2(20, 320));\n}\n}\n
"},{"location":"releases/#sdffont-\u306e\u4e8b\u524d\u751f\u6210","title":"SDFFont \u306e\u4e8b\u524d\u751f\u6210","text":"SDFFont
\u306e\u5404\u30b0\u30ea\u30d5\u306e Distance field \u306f\u3001\u751f\u6210\u306b\u6642\u9593\u304c\u304b\u304b\u308b\u305f\u3081\u3001\u4f7f\u7528\u3059\u308b\u30b0\u30ea\u30d5\u3092\u3042\u3089\u304b\u3058\u3081\u751f\u6210\u3057\u3066\u4fdd\u5b58\u3057\u3066\u304a\u304f\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u901f\u5ea6\u4f4e\u4e0b\u304c\u9632\u3052\u307e\u3059\u3002SDFFont::preload(s)
\u3067\u3001\u6587\u5b57\u5217 s
\u542b\u307e\u308c\u308b\u30b0\u30ea\u30d5\u306e Distance field \u3092\u751f\u6210\u3001SDFFont::preload(imagePath, jsonPath)
\u3067 2 \u3064\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u751f\u6210\u7d50\u679c\u3092\u4fdd\u5b58\u3057\u3001SDFFont
\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u3053\u308c\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002\u4e8b\u524d\u751f\u6210\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u30b0\u30ea\u30d5\u306f\u5b9f\u884c\u6642\u306b\u751f\u6210\u3055\u308c\u307e\u3059\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.4, 0.5, 0.6));\n// \u30b0\u30ea\u30d5\u3054\u3068\u306e Distance field \u306e\u30b5\u30a4\u30ba\nconst int32 distanceFieldSize = 60;\n//////////////////////////////////////////\n//\n// SDFFont Distance field \u306e\u4e8b\u524d\u751f\u6210\n//\n// \u203b \u4fdd\u5b58\u3067\u304d\u305f\u3089\u4e0d\u8981\u306a\u306e\u3067\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\n{\nString s;\nfor (auto i : Range(32, 126))\n{\ns << char32(i);\n}\n// SDF \u306e\u4f5c\u6210\u306b\u306f\u6642\u9593\u304c\u304b\u304b\u308b\u306e\u3067\u3001\n// ASCII \u6587\u5b57\u3092\u3042\u3089\u304b\u3058\u3081 SDF \u5316\u3057\u3066\u3001\u30d5\u30a9\u30f3\u30c8\u60c5\u5831\u3092\u4fdd\u5b58\u3057\u3066\u304a\u304f\nSDFFont(distanceFieldSize, Typeface::Bold)\n.preload(s)\n.saveGlyphs(U\"sdf-font/bold_60.png\", U\"sdf-font/bold_60.json\");\n}\n//\n//////////////////////////////////////////\n// SDFFont \u3092\u4f5c\u6210\u3057\u3001\u4e8b\u524d\u751f\u6210\u3057\u305f Distance field \u3092\u30ed\u30fc\u30c9\n// \u30d5\u30a9\u30f3\u30c8\u306e\u7a2e\u985e\u3084 Distance field \u304c\u4e00\u81f4\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\nconst SDFFont sdfFont({ U\"sdf-font/bold_60.png\", U\"sdf-font/bold_60.json\" }, distanceFieldSize, Typeface::Bold);\nif (!sdfFont) // \u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u305f\u3089\n{\nthrow Error(U\"Failed to load SDFFont\");\n}\nconst String text = U\"OpenSiv3D\";\nwhile (System::Update())\n{\n// SDF \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8a2d\u5b9a\nGraphics2D::SetSDFParameters(sdfFont.pixelRange());\nsdfFont(text).draw(120, Vec2(20, 20));\n}\n}\n
"},{"location":"releases/#\u6bd4\u8f03\u7528\u30b5\u30f3\u30d7\u30eb","title":"\u6bd4\u8f03\u7528\u30b5\u30f3\u30d7\u30eb","text":"# include <Siv3D.hpp>\nvoid Main()\n{\nWindow::Resize(1280, 720);\nScene::SetBackground(ColorF(0.4, 0.5, 0.6));\nconstexpr Vec2 pos(0, 0);\nconst String text = U\"OpenSiv3D\\n\u3042\u3044\u3046\u3048\u304a\";\n//////////////////////////////////////////\n//\n// SDFFont Distance field \u306e\u4e8b\u524d\u751f\u6210\n//\n// \u203b \u4fdd\u5b58\u3067\u304d\u305f\u3089\u4e0d\u8981\u306a\u306e\u3067\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\n{\nString s;\nfor (auto i : Range(32, 126))\n{\ns << char32(i);\n}\ns += text;\n// SDF \u306e\u4f5c\u6210\u306b\u306f\u6642\u9593\u304c\u304b\u304b\u308b\u306e\u3067\u3001\n// ASCII \u6587\u5b57\u3068 text \u3092\u3042\u3089\u304b\u3058\u3081 SDF \u5316\u3057\u3066\u3001\u30d5\u30a9\u30f3\u30c8\u60c5\u5831\u3092\u4fdd\u5b58\u3057\u3066\u304a\u304f\nSDFFont(60, Typeface::Light).preload(s).saveGlyphs(U\"sdf-font/light_60.png\", U\"sdf-font/light_60.json\");\nSDFFont(60, Typeface::Heavy).preload(s).saveGlyphs(U\"sdf-font/heavy_60.png\", U\"sdf-font/heavy_60.json\");\nSDFFont(50, U\"example/font/LogoTypeGothic/LogoTypeGothic.otf\").preload(s).saveGlyphs(U\"sdf-font/logo_50.png\", U\"sdf-font/logo_50.json\");\n}\n//\n//////////////////////////////////////////\n// SDFFont \u3092\u4f5c\u6210\u3057\u3001\u4e8b\u524d\u751f\u6210\u3057\u305f Distance field \u3092\u30ed\u30fc\u30c9\nconst Array<SDFFont> sdfFonts =\n{\nSDFFont({ U\"sdf-font/light_60.png\", U\"sdf-font/light_60.json\" }, 60, Typeface::Light),\nSDFFont({ U\"sdf-font/heavy_60.png\", U\"sdf-font/heavy_60.json\" }, 60, Typeface::Heavy),\nSDFFont({ U\"sdf-font/logo_50.png\", U\"sdf-font/logo_50.json\" }, 50, U\"example/font/LogoTypeGothic/LogoTypeGothic.otf\"),\n};\nfor (const auto& sdfFont : sdfFonts)\n{\nif (!sdfFont) // \u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u305f\u3089\n{\nthrow Error(U\"Failed to load SDFFont\");\n}\n}\n// \u6bd4\u8f03\u7528\u306e\u901a\u5e38 Font\nconst Array<Font> fonts =\n{\nFont(60, Typeface::Light),\nFont(60, Typeface::Heavy),\nFont(50, U\"example/font/LogoTypeGothic/LogoTypeGothic.otf\"),\n};\nsize_t fontIndex = 0, method = 0;\ndouble fontSize = 80, outline1 = 0.0, outline2 = 0.0;\nHSV innerColor = Palette::Black, outlineColor = Palette::White;\nwhile (System::Update())\n{\nconst auto& sdfFont = sdfFonts[fontIndex];\nconst auto& font = fonts[fontIndex];\nif (method == 0)\n{\nGraphics2D::SetSDFParameters(sdfFont.pixelRange(), outline2);\nsdfFont(text).draw(fontSize, pos, innerColor);\nGraphics2D::SetSDFParameters(sdfFont.pixelRange(), outline1);\nsdfFont(text).draw(fontSize, pos, outlineColor);\nGraphics2D::SetSDFParameters(sdfFont.pixelRange());\nsdfFont(text).draw(fontSize, pos, innerColor);\n}\nelse if (method == 1)\n{\nTransformer2D tr(Mat3x2::Scale(fontSize / font.fontSize()));\nfont(text).draw(pos, innerColor);\n}\nSimpleGUI::RadioButtons(fontIndex, { U\"Light 60\", U\"Heavy 60\", U\"Logo 50\" }, Vec2(20, 360), 150);\nSimpleGUI::RadioButtons(method, { U\"SDFFont\", U\"Font\" }, Vec2(20, 480), 150);\nSimpleGUI::Slider(U\"size: {:.0f}\"_fmt(fontSize), fontSize, 15, 550, Vec2(20, 560), 150, 200);\nSimpleGUI::Slider(U\"outline1: {:.2f}\"_fmt(outline1), outline1, 0.0, 0.49, Vec2(20, 600), 150, 200, (method == 0));\nSimpleGUI::Slider(U\"outline2: {:.2f}\"_fmt(outline2), outline2, 0.0, 0.49, Vec2(20, 640), 150, 200, (method == 0));\nSimpleGUI::ColorPicker(innerColor, Vec2(400, 560));\nSimpleGUI::ColorPicker(outlineColor, Vec2(580, 560));\n}\n}\n
"},{"location":"releases/#2-\u96c6\u4e2d\u7dda\u63cf\u753b","title":"2. \u96c6\u4e2d\u7dda\u63cf\u753b","text":"\u5b9f\u9a13\u7684\u30e9\u30a4\u30d6\u30e9\u30ea\u7fa4 HamFramework \u306b\u8ffd\u52a0\u3055\u308c\u305f SaturatedLinework
\u30af\u30e9\u30b9\u306b\u3088\u3063\u3066\u3001\u30b3\u30df\u30ab\u30eb\u306a\u52b9\u679c\u3084\u75be\u8d70\u611f\u3092\u6f14\u51fa\u3059\u308b\u305f\u3081\u306e\u96c6\u4e2d\u7dda\u3092\u7c21\u5358\u306b\u63cf\u753b\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u8a2d\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u56f3\u5f62\u3001\u5916\u5468\u306e\u9577\u65b9\u5f62\u3001\u7dda\u306e\u672c\u6570\u3001\u7dda\u306e\u592a\u3055\u3001\u9577\u3055\u306e\u3070\u3089\u3064\u304d\u3001\u4e71\u6570\u30b7\u30fc\u30c9\u306a\u3069\u304c\u3042\u308a\u3001.draw()
\u306e\u5f15\u6570\u3067\u8272\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\u591a\u6570\u306e\u4e09\u89d2\u5f62\u3092\u751f\u6210\u3057\u3066\u63cf\u753b\u3059\u308b\u65b9\u6cd5\u3067\u8868\u73fe\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5909\u66f4\u3057\u306a\u3051\u308c\u3070\u3001\u751f\u6210\u3057\u305f\u4e09\u89d2\u5f62\u306f\u518d\u5229\u7528\u3055\u308c\u307e\u3059\u3002
# include <Siv3D.hpp>\n# include <HamFramework.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.98, 0.96, 0.94));\n// \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u56f3\u5f62\nEllipse target(400, 300, 180, 120);\n// \u5916\u5468\u306e\u9577\u65b9\u5f62\nRect outer = Scene::Rect();\n// \u7dda\u306e\u592a\u3055\ndouble minThickness = 3.0, maxThickness = 10.0;\n// \u7dda\u306e\u672c\u6570\ndouble lineCount = 150;\n// \u7dda\u306e\u9577\u3055\u306e\u3070\u3089\u3064\u304d\ndouble offsetRange = 60.0;\n// \u4e71\u6570\u30b7\u30fc\u30c9\nuint64 seed = 12345;\nSaturatedLinework<Ellipse> linework(target, outer);\nlinework\n.setThickness(minThickness, maxThickness)\n.setLineCount(static_cast<size_t>(lineCount))\n.setOffsetRange(offsetRange);\nconst Texture texture(Emoji(U\"\ud83e\udd80\"));\nwhile (System::Update())\n{\nif (MouseR.down())\n{\ntarget.setCenter(Cursor::Pos());\nlinework.setTargetShape(target);\n}\ntexture.scaled(1.6).drawAt(target.center);\n// \u96c6\u4e2d\u7dda\u3092\u63cf\u753b\nlinework.draw(ColorF(0.1));\nif (SimpleGUI::Slider(U\"lineCount\", lineCount, 0.0, 400.0, Vec2(20, 20), 150))\n{\nlinework.setLineCount(static_cast<size_t>(lineCount));\n}\nif (SimpleGUI::Slider(U\"offsetRange\", offsetRange, 0.0, 100.0, Vec2(20, 60), 150))\n{\nlinework.setOffsetRange(offsetRange);\n}\nif (SimpleGUI::Button(U\"Change seed\", Vec2(20, 100)))\n{\nseed = RandomUint64();\nlinework.setSeed(seed);\n}\n}\n}\n
"},{"location":"releases/#3-\u30b7\u30ea\u30a2\u30eb\u901a\u4fe1","title":"3. \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1","text":"\u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u3092\u4f7f\u3063\u3066\u3001\u5916\u90e8\u30c7\u30d0\u30a4\u30b9\u3068\u30c7\u30fc\u30bf\u306e\u9001\u53d7\u4fe1\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u4ee5\u4e0b\u3067\u306f Arduino UNO \u3067 LED \u306e\u70b9\u706f/\u6d88\u706f\u3092 PC \u304b\u3089\u5236\u5fa1\u3057\u3001\u5408\u308f\u305b\u3066 1 \u30d0\u30a4\u30c8\u306e\u6570\u5024\u30c7\u30fc\u30bf\u3092\u3084\u308a\u53d6\u308a\u3059\u308b\u30b5\u30f3\u30d7\u30eb\u3092\u793a\u3057\u307e\u3059\u3002
"},{"location":"releases/#arduino-\u306e\u30b3\u30fc\u30c9","title":"Arduino \u306e\u30b3\u30fc\u30c9","text":"void setup()\n{\npinMode(13, OUTPUT); // 13 \u30d4\u30f3 - LED - \u62b5\u6297 - GND\n// 9600bps \u3067\u30b7\u30ea\u30a2\u30eb\u30dd\u30fc\u30c8\u3092\u958b\u304f\nSerial.begin(9600);\n}\nunsigned char i = 0; // \u30c6\u30b9\u30c8\u7528\u306b PC \u5074\u306b\u9001\u308b\u5024\nvoid loop()\n{\n// 250 \u30df\u30ea\u79d2\u6b62\u3081\u308b\ndelay(250);\n// \u30b7\u30ea\u30a2\u30eb\u30dd\u30fc\u30c8\u306b 1 \u30d0\u30a4\u30c8\u51fa\u529b\nSerial.write(i);\n++i;\n// \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u3067\u53d7\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080\nconst int val = Serial.read();\nif (val == -1) // \u53d7\u4fe1\u3057\u305f\u30c7\u30fc\u304c\u7121\u3044\n{\nreturn;\n}\nif (val == 0)\n{\ndigitalWrite(13, LOW); // LOW \u3092\u51fa\u529b\n}\nelse if (val == 1)\n{\ndigitalWrite(13, HIGH); // HIGH \u3092\u51fa\u529b\n}\nelse if (val == 2)\n{\ni = 0;\n}\n}\n
"},{"location":"releases/#pc-\u5074\u306e\u30b3\u30fc\u30c9","title":"PC \u5074\u306e\u30b3\u30fc\u30c9","text":"# include <Siv3D.hpp>\nvoid Main()\n{\n// \u30b7\u30ea\u30a2\u30eb\u30dd\u30fc\u30c8\u306e\u4e00\u89a7\u3092\u53d6\u5f97\nconst Array<SerialPortInfo> infos = System::EnumerateSerialPorts();\nconst Array<String> options = infos.map([](const SerialPortInfo& info)\n{\nreturn U\"{} ({})\"_fmt(info.port, info.description);\n}) << U\"none\";\nSerial serial;\nsize_t index = (options.size() - 1);\nwhile (System::Update())\n{\nconst bool isOpen = serial.isOpen(); // OpenSiv3D v0.4.2 \u4ee5\u524d\u306f serial.isOpened()\nif (SimpleGUI::Button(U\"Write 0\", Vec2(200, 20), 120, isOpen))\n{\n// 1 \u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf (0) \u3092\u66f8\u304d\u8fbc\u3080\nserial.writeByte(0);\n}\nif (SimpleGUI::Button(U\"Write 1\", Vec2(340, 20), 120, isOpen))\n{\n// 1 \u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf (1) \u3092\u66f8\u304d\u8fbc\u3080\nserial.writeByte(1);\n}\nif (SimpleGUI::Button(U\"Write 2\", Vec2(480, 20), 120, isOpen))\n{\n// 1 \u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf (2) \u3092\u66f8\u304d\u8fbc\u3080\nserial.writeByte(2);\n}\nif (SimpleGUI::RadioButtons(index, options, Vec2(200, 60)))\n{\nClearPrint();\nif (index == (options.size() - 1))\n{\nserial = Serial();\n}\nelse\n{\nPrint << U\"Open {}\"_fmt(infos[index].port);\n// \u30b7\u30ea\u30a2\u30eb\u30dd\u30fc\u30c8\u3092\u30aa\u30fc\u30d7\u30f3\nif (serial.open(infos[index].port))\n{\nPrint << U\"Succeeded\";\n}\nelse\n{\nPrint << U\"Failed\";\n}\n}\n}\nif (const size_t available = serial.available())\n{\n// \u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u3067\u53d7\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u8868\u793a\nPrint << U\"READ: \" << serial.readBytes();\n}\n}\n}\n
"},{"location":"releases/#4-poissondisk2d","title":"4. PoissonDisk2D","text":"\u307b\u3069\u3088\u3044\u8ddd\u96e2\u3067\u91cd\u306a\u3089\u306a\u3044\u70b9\u7fa4\u3092\u751f\u6210\u3059\u308b PoissonDisk2D
\u30af\u30e9\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nScene::SetBackground(ColorF(0.2, 0.3, 0.4));\nconst Rect rect(100, 100, 600, 400);\ndouble r = 15.0;\n// \u70b9\u7fa4\u3092\u751f\u6210\nPoissonDisk2D pd(rect.size, r);\nwhile (System::Update())\n{\nrect.drawFrame(1, 1, ColorF(0.2));\nfor (const auto& point : pd.getPoints())\n{\nCircle(point, r / 4).movedBy(rect.pos).draw();\n}\nif (SimpleGUI::Slider(r, 5.0, 40.0, Vec2(10, 10)))\n{\npd = PoissonDisk2D(rect.size, r);\n}\n}\n}\n
"},{"location":"releases/#5-jsonwriter","title":"5. JSONWriter","text":"\u6210\u5f62\u3055\u308c\u305f JSON \u30d5\u30a1\u30a4\u30eb\u3092\u51fa\u529b\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30af\u30e9\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u9806\u6b21\u51fa\u529b\u306e\u305f\u3081\u3001\u5b9f\u969b\u306b\u4fdd\u5b58\u3055\u308c\u308b\u306e\u3068\u540c\u3058\u9806\u756a\u3067\u30c7\u30fc\u30bf\u3092\u51fa\u529b\u3092\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
# include <Siv3D.hpp>\nvoid Main()\n{\nJSONWriter json;\njson.startObject();\n{\njson.key(U\"Window\").startObject();\n{\njson.key(U\"title\").write(U\"My application\");\njson.key(U\"width\").write(800);\njson.key(U\"height\").write(600);\njson.key(U\"sizable\").write(false);\n}\njson.endObject();\njson.key(U\"Scene\").startObject();\n{\njson.key(U\"background\").write(ColorF(0.8, 0.9, 1.0));\n}\njson.endObject();\njson.key(U\"Array\").startObject();\n{\njson.key(U\"values\").writeArray({ 11, 22, 33, 44, 55 });\n}\njson.endObject();\njson.key(U\"Items\").startArray();\n{\njson.startObject();\n{\njson.key(U\"label\").write(U\"Forest\");\njson.key(U\"pos\").startObject();\n{\njson.key(U\"x\").write(100);\njson.key(U\"y\").write(100);\n}\njson.endObject();\n}\njson.endObject();\njson.startObject();\n{\njson.key(U\"label\").write(U\"Ocean\");\njson.key(U\"pos\").startObject();\n{\njson.key(U\"x\").write(300);\njson.key(U\"y\").write(200);\n}\njson.endObject();\n}\njson.endObject();\njson.startObject();\n{\njson.key(U\"label\").write(U\"Mountain\");\njson.key(U\"pos\").startObject();\n{\njson.key(U\"x\").write(500);\njson.key(U\"y\").write(100);\n}\njson.endObject();\n}\njson.endObject();\n}\njson.endArray();\n}\njson.endObject();\n// \u3053\u3053\u307e\u3067\u306e\u5185\u5bb9\u3092\u4fdd\u5b58\njson.save(U\"test.json\");\nwhile (System::Update())\n{\n}\n}\n
\u51fa\u529b\u3055\u308c\u308b JSON \u30d5\u30a1\u30a4\u30eb
{\n\"Window\": {\n\"title\": \"My application\",\n\"width\": 800,\n\"height\": 600,\n\"sizable\": \"false\"\n},\n\"Scene\": {\n\"background\": \"(0.8, 0.9, 1, 1)\"\n},\n\"Array\": {\n\"values\": [\n11,\n22,\n33,\n44,\n55\n]\n},\n\"Items\": [\n{\n\"label\": \"Forest\",\n\"pos\": {\n\"x\": 100,\n\"y\": 100\n}\n},\n{\n\"label\": \"Ocean\",\n\"pos\": {\n\"x\": 300,\n\"y\": 200\n}\n},\n{\n\"label\": \"Mountain\",\n\"pos\": {\n\"x\": 500,\n\"y\": 100\n}\n}\n]\n}\n