|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
S1 Guest
|
Posted: Sun Jun 19, 2005 10:48 pm Post subject: BitBlt(), AlphaBlend() |
|
Es gribu panākt vienu lietu: nu tā vienkāršoti sakot, uz formas uzzīmēt daļēji caurspīdīgu attēlu (AlphaBlending), izmantojot BitBlt() vai arī AlphaBlend() f-ju, sakot, ka tām ir liela ātrdarbība, salīdzinot ar DelphiX drawAdd utt. Vai kāds var padalīties ar kodu? (par gooogli es zinu ) |
|
Back to top |
|
|
S! Guest
|
Posted: Mon Jun 20, 2005 10:51 am Post subject: |
|
izskatās, ka kautkas sanāca
var bf : BLENDFUNCTION;
bf.BlendOp := AC_SRC_OVER;
bf.BlendFlags := 0;
bf.SourceConstantAlpha := 1; //caurspīdīguma koef. (0-255)
bf.AlphaFormat := 0;
šādi es izsaucu šo f-ju:
windows.AlphaBlend(Form1.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bf);
Viena lieta man šķiet savāda: ja piem. SourceConstantAlpha = 127 tad caurspīdīgumam vajadzēja būt 50%, bet tas tā nav. Manā gadījumā jau pie 50 bilde vairs nav caurspīdīga !? Kas vēl, palaižot aplikāciju, šis attēls caurspīdīgumu iegūst pakāpeniski (0.5 s), savādi frame reits ir ap 100FPS?
Kādi ieteikumi???? |
|
Back to top |
|
|
S1 Guest
|
Posted: Mon Jun 20, 2005 11:10 am Post subject: |
|
OK viss strādā, vienkārši vajadzēja atbrīvot atmiņu |
|
Back to top |
|
|
nazis
Joined: 01 Aug 2003 Posts: 24 Location: Rīga, Latvija
|
Posted: Fri Nov 11, 2005 2:47 pm Post subject: |
|
Stingri runājot, Alpha Blending nozīmē "alpha jaukšana" jeb krāsu jaukšana, nevis "caurspīdīgums" _________________ No, Unix IS user friendly. It is simply very selective on WHO his friends are. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|