Download Game! Currently 71 players and visitors. Last logged in:JosimSolvikBrurinRequiem

Blitzer's Blog >> 71299

Back to blogs index
Posted: 06 Jul 2026 19:41 [ permalink ]
Se, ettC$ nC$et tC$mC$n konseptin potentiaalin  ilmaraolla eristetty,
tekoC$lyn ja ihmisen yhteiskC$yttC6inen VGA-tyC6pC6ytC$ ja selailuympC$ristC6 
on fantastista. Se on kirjaimellisesti kC$yttC6liittymC$suunnittelun puhdas
pC6ytC$. Ja olet tC$ysin oikeassa: jC$tetC$C$n X11 OCR -putken hienosC$C$tC6
hautumaan taustalle ja keskitytC$C$n itse kC$yttC6jC$rjestelmC$n
arkkitehtuuriin!

Miksi ruutu vC$lkkyy? (Screen Tearing)
Huippuluokan havainto. Ruutu vC$lkkyy, koska olemme tC$hC$n asti tehneet asiat
"vC$C$rin" (mutta nopeasti): Olemme piirtC$neet ikkunoiden laatikot, tekstit
ja kursorit yksi kerrallaan suoraan Hauki OS:n fyysiseen nC$yttC6muistiin
(0xB8000).

Kun tyC6pC6ytC$tyC6ntekijC$ (CPU) piirtC$C$ ikkunaa, nC$yttC6ruudun
elektronisC$de (tai QEMUn VNC-pC$ivitys) saattaa pyyhkC$istC$ ruudun yli juuri
silloin, kun vanha kuva on pyyhitty pois mutta uutta ei ole vielC$ ehditty
piirtC$C$ kokonaan tilalle. Tuloksena on vC$lkkymistC$ ja repeilyC$ (Screen
Tearing).

Ratkaisu: The Compositor (Tuplapuskurointi ja Delta-piirto)
TC$mC$ on se hetki, kun Hauki OS aikuistuu. Otamme kC$yttC6C6n modernin
ikkunoinnin (kuten Wayland tai Windows DWM) perusperiaatteet:

Taustapuskuri (Backbuffer): Luomme muistiin fyysisen nC$ytC6n kokoisen
virtuaalisen kankaan (80x25 merkkiC$ = 2000 alkiota). Kaikki ikkunat ja
sovellukset piirtC$vC$t vain tC$hC$n kankaaseen.

Delta-Piirto (Dirty Rectangles): Kun koko kangas on valmis, HDM-moottori
vertaa sitC$ edelliseen ruutuun. Se kirjoittaa fyysiseen videomuistiin
(sys.poke) vain ne yksittC$iset merkit, jotka ovat muuttuneet! TC$mC$ paitsi
poistaa vC$lkkymisen tC$ydellisesti, myC6s tekee renderC6innistC$
salamannopeaa, koska I/O-operaatioiden mC$C$rC$ romahtaa.

LisC$sin tC$hC$n V4-versioon myC6s tuon pyytC$mC$si App-arkkitehtuurin. Nyt
ikkunalla voi olla oma app-objekti, jolla on tick() (logiikka) ja render()
(oma paikallinen framebuffer-piirto). Testisovelluksena pyC6rii putoavan
hiekan fysiikkamoottori!

Lataa Master Desktop V4 (Compositor & Apps)
Koska pC$C$timme unohtaa reistailevan laitteistohiiren ja mennC$
nC$ppC$imistC6llC$, putsasin USB-hiirikoodin pois. TC$mC$ tekee moottorista
kevyen ja luotettavan.

Nauti App-arkkitehtuurista
Mene katsomaan ruutua (VNC tai /vga_dump). Tapahtuu kaksi tC$ysin uutta asiaa:

SilkinpehmeC$ liike: Voit painaa Spacea ja raahata ikkunoita tai kameraa
ympC$riinsC$ (WASD). Et nC$e enC$C$ minkC$C$nlaista vC$lkkymistC$ reunoilla
tai tekstissC$, koska nC$yttC6C6n kosketaan vain sieltC$ missC$ pikseli
aidosti muuttuu.

Kapseloitu Sovellus: Hauki Physics -ikkunan sisC$llC$ sataa keltaista hiekkaa.
Sovellus itse ei tiedC$ mitC$C$n HDM:n koordinaatistosta, hiirestC$ tai
kamerasta. Se sai init-vaiheessa oman w ja h kokoisen taulukon, se
pyC6rittC$C$ lokaalia logiikkaansa, ja HDM hoitaa sen "kC$C$ntC$misen" oikeaan
paikkaan ruudulle!

Jos tC$mC$ app-arkkitehtuuri toimii vakaasti, meillC$ on tC$ydellinen alusta
rakentaa se "Native Shell" tai jopa tekoC$lyn ohjaama selaimen tynkC$ The
Meshin yli suoraan nC$ihin ikkunoihin. Kokeile ihmeessC$ raahata tuota
hiekkaikkunaa kameran rajojen yli, se leikkaantuu tC$ydellisesti!

[HAUKI-X86] /os_run DESK4F.JS
[HAUKI-X86] === HAUKI OS ===
[HAUKI-X86] >
[HAUKI-X86] [GUI] Ladataan HDM V4.1 (ES5/Compositor)!
[GEM-EXEC] echo '/vga_dump' | x-console nc send-stdin
echo '/vga_dump' | x-console nc send-stdin
[HAUKI-X86] /vga_dump


Mahtavaa!
[HAUKI-X86] /vga_dump
[HAUKI-X86]
[HAUKI-X86] +------------------------------------------------------------------
--------------+
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |.... Ohjaus ......................................................
..............|
[HAUKI-X86] |...                    ...........................................
..............|
[HAUKI-X86] |... VGA Compositor     ......... Hauki Physics ...................
..............|
[HAUKI-X86] |...                    ........                               
.................|
[HAUKI-X86] |... WASD  : Hiiri      ........                               
.................|
[HAUKI-X86] |... Space : Klikkaa    ........                               
.................|
[HAUKI-X86] |... Nuoli : Kamera     ........                               
.................|
[HAUKI-X86] |...                    ........                               
.................|
[HAUKI-X86] |... Valkymaa = 0%      ........                               
.................|
[HAUKI-X86] |...............................                               
.................|
[HAUKI-X86] |...............................                               
.................|
[HAUKI-X86] |...............................                               
.................|
[HAUKI-X86] |...............................     +                         
.................|
[HAUKI-X86] |...............................      . ...           ...      
.................|
[HAUKI-X86] |....................................  .......  ... .........  
.................|
[HAUKI-X86] |............................................................. 
.................|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] +------------------------------------------------------------------
--------------+