[Bug 412] Changed - Win32 API CreateDIBSection for 4bpp yields wrong result

wine-bugs at winehq.com wine-bugs at winehq.com
Mon May 20 09:06:55 CDT 2002


http://bugs.winehq.com/show_bug.cgi?id=412

*** shadow/412	Sun Jan 27 05:51:19 2002
--- shadow/412.tmp.22974	Mon May 20 09:06:55 2002
***************
*** 7,16 ****
  |     Severity: normal                   OS/Version: All                     |
  |     Priority: P1                        Component: wine-gdi                |
  +----------------------------------------------------------------------------+
! |  Assigned To: bugs at codeweavers.com                                         |
  |  Reported By: ye_zong_hui at yahoo.com.cn                                     |
  |      CC list: Cc:                                                          |
  +----------------------------------------------------------------------------+
  |          URL:                                                              |
  +============================================================================+
  |                              DESCRIPTION                                   |
--- 7,17 ----
  |     Severity: normal                   OS/Version: All                     |
  |     Priority: P1                        Component: wine-gdi                |
  +----------------------------------------------------------------------------+
! |  Assigned To: wine-bugs at winehq.com                                         |
  |  Reported By: ye_zong_hui at yahoo.com.cn                                     |
  |      CC list: Cc:                                                          |
  +----------------------------------------------------------------------------+
+ |    Milestone: TargetMilestone: ---                                         |
  |          URL:                                                              |
  +============================================================================+
  |                              DESCRIPTION                                   |
***************
*** 243,245 ****
--- 244,272 ----
  
  ------- Additional Comments From ye_zong_hui at yahoo.com.cn  2002-01-27 05:50 -------
  *** This bug has been confirmed by popular vote. ***
+ 
+ ------- Additional Comments From bon at elektron.ikp.physik.tu-darmstadt.de  2002-05-20 09:06 -------
+ The Helio Emulator emulator (source is available) uses the depreciate
+ SetBitmapBits() function, what probably exposes an error in our DIB handling.
+ 
+ First a 4 bit DIBSection is created:
+     lpbi->bmiHeader.biPlanes = 1;
+     lpbi->bmiHeader.biBitCount = 4;
+ ..
+     PVOID pvBits;
+     m_hbmLCD = CreateDIBSection(hdc, lpbi, DIB_RGB_COLORS, &pvBits, NULL, 0 );
+ 
+ Later the real data is set:
+     HDC hdcLCD = CreateCompatibleDC(hdc);
+     HBITMAP hbmOld = (HBITMAP) SelectObject(hdcLCD, m_hbmLCD);
+     SetBitmapBits(m_hbmLCD, LCD_WIDTH*LCD_HEIGHT/2, m_abLCDBits);
+     StretchBlt(hdc, m_rcScrn.left, m_rcScrn.top, cxScrn, cyScrn, hdcLCD, 0, 0,
+ LCD_WIDTH, LCD_HEIGHT, SRCCOPY);
+     SelectObject(hdcLCD, hbmOld);
+     DeleteDC(hdcLCD);
+ 
+ Now the four bit data given is handled as 24 bit data which was used for the
+ bitmap during CreateDIBSection and the display is wrong. I think we need to use
+ SetDIBits somehow, but I don't know how.
+ 
+ Bye
\ No newline at end of file



More information about the wine-bugs mailing list