はい、miku_JK_Jbです
今回は自作OSがユーザー空間でデスクトップUIを描画できるようにした作業について解説していくよ
先にデスクトップUIを見せるとこんな感じ
まぁシンプルモードで色ずれが発生していたり、アプリケーションバーが表示されていなかったりとまだ改善点はたくさんあるんだけどね
それじゃあどうやってデスクトップのUIを描けるようになったのかについて解説するぞう🐘
まず最初にやったのはもろちん設計だ

設計では主にデザインやどのモードをどのデザインにするか、マウスカーソルの形などを決めた
これがデスクトップUIの設計だ
次にUIのパーツを作っていく
これはユーザーが自分で好きなUIにカスタマイズできるようにするために各UIのパーツをモジュール化していった
作ったパーツはこんな感じだ
・タスクバー
・上部バー
・WiFiマーク
・サウンドマーク
・ハンバーガーメニュー(3本のメニュー線)
・電池残量系
・通知ベルマーク
これを作成した
正直これは3本のメニュー線(ハンバーガーメニュー)以外の完成度が💩なのでグラフィカルに美しくしたい
次にUIモードの判別処理を作成した
これはデスクトップUIがスタンダードモードなのかシンプルモードなのかユーザーがカスタマイズしたカスタマイズモードなのかを判別してそのモードを表示できるようにする処理を実装した
まあ今はカスタマイズモードのカスタマイズするアプリを実装していないので、実質スタンダードモードなのかシンプルモードなのかの判別処理になっている
後はカーネルに追加して終了だ!!
まあこれは単純でカーネルにさっき紹介した作業の関数を呼び出してデスクトップ画面を描画できるようになる処理の実装だ
これでデスクトップUIが表示できるようになった


ちなみにこれは完全にカーネル空間から独立してユーザー空間で処理が行われている
カーネル空間とユーザー空間の分離の作業はすでに終わっているが次回のブログで紹介する
今はFreeType経由での多言語化とフォント描画の対応で自作した動的リンカーが動かない問題に四苦八苦している
これが自作OSがユーザー空間でデスクトップの描画ができるようになった作業についての解説でした✨
ということでmiku_JK_Jbでした
次回はFreeType経由で多言語化とフォント描画ができるようになったらいいな🤤

