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

amiga-news.de Forum > Programmierung > PlanePick / PlaneOnOff [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- 2 [ - Beitrag schreiben - ]

23.04.2010, 23:55 Uhr

AGSzabo
Posts: 1663
Nutzer
hallö.

ist hier jemand der weis wie man ein image so zeichnet, dass man die hintergrundfarbe des images an den pen mit dem man auch sonst den hintergund füllt anpasst?

also wenn ich zb ne farbe für den hintergrund reserviert habe und der pen den ich da bekam die nummer 42 hat, mein image aber nur 1 bitplane (checkhaken), kann ich dann durch setzen der planepick/planeOnOff bits erreichen dass dort wo in meiner image plane keine bits gesetzt sind, die farbe nr 42 gezeichnet wird?

oder lässt sich das image auch so zeichnen, dass farbe 0 transparent ist?

gibts auch ne methode zum transparent-zeichnen für images die mehrere farben haben?

puzzling,
ags
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 00:33 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 00:01 Uhr

thomas
Posts: 7716
Nutzer

Schau dir mal BltTemplate an.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 00:06 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

hm, das ist ja nett aber ich verstehs nicht. wie kann mir diese funktion helfen? geht da als template die adresse einer image struktur oder ein teil daraus? BltPattern() sieht mir eher so aus als ob es mir helfen könnte aber ich kann blos herumraten weil ich beides noch nicht verstehe.

--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 00:18 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 08:15 Uhr

thomas
Posts: 7716
Nutzer

http://utilitybase.com/ref/?keyword=BltTemplate&funcgroup=AmigaOS&action=Search


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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 09:31 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

hihi, ja das kenn ich. aber verstanden hab ichs nicht vom prinzip her. funktioniert BltTemplate nur mit 1 bitplane? was ist mit BltPattern im unterschied zu BltTemplate? kann BltPattern mehrere planes?

ps: ich hab jetzt mal versucht dir routine BltTemplate so zu implementieren wie ich sie verstanden habe, aber ich erhalte blos eine plane aus dem image oder garnix .... liegt evtl daran dass die images aus den icons mehr als eine bitplane haben?

--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 10:43 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 10:55 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 11:06 Uhr

thomas
Posts: 7716
Nutzer
@AGSzabo:

BltPattern füllt einen ganzen Bereich mit einem Pattern, der außerdem in der Größe recht seltsamen Einschränkungen unterliegt. Das kannst du benutzen, um den Hintergrund mit einem Muster zu füllen anstatt mit einer einzigen Farbe. (z.B. der im Schachbrettmuster gefüllte Rahmen der DOS-Requester ist damit gemacht.)

BltTemplate zeichnet eine einfarbige Figur in der Farbe, die im Rastport eingestellt ist und läßt die transparenten Stellen unberührt. Also genau das, wonach du oben gefragt hast.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 11:16 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

danke, jetzt funktioniert es, aber es ist ein hack solange ich nicht sicherstellen kann dass im icon die farben so gesetzt sind wie in meinen default-icons. der benutzer soll die möglichketi haben, eigene icons zu verwenden. und wenn die eine andere palette haben, finde ich die eine plane die ich BltTemplaten will evtl nicht an der selben stelle im ImageData.

grüsse,
AGS
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 13:04 Uhr

AGSzabo
Posts: 1663
Nutzer
Warum sollte man zum füllen mit einem pattern nicht RectFill() nehmen?

Geht das "cookie-cut" auch irgendwie mit einem mehrfarbigen image?

--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 13:11 Uhr

thomas
Posts: 7716
Nutzer

BltMaskBitMapRastPort


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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 13:35 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

>BltMaskBitMapRastPort

Da könnte es probleme mit den farben geben. Keiner garantiert mir, dass die pens die im image verwendet werden die selben farben haben wie die selben pens in der colormap des screens/fensters. daher mag ich die icons ab 3.5 so gerne, weil da das remapping und masking automagisch von der icon.library erledigt wird.

der FPGA-Blitter des NATAMI kann cookie-cutten ohne maske. da schreibt sicher dann jemand neue bibliotheken (zb natami.library) mit solchen funktionen. ;-) oh, ich muss das gleich auf dem natami site los werden!

