DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Abfrage ob Screen >8bit | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-08-07, 09:35 h tokai Posts: 1071 User |
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 [ - Answer - Quote - Direct link - ] |
2002-08-07, 10:48 h gni Posts: 1106 User |
@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 [ - Answer - Quote - Direct link - ] |
2002-08-07, 11:24 h thomas Posts: 7718 User |
Du meinst natürlich "V39 oder höher". Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2002-08-07, 11:52 h gni Posts: 1106 User |
@thomas: > Du meinst natürlich "V39 oder höher". int V39 = (SysBase->LibNode.lib_Version >= 39); [ - Answer - Quote - Direct link - ] |
2002-08-07, 12:18 h tokai Posts: 1071 User |
oh... über die Bitmap... auf die Idee bin ich dummerweise nicht gekommen... dabei ist das so naheliegend. Das hilft weiter! Danke! :) [ - Answer - Quote - Direct link - ] |
2002-08-07, 13:44 h DariusBrewka Posts: 899 [Banned user] |
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 [ - Answer - Quote - Direct link - ] |
2002-08-07, 15:23 h tokai Posts: 1071 User |
Zitat: hätte ich sowieso gemacht.... Programm soll eh' erst ab 3.x laufen. bye, tokai. [ - Answer - Quote - Direct link - ] |
2002-08-07, 17:04 h AchimStegemann Posts: 112 User |
[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 [ - Answer - Quote - Direct link - ] |
2002-08-08, 08:42 h tokai Posts: 1071 User |
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 [ - Answer - Quote - Direct link - ] |
2002-08-08, 09:29 h thomas Posts: 7718 User |
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/ [ - Answer - Quote - Direct link - ] |
2002-08-08, 10:30 h tokai Posts: 1071 User |
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 [ - Answer - Quote - Direct link - ] |
2002-08-08, 11:47 h thomas Posts: 7718 User |
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/ [ - Answer - Quote - Direct link - ] |
2002-08-08, 12:29 h tokai Posts: 1071 User |
Stimmt. Daran hatte ich gar nicht gedacht. [ - Answer - Quote - Direct link - ] |
2002-08-11, 20:39 h Holger Posts: 8116 User |
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. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Abfrage ob Screen >8bit | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |