<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi,<BR><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I'm trying to run some OpenGL samples on my MacBook Pro (CD), with mono 1.2.3.1, Tao Framework (2.0 RC1) and cocoa-sharp. The only problem, so far, has been within the code for loading a bitmap as a texture. I created a 256x256 bitmap with an uniform background color (RGB values = 33, 66, 99), but it does not load correctly. The problem is the array of bytes returned by the LockBits function. See the sample code:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>// load the bmp</DIV><DIV>Drawing.Bitmap bitmap = new Drawing.Bitmap ("oneColor.bmp");</DIV><DIV>// test that the bmp has been loaded correctly</DIV><DIV>for (int i = 0; i &lt; 10; ++i) {</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Drawing.Color pixelColor = <FONT class="Apple-style-span" face="Ayuthaya" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">bitmap.GetPixel (<FONT class="Apple-style-span" color="#FF0000">i</FONT></SPAN></FONT><FONT class="Apple-style-span" face="Ayuthaya" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">, 0);</SPAN></FONT></DIV><DIV><FONT class="Apple-style-span" face="Ayuthaya" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Console.WriteLine ("RGB = {0} {1} {2} " , pixelColor.R, pixelColor.G, pixelColor.B);</SPAN></FONT></DIV><DIV><FONT class="Apple-style-span" face="Ayuthaya" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">}</SPAN></FONT></DIV><DIV>// so far so good, it prints the correct RGB values for 10 pixels (have tested it with the whole bitmap)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>// to load a bitmap as a texture I need an IntPtr to the bytes, so a BitmapData object must be created</DIV><DIV>Drawing.Rectangle rect = new Drawing.Rectangle (0, 0, bitmap.Width - 1, bitmap.Height - 1); // a Rect with the bitmap dimensions is needed</DIV><DIV>// lock bits for read-only operations with a specific format RGB, 24 bits no alpha</DIV><DIV>Drawing.Imaging.BitmapData bdata;</DIV><DIV>bdata = bitmap.LockBits(rect, Drawing.Imaging.ImageLockMode.ReadOnly, Drawing.Imaging.PixelFormat.Format24bppRgb);</DIV><DIV>// test the first 150 locked bytes</DIV><DIV>for (int i = 0; i &lt; 150; ++i) </DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Console.Write (Marshal.ReadByte (bdata.Scan0, i).ToString () + ", ");</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The result is (formatted to show that a pattern exists):</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,33,255,</DIV><DIV>99,255,66,33,255,255,</DIV><DIV>99,66,33,255,255,</DIV><DIV>99,66,255,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I know that BMP files store BGR instead of RGB values, but this values do not make sense. I also tried with PixelFormat.Format32bppRgb and PixelFormat.Format32bppArgb, a slightly different pattern is printed, but it does have those 255 values all over the place.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Am I doing something wrong or is it a bug?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I can work around this "bug" with cocoa-sharp: creating a NSBitmapImageRep and reading its bitmapData property, which returns the correct values.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Regards,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Pedro</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV></BODY></HTML>