amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Falsche Farben [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2006-03-26, 09:39 h

Kabo
Posts: 39
User
Hallo Leute 8)
Ich programmiere gerade an ein Spiel.
Aber ich habe ein Problem.

Mein Screen öffne ich mit:

if (IntuitionBase != NULL){
my_screen = OpenScreenTags(NULL,
SA_DisplayID,DisplayID,
SA_Pens, (ULONG)pens,
SA_Title,"KB's-16bit-Screen",
SA_Depth,Depth,
SA_Behind,TRUE,
TAG_DONE);
ScreenOn=1;
}

Der Screen(16bit) ist im Hintergrund.
Nach Öffnen der Fenster und Laden des Introbildes per:

o[pn] = NewDTObject (PfNa,
DTA_GroupID,GID_PICTURE,
PDTA_Remap, TRUE,
PDTA_Screen,my_screen,
TAG_END);

if(o[pn]){
DoDTMethod (o[pn],NULL,NULL,DTM_PROCLAYOUT,NULL,TRUE);

GetDTAttrs (o[pn],
PDTA_BitMapHeader,&bmhd[pn],
PDTA_DestBitMap,&bm[pn],
TAG_END);
p[pn]=1;
}
Anzeige:
BltBitMapRastPort (bm[pn],0,0,rp[wn],0,0,bmhd[pn]->bmh_Width,bmhd[pn]->bmh_Height,0xc0);

hole ich den Screen nach vorne.
Aber die Farben stimmen nicht. 8o
Was kann ich da machen? :dance3:

[ - Answer - Quote - Direct link - ]

2006-03-26, 13:27 h

thomas
Posts: 7718
User

Auf welcher Konfiguration arbeitest du ? Mir ist das letztens auch aufgefallen, daß die Farben falsch sind, wenn man SA_Behind,TRUE angibt und den Bildschirm nach dem Laden des Bildes nach vorne holt. Ich kann es jetzt aber nicht mehr reproduzieren.

Gruß Thomas

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

[ - Answer - Quote - Direct link - ]

2006-03-26, 14:53 h

Kabo
Posts: 39
User
Also:



Screen=16bit-640x480
Introbild=24bit-IFF 640x480

Blizzard-1260 68060 50Hz
Mediator-Z4
Voodoo3-Grafikkarte
Cybergraphics.library 41.4

Das Problem tritt auch auf wenn
mann wärend des laden des Bildes
per Datatype den Zielscreen nach
vorne Klickt(oden LAmiga-M).

Alle Farben der Bilder die geladen
wurden wärend der Zielscreen hinten
war sind falsch! ;(

Ich muss wohl etwas falsch machen
mit meiner Screendefination.


Kabo 8)

[ - Answer - Quote - Direct link - ]

2006-03-26, 18:29 h

Holger
Posts: 8116
User
@Kabo:
Laß mich kurz zusammenfassen:
Du öffnest einen 16Bit-Screen, sagst dem Datatype aber, daß es "remappen" soll, hast aber kein Pensharing auf Deinem screen aktiviert.
Welches Resultat möchtest Du denn eigentlich? True/Pseudocolor, dann würde ich PDTA_Remap, FALSE und PDTA_DestMode, PMODE_V43 für das dt-Objekt benutzen, oder remapping, dann würde ich SA_SharePens, TRUE für den Screen benutzen.

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

[ - Answer - Quote - Direct link - ]

2006-03-31, 15:14 h

Kabo
Posts: 39
User
@Holger:

Hast ja recht mit SA_SharePens :glow:
Hatte ich vergessen!

Aber die Farben sind immer noch Falsch. X(
Ich habe beide von dir angesprochenen Varianten
ausprobiert.

Kabo

[ - Answer - Quote - Direct link - ]

2006-04-01, 16:25 h

Kabo
Posts: 39
User
Hallo ich bin'smal wieder. 8)
Ich habe jetzt herausgefunden was stört! :D
Aber ich weiss nicht wieso!! ?(

ALSO...

Screenmodes:
WB = Voodoo:800x600 16bit PC
Spiel = Voodoo:800x600 16bit

Man beachte das 'PC'!!

Ich weiss zwar nicht so recht was der Unterschied ist,
aber auf dem Screen ohne 'PC' gibt es Grafikfehler.

-falsche Farben beim laden im Hintergrund.
-rote Streifen bei ttengine.library.

auch Audio:
-'Krazen'bei der AHI-ausgabe beim Umschalten der Screens.

Wenn ich das Spiel auch auf 'PC' setze ist alles in Butter. :rotate:
Ist meine Grafikkarte kaputt oder ist das Normal? ?(

mfg Kabo 8)

[ - Answer - Quote - Direct link - ]

2006-04-01, 22:16 h

whose
Posts: 2156
User
@Kabo:

Merkwürdig, ich dachte bisher immer, daß die Voodoo die Big Endian Modi gar nicht beherrscht, sonst hätte ich Dir das gleich sagen können, wo der Hase im Pfeffer liegt... seis drum, Du hast das Problem ja nun gefunden.

Also, dieses Verhalten ist mehr oder weniger normal. Da der von Dir verwendete Workbench-Screen die Bytes jedes Pixels "verkehrt herum" im Speicher stehen hat und beim Umschalten der Screenmodes durch den P96-Treiber (Mediator-Treiber) offensichtlich "vergessen" wird, auf den korrekten Modus (bzw. die korrekte Byte-Reihenfolge im VRAM) umzuschalten, erscheinen die Farben des Hintergrund-Screens falsch, sobald dieser nach vorn geholt wird.

Woher nun das Kratzen bei AHI kommt, weiß der Teufel, normal hat das eine nichts mit dem anderen zu tun. Ich denke, da wäre es wohl am Treiberproduzenten (Elbox?), den ein oder anderen Bug in den Treibern zu beseitigen.

Umgehen läßt sich das Problem nur schwer, weil es auch GraKas gibt, die die "PC"-Modi gar nicht bieten oder nur "PC"-Modi >8Bit. Da solltest Du evtl. eine Konfigurationsmöglichkeit vorsehen, die dem Benutzer ermöglicht, den passenden Screenmodus vor dem ersten Start von Hand festzulegen oder eine Option, die eine Umgehung des Problems speziell für Voodoo/Mediator-Nutzer aktiviert (Clonen des WB-Screens, falls 15/16Bit), falls dieses Problem bei anderen Nutzern mit ner Voodoo (also z.B. im Prometheus oder GRex) nicht vorkommt.

Du solltest zusätzlich Dein Spiel auch mal von jemandem mit einer völlig anderen GraKa (CV64/64/3D z.B.) testen lassen, nicht, daß Du Dir das Endian-Problem auch noch irgendwo ins Spiel mit eingebaut hast.

Grüße

--
---

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

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Falsche Farben [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.