المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Back Buffer Putting pixel?



C# Programming
04-03-2009, 12:02 AM
there is ugly work isn't it? http://www.barakasoft.com/script/Forums/Images/smiley_frown.gif

i realy hate this surface.

listen me. i need help for this code part.

i try to 2 way for write on backbuffer. X8R8G8B8 format. 400x300 client size in form.

way the one :


int pitch;
using (GraphicsStream gs = s.LockRectangle(this.ClientRectangle, LockFlags.None, out pitch))
{

byte[] b = new byte[(400 * 300 ) * 4];
for (int i = 0; i < (400 * 300 ) * 4; i += 4)
{
b[i] = 255;
b[i + 1] = 255;
b[i + 2] = 255;
b[i + 3] = 255;
}
gs.Write(b, 0, (400 * 300) * 4);



but it doesn't work correctly. it put some pixel on surface but like some line on different x axis on surface.

way the last:


try
{
uint[,] a = (uint[,])s.LockRectangle(typeof(uint),Rectangle.FromLTRB(100,100,200,200), LockFlags.None, new int[] { 100, 100 });

for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
a[i, j] = 0xFFFFFFFF;

}
}

}
catch (Exception e) { }

try
{
s.UnlockRectangle();
}
catch {

}


this way dont give me to different result. help me. sorry! im not beginner. but i dont have good english.

thank you.