Hallo, ich suche ein Beispiel in XPia/Asm , wo man zum Beispiel die Befehle von Profan mit benutzen kann : Line x,y - x1,y1 zb usw. Evtl das man sogar die Register mit benutzen kann.
mfg
Hallo, ich suche ein Beispiel in XPia/Asm , wo man zum Beispiel die Befehle von Profan mit benutzen kann : Line x,y - x1,y1 zb usw. Evtl das man sogar die Register mit benutzen kann.
mfg
Also ich programmier in Xprofan, und nur zeitkritisches löse ich in Assembler. Dir schwebt das umgekehrte vor, oder hab ich das falsch verstanden? Der Line-Befehl in Profan wird vermutlich auch nur der bekannte Algorithmus von Bresenham http://de.wikipedia.org/wiki/Bresenham-Algorithmus sein.
Gruß
Du kannst jederzeit die GDI-API benutzen: GDI Functions
Was du in dem Fall benötigst, ist LineTo(). Ein fertiges Minimal-Beispiel hab ich jetzt aber nicht parat.
Wenn du Bresenham berechnen willst, ist die API aber nicht geeignet...
Zitat von p. specht;680913Der Line-Befehl in Profan wird vermutlich auch nur der bekannte Algorithmus von Bresenham Bresenham-Algorithmus ? Wikipedia sein.
Nein, XProfan benutzt natürlich die Windows-API. (Und wie Windows bzw. die Grafiktreiber das dann machen, ist nicht dokumentiert.)
Gruß
Roland
Mir geht es um den Wissensdrang, wie ich so etwas (Profanbefehle in Xpia mit reinsetzen) verwirklichen kann.
Beisst euch nicht an den Line-befehl fest, es geht mir um einen Grundsatzfrage.
Ein Beispiel um einen Profanbefehl zwischen Xpia/Asm setzen.
Was muss beachtet werden usw.
Ich möchte jetzt nicht über den Sinn oder Unsinn diskutieren.
Danke.
mfg
Nein, XProfan benutzt natürlich die Windows-API. (Und wie Windows bzw. die Grafiktreiber das dann machen, ist nicht dokumentiert.)
auf jedenfall nicht schnell und optimal......
Erstmal macht das mitunter auf jeden Fall Sinn, ich selber benutze die GDI in der ProSpeed z.B. sehr intensiv.
Voraussetzung für die GDI ist immer das Vorhandensein eines HDCs und einer daran gekoppelten Bitmap. Der HDCs von XProfans Hauptfenster ist ja %HDC (da muss man jedoch Abstriche machen, XProfan macht Manipulationen an seinem HDC gerne mal wieder rückgängig).
Mit SelectObject() kannst du einem HDC bestimmte Attribute zuweisen, z.B. Bitmap, Font, Pen, Brush usw. Für eine Linie benötigts du mindestens einen HDC mit Bitmap, einen Pen und die passende Farbe muss eingestellt sein.
In der Win32.hlp und bei MSDN kannst du dich aber noch ausführlicher über die GDI informieren.
Hier mal ein Stückchen Code:
invoke GetDC,0
mov prehdc,eax
invoke CreateCompatibleBitmap,eax,640,480
mov bitmap,eax
invoke CreateCompatibleDC,prehdc
mov hdc,eax
invoke SelectObject,hdc,bitmap
invoke GetSysColorBrush,COLOR_BTNFACE
mov brush,eax
invoke SelectObject,hdc,brush
mov oldbrush,eax
lea edx,unwichtig
mov eax,0
mov [edx],eax
mov [edx+4],eax
mov eax,9
mov [edx+8],eax
mov [edx+12],eax
invoke FillRect,hdc,addr unwichtig,brush
invoke SelectObject,hdc,oldbrush
invoke DeleteDC,hdc
invoke DeleteObject,bitmap
invoke ReleaseDC,0,prehdc
Alles anzeigen
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!