xor verknüpfung in grafikbefehle
Übersicht

fliesenklausBetreff: xor verknüpfung in grafikbefehle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo auch
schreibe gern mit alten turbo 6.0, aber auch mit delphi und lazarus. turbo geht nicht mehr richtig,weil die bgi treiber mit neuen karten nicht mehr zurechtkommen.und für kleine sachen ist delphi zu aufwendig. bin schon ein bisschen begeistert und habe mir eben blitz3d bestellt. aber eines stört mich gewaltig : habe bis jetzt keinen befehl gefunden,wo ich die point routinen mit and oder xor verknüpfen kann,auch mit poke nicht. mir ist sonst keine sprache bekannt,die das nicht kann. oder gibt es einen verborgenen trick ? für eine normale gummibandlinie ist das die einfachste geschichte. ansonsten muss man immer wieder hin und her kopieren. das ist bis jetzt eigentlich das einzigste,was ich zu meckern habe. die geschwindigkeit und compilerzeit ist wirklich veblüffend. da kommt sonst nur turbopascal ran unter dos. grüsse an alle und die ich nicht kenne. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann erstmal ein herzliches Willkommen im Forum =)
Was genau meinst du denn mit Point Routinen? Mir ist bisher kein Basic-Dialekt bekannt, der derartiges beinhaltet, oder ich komm einfach gerade nicht auf das, was du meinst ![]() Grüße, StepTiger. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
fliesenklaus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo
habe mich ein bisschen falsch ausgedrückt. mit point meinte ich die einzelnen punkte (dot,point,plot,pixel). wird in jeder sprache anders bezeichnet. bevor der punkt in den speicher geschrieben wird,kann man normalerweise eine verknüpfung mit logischen operatoren durchführen lassen. der effekt ist, das der punkt mit der farbe ,die man im befehl angibt, nur dann original ist ,wenn die farbe 0 ist. (schwarz). existiert ein punkt mit einer andere farbe (nicht schwarz (0,0,0),wird mit xor oder and der farbwert addiert und es entsteht eine andere farbe. wenn man jetzt dasselbe nochmal macht (mit gleichen farbwert),dann wird ursprungsfarbe wieder hergestellt. man kann damit eine gummibandlinie erstellen. wenn der curser über ein bild fährt braucht man den inhalt des bildes nicht zwischenspeichern. durch das zweimalige zeichnen (wenn der curser weiterbewegt wird) mit xor wird das ursprüngliche bild wieder automatisch hergestellt. das ging sogar beim alten c64. turbo pascal,delphi (canvas). da es bei canvas geht,was ja auch directx benutzt,ist es auf jeden fall möglich. das hat mit der sprache nix zu tun. wenn ich direct mit mem in den speicher schreibe geht das auch. gruss klaus |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst auch so nix zwischenspeichern- Blitzbasic arbeitet mit 2 Buffern und ermöglicht so ein Vorzeichnen. Auch werden die Images beim Einzeichnen nicht verändert, sondern in jeder Loop neu gezeichnet. Xor ist also unnötig, Du zeichnest dein image, dann per line oder Rect dein Band davor und das in jedem Durchlauf neu.
EDIT: Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() ;Der nichtsichtbare Schirm wird bezeichnet Repeat ;Schleife Cls ;Bild löschen Color 130,230,130 ;Farbe für die Box Rect 20,20, 200,250 ;die Box Color 255,255,255 ;Farbe für die linie Line 0,0,MouseX(),MouseY() ; die linie Flip ;stelle das Gezeichnete dar Until KeyHit(1) ;bis Esc. gedrückt wird Als kleines Beispiel - dort wo die Box gezeichnet wird kann natürlich auch ein x-beliebiges Image stehen. Mit Xor rumzufummeln wäre auf modernen 3D-Karten wesentlich langsamer als einfach das gesamte Bild neu blitten zu lassen. Da hat sich seit dem Cevi ein bissel was getan, wo man noch möglichst sparsam mit Neuzeichnereien umgehen musste. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
fliesenklaus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ging ja schnell,klasse.
also, ich habe ein bild im backbuffer. dann flip. jetzt male ich mit line meine linie. die puffer werden doch aber nur vertauscht. das hintere bild ist jetzt vorne. mit linie. das jetzt hintere bild ist leer.das heisst doch,das ich im hinteren bild alles ohne linie nochmal zeichnen muss. das war nach meinen ersten versuchen jedenfalls das ergebnis. ich hab das jetzt erstmal so gelöst,das ich ,bevor die linie gezeichnet wird, über grabimage zwischenspeichere. ich muss jetzt auch mal zusehen,das ich die altlasten aus meinen kleinen hirn kriege.wenn man schon mehrere sprachen halbwegs kann,ist das sehr schwer nochmal wieder umzudenken.diese kleinigkeiten machen ein dann fertig. also nix für ungut,wenn ich mal was dureinanderbringe. gruss klaus |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
s.o. im Edit:
Du malst alles auf den backbuffer, in der Richtigen Reihenfolge (Bild, dann Linie). dann flip. Dann folgt schon der nächste Durchgang, auf neu gelöschtem buffer. Wenn sich irgendwelche Werte geändert haben, Werden die einfach übernommen, siehe mein Beispiel. Wenn etwas nicht mehr benötigt wird, zeichnet man es einfach nicht mehr. Beispiel: Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() ;Der nichtsichtbare Schirm wird bezeichnet Repeat ;Schleife Cls ;Bild löschen key = GetKey() If key = 49 Then ;wenn 1 gedrückt wurde: drawit = 1- drawit ;schalte die linie an oder aus EndIf Color 130,230,130 ;Farbe für die Box Rect 20,20, 200,250 ;die Box If drawit = True Then ;wenn gezeichnet werden soll Color 255,255,255 ;Farbe für die linie Line 0,0,MouseX(),MouseY() ; die linie EndIf Flip ;stelle das Gezeichnete dar Until KeyHit(1) ;bis Esc gedrückt wird |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
fliesenklaus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
geht einwandfrei .
vielen danke erstmal. ich hab blitz3d bestellt ,aber noch nicht bezahlt. kann man in dem programm auch die gui einbinden ? oder geht das nur in blitzmax ? ich hätte schon gern alle 3 arten zur verfügung ( 2d ,3d,gui). kann dann ja noch bestellung ändern. die frage noch und ich hör auf zu nerven. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist nicht genervt.
Du kannst unter B3D eine eigene GUI einbinden, es gibt sicherlich so manchen Ansatz dazu. Ist halt ein Stückerl arbeit. Unter B+ hast Du schon ein GUI mit dabei, allerdings fehlt da 3D. (Allerdings gibt es wohl auch da ein Mod für, wenn ich nicht irre) Bmax ist 'erwachsener' als die andern beiden. Es gibt eine (bugbehaftete) GUI zum einbinden, (noch) kein 3D-Modul vom Hersteller, das ist in Arbeit. Es gibt allerdings inoffizielle 3d-Module dazu. BMax ist objekt-orientiert und plattformüergreifend. Es ist schwer eine Empfehlung zu geben, ich mag Bmax am meisten, allerdings weiss ich nicht ob ich das vor 4 Jahren genau so gesagt hätte. Teste doch einfach die Demos auf www.blitzbasic.com |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
fliesenklaus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
na gut
dann hole ich mir erstmal 3d,denn das ist schon wichtig für mich. die button und scrollbars muss ich dann halt selber bauen. musste ich in turbopascal auch machen, dann hat man wenigstens ziele. in basic mach ich das erste mal was,seit gestern abend. meine geliebte turtle grafik ist schon fertig. macht unwahrschlich spass,weil unkompliziert,gegenüber delphi. gut .delphi oder lazarus ist mächtig im umfang und leistung,aber viel arbeit. ein bisschen fehlt mir die objectorientierte geschichte,aber damit komm ich klar. vielleicht hab deswegen die einfache geschichte von eben nicht gleich kapiert,weil es so einfach ist. gruss klaus |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Devils-Child hat mal eine Gui geproggt. Devil-Engines GUI
Gibt auf der Seite ausserdem eine Physik-Engine, eine Shadow-Engine, für Dynamische Shadows und eine Partikel Engine für Partikel-Explosionen. |
||
fliesenklaus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist es
danke für den tip. habe es gleich in blitz2d demo eigebunden. wird wieder eine lange nacht. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group