Autor Thema: Pixel malen  (Gelesen 22476 mal)

BlitzChecker

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« am: 19. April 2006, 18:20 »
wie kann man mit c++ einen pixel in farbe xyz an position xyz malen?

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 19. April 2006, 18:27 »
erst mal brauchst du ein OS Grundgerüst, bevor du das nicht hast, brauchst du gar nicht erst daran denken irgendetwas in C++ zu machen

wie weit bist du denn?

BlitzChecker

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 20. April 2006, 20:38 »
also, wir sind schon recht weit, aber jetzt wollten wir ne gui machen, und da wollt ich halt wissen, wie man sowas machst. muss man dann für jede grafikkarte nen eigenen treiber proggen?

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 20. April 2006, 21:39 »
Zitat von: BlitzChecker
also, wir sind schon recht weit, aber jetzt wollten wir ne gui machen, und da wollt ich halt wissen, wie man sowas machst. muss man dann für jede grafikkarte nen eigenen treiber proggen?
Eigentlich ja, aber es gibt gewisse Standards wie z.B. VGA und VESA. VGA ist da die einfachere aber auch nur für den Anfang geeignete Metode. Wie kommst du auf Position z? Es gibt nur 2D, sprich x und y. Mal ein ganz kleines Beispiel:

mov ax,0013h ;vga Modus
int 13h ;geht nur wenn man im RM ist
mov ax,A000h
mov es,ax
mov di,y*320+x ;Position wo der pixel gefärbt werden soll
mov al,Farbe
stosb


Mit den Ports musst du vorher die Farben festlegen. An Adresse A000:XXXX befinden sich die Pixel. Wenn du das beherrscht kannst du auch auf VESA umsteigen. Der ist viel besser (16. mio Farben glaube ich, und bis 1280*1024 glaube ich). Dazu musst du aber im PM sein um die Adressen dafür ansprechen zu können (oder im Unrealmode ;) ).

bitmaster
In the Future everyone will need OS-64!!!

BlitzChecker

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 20. April 2006, 22:13 »
Zitat von: bitmaster
Wie kommst du auf Position z?


xyz hab ich nur so geschrieben, ich meinte damit natürlich x und y. es gibt ja auch die farbe xyz nicht  :wink:

aber danke, du hast mich echt weitergebracht. gibts irgendwo ein tut für den vesa-modus?

T0ast3r

  • Gast
Gespeichert
« Antwort #5 am: 21. April 2006, 10:06 »
ein tutorial gibt es, wurde einmal im forum veröffentlicht, ich suche gleich...
am besten du ladest dir die Vesa 3.0 (oder 2.0) spezifikation (eigentlich heißt sie vbe) runter:

dokumente am ftp (über VBE):
http://www.vesa.org/Public/VBE/

direktlink zur VBE 3.0 spezifikation:
http://www.vesa.org/Public/VBE/vbe3.pdf

T0ast3r

  • Gast
Gespeichert
« Antwort #6 am: 21. April 2006, 10:10 »
gefunden, der link zum thread:
http://lowlevel.brainsware.org/forum/viewtopic.php?t=516

leider ist das Tutorial down (habs getestet, sowohl das PDF als auch die HTML Version), ich stells aufm ftp (habs auf der Festplatte) und schreib dan den link hier rein

T0ast3r

  • Gast
Gespeichert
« Antwort #7 am: 21. April 2006, 19:38 »

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 21. April 2006, 20:19 »
die links funktionieren alle nich *heul* bei einem wird nach nem passwort und nem benutzernamen gefragt und bei den anderen komtn404 error: seite nich gefunden...

lordnaikon

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 21. April 2006, 21:23 »
dito

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 21. April 2006, 21:27 »
waaas heißt
Zitat
Dito

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 21. April 2006, 22:00 »
<OT>Dito bedeutet soviel wie: Bin der gleichen Meinung bzw. Man wünscht dadurch jemanden das gleiche was man von ihm gewünscht bekommt.</OT>

Mich würden auch das tut interessieren, muss mich aber meinen Vorrednern anschließen. Keiner der Links funzt.

MfG JensFZ
 

T0ast3r

  • Gast
Gespeichert
« Antwort #12 am: 22. April 2006, 08:41 »
stimmt, tut mir leid
dabei ist's am ftp oben...
jetzt gehts aber
ich glaub es ist daran gelegen dass es im root war...

Vesa.doc

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 22. April 2006, 10:18 »
joh^^ jetzt gehst...

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #14 am: 22. April 2006, 10:48 »
Zitat von: T0ast3r
stimmt, tut mir leid
dabei ist's am ftp oben...
jetzt gehts aber
ich glaub es ist daran gelegen dass es im root war...

Vesa.doc
Nicht schlecht, muss ich echt sagen. Dann bin ich mal auf dein Buch gespannt.
In the Future everyone will need OS-64!!!

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 22. April 2006, 11:04 »
Dieses Tutorial hat doch gar nicht Toaster geschrieben.
Das war doch AnotherStupidCoder. Aber ich muss sagen nicht schlecht.

Aber wie geht das mit den Farben?? Muss man da eine Farb-Palette definieren oder gibt es da ein System???
mov edi, [VbeModePhysBasePtr]
mov ecx, 640 * 480
mov eax, 0xCC
rep stosd
Beim Modus, der im Tut verwendet wird, hat man doch 8Bit Farben, warum wird dann ein DW (stosD) geschrieben????

Gruss
Noooooooooooos

T0ast3r

  • Gast
Gespeichert
« Antwort #16 am: 22. April 2006, 11:19 »
Paletten gibts nur im VGA Modus!
Bei Vesa verwendest du direkt die RGB Farben

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 22. April 2006, 11:20 »
Und wie werden die RGB-Farben im 32Bit Modus codiert???

T0ast3r

  • Gast
Gespeichert
« Antwort #18 am: 22. April 2006, 11:27 »
wie meinst du codiert?
falls dus so meinst wie ich denke dann schreibst du je nachdem den wer hin, du kannst z.B. wählen 8:8:8
das bedeutet du hast je 8 bits für Rot grün und blau pro pixel
aber wenn du wirklich je 8 bits nimmst, musst du 2 implementierungen vorsehen, für ATI und NVidia
denn bei der einen geht NUR 8:8:8, und nicht 8:8:8:0

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 22. April 2006, 11:44 »
Also wenn ich aber 8:8:8 benutze, dann hab ich doch von den 32Bits nur 24 genutzt.

Was ist denn unterschiedlichbei ATI und NVida? Ich habe gemeint VESA sei ein Standart und immer gleich???

Gruss
Noooooooooos

 

Einloggen