DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Optimale Grafikprogrammierung für AGA&CGX | [ - Search - New posts - Register - Login - ] |
-1- 2 | [ - Post reply - ] |
2004-03-10, 22:28 h Ralf27 Posts: 2779 User |
Die meisten meiner Programme sind für AGA und unter Grafikkarte entwender nicht lauffähig oder mit Grafikfehlern. Und genau dieses möchte ich jetzt optimieren das es auf beiden läuft, AGA und Grafikkarte. Dazu jetzt meine Fragen: Wenn ich jetzt z.b. ein Bildpunkt auslesen möchte, wie kann ich das am besten machen das es unter AGA und Grafikkarte genau so funktioniert? Geht auch ReadPixel auf einem CGX-Screen?!? Wenn ich ein Punkt setzen möchte (z.b. mit WritePixel), geht das wahrscheinlich nur mit AGA richtig. Wie schauts unter Grafikkarte aus? Gibt es eine Möglichkeit das es mit beiden läuft? Beispiel: Lese Farbwert vom Bildschirm. Unter AGA wäre es wohl die Farbnummer, unter Grafikkarte müßte es ja der Farbwert R G B sein. Beim Setzen ist es ja ähnlich... Ich weiß, das sind jetzt eigentlich Anfängerfragen... Danke im vorraus! -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-11, 00:27 h Mad_Dog Posts: 1944 User |
Die meisten Grafikfunktionen, wie z.B. die Grafikprimitiven funktionieren sowohl auf dem OCS/ECS/AGA Chipset, als auch unter CGX. Wenn du diese sauber auf einen RastPort anwendest, sollte es eigentlich keine Probleme geben. Die Funktion ReadPixel gibt immer die Nummer eines Stiftes zurück (siehe auch entsprechende Autodocs zur graphics.library). Syntax: penno = ReadPixel(rp, x, y) penno ist die Nummer des Stiftes als LONG, rp ist ein Zeiger auf einen RastPort, x und y sind die Koordinaten des Pixels vom Typ SHORT. Alles weitere findest Du in den Autodocs. Und ja: In meinem C-Kurs kommt das auch irgendwann mal dran. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-11, 08:31 h Ralf27 Posts: 2779 User |
Zitat: ReadPixel benutze ich schon recht lange, aber was mir augefallen ist das es bei einer Grafikkarte einen anderen Wert liefert bzw. das es da nicht richtig funktioniert. Bei einer Grafikkarte ist ReadRGBPixel und WriteRGBPixel ideal. Ich frag mich nur ob ich vorher eine Abfrage machen soll ob Grafikkarte oder nicht:dance3: -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-11, 12:53 h thomas Posts: 7718 User |
Zitat: ReadPixel gibt dir die Pen-Nummer und ReadRGBPixel den RGB-Wert zurück. ReadPixel funktioniert immer, allerdings gibt es nur 256 Pens pro Screen. ReadRGBPixel funktioniert nur auf Screens mit 15/16 oder 24/32 Bit Farbtiefe. Je nachdem, was du brauchst, mußt du halt unterscheiden, ob die Farbtiefe kleiner oder größer 8 Bit ist. Mit GetBitMapAttr(rastport->BitMap,BMA_DEPTH) bekommst du die Farbtiefe heraus. Wenn sie 8 oder kleiner ist, mußt du mit ReadPixel und GetRGB32 arbeiten, bei 16 oder 24 Bit mit ReadRGBPixel. Wenn dir die High- und True-Color-Fähigkeiten der Grafikkarte egal sind, kannst du einfach für AGA programmieren und auf der Grafikkarte testen. Dann funktioniert's überall. Generell solltest du immer darauf achten, daß du vorhandene AllocXXX und FreeXXX Funktionen benutzt (z.B. AllocBitMap und FreeBitMap) und Speicher nicht selber mit AllocMem und FreeMem anforderst. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-03-11, 20:04 h Ralf27 Posts: 2779 User |
Zitat:Danke, es läuft wunderbar! Denn Befehl GetMitMapAttr hätte ich nie dafür "gefunden". Hab eben ein Testprogramm geschrieben und es unter AGA/Grafikkarte getestet und es geht. Zitat:Ich öffne die Fenster unter AGA und Grafikkarte gleich: Mit dem Window-Befehl. Insofern komme ich erst gar nicht an die Bitmap. Das einzige ist wenn ich direkt einen neuen Grafikkartenscreen aufmachen will, dann muß ich das mit den Befehlen der Libs machen. Aber das müßte man glaub ich unter C so oder so. Zitat: -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-11, 20:58 h Ralf27 Posts: 2779 User |
Der Befehl ist genial, genau das habe ich gesucht. Da kann man außerdem unabhängig die Breite,Höhe und die Flags auslesen. Gefällt mir. Was mich jetzt noch interesiert(fällt mir eben so ein): Bei OCS bis AGA gab es die Bitmaps mit Strukturen, etc. Wie sieht es denn bei Grafikkarten aus? (Ich will jetzt da nicht will Basic-Artig rumpoken ). Ich geh mal davon aus das es die gibt. Rein interesenhalber. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-11, 21:17 h Mad_Dog Posts: 1944 User |
Strukturen gibt's überall im AmigaOS. Ich weiß jetzt nicht, wie Du das meinst... Meinst Du diese Sturktur aus graphics/gfx.h? code:struct BitMap { UWORD BytesPerRow; UWORD Rows; UBYTE Flags; UBYTE Depth; UWORD pad; PLANEPTR Planes[8]; }; oder meinst Du die Struktur des RastPort aus graphics/rastport.h ? code:struct RastPort { struct Layer *Layer; struct BitMap *BitMap; UWORD *AreaPtrn; /* ptr to areafill pattern */ struct TmpRas *TmpRas; struct AreaInfo *AreaInfo; struct GelsInfo *GelsInfo; UBYTE Mask; /* write mask for this raster */ BYTE FgPen; /* foreground pen for this raster */ BYTE BgPen; /* background pen */ BYTE AOlPen; /* areafill outline pen */ BYTE DrawMode; /* drawing mode for fill, lines, and text */ BYTE AreaPtSz; /* 2^n words for areafill pattern */ BYTE linpatcnt; /* current line drawing pattern preshift */ BYTE dummy; UWORD Flags; /* miscellaneous control bits */ UWORD LinePtrn; /* 16 bits for textured lines */ WORD cp_x, cp_y; /* current pen position */ UBYTE minterms[8]; WORD PenWidth; WORD PenHeight; struct TextFont *Font; /* current font address */ UBYTE AlgoStyle; /* the algorithmically generated style */ UBYTE TxFlags; /* text specific flags */ UWORD TxHeight; /* text height */ UWORD TxWidth; /* text nominal width */ UWORD TxBaseline; /* text baseline */ WORD TxSpacing; /* text spacing (per character) */ APTR *RP_User; ULONG longreserved[2]; #ifndef GFX_RASTPORT_1_2 UWORD wordreserved[7]; /* used to be a node */ UBYTE reserved[8]; /* for future use */ #endif }; Bei 24 Bit Bitmap-Grafiken (z.B. ein 24 Bit BMP-File) gibt's keine Colortable (Siehe BMP-Loader auf meiner Homepage). -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-11, 21:28 h Ralf27 Posts: 2779 User |
Zitat: Ich hab hier alle Tabellen vom AmigaOS bis 1.3 Nur ich hab hier nix über Grafikkarten oder neue Tabellen über 1.3 PS: Ich hab hier auch (unter anderem) das Buch Amiga Intern. Und jetzt muß ich mal was testen: -- http://www.alternativercomputerclub.de.vu [ Dieser Beitrag wurde von Ralf27 am 11.03.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-03-11, 22:03 h Mad_Dog Posts: 1944 User |
Ich glaube, Du solltest Dir unbedingt die AmigaOS Developer CD zulegen. Dort ist alles beschrieben. Und wie thomas schon geschrieben hat: Auch auf CGX-Screens hast Du nur 256 Pens - falls Du irgendwas mit Pens vorhast. Ansonsten kannst Du wie gesagt die Grafikprimitiven etc. auf CGX-Screens genauso wie auf "normalen" Intuition-Screens benutzen. Nur irgendwelche Copper-Rainbows oder sowas geht nicht, da man dazu die Amiga Custom-Chips braucht. -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 11.03.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-03-11, 22:58 h Ralf27 Posts: 2779 User |
Zitat: Wie ich schon mehrfach geschrieben habe kann ich leider kaum Englisch, sorry. Die CD hab ich hier sogar mehrfach (EBay), wie viele andere CDs. Deswegen muß ich hier Euch ja um Hilfe bitte. Und ich muß tippen das ihr mir wirklich recht gut helft. Hier findet man wenigstens noch die echte, alte Amigagemeinschaft. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-11, 23:46 h Mad_Dog Posts: 1944 User |
Zitat: Welche Version der CD hast Du? Welche Fremdsprache hattest Du in der Schule? Nunja... für mich ist Englisch fast schon selbstverständlich, da ich in der Schule Englisch Leistungskurs hatte. ich achte mittlerweile nicht mehr beim Kauf von Fachliteratur darauf, ob es in Deutsch oder Englisch ist. Englisch wenigstens halbwegs zu verstehen, ist in der Computerwelt schon sehr sinnvoll... -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-12, 00:05 h Ralf27 Posts: 2779 User |
[quote] Original von Mad_Dog: Zitat: Ich weiß nicht welche Versionen das sind. Ich hab inzwischen zwei Schränke voll mit Amigasache (große Schränke). Denn früher war es oft so gewesen das die Leute zu mir gekommen sind mit ihren Sachen und meinte nur das ich das Zeug nehmen könne, oder es kommte zum Sperrmüll... alleine bei diesem Gedanken wurde mir schlecht und ich hab alle Amigasachen entgegengenommen. Und so kommt einiges zusammen, dann noch EBaykäufe (CDs sind dabei, ob ich sie schon 2, 3 oder 4 mal habe). Inzwischen schau ich schon nicht mehr nach was für CDs es sind. Achja, wegen den Sprachen: Damit kannst Du mich jagen! Englisch hatte ich in der Grundschule und selbst in Deutsch war ich nicht gerade gut. Mathe und andere Naturwissenschaftliche Fächer hatte ich als "Leistungsfach". In EDV war ich der Lehrer und der Lehrer der Schüler, da konnte mir kein Lehrer was vor machen. Das ist jetzt bald 15 Jahre her. (Damals war halt 286er top. ) Englisch kann ich somit nur ein wenig. Wenn ich einen englischen Text habe dann versteh ich ihn "in etwar", aber das wars auch schon. Mir ist halt meine Muttersprache lieber. Und jetzt rate mal wieso ich noch an MaxonBasic hänge und mir mit C so schwer tu? Inzwischen kann ich zwar auch schon etwas C lesen und auch etwas C tippen, aber nunja... Ich denk mir mal das ich mit ASM besser zurecht komme als mit C, aber ich übe. Achja, C: Ich muß eigenstehn das ich heute wieder in MaxonBasic geschrieben habe und heute wieder schöne Erfolge erzielt habe. Hab noch nie richig für Grafikkarte programmiert und jetzt brummt MaxonBasic ganz schön auf der Grafikkarte mit denn Befehlen der CGX-Lib. Leider brummt MB nicht mit OpenGL (FP-Register, wahrscheinlich mag er die nicht) und mit dem anderen OpenGL-Clone(Name gerade entfallen) komme ich noch nicht ganz klar. Aber da mach ich auch noch durch, wenn ich Zeit finde. Leider ist das bei mir etwas knapp geworden. Ich fühle mich irgendwie gerade bei MaxonBasic irgendwie "besonderst". Das scheinen wohl auf diesen Planeten wohl nur noch ca. 10 Leute zu benutzen. Jedenfalls habe ich hier im Forum nur noch einen gefunden der das noch benutzt. PS: Ich stelle gerade auf meiner Homepage Stück für Stück meine alten Programme online. Wolken (hab ich heute Grafikartentauglich gemacht) kommt wohl auch bald. Und es werden immer mehr. (z.b. Geländerplaner, der auch in DXF speichert. Zur Zeit in 2D, 3D wird gerade erstellt) PPS: Ein Festplattencrash kann einem ganz schön demotivieren. Bei mir hat das sogar recht lange angehalten. Das sehe ich auch gerade an denn Programmen von mir (z.b. 1991 oder älter...) Gott, bin ich hier gerade am Texten, liegt wohl am guten Bier.. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-12, 09:20 h thomas Posts: 7718 User |
Zitat: Die Strukturen sind noch da, aber du solltest da die Finger von lassen. Bei Grafikkarten werden die Felder anders benutzt. Besonders die Bitplanes sehen ganz anders aus (Chunky). Die CGX-Doku sagt eindeutig, daß man Bitmaps nur mit AllocBitMap/FreeBitMap und GetBitMapAttr anfassen darf. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-03-12, 15:30 h Mad_Dog Posts: 1944 User |
Zitat: Auch die besten CDs nützen Dir nichts, wenn sie bei Dir im Schrank vergammeln. Vielleicht solltest Du mal einen Blick auf die Developer CD riskieren. Zitat: Machst Du den C-Kurs mit? Und wenn ja: Wie gut kommst Du mit? Übrigens gibt's den Kernighan/Ritchie auch auf Deutsch. Zum Thema "Programmiersprachen und Englisch" werd ich Dir mal was verraten: Ich habe mir damals, so im Alter von 15 Jahren auch selbst AMOS Pro beigebracht. Und das Handbuch (ein sehr dicker Schinken) war in Englisch. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-15, 00:22 h Holger Posts: 8116 User |
@Ralf27: Als Java-Programmierer kann ich durchaus verstehen, warum Du Basic angenehmer findest. Man kommt doch im Durchschnitt wesentlich schneller zu einem Ergebnis. Das liegt aber nicht nur an der Programmiersprache C, sondern auch an der AmigaOS API, die für viele einfache Dinge einen viel zu großen Aufwand erfordert. Zum Thema: WritePixel + ReadPixel sollte man niemals in einem produktiven Code benutzen. Schon auf dem AmigaOS ist der Performanceverlust durch die Verwendung dieser Funktionen unglaublich, auf anderen Systemen wird es noch viel schlimmer. Zum Übertragen von Pixeldaten sollte man immer Read/WritePixelArray oder wenigstens -Line benutzen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-03-15, 06:17 h Mad_Dog Posts: 1944 User |
Zitat: Stimmt auch. Allerdings sieht das Verwenden von AmigaOS API-Funktionen in C wesentlich eleganter aus, wie dieses PEEK und POKE in Basic. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-15, 09:53 h Ralf27 Posts: 2779 User |
[quote] Original von Mad_Dog: Zitat: Ich glaub Du unterliegst da einem Mißverständniss: Die Aufrufe der Libs mit Basic ist genau so wie bei C auch. Insofern werden keine PEEK und POKE gebraucht. Schau Dir einfach mal Basic-Codes an die Libs benutzen. Ich hab Dich vor einigen Wochen auch mal gefragt wie man unter C einzelne Speicherstellen bearbeitet, aber leider hab ich bis jetzt noch keine Antwort drauf bekommen. Entweder geht das nicht unter C oder es geht, aber dann wäre es genau so wie bei Basic. Also, gibt es unter C Befehle um einzelne Speicherstellen aufzurufen? PS: Das Beispielskript von mir damals wegene Datatypse war von mir experimentel umgebaut worden damit ich das versteh. Die jetzige Version hat keine Peeks und Poks mehr. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-15, 10:14 h tokai Posts: 1071 User |
Zitat: klar, nur sollte man vorsichtig sein was man da wie verändert. BYTE myarr[1024]; /* nur als Beispiel-Speicherbereich */ BYTE *p = myarr; /* pointer to myarr (Speicherbereich) */ for (i=0; i<1024; i++) { *p = 128; /* setze Speicherstelle auf die p zeigt auf 128 */ p++; /* zeige auf nächste Speicherstelle */ } -- http://www.christianrosentreter.com IRC: #amiganews.de @ARCNET (e.g. de3.arcnet.vapor.com/ port 6667) [ - Answer - Quote - Direct link - ] |
2004-03-15, 10:53 h thomas Posts: 7718 User |
Zitat: #define POKE(adresse,wert) (*((char *)(adresse)) = (wert)) #define PEEK(adresse) (*((char *)(adresse))) Wie schon gesagt, nur um zu zeigen, daß es geht. Benutzen sollte man es nie, auch nicht in Basic. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-03-15, 12:50 h whose Posts: 2156 User |
> BYTE myarr[1024]; /* nur als Beispiel-Speicherbereich */ > BYTE *p = myarr; /* pointer to myarr (Speicherbereich) */ > for (i=0; i<1024; i++) > { > *p = 128; /* setze Speicherstelle auf die p zeigt auf 128 */ > p++; /* zeige auf nächste Speicherstelle */ > } Ermh, das ist nicht Dein Ernst, tokai, oder? Also, nach K&R würde man sowas folgendermaßen schreiben: BYTE myarr[1024]; for(j = 0; j < 1024; i++) { myarr[j] = 128; } oder wahlweise statt myarr[j] = 128; so *(myarr + j) = 128; wenn man schon unbedingt mit Pointer arbeiten will Bring die Jungs doch nicht gleich mit Arrays und Zeigern darauf zum Verzweifeln Wenn man eine bestimmte Speicherstelle mit einem Wert belegen will, sollte man als erstes wissen, WO genau diese Speicherstelle liegt. Nehmen wir mal wieder das berühmte Beispiel des toten Fleisches: gewünschte Speicherstelle: 0xdeadbeef (hexadezimal) In C benötigt man, wie tokai schon richtig bemerkt hat, einen "Zeiger" auf die entsprechende Speicherstelle. Man vereinbart (wer erinnert sich an Pascal? ) also einen solchen Zeiger int *zeiger; /* Man beachte das *!!! */ und belegt diesen mit dem ADRESS-Wert der gewünschten Speicherstelle, also zeiger = 0xdeadbeef; Jetzt kann man über den Zeiger den INHALT der Speicherstelle verändern, nämlich so: *zeiger = 128; (das "*zeiger" nennt sich "Derefenzieren", weil man nicht den Inhalt des Zeigers verändern will, sondern den Inhalt der Speicherstelle, auf die "zeiger" verweist, also referenziert) Um hier gleich Problemen vorzubeugen: Man sollte für AOS generell die Verwendung fester Speicherstellen vermeiden! Alles mögliche wird dynamisch alloziert und verändert daher ständig die Position im Speicher, abgesehen von Adresse 4, die die Exec-Base enthält. Und davon sollte man sowieso die Finger lassen [ Dieser Beitrag wurde von whose am 15.03.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-03-15, 13:29 h tokai Posts: 1071 User |
Zitat: eigentlich schon Weil, es ging mir mehr um die Pointer und weniger um's Array an sich (das war im Beispiel nur als "anzupointender Beispiel-Speicherbereich" gedacht, und muss nicht zwangsläufig ein Array sein ) regards, tokai -- http://www.christianrosentreter.com IRC: #amiganews.de @ARCNET (e.g. de3.arcnet.vapor.com/ port 6667) [ - Answer - Quote - Direct link - ] |
2004-03-15, 14:53 h thomas Posts: 7718 User |
Zitat: Es ging hier darum zu zeigen, wie man Peek und Poke in C realisiert, nicht darum, wie man das schönste C schreibt. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-03-15, 15:09 h Ralf27 Posts: 2779 User |
Hui, jetzt gehts hier aber Rund! Ok, also kann man mit C auch "Poken". Wäre auch der Hammer wenn man das nicht könnte. Mir ist auch klar das man das wilde rumpoken lassen sollte. Poke und Peek kommen bir mir eigentlich nur zum Einsatz wenn ich zum Beispiel eine Tabelle für eine Libsaufruf füllen möchte oder aus so einer Tabelle auslesen möchte. Es kann aber auch vorkommen das ich z.b. die ScreenStruktur Suche und dann steig ich halt über das Window ein und Peekl mich halt dann durch die Win-Struktur zur Screen-Struktur. Hm, geht das eigentlich auch dann unter z.b. MorphOS? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-15, 22:20 h Mad_Dog Posts: 1944 User |
Zitat: Sorry, das habe ich dann wohl übersehen. Zitat: Doch! Was tokai gezeigt hat, ist ein ziemlich geläufiges Beispiel. In meinem C-Kurs bringe ich ja auch sowas ähnliches... Aber in C muß man nicht bei jedem API-Aufruf solche Verrenkungen machen... -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-03-15, 22:44 h Holger Posts: 8116 User |
Zitat:Ich glaube, Du bist Dir nicht darüber im Klaren, daß es eben genau für diese Anwendungsfälle geeignetere Sprachkonstrukte in C gibt. Genau deshalb kann man auch auf peek+poke ähnliche Konstrukte ganz verzichten. Ich bin schon seit etlichen Jahren komplett ohne ausgekommen, kein Wunder, meine bevorzugte Programmiersprache hat ja tatsächlich kein peek+poke.:lach: mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-03-15, 22:54 h Holger Posts: 8116 User |
Zum Thema, warum man das Schreiben und Lesen einzelner Pixel vermeiden sollte, hier ein älteres Posting von mit, daß auf diese Problematik tiefer eingeht. http://www.amiga-news.de/forum/thread.php3?id=9537&start=35&BoardID=7 mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-03-15, 23:00 h Ralf27 Posts: 2779 User |
Zitat: Es gibt einen berühmten Spruch: Viele Wege führen nach Rom. Ich hab mir eben einige Quellcodes von MaxonBasic aus dem Internet angesehn und ich war auch erstaunt wie man sonst noch so an die Daten kommt. Ich bin halt z.b. das Hangeln durch die Strukturen aus mit AmigaBasic gewöhnt. Aber das es auch anderst geht, also ganz ohne diese Peek und Poke, sehe ich an diesen Quellcodes. Es hat also mehr was mit dem Progger zu tun als mit der Sprache. PS: Mir ist klar das MaxonBasic eine tote Sprache ist die vielleicht noch 10 Leute auf diesem Planeten benutzen (wenn es hoch kommt). Aber ganz so mies ist sie nun auch wieder nicht. Ich bin diese gewohnt und ich komme noch zu meinem Ziel. :-) Aber um C kommt man nicht rum, aber das ist ja schon seit Jahren bekannt. -- http://www.alternativercomputerclub.de.vu [ Dieser Beitrag wurde von Ralf27 am 15.03.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-03-15, 23:08 h Ralf27 Posts: 2779 User |
Zitat: Ja, dieses Posting. Aber dazu wolle ich eigentlich auch noch was schreiben: Du hast geschrieben das moderne Architekturen Probleme haben mit einzelnen Punkte setzen oder lesen. Probleme in der Hinsicht das es nicht gerade effektiv ist. Und in der Hinsicht muß ich Dir recht geben. Mein Beispielprogramm lief mit genau diesem setzen von einzelnen Punkten auf einem 2,4GHz-Pentium unter VBasic. Ich war da sosehr erstaunt das es so langsam lief, langsamer als auf einem Amiga unter AGA mit MaxonBasic. Es hieß dann das AGA logischerweiße schneller ist, weil es eine andere Architektur hat (Treiber, etc.) Aber mit einem Amiga und CGX läuft es nochmal viel schneller... Auf den Punkt gebracht: VBasic ist wohl wirklich der Hammer in Sachen langsam. (Ok, ich hab es nur mit Punktesetzen getestet). Ich dachte wirklich es wäre schneller, vorallem auf einem 2,4GHz-Rechner. Ich hab jetzt keinen verleich wie es ist wenn man einen ganzen Array setzt. Wäre doch mal interesant zu testen, oder? Also das gleiche Programm unter AGA, CGX (MaxonBasic) und Win (VBasic). Wie würden dann die Wetten stehn? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-15, 23:12 h Ralf27 Posts: 2779 User |
Achja, wegen ganzen Arrays setzen: Ich werd mir mal ein kleines ASM-Prog schreiben das aus einer Integer-Feld von MaxonBasic jedes zweite Byte übergeht. Somit kann ich es dann mit den bekannten Array-Befehlen aus graphics oder cybergraphics gleich direkt einen ganzen Array voll machen. Bin auch mal gespannt wie sich die Geschwindigkeit erhöht. Werd ich irgendwann noch mal machen. Erste Tests liefen schon -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2004-03-15, 23:46 h whose Posts: 2156 User |
Zitat: Eijo, das war mir klar. Aber warum schreibt er das dann nicht gleich und bringt statt dessen ein Beispiel mit Array und nem Zeiger darauf? Ich glaub weniger, daß ein Basic-Programmierer auf Anhieb versteht, was damit gemeint ist. Gewöhnt Euch doch einfach mal an, die Sache kurz, knapp und einfach zu erklären, statt mit lustigen Tricks zu prahlen Grüße [ - Answer - Quote - Direct link - ] |
-1- 2 | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Optimale Grafikprogrammierung für AGA&CGX | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |