議論/画面出力抽象化/2006/01.現状の表示処理


Top / 議論 / 画面出力抽象化 / 2006 / 01.現状の表示処理

このページは何か? (by ひげぽん)

画面出力の現状と問題点をまとめます。

目的と経緯

議論/画面出力抽象化?を参照してください。

まとめ

Shell(CUI)

Shell(CUI)の出力は

出力タイプShellが利用している関数裏で何が起きているか
通常の文字出力printfkernelの VesaConsole::printfへ
改行printf("\n")kernelの VesaConsoleがやっている
任意の位置への出力syscall_get_cursorkernelの VesaConsole::setCursor
caretscreen_.fillRect16VRAMに直接描画

のように種類毎に分類できます。

ここまでで以下の問題点に気付きます。

shell(GUI)

次にgshell(GUI)版の出力ですが

出力タイプShellが利用している関数裏で何が起きているか
通常の文字出力addLineBayGUIのコンポーネントが描画
改行addLineBayGUIのコンポーネントが描画
任意の位置への出力addLineBayGUIのコンポーネントが描画
caretaddLineBayGUIのコンポーネントが描画

以上のようになります。

CUI版と違って描画をBayGUIが一手に引き受けているのが良い点です。

ただGUI版には問題点が一つあります、それは「CUI版とShell機能のロジックを共有できていない」ことです。
例えば ls コマンドを発行したときに出力される内容はほぼ同じものであるにもかかわらず、同じようなコードが書かれています。

現状問題点

以上をまとめると現状の問題点は

ということになります。

コメント

最新の1000件を表示しています。 コメントページを参照

お名前:
  • BayGUI 版で独自描画しているのは CUI 版が UTF-8 に対応していないこともありますね。 -- bayside 2006-10-24 (火) 16:40:03
  • あと MonaForms 版のシェルとシリアルポートへの出力もですね。MonaForms 版は CUI の結果をそのまま出しているのでスマートに見えますが、バックスペースを打ったときの表示に問題があったり、GUI 版では実行してはいけないコマンドを Hack していたりします。実機でデバッグするならシリアルコンソールもあると便利だと思います。 -- bayside 2006-10-24 (火) 16:31:27

MENU

now: 1

リンク


最新の20件
2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2062, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:03 (3831d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.039 sec.