![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Abfrage ob Screen >8bit | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
07.08.2002, 09:35 Uhr tokai Posts: 1071 Nutzer |
Hallo, sicherlich dumme Frage, aber wie kann ich abfragen ob die Workbenchscreentiefe grösser als 8bit ist? struct Screen *testscr = LockPubScreen("Workbench"); und dann? Die Screenstruktur an sich liefert keinen Depth- Wert zurück. Ich muss sicherlich über die VisualInfo gehen... aber wo? Sicherlich könnte ich das auch selbst herausfinden, aber ich verzettle mich immer in den AmigaGUIDE RKRMs ![]() Thanks for help! tokai [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 10:48 Uhr gni Posts: 1106 Nutzer |
@tokai: >wie kann ich abfragen ob die Workbenchscreentiefe grösser als 8bit ist? if (V39) GetBitMapAttr(scr->RastPort.BitMap,BMA_DEPTH); else scr->RastPort.BitMap->Depth [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 11:24 Uhr thomas Posts: 7721 Nutzer |
Du meinst natürlich "V39 oder höher". Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 11:52 Uhr gni Posts: 1106 Nutzer |
@thomas: > Du meinst natürlich "V39 oder höher". int V39 = (SysBase->LibNode.lib_Version >= 39); [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 12:18 Uhr tokai Posts: 1071 Nutzer |
oh... über die Bitmap... auf die Idee bin ich dummerweise nicht gekommen... dabei ist das so naheliegend. Das hilft weiter! Danke! :) [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 13:44 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Ich weiss nicht, ob dass wirklich über die BitMap struktur geht??, ich dachte ich hätte das einmal ausgetestet und maximal 8 erhalten, aber eine vierfach breitere BitMap. Ich denke man sollte schon zu GetBitmapAttr() greifen. gruss [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 15:23 Uhr tokai Posts: 1071 Nutzer |
Zitat: hätte ich sowieso gemacht.... Programm soll eh' erst ab 3.x laufen. ![]() bye, tokai. [ - Antworten - Zitieren - Direktlink - ] |
07.08.2002, 17:04 Uhr AchimStegemann Posts: 112 Nutzer |
[quote] Original von tokai: Zitat: Aber auschließlich!!;) Seit OS 3.1 ist es eh verboten (!) Bitmap-Parameter direkt aus der Bitmap-Struktur zu lesen, weil viele Grafikkarten die Bitmap-Struktur in veränderter Form verwalten. Die alten OCS/ECS-Zeiten sind halt vorbei ![]() Gruß Achim [ - Antworten - Zitieren - Direktlink - ] |
08.08.2002, 08:42 Uhr tokai Posts: 1071 Nutzer |
Ich habe es gestern abend ausprobiert. Die BitMap-Struktur liefert maximal 8 zurück, von daher ist dieser Weg eh' zwecklos. Dumm wäre nur gewesen, wenn man das nicht gemerkt hätte und das wie folgt abfragen würde: if(screendepth<15bit) { Exit(); } ![]() bye, tokai [ - Antworten - Zitieren - Direktlink - ] |
08.08.2002, 09:29 Uhr thomas Posts: 7721 Nutzer |
Du weißt, daß du Exit() niemals benutzen darfst (außer vielleicht in Assembler) ? Exit() springt sofort ins DOS zurück, ohne Resourcen freizugeben, die von der C-Runtime allokiert wurden (Libraries, Speicher für argv[], etc.). Nimm lieber exit(), das ist dafür gedacht. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Antworten - Zitieren - Direktlink - ] |
08.08.2002, 10:30 Uhr tokai Posts: 1071 Nutzer |
Zitat: Im Beispiel wollte ich nur die Programmbeendigung an sich verdeutlichen... im Normalfall beenden sich meine Programme immer mit einem return(RETURN_OK); in main(). ![]() trotzdem danke für den Tipp! Da fällt mir gleich noch eine Frage ein: Unter welchen Umständen verwendet man die Fehlercodes: RETURN_WARN (5), RETURN_ERROR (10) oder RETURN_FAIL (20). Auf der Developer-CD habe ich dafür noch keine Erläuterung gefunden. Ich verwende das immer ca. folgendermassen (sehr vereinfacht) : if(!sehr wichtig) /* z.B. Intuition o.a. Libraries */ RETURN_FAIL; if(!wichtig) /* z.B. Fensteröffnen etc. */ RETURN_ERROR; if(!weniger wichtig) /* z.B. file mit bitmapdaten nicht gefunden o.ä. */ RETURN_WARN; code... RETURN_OK; bye, tokai [ - Antworten - Zitieren - Direktlink - ] |
08.08.2002, 11:47 Uhr thomas Posts: 7721 Nutzer |
Das müßte im AmigaDOS-Manual stehen, denn das interressiert die "normalen Benutzer" auch (für Shell-Skripte). Für die meisten Programme reicht 0 = hat geklappt, 20 = hat nicht geklappt (bricht das Skript ab). 5 ist für IF-Verzweigungen in Skripten (z.B. Datei für Delete existiert nicht oder "Version exec.library 40" und OS ist älter als 3.1). Wofür 10 ist, weiß ich nicht auswendig. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Antworten - Zitieren - Direktlink - ] |
08.08.2002, 12:29 Uhr tokai Posts: 1071 Nutzer |
Stimmt. Daran hatte ich gar nicht gedacht. [ - Antworten - Zitieren - Direktlink - ] |
11.08.2002, 20:39 Uhr Holger Posts: 8116 Nutzer |
Zitat:Da Du die BitMap-Struktur nur in Versionen vor OS3.x direkt auslesen darfst, Grafikkarten-Treiber mit BitMap-Tiefen >8 aber OS3.x vorraussetzen, gibt es eigentlich überhaupt kein Problem. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Abfrage ob Screen >8bit | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |