![]() |
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: 7721 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: 7721 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: 7721 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-2025 by amiga-news.de - all rights reserved. |
![]() |