amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Datatypes: Farben festlegen lassen [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- 2 3 [ - Beitrag schreiben - ]

02.05.2006, 22:21 Uhr

Ralf27
Posts: 2779
Nutzer
Ok, ich mal wieder mit den Datatypes. :D

Also, kann man die Datatypes veranlassen die Stifte für sich zu reservieren oder darf/muß man das selbst machen?
Ich hab in den Includes gesehn das man an die Farbpalette dran kommt, aber wenn man die Datatypes irgendwie selbst dazu veranlassen könnte...


--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

02.05.2006, 22:47 Uhr

whose
Posts: 2156
Nutzer
@Ralf27:

Soweit ich weiß, allokieren die Datatypes keine Pens fürs Dithering.

Aber ich denke mal, daß Dir thomas da wesentlich genaueres zu sagen kann, da er wesentlich mehr über die Datatypes weiß.

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

02.05.2006, 22:52 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von whose:
Soweit ich weiß, allokieren die Datatypes keine Pens fürs Dithering.


Ja, genau so wie ich die ganze Zeit die Bilder auf mache, werden keine Pens reserviert.

Anderst als auf einem privaten Screen kann ich ja auch nicht einfach dann die Farben wieder zurück schreiben, wenn sie mal falsch sein sollten. Das ist ja auch nicht die feine Art auf einem öffentlichen Screen. :D
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 08:48 Uhr

thomas
Posts: 7716
Nutzer

Natürlich reservieren Datatypes die von ihnen verwendeten Pens. Wie kommst du darauf, daß sie es nicht tun ? Das wäre ziemlich fatal, denn dann könntest du pro Screen nur ein Bild laden. Sobald du das zweite Bild lädst, hätte das erste Bild vollkommene Falschfarben.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 10:05 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von Ralf27:

Anderst als auf einem privaten Screen kann ich ja auch nicht einfach dann die Farben wieder zurück schreiben, wenn sie mal falsch sein sollten. Das ist ja auch nicht die feine Art auf einem öffentlichen Screen. :D


Das wäre zwar Murks, aber gehen tut's.
Wenn Du die Farbpalette vorher sicherst...

Besser ist natürlich ObtainBestPen, da entstehen keine "Verfärbungen". ;)

Siehe auch hier:

http://www.norman-interactive.com/C-Kurs_8_5.html
http://www.norman-interactive.com/C-Kurs_8_10.html





--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 11:29 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von thomas:
Natürlich reservieren Datatypes die von ihnen verwendeten Pens. Wie kommst du darauf, daß sie es nicht tun ? Das wäre ziemlich fatal, denn dann könntest du pro Screen nur ein Bild laden. Sobald du das zweite Bild lädst, hätte das erste Bild vollkommene Falschfarben.


Dann wüßte ich zu gerne wieso sich die Farben im Bild verändern wenn ich die rechts Maustaste drücke und sich das MagicMenu öffnet? Also auf der WB, aber auf dem privaten Screen ist das genau so.

Oder tritt das nur bei mir auf? :shock2:
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 11:44 Uhr

thomas
Posts: 7716
Nutzer

Weil du MagicMenu so konfiguriert hast. Wenn du die Maustaste losläßt, müssen die Farben aber wieder richtig sein. Wenn nicht, hast du in deinem Programm etwas falsch gemacht. Nach dem DisposeDTObject werden die Stifte z.B. freigegeben. Du mußt das Datatype-Object so lange offen halten, wie das Bild angezeigt wird.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 11:50 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von thomas:
Du mußt das Datatype-Object so lange offen halten, wie das Bild angezeigt wird.


Arg, das ist es. An solchen Kleinigkeiten kann das hängen.

Aber: Da ich das Bild schon in einer eigenen Bitmap kopiert habe, bleibt das bild dann wohl zweifach im Speicher vorhanden. Kann man denn Speicher vom Datatype irgendwie freigeben lassen, aber die Stifte festhalten bis ich sie von den Datatypes freigeben lasse?

