amiga-news 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: 7716
Nutzer
@Ralf27:
Zitat:
Gegeben ist ein Pointer auf ein Screen. Wie bekomme ich jetzt raus ob es sich um ein Grafikkartenscreen oder Customscreen handelt?

Man holt sich mit GetVPModeID den Bildschirmmodus und prüft dann mit IsCyberModeID, ob es sich um einen CGX-Modus handelt.

Zitat:
Mir ist eben aufgefallen das man bei GetBitMapAttr keine Bitmap angeben muß, also NULL übergeben kann

Das ist absurd. Wie kommst du auf solche Ideen ?

Zitat:
wenn die aktuelle Bitmap vom aktuellen Screen genommen werden soll.

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:
Original von thomas:
@Ralf27:
Zitat:
Gegeben ist ein Pointer auf ein Screen. Wie bekomme ich jetzt raus ob es sich um ein Grafikkartenscreen oder Customscreen handelt?

Man holt sich mit GetVPModeID den Bildschirmmodus und prüft dann mit IsCyberModeID, ob es sich um einen CGX-Modus handelt.

Ok, das werd ich dann einbauen.
Zitat:
Zitat:
Mir ist eben aufgefallen das man bei GetBitMapAttr keine Bitmap angeben muß, also NULL übergeben kann

Das ist absurd. Wie kommst du auf solche Ideen ?

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:
wenn die aktuelle Bitmap vom aktuellen Screen genommen werden soll.

Blödsinn. GetBitMapAttr gehört zur graphics.library, die hat keine Ahnung von Screens.

Dann versteh ich die Möglichkeiten nicht die BMF_FLAGS zurückliefert. In den Autodocs steht ja folgendes:
code:
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.

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.
Zitat:
Ich hab's mal ausprobiert. Wenn man eine NULL-Bitmap übergibt, gibt's jede Menge Enforcer-Hits.

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:
Original von Der_Wanderer:
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.


Das war mir irgendwie klar das du mich auf AB2 aufmerksam machen möchtest. :D

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. I-)
(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... :lach: :P :rotate:
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

23.01.2007, 20:08 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von MaikG:
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.


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ß :D 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:
Original von Ralf27:
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. ;(

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:
Hab hier noch BlitzBasic, was auch auf echten Classic-Amigas ohne Grafikkarte funktioniert. I-)
(Die Assign wären auf AB2, wenn ich AB2 nutzen könnte)

AB3 wird glücklicherweise nicht mehr mit BB2 kollidieren.
Der Assign ist da überflüssig.

Zitat:
Irgendjemand hat mir sogar mal auf WinUAE geraten, weil da AB2 "am besten" wäre. Nunja, ...
Auf WinUAE ist jede 68K Software "am besten". ;-)
(ausser Custom Chip abhängigen Spielen natürlich)
Ok, evtl. ist Amithlon noch besser. 8)
AB2 läuft auf allen Plattformen gut.

Zitat:
Seit kurzem hab ich wieder ein Rechner in dem eine Grafikkarte ist.
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:
Fragt mich nicht wieso, aber am kleinen ohne(!) Grafikkarte macht es mir am meisten Spaß. Nennt mich irre... :lach: :P :rotate:
Nun ja... :rotate:

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 :lach:

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 :D

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

24.01.2007, 02:33 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Der_Wanderer:
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.

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:
Original von Ralf27:
Der MB-Compiler ist wirklich recht mies, aber mir macht das Programmieren in dem klassischen Basic einfach Spaß :D und leider komm ich nicht richtig in C rein ;( . Naja, hab es auch lange nicht mehr versucht. Hab leider auch nicht so viel Zeit.

Jetzt gibt es noch "D" als Alternative :D

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:
Original von Holger:
Jetzt gibt es noch "D" als Alternative :D

Nun, das D überspring ich lieber und mach gleich mit E weiter. :lach: :D Das ist ja sogar schon verfügbar! :D :D :smokin:
--
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.
.