문제

C# Cosmos에서 GUI를 어떻게 개발합니까?

코스모스 OS

올바른 솔루션이 없습니다

다른 팁

다음은 다음과 같습니다 (Milestone 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 y와 색상을 설정합니다. c. 색상은 256 색 형식입니다. 수학은 모양을 만들기 위해 관련됩니다.

먼저 VGA 드라이버를 작성해야합니다. 그리고 마우스 드라이버. 그리고 아마도 쓰레기 수집가가 가게 될 것입니다. 할 일이 너무 많습니다.

예! 당신은 할 수 있습니다. 예, 가능하지만 시간이 걸리면 마우스 드라이버를 할 때 무엇을 쓸고 읽어야하는지 알아야합니다. 그렇지 않으면 가능합니다.

나는 큰 코스모스 사람이고, 누군가 나중에이 문제를 발견하면 2015 년 10 월 12 일에 그것을 할 수있는 방법을 떠나고 싶습니다.

우리가 시작하기 전에 i 고도로 Userkit이 아닌 Devkit을 사용하는 것이 좋습니다. DevKit은 우주 자체를 수정하기위한 것이지만 설치가 완료되면 그와 완전히 멀리 떨어져 있고 VS 창을 닫을 수 있습니다. Devkit은 가지고 있습니다 모두 Userkit가 가지고있는 기능은 있지만 Userkit은 매달 한 번만 업데이트 할 수 있으며 DevKit은 최신 버그 수정 및 기능으로 며칠마다 업데이트됩니다. DevKit을 대신 다운로드해야합니다. 왜냐하면 그것이 가장 많은 지원이 있기 때문입니다.

VGA를 얻으려면 새로운 Visual Studio 창을 열어보세요. 새로운 것을 만듭니다 Class Library 그리고 당신이 원하는 도대체 무엇이든 이름을 지정하십시오.

참조로 이동하여 Cosmos.hal, Cosmos.common 및 Cosmos.system에 대한 참조를 추가하십시오. %AppData % Roaming Cosmos 사용자 키트에서 찾을 수 있습니다.

AssemblyInfo.cs로 이동하여 추가하십시오 using Cosmos.Common;, 하단에 다음 줄을 추가합니다 : [어셈블리 : 링 (Ring.System)

좋아, 이제 당신은 들어가서 무엇이든 새로운 클래스를 만들어야합니다.

맨 위에는 Cosmos.hal을 사용하고 시스템을 사용하여 시스템을 추가하십시오.

두 줄 추가 :

public static VGAScreen screen = new VGAScreen(); 그리고 public static Mouse mi = new Mouse(); 이름 화면과 MI 원하는대로.

무엇이든 이름이라는 이름의 초기 및 진드기 방법을 만듭니다.

예제 초기 방법은 다음과 같습니다.

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);
}

이제 진드기 방법에서 무엇이든 추가하십시오. 밀리 초 정도와 같은 모든 일이 일어나고 싶은 모든 것. 마우스를 그리는 것과 같은 것일 수 있습니다. 인터넷의 다른 곳에서는 약간의 긴 이야기라는 것을 알 수 있습니다.

당신은 간다, 이제 당신은 일하는 VGA를 가지고 있습니다!

screen.setpixel320x200x8 (x, y, color)으로 픽셀을 설정할 수 있습니다.

적용 가능한 색상은 0-3f입니다. 일반 콘솔 색상 0-F를 따르지만 더 많은 옵션을 추가합니다.

이제이 DLL을 만들고 메인 OS에 참조하십시오. 이제 커널의 Beforerun 메소드에 yourvgaclass.init 메소드를 추가하고 Kernel의 실행 메소드에 Tick을 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top