Ich vermute auch das die Datatypes auf einem System ohne Grafikkarte alle Grafikdaten in den Chipram schreiben. Wie sieht es bei Systemen mit Grafikkarte aus? -> Fastram? (Customchips werde da ja nicht benutzt) (Es geht mir eigentlich um den Speicherverbrauch, denn ich gering halten möchte)
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 12:12 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von thomas:

Natürlich reservieren Datatypes die von ihnen verwendeten Pens. Wie kommst du darauf, daß sie es nicht tun ? Das wäre ziemlich fatal, denn dann könntest du pro Screen nur ein Bild laden. Sobald du das zweite Bild lädst, hätte das erste Bild vollkommene Falschfarben.


Weil mir genau das schon mehrfach passiert ist. Aber wie ich schon sagte, hast Du da die wesentlich größere Erfahrung und ich weiß jetzt, daß ich da etwas verkehrt gemacht habe :D

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

03.05.2006, 14:32 Uhr

NoImag
Posts: 1050
Nutzer
@Ralf27:
Ich bin mir da jetzt nicht ganz sicher, aber probier doch mal mit ObtainBestPenA() im Shared-Modus, die Stifte selbst nochmal zu allozieren (du hast ja gesagt, dass du die Palette hast), solange das Datatype noch offen ist. Wenn das klappt, dann kannst du anschließend das Datatype freigeben und die Stifte sind immer noch geschützt.

Tschüß

[ - Antworten - Zitieren - Direktlink - ]

05.05.2006, 00:13 Uhr

NoImag
Posts: 1050
Nutzer
@ Ralf27:

Ich habe mal einen Blick in die Autodocs zum picture.datatype geworfen.
Mit den Tags PDTA_ColorTable und PDTA_NumAlloc bekommst du eine Tabelle der vom Datatype allozierten Pens und die Anzahl der allozierten Pens. Laut den Autodocs verwendet das picture.datatype ObtainBestPenA() zur Allozierung der Pens. Sie sind also nur "shared" alloziert. Darum sollte es problemlos möglich sein, mit ObtainPen() genau die Pens nochmal "shared" zu allozieren, die schon vom Datatype alloziert wurden. Wenn du ObtainPen() ohne Flags aufrufst, dann wird der von dir angeforderte Pen "shared" alloziert. Ob du vernünftige RGB-Werte angeben musst, weiß ich nicht, das musst du einfach ausprobieren. Nachdem du die Pens alloziert hast, kannst du das Datatype-Objekt wieder freigeben und die von dir benutzten Pens sind weiterhin geschützt.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

06.05.2006, 08:16 Uhr

Ralf27
Posts: 2779
Nutzer
@NoImag:

Danke, das muß ich später mal testen. Denn genau das würde mir einige kb Arbeitspeicher (kostbarer Chipram) sparen, die im extremfall mal einige 100kb Chipraum ausmachen können.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

23.07.2006, 01:23 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von NoImag:
Ich habe mal einen Blick in die Autodocs zum picture.datatype geworfen.
Mit den Tags PDTA_ColorTable und PDTA_NumAlloc bekommst du eine Tabelle der vom Datatype allozierten Pens und die Anzahl der allozierten Pens. Laut den Autodocs verwendet das picture.datatype ObtainBestPenA() zur Allozierung der Pens. Sie sind also nur "shared" alloziert. Darum sollte es problemlos möglich sein, mit ObtainPen() genau die Pens nochmal "shared" zu allozieren, die schon vom Datatype alloziert wurden. Wenn du ObtainPen() ohne Flags aufrufst, dann wird der von dir angeforderte Pen "shared" alloziert. Ob du vernünftige RGB-Werte angeben musst, weiß ich nicht, das musst du einfach ausprobieren. Nachdem du die Pens alloziert hast, kannst du das Datatype-Objekt wieder freigeben und die von dir benutzten Pens sind weiterhin geschützt.


