Aide - Recherche - Membres - Calendrier
Version complète : [RESOLU] Afficher un bitmap en double densité ?
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Fredouille.95
Mon problème du soir...

Avant, pour afficher un bitmap de 320x232, je générais d'abord une fenêtre avec l'API WinCreateOffscreenWindow, puis je récupère le bitmap et enfin le pointeur sur les données de ce bitmap. Puis je forçais directement les index de la palette.

Mais il parait qu'il ne faut pas faire comme ca. D'ailleurs, ça ne marche pas en PNO, même si cela fonctionne en 68K.

Le problème ce que, en créant une image avec BmpCreate de 320x232 et lorsque je l'affiche en utilisant WinDrawBitmap, ben, je ne peux l'afficher en densité simple, donc en 160x160...ce qui ne me convient pas trop !!
Même en utilisant les coordonnées natives !!

J'imagine que vous avez déjà fait ce genre de truc, alors, pouvez-vous me dire comment vous faites...vous ???

Merci
Pierre R.
personnellement je declare un bitmap sous PILRC avec plusieurs densités du style :
BITMAPFAMILYEX ID C3P2
BEGIN
BITMAP "lcafard90_02R.bmp" BPP 8 TRANSPARENT 255 255 255
BITMAP "cafard90_02R.bmp" BPP 8 DENSITY 2 TRANSPARENT 255 255 255
END

puis dans le code C:

MemHandle hBmp;
BitmapType * pBmp;

hBmp = DmGetResource (bitmapRsc, C3P2);
DmReleaseResource(hBmp);
if (hBmp)
{
pBmp = MemHandleLock (hBmp);
WinPaintBitmap (pBmp,x,y);
}
if (hBmp)
{
// et à la fin
MemHandleUnlock (hBmp);
}

je sais pas si c'est orthodoxe mais ça marche pas trop mal. Si le palm est DD ça affiche en DD sinon en SD.
Fredouille.95
Je te remercie pour ta solution, mais en fait, il s'agit d'un bitmap que je crée moi-même. Il ne se trouve pas en ressource.

Mais bon, apparemment, il ne doit pas y avoir d'autre solution que celle que j'utilisait avant.

Donc je la garde !!
Pierre R.
CITATION(Fredouille.95 @ 24/05/2006 à 22:13 ) *
Je te remercie pour ta solution, mais en fait, il s'agit d'un bitmap que je crée moi-même. Il ne se trouve pas en ressource.

Mais bon, apparemment, il ne doit pas y avoir d'autre solution que celle que j'utilisait avant.

Donc je la garde !!

je pense que c'est pareil. quand on fait du double buffering, c'est bien notre propre bitmap que l'on gère...
dans ce cas là je fais des trucs comme ça...
hModele = WinCreateOffscreenWindow(160,160,nativeFormat,&err);
WinCopyRectangle(hScreen,hModele,&rect1,0,0,winPaint);

mais bon.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.