Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

BinaryOne

lPitch and DDraw surfaces giving me hell!!!

This topic is 5911 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am currently writing a bitmap load function that takes a bitmap from file and gets it onto a ddraw surface. I am having problems transfering the bitmap from my bitmap buffer to a surface. To define the surface dimensions I use the bitmaps dimensions drawn from its header. When I enter certain values the bitmap becomes skewed. This is because the surface lPitch is greater than the bitmap width. All powers of 2 work and also the various screen resolution sizes from 640x480 dividing the width and height by 2 each time all worked. When there is a variation between lPitch and width the lPitch is always larger, by a multiple of 4 pixels. From tests the width(in bytes) values that have the problem finish with a value in the 60 range. The only time a crash occurs without deviation is when I select a bitmap height of 479 and i suspect this is because of trampling of memory. I am working at 640x480 with 32bpp. Your help would be greatly appreciated Thanx!!!!

Share this post


Link to post
Share on other sites
Advertisement
I guess I''m not understanding all of the problem here... if you know that the pitch difference is skewing your bitmap, then why don''t you just account for it in your code?



Don''t listen to me. I''ve had too much coffee.

Share this post


Link to post
Share on other sites
I tried that already and it didn''t work, even if it did I would need to know why i get the error, whether it is because of me or the hardware i am using thanx neway!!! any other suggestions?

Share this post


Link to post
Share on other sites
I tried that already and it didn''t work, even if it did I would need to know why i get the error, whether it is because of me or the hardware i am using thanx neway!!! any other suggestions?

Share this post


Link to post
Share on other sites
I suggest you debug.

Let's say I have a bitmap (declared as a char *) of height bh, width bw, and pixel-width bpw, and I want to copy it to a texture (declared as a char *)with height th, width tw, and pitch tp. Watch closely.


    
for(int y=0; y<bh; ++y)
{
memcpy(texture + (tp * bpw * y), bitmap + (bw * bpw * y), sizeof(char) * bpw * bw);
}




Don't listen to me. I've had too much coffee.

[edited by - sneftel on August 13, 2002 8:18:02 PM]

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!