Danke für die Beschreibung. Ich bin leider jetzt erst richtig dazu gekommen mir das ganze richtig anzusehn.
Das erste was mir aufgefallen ist, das es es auch PDTA_ColorTable2 gibt. Aber ok, PDTA_ColorTable2.
Da frag ich mich eben auch ob ich für die Tabelle selbst speicher reservieren muß (wovon ich ausgehe).

Wenn die die Tabelle habe, dann muß ich also jeden einzelnen Wert via ObtainPen sichern?

Und dann nebenher:
Wenn ich einen eigenen Screen aufmache, dann kann man ja auch selbst vor dem öffnen die Farben festlegen. Wie mach ich das denn am besten?
Ich nehme mal an das ich auf einem privaten Screen eigentlich keine Stifte schützen muß oder doch?
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

23.07.2006, 21:50 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Ralf27:
Danke für die Beschreibung. Ich bin leider jetzt erst richtig dazu gekommen mir das ganze richtig anzusehn.
Das erste was mir aufgefallen ist, das es es auch PDTA_ColorTable2 gibt. Aber ok, PDTA_ColorTable2.


Richtig. Der Sinn erschließt sich mir aus der Beschreibung in den AutoDocs jedoch nicht.

Zitat:
Da frag ich mich eben auch ob ich für die Tabelle selbst speicher reservieren muß (wovon ich ausgehe).

Das ist keineswegs gesagt. Normalerweise steht in den AutoDocs, ob die Systemfunktion oder das Anwendungsprogramm den Speicher reserviert. In diesem Fall schweigen sich die AutoDocs dazu aus. Vielleicht kann dies ja jemand beantworten, der mehr Erfahrung mit der datatypes.library hat als ich.

Zitat:
Wenn die die Tabelle habe, dann muß ich also jeden einzelnen Wert via ObtainPen sichern?

Ja.

Zitat:
Und dann nebenher:
Wenn ich einen eigenen Screen aufmache, dann kann man ja auch selbst vor dem öffnen die Farben festlegen. Wie mach ich das denn am besten?


Du gibst den Tag SA_Colors32 mit deiner Farbtabelle an. Die Tabelle ist genauso aufgebaut, wie bei LoadRRGB32().

Zitat:
Ich nehme mal an das ich auf einem privaten Screen eigentlich keine Stifte schützen muß

Das kommt darauf an. Normalerweise sind alle Pens auf einem privaten Screen geschützt. Das bedeutet natürlich, dass Funktionen, die mit den SharedPens arbeiten, nicht funktionieren. In diesem Fall musst du SA_SharePens mit TRUE angeben. Du bist dann aber auch nicht mehr 100% Herr über die Farben. Andere Programme haben natürlich grundsätzlich mit deinem privaten Screen nichts zu schaffen. Da brauchst du keine Angst zu haben.

Tschüß




[ - Antworten - Zitieren - Direktlink - ]

23.07.2006, 22:44 Uhr

Ralf27
Posts: 2779
Nutzer
Ok, aber ich glaub ich muß da jetzt aufpassen: Zum einen hab ich die Stifte die ich sichern muß wenn ich auf einem öffentlichen Screen arbeiten möchte und zum anderen die Farbtabelle, wenn ich auf einem privaten Screen arbeiten will.

Mein Programm läuft zwar gerade so wie es ist, aber ich muß halt das Bild offen halten um die Pens zu halten. Und genau diese Speicherverschwendung will ich halt beenden.

Oh, die Datatypes... I-) :D
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

24.07.2006, 09:01 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Ralf27:
Ok, aber ich glaub ich muß da jetzt aufpassen: Zum einen hab ich die Stifte die ich sichern muß wenn ich auf einem öffentlichen Screen arbeiten möchte und zum anderen die Farbtabelle, wenn ich auf einem privaten Screen arbeiten will.


Du musst die beiden Fälle nicht getrennt behandeln. Wenn du deinen privaten Screen mit SA_SharePens, TRUE öffnest, dann kannst du auch auf dem privaten Screen genauso vorgehen, wie auf dem öffentlichen Screen.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

