Kirjautuminen

Haku

Tehtävät

Keskustelu: Projektit: LameVGA

Sivun loppuun

thefox [16.02.2003 08:00:00]

#

Huomio! Tämä projekti on siirretty automaattisesti vanhasta projektijärjestelmästä. Aloitusviesti on projektin kuvaus sellaisena, kuin se oli 28.11.2004, ja seuraavat viestit siirtoon saakka ovat kommentteja.

LameVGA:n päätarkoitus on tarjota Quick Basic -ohjelmoijille QB:n omia grafiikkakirjastoja nopeampi vaihtoehto. Lisäksi tarjotaan muutamia muita näppäriä ominaisuuksia kuten näppishandleri (no pun intended!).

LameVGA v0.8.5 (57 kt)
LameVGA v0.8 (41 kt)

2.7.2003
Nyt myös QBX:n (7.1) käyttäjät voivat kokeilla kirjastoa uuden version myötä. Mukana make_qbx.bat jolla QBX-kirjaston voi kääntää ja assembloida helposti. Muita muutoksia ei ole (lukuunottamatta pienoista muutosta lame.bi-tiedostoon).

25.6.2003
Ookke, eli nyt on sitten jonkinlainen versio pihalla. readme.txt-filusta voi lueskella nootteja tuon betan suhteen, eli moni asia on vielä keskeneräinen ja ehkä jopa toimimaton. Keskustelualueella voi kysellä, tai sitten sähköpostilla.

22.6.2003
Lisäsin vihdoin täydellisen funktiolistan, eli funktioita näyttää kertyneen 68 kpl. (Myöhemmin lisätty: ahaa, putkan layoutti meni särki joten pätkin osaa prototyypeistä hieman.)

6.6.2003
Lisätty jonkinmoiset fonttirutiinit (vgaLoadFont, vgaDrawText), lisäksi lisätty suht. nopea kolmiofilleri (vgaTriangleFill).

28.5.2003
Lisätty tuki XMS-muistille, eli funktiot vgaInitXMS, vgaAllocXMS, vgaFreeXMS, vgaFreeMemoryXMS, vgaMoveToXMS, vgaMoveFromXMS, vgaMaxXMSBlock.. ellen nyt ihan väärin muista. Uudet funktiot myös dokumentoitu.

27.5.2003
Korjattu bugi FLI-animaatioiden toistosta ;-) Nyt jokainen FLI toistuu oikein (toivottavasti). Lisäksi dokumentoitu kaikki komennot ja lisätty jokseenkin turha, mutta silti ah, niin ihana, vgaSetPaletteBlack-funktio.

24.5.2003
Lisätty tuki FLI-animaatioiden toistoon, korjattu monia bugeja yms.

17.5.2003
Muutamat funktiot lisäilty jälleen kerran, mm. vgaCircle. Lisäksi korjattu bugeja yms. ei voi muistaa ;-)

16.5.2003
Lisätty muutamat funktiot, eli vgaScaledBlit ja vgaMaskedScaledBlit. Lisäksi korjattiin vakava bugi vgaLoadPCX:stä, ja samalla nopeutettiin sitä huomattavasti. vgaExit:in unohtamisen aikaan saavaa muistin hukkaa pienennettiin hieman tarkistuksella vgaInit:issä, näin muistia menee maksimissaan hukkaan noin 64KB. Lisäksi korjattu monia yksittäisiä bugeja erinäisissä funktioissa.

Lisätty näppishandleri, sekä monia muita funktioita joita ei nyt tule mieleen enkä jaksa alkaa tarkemmin tarkastelemaan... pian voisi olla tuloillaan jonkinmoista julkaisua...

* * *

Tällä hetkellä LameVGA:ssa on funktioita 68 kappaletta, ja lisää on tulossa. Osa funktioista on vielä hieman viimeistelemättömiä, mutta kaikki silti lähes täysin toimivia, useimmat täysin.

LameVGA:n lopullinen versio tullaan mitä varmimmin julkaisemaan lähdekoodien kera.

Funktioita selityksineen (aakkosjärjestyksessä, epätäydellinen lista):

