Hallo Leute,
Diesmal hab ich folgendes Problem:
Ich hab eine 8-Bit S/W-Bitmap(Pattern) und will aus einer Orginal-Bitmap
(8,16,24, oder 32 BitsperPixel (BPP)) alle Pixel, die in Pattern gesetzt sind in eine neue BM kopieren.
Gibt es nun irgendeine Möglichkeit mittels Casting od Templates eine allgemeingültige Funktion zu schreiben die den entsprechenden Typen nur aufgrund der Information BPP erkennt.
also in etwa so:
template void f(T dst,T org,LPBYTE pat,int size)
{ for (int i=0;ibpp);
// das hier will ich aber verallgemeinern
if (Dst-\>bpp==24) f((LPTRIPLE)Dst-\>Data,(LPTRIPLE)Org-\>Data,Data,Area);
else if (Dst-\>bpp==32) f((LPQUAD)Dst-\>Data,(LPQUAD)Org-\>Data,Data,Area);
else if (Dst-\>bpp==16) f((LPWORD)Dst-\>Data,(LPWORD)Org-\>Data,Data,Area);
else f((LPBYTE)Dst-\>Data,(LPBYTE)Org-\>Data,Data,Area);
// in so etwas wie:
// BPP\>T;
// f((T)Dst-\>Data,Data,(T)Org-\>Data);
return Dst;
}
Dieses Problem taucht in meiner Klasse an diversen Stellen auf. Ich habe ein und die selben Daten, muß sie aber je nach BPP unterschiedlich interpretieren.
Ich würde das gerne eleganter formulieren, bzw. möchte generell wissen, wie ich eine solche Problematik angehen kann. (Wenn es überhaupt geht)
Danke schon mal für eure Hilfe
Ciao,
husky