24.07.2006, 23:12 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von NoImag:
Du musst die beiden Fälle nicht getrennt behandeln. Wenn du deinen privaten Screen mit SA_SharePens, TRUE öffnest, dann kannst du auch auf dem privaten Screen genauso vorgehen, wie auf dem öffentlichen Screen.


Ok, fragt sich dann nur wie es mit dem Speicher aussieht denn ich vom Datatype anfordern muß(oder auch nicht) für die Stifte. Wie groß muß denn dieser Block sein?
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

26.07.2006, 21:52 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Ralf27:
Ok, fragt sich dann nur wie es mit dem Speicher aussieht denn ich vom Datatype anfordern muß(oder auch nicht) für die Stifte. Wie groß muß denn dieser Block sein?


Ich habe mir nochmal die Doku zur datatypes.library näher angesehen. Es steht zwar nicht eindeutig da, aber ich verstehe es so, dass du bei GetDTAttrsA() in der Tag-Liste den Pointer auf einen Pointer auf ein UByte-Array angeben musst, d.h. du liest in einem vom Datatype angelegten Speicherbereich. Ich vermute, in Basic nimmst du einfach eine Long-Variable und trägst dessen Adresse in der Tag-Liste ein und benutzt dann den Wert in deiner Variable als Basis-Adresse zum Peeken.

Wie das UByte-Array aussieht ist nirgends spezifiziert (wäre ja auch zuviel verlangt). Ich vermute es gibt für jeden vom Datatype mit ObtainBestPenA() allozierten Pen ein Byte in diesem Array. Wieviele Pens es sind, erfährst du mit PDTA_NumAlloc.

Sollte das oben beschriebene zum Absturz führen, dann habe ich mich geirrt, aber probier es erstmal so aus. Die Dokumentation zur datatypes.library ist fürchterlich.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

03.10.2006, 22:35 Uhr

Ralf27
Posts: 2779
Nutzer
Ich habe es heute mal wieder versucht, aber leider ohne Erfolg. Ich steig da einfach nicht durch. Inzwischen ist der Speicherverbrauch durch das doppelte Bildhalten schon recht erschreckend geworden. Ich muß das wohl möglichst bald geregelt bekommen. Fragt sich nur wie...
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.10.2006, 22:49 Uhr

NoImag
Posts: 1050
Nutzer
@Ralf27:

Wenn wir Dir helfen sollen, dann musst du schon ein bisschen ausführlicher werden.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

03.10.2006, 23:18 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von NoImag:
Wenn wir Dir helfen sollen, dann musst du schon ein bisschen ausführlicher werden.


Ok, kurze Zusammenfassung:
Ich lade ein Bild mit den Datatypes. Dabei gibt es zwei Möglichkeiten: einmal auf einen eigenen Screen und des anderen auf einem Fenster auf der WB.

Zur Zeit lass z.b. beim Screen öffnen einen Screen mit der gleichen Farbtiefe wie das Datatypebild mit SharePens öffnen und gut ist.

Allerdings hab ich bei der Fenster bzw. Screenstory das Problem, das die Farben ja gehalten werden müssen, sodas sie nicht bei weiteren Farbveränderungen durch andere Programme wieder verändert werden.

Auf dem privaten Screen hätte ich die Möglichkeit die Farben vorher festzulegen und gut ist, also PenShares FALSE, also Default. Allerdings müßte ich vorher die Farben wissen und beim Screen öffnen angeben.

Auf dem öffentlichen Fenster müßte ich die Pens irgendwie festhalten.

In beiden Fällen lass ich einfach die Bilder in den Datatypes immer aktiv, da ich aber vorher die Bilder umkopieren muß (Interleave Bitmap, wieso auch immer...), hab ich also immer zwei mal das ganze Bild im Chipram, was natürlich recht viel Speicher frisst. Und genau das will ich unterbinden.

Ich hoffe, ich konnte mein Problem irgendwie verständlich rüberbringen. :shock2: :smokin:
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.10.2006, 23:45 Uhr