vgaBlit -- kopioi kuvan muistista näyttöpuskurin
vgaBox -- piirtää suorakulmion (typerä nimi)
vgaBox3D -- piirtää suorakulmion, jolla '3D-reunat'
vgaBox3DFill -- piirtää täytetyn suorakulmion, jolla '3D-reunat'
vgaBoxFill -- piirtää täytetyn suorakulmion
vgaClrScreen -- tyhjentää näyttöpuskurin tiettyyn väriin
vgaClrScreenBlack -- tyhjentää näyttöpuskurin värillä #0
vgaError -- palauttaa LameVGA:n virhekoodin
vgaExit -- tekee tarpeelliset lopetustoimet (mm. muistin vapautus)
vgaFadeIn -- feidaa paletin sisään tietyllä nopeudella
vgaFadeInStep -- feidaa sisään 'yhden askeleen'
vgaFadeOut -- feidaa paletin mustaksi tietyllä nopeudella
vgaFadeOutStep -- feidaa mustaksi 'yhden askeleen'
vgaFlip -- kopioi näyttöpuskurin näkyviin näyttömuistiin
vgaFlipScreen -- flippaa ruudun (ylösalaisin)
vgaGet -- kopioi tietoa näyttöpuskurista muistiin annettuun osoitteeseen
vgaGetDBSeg -- hakee näyttöpuskurin segmentin
vgaGetPixel -- hakee tietyn pikselin värin näyttöpuskurista
vgaGfxMode -- asettaa tietyn grafiikkamoodin
vgaGetMouseState -- hakee hiiren senhetkiset tiedot (x, y, napit)
vgaHorizLine -- piirtää horisonttaalisen (vaakasuuntaisen) viivan
vgaInit -- tekee tarpeelliset alustustoimet (mm. muistin varaaminen näyttöpuskurille)
vgaLine -- piirtää viivan
vgaLoadPalette -- lataa paletin PCX-tiedostosta
vgaLoadPCX -- lataa PCX-tiedoston annettuun muistiosoitteeseen
vgaMaskedBlit -- kopioi kuvan muistista näyttöpuskuriin ohittaen määritellyn väriarvon
vgaMaskedScaledBlit -- kopioi kuvan muistista näyttöpuskuriin samalla skaalaten sitä,
ja jättäen piirtämättä määritellyn väriarvon
vgaMirror -- tekee muistista olevasta kuvasta peilikuvan
vgaMirrorScreen -- tekee näyttöpuskurista peilikuvan
vgaMouseInit -- alustaa hiiren (tarkistaa onko hiirtä yms.)
vgaPutPixel -- asettaa pikselin näyttöpuskuriin
vgaScaledBlit -- kopioi kuvan muistista näyttöpuskuriin samalla skaalaten sitä
vgaSetMouseRange -- asettaa hiiren rajakoordinaatit

vgaSetMouseState -- asettaa hiiren tilan (x, y)
vgaSetPalette -- asettaa paletin
vgaSoften -- 'pehmentää' näyttöpuskurin
vgaSync -- odottaa vblankia
vgaVerticLine -- piirtää vertikaalisen (pystysuuntaisen) viivan
vgaOpenFLI -- avaa FLI-animaatiotiedoston
vgaPlayFLI -- toistaa FLI-animaatiota (kutsuttava silmukassa)
vgaCloseFLI -- sulkee FLI:n

Kaikkien funktioiden prototyypit (täydellinen lista):

