• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

121 Neutral

About Syme

  • Rank
  1. Hi all, First, I know next to nothing about DirectX so thank you in advance for the patience. I want to access RGB pixel data of a rectangular sub-area of the screen. I can successfully access the data for the full screen like this: var surface = Surface.CreateOffscreenPlain(myDevice, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8, Pool.Scratch); myDevice.GetFrontBufferData(0, surface); var dataRectangle = surface.LockRectangle(LockFlags.None); DataStream rgbStream = dataRectangle.Data; My understanding is that to get the byte stream of a 256*256 px square based in the top left the third line needs to be replaced by: var dataRectangle = surface.LockRectangle(new Rectangle(0, 0, 256, 256), LockFlags.None); The resulting data stream is however identical to the last byte to the one produced when there was no Rectangle argument. I've tested it with multiple values and the area of the rectangle never changed the stream in any way (the anchoring point of the rectangle on the other hand did). Am I not understanding the method properly? Thanks for your help.
  • Advertisement