bubblebobble
Posts: 707
Nutzer
Gibt es keine Möglichkeit dem Datatype zu sagen, dass die Daten des Bilder freigegeben werden sollen während die Pens allociert bleiben ?

Ein Brute force fix wäre, einfach alle Pen zu locken und das Datatype freizugene. Dann verändern sich die Farben nicht.

Das Bild zweimal im speicher zu halten macht für mich keinen Sinn. Eine Version dürfte auf jeden Fall freigebar sein.

--
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 - ]

04.10.2006, 09:26 Uhr

NoImag
Posts: 1050
Nutzer
@Ralf27:
Hast Du denn die Lösungen für das Problem, die ich weiter oben beschrieben habe schon einmal ausprobiert? Wenn ja, was ist dabei passiert?

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

04.10.2006, 22:31 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von NoImag:
Hast Du denn die Lösungen für das Problem, die ich weiter oben beschrieben habe schon einmal ausprobiert? Wenn ja, was ist dabei passiert?


Ich hab da gestern so einiges Versucht. Von SW bis Guru war alles vorhanden. Alle Versuche auf dem eigenen Screen. Hm, zum verrückt werden.

Aber erst mal der Reihe nach:
SA_Colors32 brauch ich also beim Screen öffnen, wenn ich die Farben gleich setzen will. Aber da ist mir auch gleich aufgefallen, das ich dann vermutlich dann auch bei seltsamen Bildfarbenzusammensetzungen dann vermutlich auch nix mehr seh bezüglich Menus und Mauszeiger, also wenn ich Pech hab. Bzw. Falschfarbenmauszeiger oder undeutliches Menus.
Dann doch alles Shared lassen? Dann ist es ja egal ob Screen oder Window, ich muß dann nur die Stifte sichern lassen, bis ich das Fenster/Screen schlies.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

05.10.2006, 00:15 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Ralf27:
Dann doch alles Shared lassen? Dann ist es ja egal ob Screen oder Window, ich muß dann nur die Stifte sichern lassen, bis ich das Fenster/Screen schlies.


Ja, genau das würde ich Dir empfehlen. Wie es gehen sollte, habe ich weiter oben beschrieben.

Tschüß

[ - Antworten - Zitieren - Direktlink - ]

06.10.2006, 21:21 Uhr

Ralf27
Posts: 2779
Nutzer
Mit PDTA_NumAlloc bekomme ich zwar die Anzahl der Pens, aber leider finde ich die Liste nicht. Ich hab schon einiges versucht, aber ich finde die Liste der reservierten Pens nicht. Bzw. kurze Frage: UByte=1Byte (nehme ich einfach mal an). Hab einfach alles mal ausgelesen und mal nachgesehn ob was logisches rauskommt, aber bei allen versuchten Tags war nix logisches dabei.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

06.10.2006, 22:47 Uhr

Ralf27
Posts: 2779
Nutzer
Ok, ich benutze jetzt PDTA_ColorTable, aber mir ist eben auch aufgefallen das es ab V44(OS3.5??) auch PDTA_AllocatedPens gibt. Ist bei mir in den Includes nicht aufgeführt. Oh, ist das alles verwirrend...

Ich hoffe ich laufe mit PDTA_ColorTable und PDTA_NumAlloc jetzt richtig...
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

06.10.2006, 23:02 Uhr

Ralf27
Posts: 2779
Nutzer
Da ist nochwas:

PDTA_DestMode

Hiermit kann man wohl denn Ausgabemodus der Bitmaps bestimmen (soweit ich das verstanden habe)

Bedeutet das, das ich dann mit PMODE_42 immer Bitmaps bekomme, die ich direkt mit z.b BltBitMapRastPort benutzen kann? PMODE_43 ist da ja vorgegeben. Oder was genau macht PDTA_DestMode?
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

09.10.2006, 00:52 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Ralf27:
Ok, ich benutze jetzt PDTA_ColorTable, aber mir ist eben auch aufgefallen das es ab V44(OS3.5??) auch PDTA_AllocatedPens gibt. Ist bei mir in den Includes nicht aufgeführt. Oh, ist das alles verwirrend... Ich hoffe ich laufe mit PDTA_ColorTable und PDTA_NumAlloc jetzt richtig...


