Index: reactos/base/applications/mstsc/bsops.c =================================================================== --- reactos/base/applications/mstsc/bsops.c (revision 66562) +++ reactos/base/applications/mstsc/bsops.c (working copy) @@ -228,14 +228,8 @@ return data[(y * 2) * width + (x * 2)] != 0 || data[(y * 2) * width + (x * 2) + 1] != 0; } - else if (bpp == 24) + else if (bpp == 24 || bpp == 32) { - return data[(y * 3) * width + (x * 3)] != 0 || - data[(y * 3) * width + (x * 3) + 1] != 0 || - data[(y * 3) * width + (x * 3) + 2] != 0; - } - else if (bpp == 32) - { return data[(y * 4) * width + (x * 4)] != 0 || data[(y * 4) * width + (x * 4) + 1] != 0 || data[(y * 4) * width + (x * 4) + 2] != 0 || @@ -277,6 +271,10 @@ { ((unsigned short *) data)[y * width + x] = pixel; } + else if (bpp == 24 || bpp == 32) + { + ((unsigned int *) data)[y * width + x] = (unsigned int) pixel; + } } /*****************************************************************************/ Index: reactos/base/applications/mstsc/connectdialog.c =================================================================== --- reactos/base/applications/mstsc/connectdialog.c (revision 66562) +++ reactos/base/applications/mstsc/connectdialog.c (working copy) @@ -669,7 +669,7 @@ PSETTINGS_ENTRY Current; DWORD index, i, num; DWORD MaxBpp = 0; - UINT types[4]; + UINT types[5]; pInfo->CurrentDisplayDevice = pInfo->DisplayDeviceList; /* Update global variable */ @@ -686,10 +686,11 @@ } switch (MaxBpp) { - case 32: - case 24: num = 4; break; - case 16: num = 3; break; - case 8: num = 1; break; + case 32: num = 4; break; + case 24: num = 3; break; + case 16: num = 2; break; + case 15: num = 1; break; + case 8: num = 0; break; default: num = 0; break; } @@ -697,6 +698,7 @@ types[1] = IDS_HIGHCOLOR15; types[2] = IDS_HIGHCOLOR16; types[3] = IDS_HIGHCOLOR24; + types[4] = IDS_HIGHCOLOR32; /* Fill color depths combo box */ SendDlgItemMessageW(pInfo->hDisplayPage, Index: reactos/base/applications/mstsc/lang/bg-BG.rc =================================================================== --- reactos/base/applications/mstsc/lang/bg-BG.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/bg-BG.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "Висока цветност (15 разряда)" IDS_HIGHCOLOR16 "Висока цветност (16 разряда)" IDS_HIGHCOLOR24 "Истинска цветност (24 разряда)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu точки" IDS_FULLSCREEN "Цял екран" IDS_BROWSESERVER "<Обзор за още...>" Index: reactos/base/applications/mstsc/lang/ca-ES.rc =================================================================== --- reactos/base/applications/mstsc/lang/ca-ES.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/ca-ES.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 Colors (15 bit)" IDS_HIGHCOLOR16 "65,536 Colors (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Colors (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixels" IDS_FULLSCREEN "Pantalla Complerta" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/cs-CZ.rc =================================================================== --- reactos/base/applications/mstsc/lang/cs-CZ.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/cs-CZ.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 Barev (15 bit)" IDS_HIGHCOLOR16 "65,536 Barev (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Barev (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixelů" IDS_FULLSCREEN "Celá obrazovka" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/de-DE.rc =================================================================== --- reactos/base/applications/mstsc/lang/de-DE.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/de-DE.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 Farben (15 bit)" IDS_HIGHCOLOR16 "65,536 Farben (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Farben (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixel" IDS_FULLSCREEN "Vollbild" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/el-GR.rc =================================================================== --- reactos/base/applications/mstsc/lang/el-GR.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/el-GR.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 χρώματα (15 bit)" IDS_HIGHCOLOR16 "65,536 χρώματα (16 bit)" IDS_HIGHCOLOR24 "16,777,216 χρώματα (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixels" IDS_FULLSCREEN "Πλήρης οθόνη" IDS_BROWSESERVER "<Αναζήτηση για περισσότερα...>" Index: reactos/base/applications/mstsc/lang/en-US.rc =================================================================== --- reactos/base/applications/mstsc/lang/en-US.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/en-US.rc (working copy) @@ -52,9 +52,10 @@ IDS_TAB_GENERAL "General" IDS_TAB_DISPLAY "Display" IDS_256COLORS "256 Colors" - IDS_HIGHCOLOR15 "32,768 Colors (15 bit)" - IDS_HIGHCOLOR16 "65,536 Colors (16 bit)" - IDS_HIGHCOLOR24 "16,777,216 Colors (24 bit)" + IDS_HIGHCOLOR15 "High Color (15 bit)" + IDS_HIGHCOLOR16 "High Color (16 bit)" + IDS_HIGHCOLOR24 "True Color (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixels" IDS_FULLSCREEN "Full Screen" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/es-ES.rc =================================================================== --- reactos/base/applications/mstsc/lang/es-ES.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/es-ES.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 colores (15 bit)" IDS_HIGHCOLOR16 "65,536 colores (16 bit)" IDS_HIGHCOLOR24 "16,777,216 colores (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu píxeles" IDS_FULLSCREEN "Pantalla completa" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/fr-FR.rc =================================================================== --- reactos/base/applications/mstsc/lang/fr-FR.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/fr-FR.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 Couleurs (15 bit)" IDS_HIGHCOLOR16 "65,536 Couleurs (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Couleurs (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixels" IDS_FULLSCREEN "Plein écran" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/he-IL.rc =================================================================== --- reactos/base/applications/mstsc/lang/he-IL.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/he-IL.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 צבעים (15 סיביות)" IDS_HIGHCOLOR16 "65,536 צבעים (16 סיביות)" IDS_HIGHCOLOR24 "16,777,216 צבעים (24 סיביות)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu פיקסלים" IDS_FULLSCREEN "מסך מלא" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/it-IT.rc =================================================================== --- reactos/base/applications/mstsc/lang/it-IT.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/it-IT.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 colori (15 bit)" IDS_HIGHCOLOR16 "65.536 colori (16 bit)" IDS_HIGHCOLOR24 "16,777,216 colori (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixel" IDS_FULLSCREEN "Schermo Intero" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/ja-JP.rc =================================================================== --- reactos/base/applications/mstsc/lang/ja-JP.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/ja-JP.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 色 (15 ビット)" IDS_HIGHCOLOR16 "65,536 色 (16 ビット)" IDS_HIGHCOLOR24 "16,777,216 色 (24 ビット)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lu x %lu ピクセル" IDS_FULLSCREEN "全画面表示" IDS_BROWSESERVER "<参照...>" Index: reactos/base/applications/mstsc/lang/ko-KR.rc =================================================================== --- reactos/base/applications/mstsc/lang/ko-KR.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/ko-KR.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 색 (15 비트)" IDS_HIGHCOLOR16 "65,536 색 (16 비트)" IDS_HIGHCOLOR24 "16,777,216 색 (24 비트)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu 픽셀" IDS_FULLSCREEN "최대 화면" IDS_BROWSESERVER "<더 많이...>" Index: reactos/base/applications/mstsc/lang/lt-LT.rc =================================================================== --- reactos/base/applications/mstsc/lang/lt-LT.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/lt-LT.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 spalvos (15 bitų)" IDS_HIGHCOLOR16 "65,536 spalvos (16 bitų)" IDS_HIGHCOLOR24 "16,777,216 spalvų (24 bitai)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu taškų" IDS_FULLSCREEN "Visas ekranas" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/no-NO.rc =================================================================== --- reactos/base/applications/mstsc/lang/no-NO.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/no-NO.rc (working copy) @@ -55,6 +55,7 @@ IDS_HIGHCOLOR15 "32,768 Farger (15 bit)" IDS_HIGHCOLOR16 "65,536 Farger (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Farger (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Piksler" IDS_FULLSCREEN "Full skjerm" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/pl-PL.rc =================================================================== --- reactos/base/applications/mstsc/lang/pl-PL.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/pl-PL.rc (working copy) @@ -65,6 +65,7 @@ IDS_HIGHCOLOR15 "32,768 kolorów (15 bit)" IDS_HIGHCOLOR16 "65,536 kolorów (16 bit)" IDS_HIGHCOLOR24 "16,777,216 kolorów (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu pikseli" IDS_FULLSCREEN "Pełny ekran" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/ro-RO.rc =================================================================== --- reactos/base/applications/mstsc/lang/ro-RO.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/ro-RO.rc (working copy) @@ -62,6 +62,7 @@ IDS_HIGHCOLOR15 "32,768 culori (15 biți)" IDS_HIGHCOLOR16 "65,536 culori (16 biți)" IDS_HIGHCOLOR24 "16,777,216 culori (24 biți)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu pixeli" IDS_FULLSCREEN "Pe tot ecranul" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/ru-RU.rc =================================================================== --- reactos/base/applications/mstsc/lang/ru-RU.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/ru-RU.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 цветов (15 бит)" IDS_HIGHCOLOR16 "65,536 цветов (16 бит)" IDS_HIGHCOLOR24 "16,777,216 цветов (24 бит)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lu на %lu пикселей" IDS_FULLSCREEN "Полный экран" IDS_BROWSESERVER "<Указать путь...>" Index: reactos/base/applications/mstsc/lang/sk-SK.rc =================================================================== --- reactos/base/applications/mstsc/lang/sk-SK.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/sk-SK.rc (working copy) @@ -59,6 +59,7 @@ IDS_HIGHCOLOR15 "32,768 farieb (15 bitov)" IDS_HIGHCOLOR16 "65,536 farieb (16 bitov)" IDS_HIGHCOLOR24 "16,777,216 farieb (24 bitov)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu pixelov" IDS_FULLSCREEN "Celá obrazovka" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/sq-AL.rc =================================================================== --- reactos/base/applications/mstsc/lang/sq-AL.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/sq-AL.rc (working copy) @@ -59,6 +59,7 @@ IDS_HIGHCOLOR15 "32,768 Ngjyra (15 bit)" IDS_HIGHCOLOR16 "65,536 Ngjyra (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Ngjyra (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixels" IDS_FULLSCREEN "Ekran i plote" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/sv-SE.rc =================================================================== --- reactos/base/applications/mstsc/lang/sv-SE.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/sv-SE.rc (working copy) @@ -62,6 +62,7 @@ IDS_HIGHCOLOR15 "32,768 Färger (15 bit)" IDS_HIGHCOLOR16 "65,536 Färger (16 bit)" IDS_HIGHCOLOR24 "16,777,216 Färger (24 bit)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu Pixlar" IDS_FULLSCREEN "Fullskärm" IDS_BROWSESERVER "" Index: reactos/base/applications/mstsc/lang/tr-TR.rc =================================================================== --- reactos/base/applications/mstsc/lang/tr-TR.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/tr-TR.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 (15 Bitlik) Renk" IDS_HIGHCOLOR16 "65,536 (16 Bitlik) Renk" IDS_HIGHCOLOR24 "16,777,216 (24 Bitlik) Renk" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lu*%lu Nokta" IDS_FULLSCREEN "Tüm Görüntülük" IDS_BROWSESERVER "(Daha Çoğu İçin Göz At...)" Index: reactos/base/applications/mstsc/lang/uk-UA.rc =================================================================== --- reactos/base/applications/mstsc/lang/uk-UA.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/uk-UA.rc (working copy) @@ -63,6 +63,7 @@ IDS_HIGHCOLOR15 "32,768 кольорів (15 біт)" IDS_HIGHCOLOR16 "65,536 кольорів (16 біт)" IDS_HIGHCOLOR24 "16,777,216 кольорів (24 біти)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lu на %lu крапок" IDS_FULLSCREEN "На весь екран" IDS_BROWSESERVER "<Пошук інших...>" Index: reactos/base/applications/mstsc/lang/zh-CN.rc =================================================================== --- reactos/base/applications/mstsc/lang/zh-CN.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/zh-CN.rc (working copy) @@ -57,6 +57,7 @@ IDS_HIGHCOLOR15 "32,768 色 (15 位)" IDS_HIGHCOLOR16 "65,536 色 (16 位)" IDS_HIGHCOLOR24 "16,777,216 色 (24 位)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu 像素" IDS_FULLSCREEN "全屏" IDS_BROWSESERVER "<浏览更多...>" Index: reactos/base/applications/mstsc/lang/zh-TW.rc =================================================================== --- reactos/base/applications/mstsc/lang/zh-TW.rc (revision 66562) +++ reactos/base/applications/mstsc/lang/zh-TW.rc (working copy) @@ -62,6 +62,7 @@ IDS_HIGHCOLOR15 "32,768 色 (15 位元)" IDS_HIGHCOLOR16 "65,536 色 (16 位元)" IDS_HIGHCOLOR24 "16,777,216 色 (24 位元)" + IDS_HIGHCOLOR32 "Highest Quality (32 bit)" IDS_PIXEL "%lux%lu 像素" IDS_FULLSCREEN "全屏幕" IDS_BROWSESERVER "<瀏覽更多...>" Index: reactos/base/applications/mstsc/resource.h =================================================================== --- reactos/base/applications/mstsc/resource.h (revision 66562) +++ reactos/base/applications/mstsc/resource.h (working copy) @@ -6,6 +6,7 @@ #define IDS_HIGHCOLOR15 15 #define IDS_HIGHCOLOR16 16 #define IDS_HIGHCOLOR24 24 +#define IDS_HIGHCOLOR32 32 #define IDD_CONNECTDIALOG 101 #define IDD_GENERAL 105 Index: reactos/base/applications/mstsc/uimain.c =================================================================== --- reactos/base/applications/mstsc/uimain.c (revision 66562) +++ reactos/base/applications/mstsc/uimain.c (working copy) @@ -38,8 +38,7 @@ RD_BOOL g_bitmap_cache_precache = True; RD_BOOL g_bitmap_cache = True; RD_BOOL g_encryption = True; -int g_server_depth = 8; -RD_BOOL g_use_rdp5 = False; +int g_server_depth = 16; int g_width = 800; int g_height = 600; uint32 g_keylayout = 0x409; /* Defaults to US keyboard layout */ Index: reactos/base/applications/mstsc/win32.c =================================================================== --- reactos/base/applications/mstsc/win32.c (revision 66562) +++ reactos/base/applications/mstsc/win32.c (working copy) @@ -942,6 +942,10 @@ } } } + else if (g_server_depth == 24 || g_server_depth == 32) + { + memcpy(bits, data, cx*cy*4); + } dc = CreateCompatibleDC(maindc); if (dc == 0) { @@ -1116,7 +1120,6 @@ strcpy(g_password, ""); strcpy(g_hostname, tcp_get_address()); g_server_depth = GetIntegerFromSettings(pRdpSettings, L"session bpp"); - if (g_server_depth > 16) g_server_depth = 16; /* hack, we don't support 24bpp yet */ g_screen_width = GetSystemMetrics(SM_CXSCREEN); g_screen_height = GetSystemMetrics(SM_CYSCREEN); g_width = GetIntegerFromSettings(pRdpSettings, L"desktopwidth"); @@ -1192,11 +1195,11 @@ { SPLIT_COLOUR16(colour, red, green, blue); } - else + else if (g_server_depth == 24 || g_server_depth == 32) { - red = 0; - green = 0; - blue = 0; + red = (colour>>16)&0xff; + green = (colour>>8)&0xff; + blue = colour&0xff; } maindc = GetWindowDC(g_Wnd); rgn = mi_clip(maindc); @@ -1237,11 +1240,11 @@ { SPLIT_COLOUR16(colour, red, green, blue); } - else + else if (g_server_depth == 24 || g_server_depth == 32) { - red = 0; - green = 0; - blue = 0; + red = (colour>>16)&0xff; + green = (colour>>8)&0xff; + blue = colour&0xff; } maindc = GetWindowDC(g_Wnd); rgn = mi_clip(maindc);