grüße
ags
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 15:34 Uhr

AGSzabo
Posts: 1663
Nutzer
> BltMaskBitMapRastport

das ist eine bitmap. das icon liegt als image vor. ist es legitim eine bitmapstruktur per hand anzulegen (notfalls auch mit InitBitmap()) und die zeiger auf die planes des image in der bitmap einzutragen? und dann sich mit AllocRaster() eine plane als maske holen und alle bits aus der bitmap da rein zu odern?

oder soll ich statt händisch die bitmap mit depht 0 allokieren mit AllocBitmap() und dann die planezeiger eintragen? gibt es images mit mehr als 8 bitplanes?

--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux


[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 15:50 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 16:10 Uhr

thomas
Posts: 7716
Nutzer

http://utilitybase.com/forum/index.php?action=vthread&forum=3&topic=1931


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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 16:44 Uhr

AGSzabo
Posts: 1663
Nutzer
das hilft mir weiter, danke.

> x = ((image->Width + 15) >> 4) * image->Height;

stattdessen mache ich bis jetzt

move.w ig_Width(a0),d1
lsr.w #3,d1
addq.w #2,d1
bclr #0,d1
mulu.w ig_Height(a0),d1

ist das gleichwertig?


und das verstehe ich noch nicht:

{
bitmap.Planes[d] = (PLANEPTR)(image->ImageData + (y++) * x);
}
else
{
bitmap.Planes[d] = (planeonoff & shift) ? (PLANEPTR)-1 : NULL;
}

welche bedeutung hat (PLANEPTR)? was wird da gemacht und warum sind planepick und planeonoff nirgends hergeleitet? was bedeutet das fragezeichen, das -1 und der doppelpunkt?

? ags
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 24.04.2010 um 16:46 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 18:16 Uhr

thomas
Posts: 7716
Nutzer
Zitat:
Original von AGSzabo:
das hilft mir weiter, danke.

> x = ((image->Width + 15) >> 4) * image->Height;

stattdessen mache ich bis jetzt

move.w ig_Width(a0),d1
lsr.w #3,d1
addq.w #2,d1
bclr #0,d1
mulu.w ig_Height(a0),d1

ist das gleichwertig?


Ich glaube nicht. Wie kommst du auf addq.w #2,d1 ?

move.w ig_Width(a0),d1
addq.w #15,d1
lsr.w #3,d1
bclr #0,d1

kommt dem näher, finde ich.

Zitat:
und das verstehe ich noch nicht:

{
bitmap.Planes[d] = (PLANEPTR)(image->ImageData + (y++) * x);
}
else
{
bitmap.Planes[d] = (planeonoff & shift) ? (PLANEPTR)-1 : NULL;
}

welche bedeutung hat (PLANEPTR)?


Das ist ein Typecast. Wenn du z.B. eine Variable vom Typ Pointer-auf-Word hast und eine vom Typ Pointer-auf-Byte, dann darfst du die nicht einfach zuweisen, du mußt dem Compiler mitteilen, daß du weißt, daß du unterschiedliche (d.h. inkompatible) Typen miteinander kombinierst. ImageData ist vom Typ Pointer-auf-UWORD und Planes vom Typ PLANEPTR.

Zur Übersetztung nach Assembler kannst du das einfach ignorieren.

Zitat:
was wird da gemacht und warum sind planepick und planeonoff nirgends hergeleitet?

Falls es dir nicht aufgefallen ist, der Code ist nur ein Ausschnitt. Aus Geschwindigkeitsgründen werden image->PlanePick und image->PlaneOnOff vorher in die Variablen (bzw. Register) planepick und planeonoff geladen.

Zitat:
was bedeutet das fragezeichen, das -1 und der doppelpunkt?

a = b ? c : d; ist eine Kurzschreibweise für

if (b)
a = c;
else
a = d;

Das -1 bedeutet minus eins oder 0xffffffff.

Gruß Thomas


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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 18:32 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

>Ich glaube nicht. Wie kommst du auf addq.w #2,d1

die kleinste größe in worten sind 2 byte. wenn ich mit lsr #3,d1 durch 8 teile, bleibt im schlimmsten fall 0 übrig. dazu addiere ich dann 2 und dann bit 0 löschen tut in dem fall garnix. wenn 1 übrig bleibt, wäre die kürzeste größe auch 2 byte. ich addier 2 und lösche bit null, das ist als würde ich 1 addieren. diese logik funktioniert auch mit größeren datenmengen.

übrigens gibt es kein addq.w #15,d1, das muss add.w #15,d1 lauten und damit ist meine variante effizienter.


--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 21:30 Uhr

thomas
Posts: 7716
Nutzer
@AGSzabo:
Zitat:
wenn ich mit lsr #3,d1 durch 8 teile, bleibt im schlimmsten fall 0 übrig. dazu addiere ich dann 2 und dann bit 0 löschen tut in dem fall garnix.

Genau in dem Fall ist das Ergebnis aber falsch, nämlich um zwei zu groß. Es gilt die kleinste Zahl zu finden, die durch 16 teilbar und größer oder gleich der Ausgangszahl ist. Wenn die Ausgangszahl schon durch 16 teilbar ist, darf das Ergebnis nicht größer sein.

Zitat:
übrigens gibt es kein addq.w #15,d1

Dann nimm halt addq.l, das tut sich in dem Fall gar nichts.

Zitat:
damit ist meine variante effizienter.

Effizient und falsch.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 21:43 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

> addq #15,d1

es geht generell kein addq mit werten größer als 8.


warum addierst du 15 und nicht 16? und durch 16 teilen tut man mit lsr #4,d1 und nicht #3. außerdem brauchen wir nicht worte, sondern bytes, also müssen wir nicht mit 16 teilen sondern mit 8.
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 22:30 Uhr

thomas
Posts: 7716
Nutzer
@AGSzabo:

Warum versuchst du nicht zu verstehen, was der Sinn des ganzen ist, anstatt nur auf den Code zu schauen ?

Die Image-Daten bestehen aus WORDs, also 16bit-Einheiten. D.h. ein Bild, das 16 Pixel breit ist, braucht ein WORD pro Zeile, aber ein Bild, das 17 Pixel breit ist, braucht zwei WORDs.

Du mußt also die Breite in Pixeln durch 16 Teilen und den Rest aufrunden.

Am einfachsten geht das Teilen und Aufrunden, indem man vor der Division 15 addiert und dann durch 16 teilt ohne Berücksichtigung der Nachkommastellen bzw. des Rests.

Also:
15 + 15 = 30; 30 / 16 = 1 -> passt
16 + 15 = 31; 31 / 16 = 1 -> passt
17 + 15 = 32; 32 / 16 = 2 -> passt
31 + 15 = 46; 46 / 16 = 2 -> passt
32 + 15 = 47; 47 / 16 = 2 -> passt
33 + 15 = 48; 48 / 16 = 3 -> passt

Jetzt zu deiner Variante:

15 + 16 = 31; 31 / 16 = 1 -> passt
16 + 16 = 32; 32 / 16 = 2 -> zu groß
17 + 16 = 33; 33 / 16 = 2 -> passt
31 + 16 = 47; 47 / 16 = 2 -> passt
32 + 16 = 48; 48 / 16 = 3 -> zu groß
33 + 16 = 49; 49 / 16 = 3 -> passt

Siehst du dein Problem ?

Zitat:
außerdem brauchen wir nicht worte, sondern bytes, also müssen wir nicht mit 16 teilen sondern mit 8.

Doch. "Wir" brauchen Worte. Das Image besteht aus Worten, d.h. einer geraden Anzahl Bytes. Erst wenn wir die Worte in Adressen umrechnen, müssen wir mit zwei multiplizieren.

Ok, statt +15, /16, *2 geht auch +15, /8, Bit 0 löschen. Aber bei /8, +1 (nicht +2 !), Bit 0 löschen gehen möglicherweise schon drei Bits verloren, die das Ergebnis verfälschen.

Gruß Thomas

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

[ Dieser Beitrag wurde von thomas am 24.04.2010 um 22:31 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.04.2010, 23:16 Uhr

AGSzabo
Posts: 1663
Nutzer
so, geschafft. jetzt funktioniert es: transparente images. wieso hat commodore nicht schon von anfang an so ne funktion bereitgestellt...
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

25.04.2010, 08:40 Uhr

AGSzabo
Posts: 1663
Nutzer
so, jetzt muss ich auch mal was fragen zum 68k. und zwar, wie verzweige ich wenn beim nach rechts rotieren eines datenregisterinhaltes das eben rausgeschobene bit 0 war?

asr.b #1,d0
beq .label

ich habe den verdacht dass es so wie oben nicht funktioniert...
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

25.04.2010, 09:12 Uhr

thomas
Posts: 7716
Nutzer
@AGSzabo:

Du programmierst riesengroße Projekte in Assembler und weißt nicht, wie die Flags funktionieren ? Das Zero-Flag wird gesetzt, wenn das Ergebnis 0 ist. Rausgeschobene Bits landen im Carry-Flag.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

25.04.2010, 09:21 Uhr

AGSzabo
Posts: 1663
Nutzer
lass mich doch, ich bin eben unsicher weil ich das nicht benutze in der regel.
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

26.04.2010, 12:17 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
so, geschafft. jetzt funktioniert es: transparente images. wieso hat commodore nicht schon von anfang an so ne funktion bereitgestellt...

Das haben sie doch. Dass Du nach zwei Tagen begriffen hast, wie man sie benutzt, heißt ja nicht, dass Du plötzlich der Erfinder dieser Routinen bist.
Zitat:
lass mich doch, ich bin eben unsicher weil ich das nicht benutze in der regel.
Da hilft es dann vielleicht, wenn man Englisch-Kenntnisse anwenden kann, minimale reichen ja schon aus, um den Unterschied zwischen Carry und Equal herzuleiten.

Und wenn Du das "in der Regel" nicht benutzt, frage ich mich besorgt, was Du dann eigentlich machst, wenn Du zu programmieren glaubst.

Nun gut, die Anzahl derer, die glauben "programmieren" bedeute "in Foren fragen", scheint ja stetig zuzunehmen...

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

26.04.2010, 21:53 Uhr

AGSzabo
Posts: 1663
Nutzer
GARGGLHH

jetzt das so schön funktionierende blitten mit maske, funktioniert auch unter morphos, zeichnet auf einem a4000 mit kick 3.0 den hintergrund immer voll ORANGE ohne transparenz. will sagen das BlitMask..() will unter os 3.0 nicht funktionieren. was ist jetzt wieder los?

grüße,
ags
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

26.04.2010, 22:19 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
jetzt das so schön funktionierende blitten mit maske, funktioniert auch unter morphos, zeichnet auf einem a4000 mit kick 3.0 den hintergrund immer voll ORANGE ohne transparenz. will sagen das BlitMask..() will unter os 3.0 nicht funktionieren. was ist jetzt wieder los?

Du musst das OS im NO_ORANGE_BACKGROUND Modus starten.

Im Ernst, woher sollen wir wissen, was bei Dir los ist, wenn wir nicht mal ansatzweise wissen, was Du gemacht hast?

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

26.04.2010, 23:21 Uhr

AGSzabo
Posts: 1663
Nutzer
ich dachte vielleicht ist so ein verhalten dass es orange wird oder unter os3.0 / 3.1 nicht funktioniert schon bekannt.

was ich gemacht habe?

1. single bitplane im richtigen maß WxH des icons mit AllocRaster() als maske angelegt

2. zahl der planes im icon anhand der gesetzten bits in PlanePick abgezählt

3. alle planes aus dem icon in die maske reingeodert

4. bitmap struktur auf dem stack mit höchstens 8 farben angelegt und zeiger auf die planes des icons eingetragen, dabei in den planenummern in denen im icon mit planepick keine plane eingetragen ist, zeiger auf null oder -1 gesetzt wie es von planeonoff vorgegeben war.

5. BltMaskBitMapRastPort()

funktioniert erst ab os 3.5

ags


ps, ich hege einen verdacht: InitBitmap() löscht nicht den speicher für die bitmapstruktur so dass alte stackinhalte darin stören ... oder aber die bitmapstruktur liegt - weil auf dem stack - nicht an einer durch 4 teilbaren addresse (in gfx.i ist in der bitmapstruktur ein padding-wort um die planepointer an eine durch 4 teilbare addresse zu heben ... offebar wird davon ausgegangen dass allocmem() speicher immer an einer durch 4 teilbaren addresse liefert??).

--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 26.04.2010 um 23:38 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

27.04.2010, 08:14 Uhr

thomas
Posts: 7716
Nutzer
Zitat:
Original von AGSzabo:
funktioniert erst ab os 3.5


"funktioniert nur mit Grafikkarte" wolltest du sagen.

Zitat:
1. single bitplane im richtigen maß WxH des icons mit AllocRaster() als maske angelegt

Wenn die Zielbitmap "interleaved" ist, muß die Maske in der Höhe um den Faktor der Bitmap-Tiefe gestreckt werden.

Außerdem müssen die Ausmaße denen der Quellbitmap entsprechen und nicht denen des Icons. Bei deiner selbstgemachten Bitmap ist das vermutlich unerheblich, aber bei Bitmaps, die mit AllocBitMap allokiert wurden, weichen die Maße u.U. deutlich ab, weil AllocBitMap die Breite an den Bedürfnissen der Grafikkarte ausrichtet.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

27.04.2010, 08:25 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

> "funktioniert nur mit Grafikkarte" wolltest du sagen.

das kann sein, aber wenn was mit den maßen nicht stimmen würde, bekäme ich ein verzerrtes bild. es stimmt aber.

gg,
ags
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 27.04.2010 um 08:44 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 27.04.2010 um 08:44 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

27.04.2010, 17:23 Uhr

AGSzabo
Posts: 1663
Nutzer
so, jetzt hab ichs! es liegt am minterm. ich benutze $c0 und das ist vielleicht falsch! aber welcher wert ist der richtige? aus einem anderen forum hab ich den wert "ABC|ABNC|ANBC" aber wo ist das definiert bzw was ist es in hex?
--
Sam mini os4.1 upd. 1 -- e-uae 39bb2 -- A4000D 3.0 & 3.9 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 27.04.2010 um 17:45 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

27.04.2010, 17:50 Uhr

thomas
Posts: 7716
Nutzer
@AGSzabo:

Zitat:
das ist vielleicht falsch

Das ist definitiv falsch.


Zitat:
aus einem anderen forum

Du weißt aber schon, daß es so etwas wie Dokumentation gibt ? Autodocs, in denen jede einzelne Funktion bis ins letzte Detail beschrieben ist ?


Zitat:
"ABC|ABNC|ANBC" aber wo ist das definiert

hardware/blit.h

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]


-1- 2 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > PlanePick / PlaneOnOff [ - Suche - Neue Beiträge - Registrieren - Login - ]


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