DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Datatypes: Farben festlegen lassen | [ - Search - New posts - Register - Login - ] |
1 2 -3- | [ - Post reply - ] |
2007-01-06, 20:14 h NoImag Posts: 1050 User |
@ Ralf27: Ich habe in Deinem Code keinen Fehler finden können, aber wenn es tatsächlich so ist, dass nicht alle Datatypes alle Informationen zur Verfügung stellen, dann liegt es ja auch nicht an Deinem Code. Zitat: Ich habe bei mir ObtainPen() mal verschiedenen Situationen unterworfen. Danach sieht es so aus, als ob man mit ObtainPen() ausschließlich freie Pens allozieren kann, man also keinen bereits shared allozierten Pen nochmal shared allozieren kann. ObtainPen() ist damit für Deine Anwendung nicht geeignet. Leider ist auch ObtainBestPen() für Deinen Zweck ungeeignet, weil bei ObtainBestPen() nicht sichergestellt ist, dass Du den richtigen Pen alloziert bekommst. Die einzige Möglichkeit, das Datatype freizugeben und sicherzustellen, dass kein anderes Programm Dir die Farben kaputt macht, ist damit ein eigener privater Screen. Zitat: Du sollst es ja auch nicht selbst machen. Zitat: Wenn sonst niemand hier weiß, was bei <V43 passiert, dann musst Du das ausprobieren. Wenn es mit <V43 nicht geht, dann musst Du entweder V43 voraussetzen oder bei <V43 einen eigenen Screen erzwingen und die Bitmap zwischenspeichern, sofern Du die Doppelbelegung nicht akzeptieren möchtest. Zitat: Ich würde erstmal keinen Grund sehen, weshalb Du Dich darum kümmern müsstet. Oder liest Du direkt die Bitmap aus (ohne graphics.library)? Tschüß [ - Answer - Quote - Direct link - ] |
2007-01-06, 20:29 h Ralf27 Posts: 2779 User |
@NoImage: Also, die Pens sind wirklich so ne Sache beim Amiga. Somit ist es also gar nicht möglich die Pens zu sichern und das Datatype freizugeben. Wenn ich jetzt die Bilder lade, dann brauch die die Datatypes auch nicht mehr freizugeben, da ich jetzt FriendlyBitmap auf False habe, weil sonst z.b. BltMaskBitMapRastport Datenmüll produziert. Aber bei Grafikkartenusern dürfte das ganze relativ langsam sein, da ja laufend alles vor dem Blitten konnvertiert werden muß. Hm... Oder, ich muß mal nachsehn ob Grafikkarte vorhanden ist und das nochmal unterscheiden: also nix Grafikkarte=FriendlyBitmap FALSE und wenn eine da ist, dann FriendlyBitmap TRUE in der hoffnung das es dann geht und die Betriebsystemfunktion BltMaskBitMapRastport auch richtig macht. Ist alles nur eine Vermutung, kann ich hier mangels Grafikkarte nicht testen. Ich weis nur das mit OS3.9 unter AGA mit FriendlyBitMap und BltMaskBitMapRastport Datenmüll bekomme. > Wenn sonst niemand hier weiß, was bei <V43 passiert, dann musst Du > das ausprobieren. Wenn es mit <V43 nicht geht, dann musst Du > entweder V43 voraussetzen oder bei <V43 einen eigenen Screen > erzwingen und die Bitmap zwischenspeichern, sofern Du die > Doppelbelegung nicht akzeptieren möchtest. zja, es ist nur die Frage ob bis V43 immer FriendBitMap=FALSE war. Wenn es so ist, dann läuft es ja. Ich hab jetzt auch noch PMODE42 angegeben. Hm, Datatypes... > Ich würde erstmal keinen Grund sehen, weshalb Du Dich darum kümmern > müsstet. Oder liest Du direkt die Bitmap aus (ohne > graphics.library)? Ich fass die Daten nicht direkt an, nur mit BltMaskBitMapRastport und BltBitMap, das wars. Ok, dann auch noch GetBitMapAttr. [/quote] -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2007-01-21, 18:53 h Ralf27 Posts: 2779 User |
Zum verrückt werden mit den Datatypes. Das verhalten derselben .... arg. Also, jenachdem wo ich die Bilder aufmache (WB AGA, Screen AGA, WB CGX oder Screen CGX) verhalten sich die Dinger unterschiedlich. Ich wollte ja Speicher sparen, also hab ich beim öffnen der Bilder via Datatype noch folgendes dazugegeben: DTA_GroupID&, GID_PICTURE&, PDTA_DestMode&, PMODE42&, PDTA_FreeSourceBitMap&, TRUE&, PDTA_UseFriendBitMap&, FALSE&, PDTA_Remap&, TRUE&, PDTA_Screen&, scr&, So, auf der WB mit CGX läuft es nur wenn PDTA_UseFriendBitMap TRUE& ist, aber auf der WB mit AGA laufen einige nicht, die aber dann auf einem eigenen Screeen mit AGA laufen. Himmel, was geht hier ab? Vermutlich muß ich doch wieder die Speicherfressende Methode wählen, also das Bild laden und gleich nochmal ein Speicherbereich mit AllocBitMap reservieren und das Bild doppelte halten. Vorher war es ja dreifach(!) drin, aber dank PDTA_FreeSourceBitMap konnte ich etwas Speicher sparen. Ich benutze nur BltBitMap und BltMaskBitMapRastport für die Bilddaten, sonst nix. Aber wohl gerade das mit der Maske ist wohl das Problem... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2007-01-21, 19:44 h Ralf27 Posts: 2779 User |
Also, ich kann wohl FriendBitMap immer auf False lassen, außer wenn ich die Datatype auf der WB mit CGX benutze, dann muß ich auf True schalten, da sonst die Grafik Falschfarben hat. Ok. Aber was mich wundert, wieso läuft es mit FriendBitMap False auf einem CGX Screen ohne Probleme? Der Screen weis nix vom Datatype und ich mach so oder so beim öffnen der Datatypes einen Zeiger auf denn Screen(also WB oder Custom, egal). Datatypes sind wirklich der Hammer... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
1 2 -3- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Datatypes: Farben festlegen lassen | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |