C# Cosmos で GUI を開発するにはどうすればよいですか?
4 に答える
方法は次のとおりです (マイルストーン 5 を使用しますが、他のバージョンでも同様です)。Cosmos が VGA の処理を行います。マウスとキーボードも同様です。まだキーボードを作ることはできませんでしたが、マウスは動作しています (ただし、ボタンが押されているかどうかを確認する方法はわかりませんでした)。はじめに、VGA 機能を紹介します。まず、次の名前空間が必要です。
using Cosmos.Hardware;
次に、画面が存在する変数。次のクラス レベル変数を追加します。
VGAScreen screen:
次に、初期化するために、次のコードを BeforeRun() メソッドに追加します。
screen = new VGAScreen();
screen.SetMode320x200x8();
screen.Clear(0);
最後に、次の方法でピクセルの色を設定できます。
screen.SetPixel320x200x8(uint x, uint y, uint c);
x 任意の y と色 c を設定します。色は 256 色形式です。形を作るには数学が必要です。
最初に VGA ドライバーを作成する必要があります。そしてマウスドライバー。そして、おそらくガベージコレクターを動かしてください。やることが山ほど。
はい!できます、私はいくつかの良いGUIと動作するマウスドライバーを持っています。そうです、それは可能ですが、時間がかかり、マウスドライバーを実行しているときに何を読み書きするかを知る必要があります。そうでない場合は可能です。
私は COSMOS の大ファンです。後で誰かがこれに遭遇した場合は、2015 年 10 月 12 日現在、それを行う方法を残しておきたいと思います。
始める前に、ユーザーキットではなく開発キットを使用することを強くお勧めします。devkit は Cosmos 自体を変更することを目的としていますが、それを完全に避けて、インストールが完了したら VS ウィンドウを閉じることができます。devkit にはユーザーキットのすべての機能がありますが、ユーザーキットは月に 1 回程度、またはそれ以上の頻度でしか更新されず、開発キットは数日ごとに最新のバグ修正と機能で更新されます。サポートが最も充実しているため、代わりに devkit をダウンロードすることをお勧めします。
VGA を取得するには、新しい Visual Studio ウィンドウを開きます。新しいものを作成し、Class Library
好きな名前を付けます。
参照に移動し、Cosmos.HAL、Cosmos.Common、および Cosmos.System への参照を追加します。%appdata%\Roaming\Cosmos User Kit にあります。
AssemblyInfo.cs に移動して を追加using Cosmos.Common;
し、下部に次の行を追加します: [assembly: Ring(Ring.System)]
よしよし、今度は入って、anything という名前の新しいクラスを作成する必要があります。
一番上に、using Cosmos.HAL と using System.
次の 2 行を追加します。
public static VGAScreen screen = new VGAScreen();
とpublic static Mouse mi = new Mouse();
Name screen と mi は何でも好きです。
任意の名前の Init および Tick メソッドを作成します。
Init メソッドの例を次に示します。
public static void InitVGA() {
//Make SURE you have this exact line or else it won't work! Any size other than 320x200 is broken, and 8-bit is the highest VGA compatible color depth.
screen.SetGraphicsMode(VGAScreen.ScreenSize.Size320x200, VGAScreen.ColorDepth.BitDepth8);
//There's a bug currently where only 6-bit color is supported with 8-bit. 0x3f is pure white.
screen.Clear(0x3f);
//mi.Initialize(320, 200);
}
Tick メソッドで、何でも追加します。ミリ秒程度ごとに発生させたいもの。ねずみを描くとか、そういうことかもしれません。インターネットの他の場所で見つけることができますが、それは少し長い話です.
これで、VGA が動作するようになりました。
screen.SetPixel320x200x8(x, y, color); でピクセルを設定できます。
適用可能な色の範囲は 0 ~ 3f です。これは、一般的なコンソールの色 0-f に従いますが、さらに多くのオプションを追加するだけです。
次に、この dll をビルドして、メイン OS に参照するだけです。メソッド yourvgaclass.Init をカーネルの BeforeRun メソッドに追加し、yourvgaclass.Tick をカーネルの Run メソッドに追加します。