DECLARE FUNCTION vgaError% ()
DECLARE FUNCTION vgaGetDBSeg% ()
DECLARE FUNCTION vgaGetPixel% (BYVAL x AS INTEGER, BYVAL y AS INTEGER)
DECLARE FUNCTION vgaMouseInit% ()
DECLARE SUB vgaGfxMode (BYVAL gfxmode AS INTEGER)
DECLARE SUB vgaPutPixel (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL c AS INTEGER)
DECLARE SUB vgaClrScreen (BYVAL c AS INTEGER)
DECLARE SUB vgaClrScreenBlack ()
DECLARE SUB vgaHorizLine (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL x2 AS . . .
DECLARE SUB vgaVerticLine (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL y2 AS. . .
DECLARE FUNCTION vgaInit% (needmem AS LONG)
DECLARE SUB vgaExit ()
DECLARE SUB vgaFlip ()
DECLARE SUB vgaBox (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h AS . . .
DECLARE SUB vgaBoxFill (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h . . .
DECLARE SUB vgaBox3D (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h . . .
DECLARE SUB vgaBox3DFill (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h . . .
DECLARE SUB vgaGet (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h AS . . .
DECLARE SUB vgaBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL bseg AS INTEGER, BYVAL boff AS . . .
DECLARE SUB vgaMaskedBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL bseg AS INTEGER, BYVAL . . .
DECLARE SUB vgaSoften ()
DECLARE SUB vgaLine (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL x2 AS INTEGER, BYVAL y2. . .
DECLARE SUB vgaSync ()
DECLARE SUB vgaMirrorScreen ()
DECLARE SUB vgaLoadPCX (filename AS STRING, BYVAL bseg AS INTEGER, BYVAL boff AS INTEGER)
DECLARE SUB vgaMirror (BYVAL bseg AS INTEGER, BYVAL boff AS INTEGER)
DECLARE SUB vgaFadeOut (BYVAL speed AS INTEGER)
DECLARE SUB vgaLoadPalette (filename AS STRING, BYVAL pseg AS INTEGER, BYVAL poff AS INTEGER)
DECLARE SUB vgaGetMouseState (m AS Mouse)
DECLARE SUB vgaSetMouseRange (BYVAL minx AS INTEGER, BYVAL maxx AS INTEGER, BYVAL miny AS INTEGER . . .
DECLARE SUB vgaSetMouseState (m AS Mouse)
DECLARE SUB vgaFlipScreen ()
DECLARE SUB vgaSetPalette (BYVAL pseg AS INTEGER, BYVAL poff AS INTEGER)
DECLARE SUB vgaFadeOutStep ()
DECLARE SUB vgaSetPaletteGray ()
DECLARE SUB vgaFadeIn (BYVAL speed AS INTEGER, BYVAL pseg AS INTEGER, BYVAL poff AS INTEGER)
DECLARE FUNCTION vgaAlloc% (BYVAL amount AS INTEGER)
DECLARE SUB vgaDarken (BYVAL amount AS INTEGER)
DECLARE SUB vgaLighten (BYVAL amount AS INTEGER)
DECLARE SUB vgaScrollUp ()
DECLARE SUB vgaScrollDown ()
DECLARE SUB vgaFree (BYVAL segm AS INTEGER)
DECLARE SUB vgaScaledBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL h AS . . .
DECLARE SUB vgaMaskedScaledBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL w AS INTEGER, BYVAL . . .
DECLARE FUNCTION vgaFreeMemory% ()
DECLARE FUNCTION vgaKey% (BYVAL skey AS INTEGER)
DECLARE FUNCTION vgaReqBufSize% (filename AS STRING)
DECLARE SUB vgaInitKeyboard ()
DECLARE SUB vgaCircle (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL r AS INTEGER, BYVAL col AS INTEGER)
DECLARE SUB vgaRotatedBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL a AS SINGLE, BYVAL bseg AS . . .
DECLARE SUB vgaMaskedRotatedBlit (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL a AS SINGLE, BYVAL . . .
DECLARE SUB vgaOpenFLI (filename AS STRING, s AS FLI)
DECLARE FUNCTION vgaPlayFLI% (s AS FLI)
DECLARE SUB vgaFLIDelay (s AS FLI)
DECLARE SUB vgaCloseFLI (s AS FLI)
DECLARE SUB vgaSetPaletteBlack ()
DECLARE FUNCTION vgaInitXMS% ()
DECLARE FUNCTION vgaAllocXMS% (BYVAL amount AS INTEGER)
DECLARE SUB vgaFreeXMS (BYVAL h AS INTEGER)
DECLARE SUB vgaMoveToXMS (BYVAL h AS INTEGER, BYVAL sseg AS INTEGER, BYVAL soff AS INTEGER, BYVAL . . .
DECLARE SUB vgaMoveFromXMS (BYVAL h AS INTEGER, BYVAL dseg AS INTEGER, BYVAL doff AS INTEGER, BYVAL . . .
DECLARE SUB vgaResizeXMS (BYVAL h AS INTEGER, BYVAL newsize AS INTEGER)
DECLARE FUNCTION vgaFreeMemoryXMS% ()
DECLARE FUNCTION vgaMaxXMSBlock% ()
DECLARE SUB vgaTriangleFill (v1 AS V2D, v2 AS V2D, v3 AS V2D, BYVAL c AS INTEGER)
DECLARE SUB vgaLoadFont (filename AS STRING, BYVAL fseg AS INTEGER, BYVAL foff AS INTEGER)
DECLARE SUB vgaDrawText (BYVAL x AS INTEGER, BYVAL y AS INTEGER, BYVAL col AS INTEGER, txt AS STRING . . .
DECLARE FUNCTION vgaRemapScands$ (s AS STRING)

KimmoKM [16.02.2003 11:09:08]

#

Toivottavasti valmistuu pian.

Vilikki [19.02.2003 17:08:48]

#

Täsmälleen samaa meinasin sanoa... ;-)

thefox [28.02.2003 16:17:14]

#

Samaa voin sanoa minäkin ;) Toisaalta, tekisi kyllä melkein mieli viritellä SVGA-tuet sun muut roskat tuohon kun kerran on väsäämään ruvennut.. :) Noh, onneksi nyt on lomaa jos vaikka innostuisi taas jotain vääntämään.

thefox [07.04.2003 17:39:12]

#

Jooh, enpä saanu lomalla mitään aikaan, yllätys yllätys.
Suunnitelmat on nyt sellaiset, että väännän jonkunlaisen roskan valmiiksi ja pukkaan ulos ja pääsen tuosta eroon ;-)

Jesoft [14.04.2003 17:01:20]

#

Joo...toi kyl kuulostaa hyvält,no kyl toi onnistuu kun fawkz tekee sen:P

InvalidCo [17.04.2003 13:37:27]

#

Voisitko lähettää minulle sähköpostissa ne valmiit käskyt tai, no ainakin jonkin sellasen, millä voi piirtää pisteen näytölle...aion tehdä animaationteko ohjelman QB:llä!

-PC-Master-

P.S. En ole ihan varma tulisko se tän sivuston projekti-osastolle.

Dj Wolf [22.04.2003 10:24:37]

#

Koitahan fawkz ryhdistäytyä ja saada tuo LameVGA valmiiksi :). Siitähän voisi katsos olla jotain hyötyäkin :).

thefox [12.05.2003 22:22:12]

#

Jees, pitää ryhdistäytyä ;-) Jos oikein hardcoreksi jaksaisi ryhtyä, niin voisi koittaa kikkailla jonkun runtime patchin QB:hen, joka mahdollistaisi sen että QB:n omia Get/Put yms. funktioita voitaisiin käyttää LameVGA:n näyttöpuskuriin piirtoon, luonnollisesti vain mode13hssa.

Antti Laaksonen [26.06.2003 16:42:16]

#

Lupaavalta näyttää päältäpäin. Kokeilen tehdä tässä kesän aikana jonkun pelin tuon avulla ja sitten on luvassa tarkempaa palautetta. Tulevatko nykyiset funktiot toimimaan samalla tavalla (QB:n puolelta) uudemmissa versioissa?

thefox [27.06.2003 00:16:53]

#

Mitä luultavimmin kyllä tulevat. Tarkoituksena olisi vääntää esimerkki jos toinenkin ja tökätä uutta versiota ulos mahdollisimman pian, tällaisenaan kirjaston käyttöönotto ei välttämättä ole niitä helpoimpia.

Gwaur [27.06.2003 01:53:09]

#

screeshotteja?

thefox [02.07.2003 02:59:20]

#

Lienee melko selvä että tämänkaltaisesta projektista ruutukaappausten otto ei ole erityisen helppoa.

kaviaari [24.07.2003 17:04:46]

#

Kröh tuota en oikein tajua miten tätä käytetään siis laittamalla tarvittavien funtktiooiden alustukset ja käynnistälmäällä komennolla qb /lame vai?

odys [10.08.2003 15:26:53]

#

Olen niin väsynyt assyjen jälkeen että menen nukkumaan heti nyt, mutta sitä ennen yksi kysymys: Onko LameVGA Open Source project?

Vilikki [13.08.2003 19:04:14]

#

Pätkä ylempää:
"LameVGA:n lopullinen versio tullaan mitä varmimmin julkaisemaan lähdekoodien kera."

thefox [31.08.2003 00:18:45]

#

odys, lähdekoodit (jotka ovat paikoittain melkoista sillisalaattia) ovat mukana jo nyt.

Kaviaari, lue ohjeet (ikävä kyllä tällä hetkellä vain englanniksi). Käynnistä QB näin: "qb.exe /lame" ja sisällytä '$INCLUDE-esikääntäjä-komennolla tiedosto "lame.bi" pää-BAS-tiedostoosi. Katso tosiaan se readme.

odys [10.09.2003 16:48:17]

#

Vilikki, juu. :D
Olin sen verran väsynyt että en huomannut. tuli nukuttua vähän yli 20h. :)

Sose [18.10.2003 11:16:27]

#

Fawkzille kysymys:
Millä käännät asmin .obj-muotoon? Nasmilla ei mulla vaan millään tunnu mikään onnistuvan :(
Jos käännät itsekin nasmilla, laittaisitko ohjeet miten, ja jos käännät jollain muulla laittaisitko URLin, mistä voisi kyseisen ohjelman saada.

thefox [19.10.2003 15:12:11]

#

Mjooh, MASMia käytän, yleensä näissä QB-hommissa se helpoin vaihtoehto kun tajuaa suoraan Basic calling conventionia. MASM32 sisältää mm. MASMin: http://www.masm32.com DOS-linkkerin saa osoitteesta http://www.win32asm.cjb.net Itse taisin käyttää QB:n mukana tulevaa (sillä voi tehdä myös QLB-filuja).

tejeez [25.02.2004 19:32:05]

#

Kiva. Näyttääpä olevan paljonkin kaikkia kivoja/hyödyllisiä funktioita. ;)

p-p [13.12.2004 15:41:06]

#

Muuten ihan hyvä selostus funktioista,mutta ottaa vähän päähän,kun mulla on 486 kannettava ja siinä ei oo mitää nettiselainta tai vastaavaa millä voisi katsella...ja notepadilla oli yhtä tuskaa!

Gary534 [08.05.2005 22:18:54]

#

hyvä aika paljon erilaisia funktioita.

User137 [22.06.2005 19:46:18]

#

Onkos tässä jotain mitä DirectQB tai Future.lib:ssä ei olisi? :)
Ainakin DirectQB mukana tulee paljon asm koodia, siitä voi löytyä jotain apua.

thefox [06.12.2005 19:51:24]

#

Kyllä DirectQB ja Futurelibbi potkivat LameVGA:ta persiille aika komeasti ellen väärin muista (en ole ko. kirjastoihin hirveän tarkkaan tutustunut). Mutta ihan mielenkiintoinen projekti silti, imo.

Vielä enemmän kaikkia kolmea em. kirjastoa potkii perseelle UGL-niminen kirjasto.

Juhko [12.10.2006 14:46:26]

#

: I
: )
: D

moptim [19.10.2006 15:02:35]

#

toimiiko c?

Juhko [05.11.2006 13:28:28]

#

Kuinka niin C? Tuohan on QB:lle!

moptim [07.11.2006 19:41:37]

#

Hiirtähän minä vain...

Juhko [14.01.2007 19:56:47]

#

Tee myös QB 1.1 -versio!

moptim [18.01.2007 20:39:49]

#

Joo! SVGA! Tahtoo! Eiköhän sen voisi linkata C:lle.

moptim [14.02.2007 18:14:14]

#

Juhko, uskoisit nyt, että Redmondin kummisetä ei suutu sinulle, jos lataat sen 4.5 -version.

Dude [19.03.2007 16:35:10]

#

KingOfTheWorld kirjoitti:

Juhko, uskoisit nyt, että Redmondin kummisetä ei suutu sinulle, jos lataat sen 4.5 -version.

Niin. Tai 7.1
Edit: Pitääkö tuo kääntää että toimii 7.ykkösellä

Gwaur [22.04.2007 10:47:32]

#

thefox kirjoitti:

Lienee melko selvä että tämänkaltaisesta projektista ruutukaappausten otto ei ole erityisen helppoa.

Ainahan voi ottaa kuvia tätä projektia hyödyntävistä ohjelmista. ;)

gamehouse [30.04.2007 18:56:54]

#

Hmm... Tuota, vähän bugittaa, mutta se johtuu kai taitamattomuudestani... :-/


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta