• R/O
  • SSH
  • HTTPS

iris-fmw: Commit


Commit MetaInfo

Revision32 (tree)
Time2010-09-28 12:40:59
Authorshirayanagi

Log Message

更新

Change Summary

Incremental Difference

--- trunk/framework/src/platform/windows/win_inline.h (nonexistent)
+++ trunk/framework/src/platform/windows/win_inline.h (revision 32)
@@ -0,0 +1,24 @@
1+//======================================================================
2+//-----------------------------------------------------------------------
3+/**
4+ * @file win_inline.h
5+ * @brief インライン関数 ファイル
6+ *
7+ * @author t.sirayanagi
8+ * @version 1.0
9+ *
10+ * @par copyright
11+ * Copyright (C) 2010 Takazumi Shirayanagi\n
12+ * The new BSD License is applied to this software.
13+ * see iris_LICENSE.txt
14+*/
15+//-----------------------------------------------------------------------
16+//======================================================================
17+#ifndef _IRIS_win_inline_H_
18+#define _IRIS_win_inline_H_
19+
20+//======================================================================
21+// include
22+#include "win/wx_inline.h"
23+
24+#endif
--- trunk/framework/src/platform/windows/d3dx/gx/material/DXMaterial.h (revision 31)
+++ trunk/framework/src/platform/windows/d3dx/gx/material/DXMaterial.h (revision 32)
@@ -33,10 +33,10 @@
3333 {
3434 public:
3535 // コンストラクタ
36- CDXMaterial( const intr::DXICOLOR& diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f)
37- , const intr::DXICOLOR& ambient = D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f)
38- , const intr::DXICOLOR& specular = D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f)
39- , const intr::DXICOLOR& emissive = D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f)
36+ CDXMaterial( const intr::DXICOLOR& diffuse = intr::DXICOLOR(1.0f, 1.0f, 1.0f, 1.0f)
37+ , const intr::DXICOLOR& ambient = intr::DXICOLOR(0.0f, 0.0f, 0.0f, 0.0f)
38+ , const intr::DXICOLOR& specular = intr::DXICOLOR(0.0f, 0.0f, 0.0f, 0.0f)
39+ , const intr::DXICOLOR& emissive = intr::DXICOLOR(0.0f, 0.0f, 0.0f, 0.0f)
4040 , f32 power = 0.0f
4141 );
4242
--- trunk/framework/src/platform/windows/d3dx/gx/material/DXMaterial.cpp (revision 31)
+++ trunk/framework/src/platform/windows/d3dx/gx/material/DXMaterial.cpp (revision 32)
@@ -57,10 +57,10 @@
5757 *//***********************************************************************/
5858 void CDXMaterial::SetDiffuse(f32 r, f32 g, f32 b, f32 a)
5959 {
60- Diffuse.r = (DXVALUE)r;
61- Diffuse.g = (DXVALUE)g;
62- Diffuse.b = (DXVALUE)b;
63- Diffuse.a = (DXVALUE)a;
60+ Diffuse.r = r;
61+ Diffuse.g = g;
62+ Diffuse.b = b;
63+ Diffuse.a = a;
6464 }
6565
6666 /**********************************************************************//**
@@ -75,10 +75,10 @@
7575 *//***********************************************************************/
7676 void CDXMaterial::SetSpecular(f32 r, f32 g, f32 b, f32 a)
7777 {
78- Specular.r = (DXVALUE)r;
79- Specular.g = (DXVALUE)g;
80- Specular.b = (DXVALUE)b;
81- Specular.a = (DXVALUE)a;
78+ Specular.r = r;
79+ Specular.g = g;
80+ Specular.b = b;
81+ Specular.a = a;
8282 }
8383
8484 /**********************************************************************//**
@@ -93,10 +93,10 @@
9393 *//***********************************************************************/
9494 void CDXMaterial::SetAmbient(f32 r, f32 g, f32 b, f32 a)
9595 {
96- Ambient.r = (DXVALUE)r;
97- Ambient.g = (DXVALUE)g;
98- Ambient.b = (DXVALUE)b;
99- Ambient.a = (DXVALUE)a;
96+ Ambient.r = r;
97+ Ambient.g = g;
98+ Ambient.b = b;
99+ Ambient.a = a;
100100 }
101101
102102 /**********************************************************************//**
@@ -112,10 +112,10 @@
112112 void CDXMaterial::SetEmissive(f32 r, f32 g, f32 b, f32 a)
113113 {
114114 #if !defined(_IRIS_SUPPORT_DXMOBILE)
115- Emissive.r = (DXVALUE)r;
116- Emissive.g = (DXVALUE)g;
117- Emissive.b = (DXVALUE)b;
118- Emissive.a = (DXVALUE)a;
115+ Emissive.r = r;
116+ Emissive.g = g;
117+ Emissive.b = b;
118+ Emissive.a = a;
119119 #else
120120 IRIS_UNUSED_VARIABLE(r);
121121 IRIS_UNUSED_VARIABLE(g);
--- trunk/framework/src/platform/windows/d3dx/gx/texture/filter/DXFade.h (revision 31)
+++ trunk/framework/src/platform/windows/d3dx/gx/texture/filter/DXFade.h (revision 32)
@@ -47,7 +47,7 @@
4747
4848 public:
4949 // カラー設定
50- virtual void _ChangeFadeColor(void) { m_Color = D3DXCOLOR(m_fR, m_fG, m_fB, m_fA); }
50+ virtual void _ChangeFadeColor(void) { m_Color = intr::DXICOLOR(m_fR, m_fG, m_fB, m_fA); }
5151 virtual void SetColor(const D3DXCOLOR& color) { SetFadeColor(color); }
5252
5353 };
--- trunk/framework/src/platform/windows/d3dx/gx/texture/DXTexture.cpp (revision 31)
+++ trunk/framework/src/platform/windows/d3dx/gx/texture/DXTexture.cpp (revision 32)
@@ -70,8 +70,8 @@
7070 , m_TexSize(*tex_size)
7171 , m_Width(0)
7272 , m_Height(0)
73-, m_UV0(0.0f,0.0f)
74-, m_UV1(0.0f,0.0f)
73+, m_UV0(0.0f, 0.0f)
74+, m_UV1(0.0f, 0.0f)
7575 {
7676 }
7777
--- trunk/framework/src/platform/windows/d3dx/gx/DXDevice.cpp (revision 31)
+++ trunk/framework/src/platform/windows/d3dx/gx/DXDevice.cpp (revision 32)
@@ -136,6 +136,7 @@
136136 D3DADAPTER_IDENTIFIER9 identifier;
137137 hr = d3d->GetAdapterIdentifier(adapter, 0, &identifier);
138138 dprintfA(identifier.Description);
139+ dprintfA("\n");
139140 if(strstr(identifier.Description, "PerfHUD") != nullptr)
140141 {
141142 adapterToUse = adapter;
--- trunk/framework/src/platform/windows/ce/wce_support.h (revision 31)
+++ trunk/framework/src/platform/windows/ce/wce_support.h (revision 32)
@@ -78,11 +78,12 @@
7878 #endif
7979
8080
81+#define vswprintf_s(dst, size, fmt, va) ((void)(size), vswprintf(dst, fmt, va))
82+#define vsnprintf(dst, size, src, va) ((void)(size), vsprintf(dst, src, va))
83+#define _vscprintf(fmt, va) _vcprintf(fmt, va)
84+#define _vscwprintf(fmt, va) _vcwprintf(fmt, va)
8185
82-#define vsnprintf(dst, size, src, va) ((void)(size), vsprintf(dst, src, va))
8386
84-
85-
8687 #endif
8788
8889 #endif
--- trunk/framework/src/platform/windows/win/wx_support.h (revision 31)
+++ trunk/framework/src/platform/windows/win/wx_support.h (revision 32)
@@ -160,42 +160,4 @@
160160 #define kbhit _kbhit
161161 #endif
162162
163-#include <malloc.h>
164-#include <stdio.h>
165-
166-#if defined(__cplusplus)
167-extern "C" {
168163 #endif
169-
170-//======================================================================
171-// function
172-STATICINLINE void OutputDebugStringExA(LPCSTR lpFormat, ...)
173-{
174- va_list va;
175- va_start(va, lpFormat);
176- {
177- int len = _vscprintf(lpFormat, va) + 1;
178- LPSTR str = (LPSTR)alloca(len * sizeof(CHAR));
179- vsprintf_s(str, len, lpFormat, va);
180- OutputDebugStringA(str);
181- }
182- va_end(va);
183-}
184-STATICINLINE void OutputDebugStringExW(LPCWSTR lpFormat, ...)
185-{
186- va_list va;
187- va_start(va, lpFormat);
188- {
189- int len = _vscwprintf(lpFormat, va) + 1;
190- LPWSTR str = (LPWSTR)alloca(len * sizeof(WCHAR));
191- vswprintf_s(str, len, lpFormat, va);
192- OutputDebugStringW(str);
193- }
194- va_end(va);
195-}
196-
197-#if defined(__cplusplus)
198-}
199-#endif
200-
201-#endif
--- trunk/framework/src/platform/windows/win/wx_inline.h (nonexistent)
+++ trunk/framework/src/platform/windows/win/wx_inline.h (revision 32)
@@ -0,0 +1,62 @@
1+//======================================================================
2+//-----------------------------------------------------------------------
3+/**
4+ * @file wx_inline.h
5+ * @brief インライン関数 ファイル
6+ *
7+ * @author t.sirayanagi
8+ * @version 1.0
9+ *
10+ * @par copyright
11+ * Copyright (C) 2010 Takazumi Shirayanagi\n
12+ * The new BSD License is applied to this software.
13+ * see iris_LICENSE.txt
14+*/
15+//-----------------------------------------------------------------------
16+//======================================================================
17+#ifndef _IRIS_wx_inline_H_
18+#define _IRIS_wx_inline_H_
19+
20+//======================================================================
21+// include
22+#include <malloc.h>
23+#include <stdio.h>
24+
25+#if defined(__cplusplus)
26+extern "C" {
27+#endif
28+
29+//======================================================================
30+// function
31+#if defined(OutputDebugString)
32+STATICINLINE void OutputDebugStringExA(LPCSTR lpFormat, ...)
33+{
34+ va_list va;
35+ va_start(va, lpFormat);
36+ {
37+ int len = _vscprintf(lpFormat, va) + 1;
38+ LPSTR str = (LPSTR)alloca(len * sizeof(CHAR));
39+ vsprintf_s(str, len, lpFormat, va);
40+ OutputDebugStringA(str);
41+ }
42+ va_end(va);
43+}
44+STATICINLINE void OutputDebugStringExW(LPCWSTR lpFormat, ...)
45+{
46+ va_list va;
47+ va_start(va, lpFormat);
48+ {
49+ int len = _vscwprintf(lpFormat, va) + 1;
50+ LPWSTR str = (LPWSTR)alloca(len * sizeof(WCHAR));
51+ vswprintf_s(str, len, lpFormat, va);
52+ OutputDebugStringW(str);
53+ }
54+ va_end(va);
55+}
56+#endif
57+
58+#if defined(__cplusplus)
59+}
60+#endif
61+
62+#endif
--- trunk/framework/src/platform/windows/win/image/WXIconImage.cpp (revision 31)
+++ trunk/framework/src/platform/windows/win/image/WXIconImage.cpp (revision 32)
@@ -198,38 +198,26 @@
198198 switch(nBitCount)
199199 {
200200 case 1:
201- {
202- clr = 2;
203- size = IRIS_RoundUp4B((nWidth+7)>>3) * nHeight;
204- }
201+ clr = 2;
202+ size = IRIS_RoundUp4B((nWidth+7)>>3) * nHeight;
205203 break;
206204 case 4:
207- {
208- clr = 16;
209- size = IRIS_RoundUp4B((nWidth+1)>>1) * nHeight;
210- }
205+ clr = 16;
206+ size = IRIS_RoundUp4B((nWidth+1)>>1) * nHeight;
211207 break;
212208 case 8:
213- {
214- clr = 256;
215- size = IRIS_RoundUp4B(nWidth) * nHeight;
216- }
209+ clr = 256;
210+ size = IRIS_RoundUp4B(nWidth) * nHeight;
217211 break;
218212 case 16:
219- {
220- clr = 65536;
221- size = IRIS_RoundUp4B(nWidth*2) * nHeight;
222- }
213+ clr = 65536;
214+ size = IRIS_RoundUp4B(nWidth*2) * nHeight;
223215 break;
224216 case 24:
225- {
226- size = IRIS_RoundUp4B(nWidth*3) * nHeight;
227- }
217+ size = IRIS_RoundUp4B(nWidth*3) * nHeight;
228218 break;
229219 case 32:
230- {
231- size = IRIS_RoundUp4B(nWidth*4) * nHeight;
232- }
220+ size = IRIS_RoundUp4B(nWidth*4) * nHeight;
233221 break;
234222 default:
235223 return false;;
--- trunk/framework/src/platform/windows/win/debug/WXDebugConsole.cpp (revision 31)
+++ trunk/framework/src/platform/windows/win/debug/WXDebugConsole.cpp (revision 32)
@@ -197,6 +197,7 @@
197197 #if 1
198198 // バッファクリア
199199 FlushInputBuffer();
200+ Print("> ");
200201 #endif
201202 ReadConsole(buf, sizeof(buf)/sizeof(TCHAR), &dwRead);
202203 // デフォルトイベント
@@ -223,8 +224,11 @@
223224 {
224225 // ページ変更
225226 p += 8;
226- int no = _tcstol(p, nullptr, 10);
227- SetPage(no);
227+ int no = _tcstol(p, nullptr, 0);
228+ if( SetPage(no) )
229+ {
230+ Print("set page. %d\n", no);
231+ }
228232 return true;
229233 }
230234 p = _tcsstr(buf, TEXT("addpage="));
@@ -232,8 +236,11 @@
232236 {
233237 // ページ追加
234238 p += 8;
235- int no = _tcstol(p, nullptr, 10);
236- AddPage(no, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, nullptr);
239+ int no = _tcstol(p, nullptr, 0);
240+ if( AddPage(no, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, nullptr) )
241+ {
242+ Print("addpage succeed. %d\n", no);
243+ }
237244 return true;
238245 }
239246 p = _tcsstr(buf, TEXT("delpage="));
@@ -241,8 +248,11 @@
241248 {
242249 // ページ削除
243250 p += 8;
244- int no = _tcstol(p, nullptr, 10);
245- DelPage(no);
251+ int no = _tcstol(p, nullptr, 0);
252+ if( DelPage(no) )
253+ {
254+ Print("delpage succeed. %d\n", no);
255+ }
246256 return true;
247257 }
248258 p = _tcsstr(buf, TEXT("quite"));
--- trunk/framework/src/platform/windows/win/gdi/WXDeviceContext.cpp (revision 31)
+++ trunk/framework/src/platform/windows/win/gdi/WXDeviceContext.cpp (revision 32)
@@ -470,7 +470,7 @@
470470 * @param [in] nCount = 文字列の長さ
471471 * @return BOOL値
472472 *//***********************************************************************/
473-BOOL CDeviceContext::TextOutA(int x, int y, LPCSTR lpszString, int nCount)
473+BOOL CDeviceContext::TextOutA(int x, int y, int nCount, LPCSTR lpszString)
474474 {
475475 #if defined(IRIS_WIN32_WCE)
476476 return ::ExtTextOutA(m_hDC, x, y, 0, nullptr, lpszString, nCount, nullptr);
@@ -519,13 +519,13 @@
519519 ----------------------------------------------------------------------
520520 * @param [in] lprc = 表示領域
521521 * @param [in] format = フォーマット(DT_***)
522+ * @param [in] nCount = 文字列の長さ
522523 * @param [in] lpszString = 文字列
523- * @param [in] nCount = 文字列の長さ
524524 * @return BOOL値
525525 *//***********************************************************************/
526-BOOL CDeviceContext::DrawTextA(LPRECT lprc, UINT format, LPCSTR lpszString, int nCount)
526+BOOL CDeviceContext::DrawTextA(LPRECT lprc, UINT format, int nCount, LPCSTR lpszString)
527527 {
528- return ::DrawTextA(m_hDC, lpszString, nCount, lprc, format );
528+ return ::DrawTextA(m_hDC, lpszString, nCount, lprc, format);
529529 }
530530 BOOL CDeviceContext::DrawTextA(LPRECT lprc, UINT format, LPCSTR lpszString, ...)
531531 {
--- trunk/framework/src/platform/windows/win/gdi/WXDeviceContext.h (revision 31)
+++ trunk/framework/src/platform/windows/win/gdi/WXDeviceContext.h (revision 32)
@@ -108,10 +108,10 @@
108108 COLORREF SetTextColor(COLORREF color);
109109 COLORREF GetTextColor(void) const;
110110 // テキストを指定の位置に出力する
111- BOOL TextOutA(int x, int y, LPCSTR lpszString, int nCount);
111+ BOOL TextOutA(int x, int y, int nCount, LPCSTR lpszString);
112112 BOOL TextOutA(int x, int y, LPCSTR lpszString, ...);
113113 // テキスト描画
114- BOOL DrawTextA(LPRECT lprc, UINT format, LPCSTR lpszString, int nCount);
114+ BOOL DrawTextA(LPRECT lprc, UINT format, int nCount, LPCSTR lpszString);
115115 BOOL DrawTextA(LPRECT lprc, UINT format, LPCSTR lpszString, ...);
116116
117117 public:
--- trunk/framework/src/iris_support.h (revision 31)
+++ trunk/framework/src/iris_support.h (revision 32)
@@ -26,7 +26,7 @@
2626 #else
2727 # if defined(IRIS_WIN32)
2828 # include "platform/windows/win_support.h"
29-# elif defined(IRIS_APPLE)
29+# elif defined(IRIS_APPLE)
3030 # include "platform/apple/apple_support.h"
3131 # else
3232 # endif
@@ -45,7 +45,7 @@
4545 #endif
4646
4747 // crt セキュリティ強化対応
48-#if !(defined(__STDC_WANT_SECURE_LIB__) && __STDC_WANT_SECURE_LIB__ ) || defined(IRIS_WIN32_WCE)
48+#if !(defined(__STDC_WANT_SECURE_LIB__) && __STDC_WANT_SECURE_LIB__) || defined(IRIS_WIN32_WCE)
4949
5050 #define _vsnprintf_s(dst, size, cnt, src, va) vsnprintf(dst, size, src, va)
5151
@@ -58,6 +58,10 @@
5858 #define freopen_s(fp, path, mode, old) *(fp) = freopen(path, mode, old)
5959 #define localtime_s(tm, time) *(tm) = *localtime(time)
6060
61+#define vsprintf_s(dst, size, fmt, va) ((void)(size), vsprintf(dst, fmt, va))
62+#ifndef vswprintf_s
63+# define vswprintf_s(dst, size, fmt, va) vswprintf(dst, size, fmt, va)
64+#endif
6165 #define _vsnwprintf_s(dst, size, cnt, src, va) ((void)(cnt), _vsnwprintf(dst, size, src, va))
6266 #define _wfopen_s(fp, path, mode) *fp = _wfopen(path, mode)
6367
--- trunk/framework/src/iris_inline.h (revision 31)
+++ trunk/framework/src/iris_inline.h (revision 32)
@@ -19,6 +19,16 @@
1919
2020 //======================================================================
2121 // include
22+#if defined(_IRIS_SUPPORT_EXT_PLATFORM)
23+# include "iris_ext_inline.h"
24+#else
25+# if defined(IRIS_WIN32)
26+# include "platform/windows/win_inline.h"
27+# elif defined(IRIS_APPLE)
28+# else
29+# endif
30+#endif
31+
2232 #include "iris_stdc.h"
2333 #include <stdarg.h>
2434
--- trunk/framework/src/fnd/image/FndBitmap.cpp (revision 31)
+++ trunk/framework/src/fnd/image/FndBitmap.cpp (revision 32)
@@ -288,66 +288,53 @@
288288 bool CBitmap::Create(u16 nBitCount, s32 nWidth, s32 nHeight)
289289 {
290290 Release();
291+ u32 plsize = 0;
291292 switch(nBitCount)
292293 {
293294 case 1:
294295 {
295- u32 plsize = sizeof(IrisRGBQUAD)*2;
296+ plsize = sizeof(IrisRGBQUAD)*2;
296297 u32 size = IRIS_RoundUp4B((nWidth+7)>>3) * nHeight;
297298 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
298- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
299299 m_bmp.pallete = reinterpret_cast<IrisRGBQUAD*>(m_bmp.data);
300- m_bmp.pixel = m_bmp.data + plsize;
301300 }
302301 break;
303302 case 4:
304303 {
305- u32 plsize = sizeof(IrisRGBQUAD)*16;
304+ plsize = sizeof(IrisRGBQUAD)*16;
306305 u32 size = IRIS_RoundUp4B((nWidth+1)>>1) * nHeight;
307306 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
308- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
309307 m_bmp.pallete = reinterpret_cast<IrisRGBQUAD*>(m_bmp.data);
310- m_bmp.pixel = m_bmp.data + plsize;
311308 }
312309 break;
313310 case 8:
314311 {
315- u32 plsize = sizeof(IrisRGBQUAD)*256;
312+ plsize = sizeof(IrisRGBQUAD)*256;
316313 u32 size = IRIS_RoundUp4B(nWidth) * nHeight;
317314 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
318- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
319315 m_bmp.pallete = reinterpret_cast<IrisRGBQUAD*>(m_bmp.data);
320- m_bmp.pixel = m_bmp.data + plsize;
321316 }
322317 break;
323318 case 16:
324319 {
325- u32 plsize = sizeof(IrisRGBQUAD)*65536;
320+ plsize = sizeof(IrisRGBQUAD)*65536;
326321 u32 size = IRIS_RoundUp4B(nWidth*2) * nHeight;
327322 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
328- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
329323 m_bmp.pallete = reinterpret_cast<IrisRGBQUAD*>(m_bmp.data);
330- m_bmp.pixel = m_bmp.data + plsize;
331324 }
332325 break;
333326 case 24:
334327 {
335- u32 plsize = 0;
336328 u32 size = IRIS_RoundUp4B(nWidth*3) * nHeight;
337329 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
338- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
339330 m_bmp.pallete = nullptr;
340- m_bmp.pixel = m_bmp.data + plsize;
341331 }
342332 break;
343333 case 32:
344334 {
345- u32 plsize = 0;
346335 u32 size = IRIS_RoundUp4B(nWidth*4) * nHeight;
347336 if( !Alloc(size + BMP_HEADSIZE + plsize) ) return false;
348- m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
349337 m_bmp.pallete = nullptr;
350- m_bmp.pixel = m_bmp.data + plsize;
351338 }
352339 break;
353340 default:
@@ -354,6 +341,8 @@
354341 return false;;
355342 }
356343
344+ m_bmp.file->bfOffBits = BMP_HEADSIZE + plsize;
345+ m_bmp.pixel = m_bmp.data + plsize;
357346 if( !CreateHeader(&m_bmp, nBitCount, nWidth, nHeight) ) return false;
358347 m_bmp.file->bfSize = m_bmp.file->bfOffBits + m_bmp.info->biSizeImage;
359348 memset(m_bmp.data, 0, m_bmp.file->bfSize - BMP_HEADSIZE);
@@ -945,8 +934,7 @@
945934 if( !IsValid() ) return nullptr;
946935 s32 w = m_bmp.info->biWidth;
947936 s32 h = m_bmp.info->biHeight;
948- if( x >= w ) return nullptr;
949- if( y >= h ) return nullptr;
937+ if( x >= w || y >= h ) return nullptr;
950938 s32 dy = h-y-1;
951939 u32 lw;
952940 switch( m_bmp.info->biBitCount )
Show on old repository browser