V44 ist OS3.5. Wenn Du das voraussetzen willst, dann kannst Du auch PDTA_AllocatedPens ausprobieren. Der Unterschied zu PDTA_ColorTable wird mir aus den Autodocs aber nicht klar.

Wie sieht es denn aus? Funktioniert es?

Zitat:
PDTA_DestMode Hiermit kann man wohl denn Ausgabemodus der Bitmaps bestimmen (soweit ich das verstanden habe) Bedeutet das, das ich dann mit PMODE_42 immer Bitmaps bekomme, die ich direkt mit z.b BltBitMapRastPort benutzen kann? PMODE_43 ist da ja vorgegeben. Oder was genau macht PDTA_DestMode?

Mit PDTA_DestMode kannst Du eine Bitmap verlangen, in der Du selbst rumschreiben/auslesen darfst (PMODE_42), d.h. die Bitmap-Struktur ist so aufgebaut wie in den Includes/RKRMs beschrieben und die Grafikdaten sind als Standard-Amiga-Bitplanes organisiert. Bei der Voreinstellung (PMODE_43), musst Du dagegen immer über die Funktionen der graphics.library gehen. BltBitMapRastPort() ist eine Funktion der graphics.library und kann darum in beiden Fällen benutzt werden.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

09.10.2006, 11:30 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von NoImag:
V44 ist OS3.5. Wenn Du das voraussetzen willst, dann kannst Du auch PDTA_AllocatedPens ausprobieren. Der Unterschied zu PDTA_ColorTable wird mir aus den Autodocs aber nicht klar.

Wie sieht es denn aus? Funktioniert es?

Ich möchte es weiter ab OS3.0 laufen lassen. Es funktioniert leider nicht, bzw. habe ich das bis jetzt so leider nicht hin bekommen.
Zitat:
Mit PDTA_DestMode kannst Du eine Bitmap verlangen, in der Du selbst rumschreiben/auslesen darfst (PMODE_42), d.h. die Bitmap-Struktur ist so aufgebaut wie in den Includes/RKRMs beschrieben und die Grafikdaten sind als Standard-Amiga-Bitplanes organisiert. Bei der Voreinstellung (PMODE_43), musst Du dagegen immer über die Funktionen der graphics.library gehen. BltBitMapRastPort() ist eine Funktion der graphics.library und kann darum in beiden Fällen benutzt werden.

Genau das ist das Problem, das ich diese Bitmaps so nicht benutzen kann. Ich benutze die BltBitMapRastPort-Funktion aus der graphics-lib und wenn ich die Bitmap nicht vorher konvertiere, dann läuft es leider nicht immer richtig. Und das ist auch so ein Punkt denn ich nicht so richtig verstehn:
Zum einen funktioniert es wohl immer auf einem eigenen privaten screeen *ohne* umwandeln. Somit wäre das Problem gelöst.
Allerdings funktioniert es nicht immer auf der WB. Und diese "ab und zu" gefällt mir nicht.

Ich benutze wohlgemerkt immer die Lib-Funktionen für die Grafik und es geht nicht immer.
Es geht nur immer, wenn ich vorher das Bild konvertiere, bzw. einfach in eine eigene Bitmap kopiere und dann von da aus blitte. Deswegen hab ich ja auch zwei mal das Bild im Speicher. Einmal das von den Datatypes und einmal das konvertierte. Und das von den Datatypes kann ich ja nur dann schliesen, wenn ich die Stifte sichere.

Ok, PMODE_42. Versuch ich es damit. Aber leider ist das in meinen OS3.1 Includes nicht inplementiert, ist wohl auch erst ab OS3.5 dazu gekommen.
Diese interleaved Bitmaps bringen mich noch zum rotieren. X( :lach: :nuke: :smokin:
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]


-1- 2 3 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Datatypes: Farben festlegen lassen [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.