ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > CGX-Screen: Ja oder Nein | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
22.01.2007, 20:59 Uhr Ralf27 Posts: 2779 Nutzer |
Gegeben ist ein Pointer auf ein Screen. Wie bekomme ich jetzt raus ob es sich um ein Grafikkartenscreen oder Customscreen handelt? Also, wie geht man da am besten vor? Über die Farbtiefe kann man ja schlecht gehn, weil ja auch AGA 8 Bit kann. Ich hoffe, das ich dann alles in Sachen Datatypes (FriendBitMap ist hier ja der Knackpunkt) Speichersparend hinbekomme. Kurz nochmal am Rande: FriendBitmap TRUE: Problem auf der WB mit Customchips FriendBitmap FALSE: Problem auf der WB mit Grafikkarte Seltsamerweise ist es egal ob TRUE oder FALSE auf privaten Screens... Die Routinen BltBitMap und BltMaskBitMapRastport sind hier meine Problemkinder. Die bringen halt sonst die Daten nicht richtig auf den Bildschirm. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
22.01.2007, 21:07 Uhr Ralf27 Posts: 2779 Nutzer |
Moment: value=GetBitMapAttr(bitmap,BMA_FLAGS) Wenn value=BMF_STANDARD dann Customchip? Läuft das so einfach ab? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
22.01.2007, 21:22 Uhr Ralf27 Posts: 2779 Nutzer |
Mir ist eben aufgefallen das man bei GetBitMapAttr keine Bitmap angeben muß, also NULL übergeben kann, wenn die aktuelle Bitmap vom aktuellen Screen genommen werden soll. Es funktioniert, nur darf man das auch? Es läuft allerdings einwandfrei. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
22.01.2007, 22:01 Uhr thomas Posts: 7718 Nutzer |
@Ralf27:Zitat: Man holt sich mit GetVPModeID den Bildschirmmodus und prüft dann mit IsCyberModeID, ob es sich um einen CGX-Modus handelt. Zitat: Das ist absurd. Wie kommst du auf solche Ideen ? Zitat: Blödsinn. GetBitMapAttr gehört zur graphics.library, die hat keine Ahnung von Screens. Ich hab's mal ausprobiert. Wenn man eine NULL-Bitmap übergibt, gibt's jede Menge Enforcer-Hits. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
22.01.2007, 22:12 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Ok, das werd ich dann einbauen. Zitat:Das war eigentlich keine Idee, sondern ein Programmierfehler meinerseits. Ich wollte die bitmap übergeben, aber leider bitmap falsch geschrieben. Also hatte ich NULL übergeben, aber seltsamerweise lief das ganze. Er erkannte CGX-Screens auf dem CGX-Rechner und Custom wenn ich keinen aktiv hatte.Zitat: Zitat:Dann versteh ich die Möglichkeiten nicht die BMF_FLAGS zurückliefert. In den Autodocs steht ja folgendes:Zitat: code:Ich hab halt "angenommen" (ok, böses Wort), das BMF_Standard = planare Daten im Chipram gleichzusetzen ist. Ich prüfe ja die Bitmap des Screens.BMA_FLAGS returns a longword bitfield describing various attributes which the bitmap may have. Currently defined flags are BMF_DISPLAYABLE, BMF_INTERLEAVED (see AllocBitMap()). The flag BMF_STANDARD returns will be set if the bitmap is represented as planar data in Amiga Chip RAM. Zitat: Ok, dann scheint es der falsche Weg zu sein. Ich hab das unter OS3.9 gemacht. Enforcer hab ich nicht am laufen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
22.01.2007, 22:55 Uhr Ralf27 Posts: 2779 Nutzer |
Ok, ich übergebe gerade die Bitmap richtig, also nix Null. Geht genauso. @Thomas: Ist das ganze auch so komplett falsch? Oder hab ich den Abriss in den AutoDocs wirklich so falsch verstanden? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 10:01 Uhr malte2 Posts: 148 Nutzer |
BMF_STANDARD wird nur gesetzt bei planaren BitMaps, die im ChipRam sind. [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 11:50 Uhr Der_Wanderer Posts: 1229 Nutzer |
@Ralf Was Thomas sagen wollte ist, dass GetBitMapAttr nicht wissen kann, was dein "akuteller" Screen ist, dieses Konzept gibt es in der AmigaOS API nicht. Der Befehl kann aber natürlich herausfinden, um was für eine Bitmap es sich handelt, wenn du ihm eine übergibst. Wenn du NULL übergibst ist es wohl Zufall, was dabei heraus kommt, und du bekommst sicher Probleme mit Enforcer Hits, evtl. Crashes auf anderen Systemen. Mit welchem Basic arbeitest du denn ? Gibt es keinen Type Check? Wenn du Bugs durch Tippfehler machen kannst, dann wirst du nie weit kommen ein größeres Program zu schreiben. Da wirst du zu viele Bugs programmieren die schwer zu finden sind. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 15:34 Uhr Ralf27 Posts: 2779 Nutzer |
@Der_Wanderer: Das das mit Null so nicht ganz richtig sein kann, war mir eigentlich von Anfang an klar. Ich war ja auch überrascht das plausible Werte zurückgekommen sind. Nungut, ich übergeb jetzt immer die richtige Bitmap und ich bekomme jetzt auch immer die richtigen Werte zurück. Wegen der Programmiersprache: Ich benutze MaxonBasic. Mir ist klar das das nichts ganzes und nichts halbes ist. Es geht, irgendwie. Der Code der rauskommt ist nicht gerade schnell, aber wenn man die Libs benutzt, dann kann man fast alles "auslagern" was Speed braucht. Lieber wäre mir, wenn ich C richtig schreiben könnte. Ich hab hier auch ein paar C-Compiler, aber irgendwie komm ich da nicht richtig rein und richtig über ein "Hello World" bin ich auch noch nicht gekommen. Allerdings liebäugle ich auch inzwischen mit PureBasic. Muß ich mir auch mal näher ansehn. Warum ich MaxonBasic benutze und wieso ich programmiere? Weil es Spaß macht. Das ist der Hauptgrund. Proggen soll Spaß machen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 16:28 Uhr Der_Wanderer Posts: 1229 Nutzer |
Ich weiss, ich weiss, Eigenwerbung. Ich möchte auch nicht rumflamen hier. Also verzeiht es mir jetzt schon mal, und nach dem Posting sollte es auch wieder vergessen werden: Bevor du PureBasic benutzt (zmindest wenn es für den Amiga sein soll), dann würde ich dir wirklich zu AB2 raten. Es kompiliert rasend schnell, erzeugt schnellen und sauberen Code (genauso schnell wie C) und hat ein mittlerweile wirklich gutes IDE. Bald kommt AB3. Da sind etwa 2000 "neue" Befehle dabei für "moderne" Programierung, alles mit online-Docu. Evtl. gibts auch Video Tutorials. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 16:49 Uhr MaikG Posts: 5172 Nutzer |
>Wegen der Programmiersprache: >Ich benutze MaxonBasic. Mir ist klar das das nichts ganzes und >nichts halbes ist. Es geht, irgendwie. Der Code der rauskommt ist >nicht gerade schnell, aber wenn man die Libs benutzt, irgendwo hatte ich hier ein Threat DTMF-Erkennung, das hatte ich in MB. Nun wurde gesagt es liegt an MB, hab das ganze in C geschrieben - die Geschwindigkeit war die selbe. Von daher, wenns nicht WOS/OS4 sein muss, hab z.zt. keinen PPC Rechner programmiere ich weiterhin im MB. Ich könnte auch alles in C schreiben, mit ab und zu ein wenig hilfe und das es doppelt so lang dauert - aber warum geht doch alles mit MB. >dann kann man fast alles "auslagern" was Speed braucht. Lieber >wäre mir, wenn ich C richtig schreiben könnte. Ich hab hier auch >ein paar C-Compiler, aber irgendwie komm ich da nicht richtig rein >und richtig über ein "Hello World" bin ich auch noch nicht gekommen. vbcc ist für mich der beste, weil man da auch mal fix aus einem 68k C-Programm eins für WOS machen kann. >Allerdings liebäugle ich auch inzwischen mit PureBasic. Muß ich mir >auch mal näher ansehn. Hab ich schon, da kannst du dann auch gleich C lernen. Das ist scheinbar ein erweitertes Basic, mit mehr befehlen die dann auf die Library gehen. Aber direkte Library verwendung konnte ich nicht finden. Das soll wohl dazu dienen das man ein Amiga Programm direkt auf ein PC Portieren kann. [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 20:05 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Das war mir irgendwie klar das du mich auf AB2 aufmerksam machen möchtest. Leider geht AB2 nicht auf einfachen Classic-Amigas. Dummerweise braucht der Editor dringend CybergraphX und der Editor ist mit dem Compiler ein Ding. Das heißt, nix CybergraphX nix in AB2. Hab hier noch BlitzBasic, was auch auf echten Classic-Amigas ohne Grafikkarte funktioniert. (Die Assign wären auf AB2, wenn ich AB2 nutzen könnte) Irgendjemand hat mir sogar mal auf WinUAE geraten, weil da AB2 "am besten" wäre. Nunja, ... Seit kurzem hab ich wieder ein Rechner in dem eine Grafikkarte ist. Der ist mir vor einiger Zeit mal wegen Festplattencrash stehngeblieben, hatte aber zum Glück noch ein BackUp. Aber seltsamerweise bin ich am liebsten an meinem kleinen A1200. Fragt mich nicht wieso, aber am kleinen ohne(!) Grafikkarte macht es mir am meisten Spaß. Nennt mich irre... -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 20:08 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Zja, MBasic ist wirklich sehr langsam, wenn nicht sogar extrem langsam. Ich hab auch schon in BlitzBasic kleine Programme geschrieben und das waren Welten(!). Zwischen C und MB dürfte das ähnlich sein. Der MB-Compiler ist wirklich recht mies, aber mir macht das Programmieren in dem klassischen Basic einfach Spaß und leider komm ich nicht richtig in C rein . Naja, hab es auch lange nicht mehr versucht. Hab leider auch nicht so viel Zeit. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 21:54 Uhr Der_Wanderer Posts: 1229 Nutzer |
Zitat:Ja, ohne Graka ist schlecht, schon wegen der Auflösung. 1024x768 würde ich als Minimum für AB2 sehen, um alle Funktionen gescheit nutzen zu können. Das Problem mit Cybergfx konnte ich aber nie nachvollziehen. Auf einer nackten OS3.9 Installation sollte es laufen (ist da cgx vielleicht schon dabei ?). Es läuft definitiv auf einem PAL screen auf einem Classic. Zitat:AB3 wird glücklicherweise nicht mehr mit BB2 kollidieren. Der Assign ist da überflüssig. Zitat:Auf WinUAE ist jede 68K Software "am besten". ;-) (ausser Custom Chip abhängigen Spielen natürlich) Ok, evtl. ist Amithlon noch besser. AB2 läuft auf allen Plattformen gut. Zitat:Dann solltest du ja keine Probleme mit AB2 haben. Ich meine, der Thread geht hier um CGX Bitmaps und die Sorgen, die du dir darum machst. Normalerweise sollte die Entwickler Platform mächter sein als die Zielplatform, nicht umgekehrt. Man proggt ja auch nicht auf dem PDA Software für Windows, sondern unter Windows Software für den PDA. Zitat:Nun ja... Also bei Spielen kann ich es verstehen, aus nostalgischen Gründen, und weil sie auf einem "Echten" einfach besser kommen. Aber beim Entwickeln machst du dir nur künstlich das Leben schwer. Ich kann einem 640x256/50Hz Geflacker nichts abgewinnen, wenn es um Text geht. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 23:44 Uhr MaikG Posts: 5172 Nutzer |
>Zja, MBasic ist wirklich sehr langsam, wenn nicht sogar extrem >langsam. Ich hab auch schon in BlitzBasic kleine Programme >geschrieben und das waren Welten(!). Zwischen C und MB dürfte das ähnlich sein. Wie gesagt hab es mit ein und den selben Prog getestet... Auf einem >=040 sollte man bestimmte Compiler Optionen nicht nutzen und die Grafikausgabe auf Graka ist mist. Klar, BB wird vielleicht auch wie dieses AmigaBasic Compiler ggf. etwas optimieren. Im Optimalfalle ists dann schneller, auch bei Optimierungen für >020. Aber das hängt von der Programmierweise und dem Programm ab. Allerdings hat besagter Compiler bei einigen Optionen auch schrott aus dem Prog gemacht. [ - Antworten - Zitieren - Direktlink - ] |
23.01.2007, 23:46 Uhr whose Posts: 2156 Nutzer |
Die eigentliche Frage ist ja geklärt, aber ich wollte auch mal meinen Senf zum Entwicklungssystem geben. Ich benutze recht häufig den WinUAE, schon allein deswegen, weil ich den per Laptop immer mitnehmen kann. Von der Compiliergeschwindigkeit (vbcc, aber auch GCC) her ist der µA1 zwar deutlich besser, aber leider ist das Netzkabel irgendwie oft zu kurz Wenn ich daheim bin, benutze ich aber meistens den µA1, eben wegen der Geschwindigkeit. Und dank vbcc lassen sich damit auch 68K-Programme erzeugen Vom Arbeiten her finde ich das auch wesentlich angenehmer als z.B. meinen Tastatur-1200er mit Blizzard1230. Schon allein wegen der Darstellung. Der_Wanderer hat schon Recht, höhere Auflösung ist da doch etwas praktischer als der z.B. PAL-Darstellung, trotz deren höherem Kultfaktor Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ - Antworten - Zitieren - Direktlink - ] |
24.01.2007, 02:33 Uhr Holger Posts: 8116 Nutzer |
Zitat:Ist das nicht ein wenig pauschalisiert? Ich mein, so Fälle, wo eine neue erschienene Programmversion plötzlich noch gar nicht freigegebene Libraries voraussetzte, hatten wir ja auch schon. Und dann kommen so Programme, wie ein Text-Editor unter Windows, der DirectX10 voraussetzt, oder (reales Beispiel) ein SMS-Editor, der TrueColor voraussetzt. Dafür hat der denn ein schickes Handy um das Eingabefeld gemalt, und das Texteingabefeld ist so wunderschön dem Handy nachempfunden (es kann also nicht ein einziges Zeichen mehr darstellen)... Na ja, wenn es um flimmernde Displays und ultraniedrige Auflösungen geht, hast Du natürlich recht. Und auf nem PDA zu programmieren, ist nur selten sinnvoll. Aber wenn man noch nie wirklich mit syntax- und variable-highlighting gearbeitet hat, sondern nur MBasic mit zweifarb-Oberfläche kennt, wo man schon einen Testlauf braucht, um zu erkennen, dass eine Variable von der Schreibweise nicht mit der ein paar Zeilen darüber übereinstimmt, kann man das halt nicht verstehen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
24.01.2007, 02:38 Uhr Holger Posts: 8116 Nutzer |
Zitat:Jetzt gibt es noch "D" als Alternative Nee, im Ernst, soll nich heißen, dass Du es verwenden sollst, dafür fehlt ja eh noch jeglicher Support. Aber ich will's mir mal anschauen, was ich bisher darüber gelesen habe, klingt sehr vielversprechend. Dafür könnte man vielleicht sogar ein Tool machen, das so einfach wie ein Basic-Editor zu bedienen wäre. Weil, kein Präprozessor, keine Makefiles nötig, ... mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
24.01.2007, 21:12 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat:Nun, das D überspring ich lieber und mach gleich mit E weiter. Das ist ja sogar schon verfügbar! -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > CGX-Screen: Ja oder Nein | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |