summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/qt_themes/qdarkstyle/style.qss222
-rw-r--r--src/core/hle/service/sockets/bsd.cpp48
-rw-r--r--src/core/hle/service/sockets/bsd.h4
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp40
5 files changed, 193 insertions, 122 deletions
diff --git a/dist/qt_themes/qdarkstyle/style.qss b/dist/qt_themes/qdarkstyle/style.qss
index a3983b27e..9814b06dd 100644
--- a/dist/qt_themes/qdarkstyle/style.qss
+++ b/dist/qt_themes/qdarkstyle/style.qss
@@ -2,7 +2,8 @@ QToolTip {
2 border: 1px solid #76797C; 2 border: 1px solid #76797C;
3 background-color: #5A7566; 3 background-color: #5A7566;
4 color: white; 4 color: white;
5 padding: 0px; /*remove padding, for fix combobox tooltip.*/ 5 /*remove padding, for fix combobox tooltip.*/
6 padding: 0;
6 opacity: 200; 7 opacity: 200;
7} 8}
8 9
@@ -13,7 +14,7 @@ QWidget {
13 selection-color: #eff0f1; 14 selection-color: #eff0f1;
14 background-clip: border; 15 background-clip: border;
15 border-image: none; 16 border-image: none;
16 border: 0px transparent black; 17 border: 0;
17 outline: 0; 18 outline: 0;
18} 19}
19 20
@@ -27,10 +28,10 @@ QWidget:item:selected {
27} 28}
28 29
29QCheckBox { 30QCheckBox {
30 spacing: 5px; 31 spacing: 6px;
31 outline: none; 32 outline: none;
32 color: #eff0f1; 33 color: #eff0f1;
33 margin-bottom: 2px; 34 margin: 0 2px 1px 0;
34} 35}
35 36
36QCheckBox:disabled { 37QCheckBox:disabled {
@@ -163,7 +164,7 @@ QMenuBar::item:selected {
163} 164}
164 165
165QMenuBar::item:pressed { 166QMenuBar::item:pressed {
166 border: 1px solid #76797C; 167 border: 1px solid #18465d;
167 background-color: #3daee9; 168 background-color: #3daee9;
168 color: #eff0f1; 169 color: #eff0f1;
169 margin-bottom: -1px; 170 margin-bottom: -1px;
@@ -171,9 +172,9 @@ QMenuBar::item:pressed {
171} 172}
172 173
173QMenu { 174QMenu {
174 border: 1px solid #76797C; 175 border: 1px solid #434242;
176 padding: 2px;
175 color: #eff0f1; 177 color: #eff0f1;
176 margin: 2px;
177} 178}
178 179
179QMenu::icon { 180QMenu::icon {
@@ -190,11 +191,21 @@ QMenu::item:selected {
190 color: #eff0f1; 191 color: #eff0f1;
191} 192}
192 193
193QMenu::separator { 194QMenu::item:disabled {
194 height: 2px; 195 color: #54575B;
195 background: #76797C; 196}
196 margin-left: 10px; 197
197 margin-right: 5px; 198QMenu::item:disabled:hover,
199QMenu::item:disabled:selected {
200 background-color: #393e43;
201 color: #666;
202}
203
204QMenu::separator,
205QMenuBar::separator {
206 height: 1px;
207 background-color: #54575B;
208 margin: 2px 4px 2px 40px;
198} 209}
199 210
200QMenu::indicator { 211QMenu::indicator {
@@ -203,10 +214,7 @@ QMenu::indicator {
203 height: 18px; 214 height: 18px;
204} 215}
205 216
206 217/* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */
207/* non-exclusive indicator = check box style indicator
208 (see QActionGroup::setExclusive) */
209
210QMenu::indicator:non-exclusive:unchecked { 218QMenu::indicator:non-exclusive:unchecked {
211 image: url(:/qss_icons/rc/checkbox_unchecked.png); 219 image: url(:/qss_icons/rc/checkbox_unchecked.png);
212} 220}
@@ -223,9 +231,7 @@ QMenu::indicator:non-exclusive:checked:selected {
223 image: url(:/qss_icons/rc/checkbox_checked_disabled.png); 231 image: url(:/qss_icons/rc/checkbox_checked_disabled.png);
224} 232}
225 233
226
227/* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ 234/* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
228
229QMenu::indicator:exclusive:unchecked { 235QMenu::indicator:exclusive:unchecked {
230 image: url(:/qss_icons/rc/radio_unchecked.png); 236 image: url(:/qss_icons/rc/radio_unchecked.png);
231} 237}
@@ -243,12 +249,12 @@ QMenu::indicator:exclusive:checked:selected {
243} 249}
244 250
245QMenu::right-arrow { 251QMenu::right-arrow {
246 margin: 5px; 252 margin-right: 10px;
247 image: url(:/qss_icons/rc/right_arrow.png) 253 image: url(:/qss_icons/rc/right_arrow.png)
248} 254}
249 255
250QWidget:disabled { 256QWidget:disabled {
251 color: #454545; 257 color: #4f515b;
252 background-color: #31363b; 258 background-color: #31363b;
253} 259}
254 260
@@ -259,23 +265,30 @@ QAbstractItemView {
259 border-radius: 2px; 265 border-radius: 2px;
260} 266}
261 267
262QWidget:focus, 268QAbstractItemView:disabled,
263QMenuBar:focus { 269QAbstractItemView:read-only {
270 alternate-background-color: #232629;
271}
272
273QWidget:focus {
264 border: 1px solid #3daee9; 274 border: 1px solid #3daee9;
265} 275}
266 276
267QTabWidget:focus, 277QTabWidget:focus,
268QCheckBox:focus, 278QCheckBox:focus,
269QRadioButton:focus, 279QRadioButton:focus,
270QSlider:focus { 280QSlider:focus,
281QTreeView:focus,
282QMenu:focus,
283QMenuBar:focus,
284QTabBar:focus {
271 border: none; 285 border: none;
272} 286}
273 287
274QLineEdit { 288QLineEdit {
275 background-color: #232629; 289 background-color: #232629;
276 padding: 5px; 290 padding: 5px;
277 border-style: solid; 291 border: 1px solid #54575B;
278 border: 1px solid #76797C;
279 border-radius: 2px; 292 border-radius: 2px;
280 color: #eff0f1; 293 color: #eff0f1;
281} 294}
@@ -285,9 +298,10 @@ QAbstractItemView QLineEdit {
285} 298}
286 299
287QGroupBox { 300QGroupBox {
288 border: 1px solid #76797C; 301 border: 1px solid #54575B;
289 border-radius: 2px; 302 border-radius: 2px;
290 margin-top: 20px; 303 margin-top: 12px;
304 padding-top: 2px;
291} 305}
292 306
293QGroupBox::title { 307QGroupBox::title {
@@ -295,12 +309,12 @@ QGroupBox::title {
295 subcontrol-position: top center; 309 subcontrol-position: top center;
296 padding-left: 10px; 310 padding-left: 10px;
297 padding-right: 10px; 311 padding-right: 10px;
298 padding-top: 10px; 312 padding-top: 2px;
299} 313}
300 314
301QAbstractScrollArea { 315QAbstractScrollArea {
302 border-radius: 2px; 316 border-radius: 2px;
303 border: 1px solid #76797C; 317 border: 1px solid #54575B;
304 background-color: transparent; 318 background-color: transparent;
305} 319}
306 320
@@ -319,7 +333,7 @@ QScrollBar::handle:horizontal {
319} 333}
320 334
321QScrollBar::add-line:horizontal { 335QScrollBar::add-line:horizontal {
322 margin: 0px 3px 0px 3px; 336 margin: 0 3px;
323 border-image: url(:/qss_icons/rc/right_arrow_disabled.png); 337 border-image: url(:/qss_icons/rc/right_arrow_disabled.png);
324 width: 10px; 338 width: 10px;
325 height: 10px; 339 height: 10px;
@@ -328,7 +342,7 @@ QScrollBar::add-line:horizontal {
328} 342}
329 343
330QScrollBar::sub-line:horizontal { 344QScrollBar::sub-line:horizontal {
331 margin: 0px 3px 0px 3px; 345 margin: 0 3px;
332 border-image: url(:/qss_icons/rc/left_arrow_disabled.png); 346 border-image: url(:/qss_icons/rc/left_arrow_disabled.png);
333 height: 10px; 347 height: 10px;
334 width: 10px; 348 width: 10px;
@@ -379,7 +393,7 @@ QScrollBar::handle:vertical {
379} 393}
380 394
381QScrollBar::sub-line:vertical { 395QScrollBar::sub-line:vertical {
382 margin: 3px 0px 3px 0px; 396 margin: 3px 0;
383 border-image: url(:/qss_icons/rc/up_arrow_disabled.png); 397 border-image: url(:/qss_icons/rc/up_arrow_disabled.png);
384 height: 10px; 398 height: 10px;
385 width: 10px; 399 width: 10px;
@@ -388,7 +402,7 @@ QScrollBar::sub-line:vertical {
388} 402}
389 403
390QScrollBar::add-line:vertical { 404QScrollBar::add-line:vertical {
391 margin: 3px 0px 3px 0px; 405 margin: 3px 0;
392 border-image: url(:/qss_icons/rc/down_arrow_disabled.png); 406 border-image: url(:/qss_icons/rc/down_arrow_disabled.png);
393 height: 10px; 407 height: 10px;
394 width: 10px; 408 width: 10px;
@@ -427,15 +441,14 @@ QScrollBar::sub-page:vertical {
427QTextEdit { 441QTextEdit {
428 background-color: #232629; 442 background-color: #232629;
429 color: #eff0f1; 443 color: #eff0f1;
430 border: 1px solid #76797C; 444 border: 1px solid #54575B;
431} 445}
432 446
433QPlainTextEdit { 447QPlainTextEdit {
434 background-color: #232629; 448 background-color: #232629;
435 ;
436 color: #eff0f1; 449 color: #eff0f1;
437 border-radius: 2px; 450 border-radius: 2px;
438 border: 1px solid #76797C; 451 border: 1px solid #54575B;
439} 452}
440 453
441QHeaderView::section { 454QHeaderView::section {
@@ -467,15 +480,6 @@ QMainWindow::separator:hover {
467 spacing: 2px; 480 spacing: 2px;
468} 481}
469 482
470QMenu::separator {
471 height: 1px;
472 background-color: #76797C;
473 color: white;
474 padding-left: 4px;
475 margin-left: 10px;
476 margin-right: 5px;
477}
478
479QFrame { 483QFrame {
480 border-radius: 2px; 484 border-radius: 2px;
481 border: 1px solid #76797C; 485 border: 1px solid #76797C;
@@ -518,25 +522,19 @@ QToolButton#qt_toolbar_ext_button {
518 522
519QPushButton { 523QPushButton {
520 color: #eff0f1; 524 color: #eff0f1;
521 background-color: #31363b;
522 border-width: 1px; 525 border-width: 1px;
523 border-color: #76797C; 526 border-color: #54575B;
524 border-style: solid; 527 border-style: solid;
525 padding: 5px; 528 padding: 6px 4px;
526 border-radius: 2px; 529 border-radius: 2px;
527 outline: none; 530 outline: none;
531 min-width: 100px;
532 background-color: #232629;
528} 533}
529 534
530QPushButton:disabled { 535QPushButton:disabled {
531 background-color: #31363b; 536 background-color: #31363b;
532 border-width: 1px;
533 border-color: #454545; 537 border-color: #454545;
534 border-style: solid;
535 padding-top: 5px;
536 padding-bottom: 5px;
537 padding-left: 10px;
538 padding-right: 10px;
539 border-radius: 2px;
540 color: #454545; 538 color: #454545;
541} 539}
542 540
@@ -553,11 +551,11 @@ QPushButton:pressed {
553 551
554QComboBox { 552QComboBox {
555 selection-background-color: #3daee9; 553 selection-background-color: #3daee9;
556 border-style: solid; 554 border: 1px solid #54575B;
557 border: 1px solid #76797C;
558 border-radius: 2px; 555 border-radius: 2px;
559 padding: 5px; 556 padding: 4px 6px;
560 min-width: 75px; 557 min-width: 75px;
558 background-color: #232629;
561} 559}
562 560
563QPushButton:checked { 561QPushButton:checked {
@@ -571,8 +569,7 @@ QAbstractSpinBox:hover,
571QLineEdit:hover, 569QLineEdit:hover,
572QTextEdit:hover, 570QTextEdit:hover,
573QPlainTextEdit:hover, 571QPlainTextEdit:hover,
574QAbstractView:hover, 572QAbstractView:hover {
575QTreeView:hover {
576 border: 1px solid #3daee9; 573 border: 1px solid #3daee9;
577 color: #eff0f1; 574 color: #eff0f1;
578} 575}
@@ -591,6 +588,7 @@ QComboBox QAbstractItemView {
591QComboBox::drop-down { 588QComboBox::drop-down {
592 subcontrol-origin: padding; 589 subcontrol-origin: padding;
593 subcontrol-position: top right; 590 subcontrol-position: top right;
591 left: -6px;
594 width: 15px; 592 width: 15px;
595 border-left-width: 0px; 593 border-left-width: 0px;
596 border-left-color: darkgray; 594 border-left-color: darkgray;
@@ -610,8 +608,8 @@ QComboBox::down-arrow:focus {
610} 608}
611 609
612QAbstractSpinBox { 610QAbstractSpinBox {
613 padding: 5px; 611 padding: 4px 6px;
614 border: 1px solid #76797C; 612 border: 1px solid #54575B;
615 background-color: #232629; 613 background-color: #232629;
616 color: #eff0f1; 614 color: #eff0f1;
617 border-radius: 2px; 615 border-radius: 2px;
@@ -622,12 +620,14 @@ QAbstractSpinBox:up-button {
622 background-color: transparent; 620 background-color: transparent;
623 subcontrol-origin: border; 621 subcontrol-origin: border;
624 subcontrol-position: center right; 622 subcontrol-position: center right;
623 left: -6px;
625} 624}
626 625
627QAbstractSpinBox:down-button { 626QAbstractSpinBox:down-button {
628 background-color: transparent; 627 background-color: transparent;
629 subcontrol-origin: border; 628 subcontrol-origin: border;
630 subcontrol-position: center left; 629 subcontrol-position: center left;
630 right: -6px;
631} 631}
632 632
633QAbstractSpinBox::up-arrow, 633QAbstractSpinBox::up-arrow,
@@ -654,22 +654,27 @@ QAbstractSpinBox::down-arrow:hover {
654 image: url(:/qss_icons/rc/down_arrow.png); 654 image: url(:/qss_icons/rc/down_arrow.png);
655} 655}
656 656
657QLabel { 657QLabel,
658 border: 0px solid black; 658QTabWidget {
659 border: 0;
659} 660}
660 661
661QTabWidget { 662QTabWidget {
662 border: 0px transparent black; 663 padding-top: 1px;
663} 664}
664 665
665QTabWidget::pane { 666QTabWidget::pane {
666 border: 1px solid #76797C; 667 border: 1px solid #76797C;
667 padding: 5px; 668 padding: 5px;
668 margin: 0px; 669 position: absolute;
670 top: -1px;
671 border-top-right-radius: 2px;
672 border-bottom-right-radius: 2px;
673 border-bottom-left-radius: 2px;
669} 674}
670 675
671QTabWidget::tab-bar { 676QTabWidget::tab-bar {
672 /* left: 5px; move to the right by 5px */ 677 overflow: visible;
673} 678}
674 679
675QTabBar { 680QTabBar {
@@ -677,10 +682,6 @@ QTabBar {
677 border-radius: 3px; 682 border-radius: 3px;
678} 683}
679 684
680QTabBar:focus {
681 border: 0px transparent black;
682}
683
684QTabBar::close-button { 685QTabBar::close-button {
685 image: url(:/qss_icons/rc/close.png); 686 image: url(:/qss_icons/rc/close.png);
686 background: transparent; 687 background: transparent;
@@ -696,36 +697,33 @@ QTabBar::close-button:pressed {
696 background: transparent; 697 background: transparent;
697} 698}
698 699
699
700/* TOP TABS */ 700/* TOP TABS */
701
702QTabBar::tab:top { 701QTabBar::tab:top {
703 color: #eff0f1; 702 color: #eff0f1;
704 border: 1px solid #76797C; 703 border: 1px solid #54575B;
705 border-bottom: 2px transparent; 704 background-color: #2a2f33;
706 background-color: #31363b; 705 padding: 4px 16px 5px;
707 padding: 4px 16px 2px; 706 min-width: 36px;
708 min-width: 38px;
709 border-top-left-radius: 2px; 707 border-top-left-radius: 2px;
710 border-top-right-radius: 2px; 708 border-top-right-radius: 2px;
711} 709}
712 710
713QTabBar::tab:top:selected { 711QTabBar::tab:top:selected {
714 color: #eff0f1; 712 border-color: #76797C;
715 background-color: #54575B; 713 background-color: #31363b;
716 border: 1px solid #76797C; 714 border-bottom-color: #31363b;
717 border-bottom: 2px solid #3daee9; 715}
718 border-top-left-radius: 2px; 716
719 border-top-right-radius: 2px; 717QTabBar::tab:top:!selected {
718 margin-top: 1px;
719 border-bottom-color: #76797C;
720} 720}
721 721
722QTabBar::tab:top:!selected:hover { 722QTabBar::tab:top:!selected:hover {
723 background-color: #3daee9; 723 background-color: #3daee9;
724} 724}
725 725
726
727/* BOTTOM TABS */ 726/* BOTTOM TABS */
728
729QTabBar::tab:bottom { 727QTabBar::tab:bottom {
730 color: #eff0f1; 728 color: #eff0f1;
731 border: 1px solid #76797C; 729 border: 1px solid #76797C;
@@ -750,9 +748,7 @@ QTabBar::tab:bottom:!selected:hover {
750 background-color: #3daee9; 748 background-color: #3daee9;
751} 749}
752 750
753
754/* LEFT TABS */ 751/* LEFT TABS */
755
756QTabBar::tab:left { 752QTabBar::tab:left {
757 color: #eff0f1; 753 color: #eff0f1;
758 border: 1px solid #76797C; 754 border: 1px solid #76797C;
@@ -777,9 +773,7 @@ QTabBar::tab:left:!selected:hover {
777 background-color: #3daee9; 773 background-color: #3daee9;
778} 774}
779 775
780
781/* RIGHT TABS */ 776/* RIGHT TABS */
782
783QTabBar::tab:right { 777QTabBar::tab:right {
784 color: #eff0f1; 778 color: #eff0f1;
785 border: 1px solid #76797C; 779 border: 1px solid #76797C;
@@ -847,7 +841,7 @@ QDockWidget::float-button:pressed {
847 841
848QTreeView, 842QTreeView,
849QListView { 843QListView {
850 border: 1px solid #76797C; 844 border: 1px solid #54575B;
851 background-color: #232629; 845 background-color: #232629;
852} 846}
853 847
@@ -978,8 +972,8 @@ QSlider::handle:vertical {
978} 972}
979 973
980QToolButton { 974QToolButton {
981 background-color: transparent; 975 background-color: #232629;
982 border: 1px transparent #76797C; 976 border: 1px solid #54575B;
983 border-radius: 2px; 977 border-radius: 2px;
984 margin: 3px; 978 margin: 3px;
985 padding: 5px; 979 padding: 5px;
@@ -988,7 +982,6 @@ QToolButton {
988QToolButton[popupMode="1"] { 982QToolButton[popupMode="1"] {
989 /* only for MenuButtonPopup */ 983 /* only for MenuButtonPopup */
990 padding-right: 20px; 984 padding-right: 20px;
991 /* make way for the popup button */
992 border: 1px #76797C; 985 border: 1px #76797C;
993 border-radius: 5px; 986 border-radius: 5px;
994} 987}
@@ -996,7 +989,6 @@ QToolButton[popupMode="1"] {
996QToolButton[popupMode="2"] { 989QToolButton[popupMode="2"] {
997 /* only for InstantPopup */ 990 /* only for InstantPopup */
998 padding-right: 10px; 991 padding-right: 10px;
999 /* make way for the popup button */
1000 border: 1px #76797C; 992 border: 1px #76797C;
1001} 993}
1002 994
@@ -1015,19 +1007,14 @@ QToolButton::menu-button:pressed {
1015 padding: 5px; 1007 padding: 5px;
1016} 1008}
1017 1009
1018
1019/* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */ 1010/* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */
1020
1021QToolButton::menu-indicator { 1011QToolButton::menu-indicator {
1022 image: url(:/qss_icons/rc/down_arrow.png); 1012 image: url(:/qss_icons/rc/down_arrow.png);
1023 top: -7px; 1013 top: -7px;
1024 left: -2px; 1014 left: -2px;
1025 /* shift it a bit */
1026} 1015}
1027 1016
1028
1029/* the subcontrols below are used only in the MenuButtonPopup mode */ 1017/* the subcontrols below are used only in the MenuButtonPopup mode */
1030
1031QToolButton::menu-button { 1018QToolButton::menu-button {
1032 border: 1px transparent #76797C; 1019 border: 1px transparent #76797C;
1033 border-top-right-radius: 6px; 1020 border-top-right-radius: 6px;
@@ -1052,14 +1039,22 @@ QPushButton::menu-indicator {
1052} 1039}
1053 1040
1054QTableView { 1041QTableView {
1055 border: 1px solid #76797C; 1042 border: 1px solid #54575B;
1056 gridline-color: #31363b; 1043 gridline-color: #31363b;
1057 background-color: #232629; 1044 background-color: #232629;
1058} 1045}
1059 1046
1047QTreeView:disabled {
1048 background-color: #1f2225;
1049}
1050
1060QTableView, 1051QTableView,
1061QHeaderView { 1052QHeaderView {
1062 border-radius: 0px; 1053 border-radius: 0;
1054}
1055
1056QListView:focus {
1057 border-color: #54575B;
1063} 1058}
1064 1059
1065QTableView::item:pressed, 1060QTableView::item:pressed,
@@ -1088,7 +1083,7 @@ QHeaderView::section {
1088 background-color: #232629; 1083 background-color: #232629;
1089 color: #eff0f1; 1084 color: #eff0f1;
1090 padding: 0 5px; 1085 padding: 0 5px;
1091 border: 1px solid #403F3F; 1086 border: 1px solid #434242;
1092 border-bottom: 0; 1087 border-bottom: 0;
1093 border-radius: 0px; 1088 border-radius: 0px;
1094 text-align: center; 1089 text-align: center;
@@ -1118,9 +1113,7 @@ QHeaderView::section:checked {
1118 background-color: #334e5e; 1113 background-color: #334e5e;
1119} 1114}
1120 1115
1121 1116/* sort indicator */
1122/* style the sort indicator */
1123
1124QHeaderView::down-arrow { 1117QHeaderView::down-arrow {
1125 image: url(:/qss_icons/rc/down_arrow.png); 1118 image: url(:/qss_icons/rc/down_arrow.png);
1126} 1119}
@@ -1150,14 +1143,13 @@ QToolBox::tab {
1150} 1143}
1151 1144
1152QToolBox::tab:selected { 1145QToolBox::tab:selected {
1153 /* italicize selected tabs */
1154 font: italic; 1146 font: italic;
1155 background-color: #31363b; 1147 background-color: #31363b;
1156 border-color: #3daee9; 1148 border-color: #3daee9;
1157} 1149}
1158 1150
1159QStatusBar::item { 1151QStatusBar::item {
1160 border: 0px transparent dark; 1152 border: 0;
1161} 1153}
1162 1154
1163QFrame[height="3"], 1155QFrame[height="3"],
@@ -1194,7 +1186,6 @@ QProgressBar::chunk {
1194 1186
1195QDateEdit { 1187QDateEdit {
1196 selection-background-color: #3daee9; 1188 selection-background-color: #3daee9;
1197 border-style: solid;
1198 border: 1px solid #3375A3; 1189 border: 1px solid #3375A3;
1199 border-radius: 2px; 1190 border-radius: 2px;
1200 padding: 1px; 1191 padding: 1px;
@@ -1218,7 +1209,7 @@ QDateEdit::drop-down {
1218 subcontrol-origin: padding; 1209 subcontrol-origin: padding;
1219 subcontrol-position: top right; 1210 subcontrol-position: top right;
1220 width: 15px; 1211 width: 15px;
1221 border-left-width: 0px; 1212 border-left-width: 0;
1222 border-left-color: darkgray; 1213 border-left-color: darkgray;
1223 border-left-style: solid; 1214 border-left-style: solid;
1224 border-top-right-radius: 3px; 1215 border-top-right-radius: 3px;
@@ -1234,3 +1225,14 @@ QDateEdit::down-arrow:hover,
1234QDateEdit::down-arrow:focus { 1225QDateEdit::down-arrow:focus {
1235 image: url(:/qss_icons/rc/down_arrow.png); 1226 image: url(:/qss_icons/rc/down_arrow.png);
1236} 1227}
1228
1229QComboBox:disabled,
1230QPushButton:disabled,
1231QAbstractSpinBox:disabled,
1232QDateEdit:disabled,
1233QLineEdit:disabled,
1234QTextEdit:disabled,
1235QToolButton:disabled,
1236QPlainTextEdit:disabled {
1237 background-color: #2b2e31;
1238}
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index 884ad173b..f67fab2f9 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -42,6 +42,26 @@ void BSD::Socket(Kernel::HLERequestContext& ctx) {
42 rb.Push<u32>(0); // bsd errno 42 rb.Push<u32>(0); // bsd errno
43} 43}
44 44
45void BSD::Select(Kernel::HLERequestContext& ctx) {
46 LOG_WARNING(Service, "(STUBBED) called");
47
48 IPC::ResponseBuilder rb{ctx, 4};
49
50 rb.Push(RESULT_SUCCESS);
51 rb.Push<u32>(0); // ret
52 rb.Push<u32>(0); // bsd errno
53}
54
55void BSD::Bind(Kernel::HLERequestContext& ctx) {
56 LOG_WARNING(Service, "(STUBBED) called");
57
58 IPC::ResponseBuilder rb{ctx, 4};
59
60 rb.Push(RESULT_SUCCESS);
61 rb.Push<u32>(0); // ret
62 rb.Push<u32>(0); // bsd errno
63}
64
45void BSD::Connect(Kernel::HLERequestContext& ctx) { 65void BSD::Connect(Kernel::HLERequestContext& ctx) {
46 LOG_WARNING(Service, "(STUBBED) called"); 66 LOG_WARNING(Service, "(STUBBED) called");
47 67
@@ -52,6 +72,26 @@ void BSD::Connect(Kernel::HLERequestContext& ctx) {
52 rb.Push<u32>(0); // bsd errno 72 rb.Push<u32>(0); // bsd errno
53} 73}
54 74
75void BSD::Listen(Kernel::HLERequestContext& ctx) {
76 LOG_WARNING(Service, "(STUBBED) called");
77
78 IPC::ResponseBuilder rb{ctx, 4};
79
80 rb.Push(RESULT_SUCCESS);
81 rb.Push<u32>(0); // ret
82 rb.Push<u32>(0); // bsd errno
83}
84
85void BSD::SetSockOpt(Kernel::HLERequestContext& ctx) {
86 LOG_WARNING(Service, "(STUBBED) called");
87
88 IPC::ResponseBuilder rb{ctx, 4};
89
90 rb.Push(RESULT_SUCCESS);
91 rb.Push<u32>(0); // ret
92 rb.Push<u32>(0); // bsd errno
93}
94
55void BSD::SendTo(Kernel::HLERequestContext& ctx) { 95void BSD::SendTo(Kernel::HLERequestContext& ctx) {
56 LOG_WARNING(Service, "(STUBBED) called"); 96 LOG_WARNING(Service, "(STUBBED) called");
57 97
@@ -80,7 +120,7 @@ BSD::BSD(const char* name) : ServiceFramework(name) {
80 {2, &BSD::Socket, "Socket"}, 120 {2, &BSD::Socket, "Socket"},
81 {3, nullptr, "SocketExempt"}, 121 {3, nullptr, "SocketExempt"},
82 {4, nullptr, "Open"}, 122 {4, nullptr, "Open"},
83 {5, nullptr, "Select"}, 123 {5, &BSD::Select, "Select"},
84 {6, nullptr, "Poll"}, 124 {6, nullptr, "Poll"},
85 {7, nullptr, "Sysctl"}, 125 {7, nullptr, "Sysctl"},
86 {8, nullptr, "Recv"}, 126 {8, nullptr, "Recv"},
@@ -88,15 +128,15 @@ BSD::BSD(const char* name) : ServiceFramework(name) {
88 {10, nullptr, "Send"}, 128 {10, nullptr, "Send"},
89 {11, &BSD::SendTo, "SendTo"}, 129 {11, &BSD::SendTo, "SendTo"},
90 {12, nullptr, "Accept"}, 130 {12, nullptr, "Accept"},
91 {13, nullptr, "Bind"}, 131 {13, &BSD::Bind, "Bind"},
92 {14, &BSD::Connect, "Connect"}, 132 {14, &BSD::Connect, "Connect"},
93 {15, nullptr, "GetPeerName"}, 133 {15, nullptr, "GetPeerName"},
94 {16, nullptr, "GetSockName"}, 134 {16, nullptr, "GetSockName"},
95 {17, nullptr, "GetSockOpt"}, 135 {17, nullptr, "GetSockOpt"},
96 {18, nullptr, "Listen"}, 136 {18, &BSD::Listen, "Listen"},
97 {19, nullptr, "Ioctl"}, 137 {19, nullptr, "Ioctl"},
98 {20, nullptr, "Fcntl"}, 138 {20, nullptr, "Fcntl"},
99 {21, nullptr, "SetSockOpt"}, 139 {21, &BSD::SetSockOpt, "SetSockOpt"},
100 {22, nullptr, "Shutdown"}, 140 {22, nullptr, "Shutdown"},
101 {23, nullptr, "ShutdownAllSockets"}, 141 {23, nullptr, "ShutdownAllSockets"},
102 {24, nullptr, "Write"}, 142 {24, nullptr, "Write"},
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h
index 0fe0e65c6..3098e3baf 100644
--- a/src/core/hle/service/sockets/bsd.h
+++ b/src/core/hle/service/sockets/bsd.h
@@ -18,7 +18,11 @@ private:
18 void RegisterClient(Kernel::HLERequestContext& ctx); 18 void RegisterClient(Kernel::HLERequestContext& ctx);
19 void StartMonitoring(Kernel::HLERequestContext& ctx); 19 void StartMonitoring(Kernel::HLERequestContext& ctx);
20 void Socket(Kernel::HLERequestContext& ctx); 20 void Socket(Kernel::HLERequestContext& ctx);
21 void Select(Kernel::HLERequestContext& ctx);
22 void Bind(Kernel::HLERequestContext& ctx);
21 void Connect(Kernel::HLERequestContext& ctx); 23 void Connect(Kernel::HLERequestContext& ctx);
24 void Listen(Kernel::HLERequestContext& ctx);
25 void SetSockOpt(Kernel::HLERequestContext& ctx);
22 void SendTo(Kernel::HLERequestContext& ctx); 26 void SendTo(Kernel::HLERequestContext& ctx);
23 void Close(Kernel::HLERequestContext& ctx); 27 void Close(Kernel::HLERequestContext& ctx);
24 28
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 2996aaf08..6531dfe9b 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -1019,7 +1019,6 @@ private:
1019 } 1019 }
1020 return {{"gl_ViewportIndex", Type::Int}}; 1020 return {{"gl_ViewportIndex", Type::Int}};
1021 case 3: 1021 case 3:
1022 UNIMPLEMENTED_MSG("Requires some state changes for gl_PointSize to work in shader");
1023 return {{"gl_PointSize", Type::Float}}; 1022 return {{"gl_PointSize", Type::Float}};
1024 } 1023 }
1025 return {}; 1024 return {};
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index e95eb069e..d4b81cd87 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -176,6 +176,19 @@ GLint GetSwizzleSource(SwizzleSource source) {
176 return GL_NONE; 176 return GL_NONE;
177} 177}
178 178
179GLenum GetComponent(PixelFormat format, bool is_first) {
180 switch (format) {
181 case PixelFormat::Z24S8:
182 case PixelFormat::Z32FS8:
183 return is_first ? GL_DEPTH_COMPONENT : GL_STENCIL_INDEX;
184 case PixelFormat::S8Z24:
185 return is_first ? GL_STENCIL_INDEX : GL_DEPTH_COMPONENT;
186 default:
187 UNREACHABLE();
188 return GL_DEPTH_COMPONENT;
189 }
190}
191
179void ApplyTextureDefaults(const SurfaceParams& params, GLuint texture) { 192void ApplyTextureDefaults(const SurfaceParams& params, GLuint texture) {
180 if (params.IsBuffer()) { 193 if (params.IsBuffer()) {
181 return; 194 return;
@@ -184,7 +197,7 @@ void ApplyTextureDefaults(const SurfaceParams& params, GLuint texture) {
184 glTextureParameteri(texture, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 197 glTextureParameteri(texture, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
185 glTextureParameteri(texture, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 198 glTextureParameteri(texture, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
186 glTextureParameteri(texture, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 199 glTextureParameteri(texture, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
187 glTextureParameteri(texture, GL_TEXTURE_MAX_LEVEL, params.num_levels - 1); 200 glTextureParameteri(texture, GL_TEXTURE_MAX_LEVEL, static_cast<GLint>(params.num_levels - 1));
188 if (params.num_levels == 1) { 201 if (params.num_levels == 1) {
189 glTextureParameterf(texture, GL_TEXTURE_LOD_BIAS, 1000.0f); 202 glTextureParameterf(texture, GL_TEXTURE_LOD_BIAS, 1000.0f);
190 } 203 }
@@ -416,11 +429,21 @@ void CachedSurfaceView::ApplySwizzle(SwizzleSource x_source, SwizzleSource y_sou
416 if (new_swizzle == swizzle) 429 if (new_swizzle == swizzle)
417 return; 430 return;
418 swizzle = new_swizzle; 431 swizzle = new_swizzle;
419 const std::array<GLint, 4> gl_swizzle = {GetSwizzleSource(x_source), GetSwizzleSource(y_source), 432 const std::array gl_swizzle = {GetSwizzleSource(x_source), GetSwizzleSource(y_source),
420 GetSwizzleSource(z_source), 433 GetSwizzleSource(z_source), GetSwizzleSource(w_source)};
421 GetSwizzleSource(w_source)};
422 const GLuint handle = GetTexture(); 434 const GLuint handle = GetTexture();
423 glTextureParameteriv(handle, GL_TEXTURE_SWIZZLE_RGBA, gl_swizzle.data()); 435 const PixelFormat format = surface.GetSurfaceParams().pixel_format;
436 switch (format) {
437 case PixelFormat::Z24S8:
438 case PixelFormat::Z32FS8:
439 case PixelFormat::S8Z24:
440 glTextureParameteri(handle, GL_DEPTH_STENCIL_TEXTURE_MODE,
441 GetComponent(format, x_source == SwizzleSource::R));
442 break;
443 default:
444 glTextureParameteriv(handle, GL_TEXTURE_SWIZZLE_RGBA, gl_swizzle.data());
445 break;
446 }
424} 447}
425 448
426OGLTextureView CachedSurfaceView::CreateTextureView() const { 449OGLTextureView CachedSurfaceView::CreateTextureView() const {
@@ -529,8 +552,11 @@ void TextureCacheOpenGL::ImageBlit(View& src_view, View& dst_view,
529 const Common::Rectangle<u32>& dst_rect = copy_config.dst_rect; 552 const Common::Rectangle<u32>& dst_rect = copy_config.dst_rect;
530 const bool is_linear = copy_config.filter == Tegra::Engines::Fermi2D::Filter::Linear; 553 const bool is_linear = copy_config.filter == Tegra::Engines::Fermi2D::Filter::Linear;
531 554
532 glBlitFramebuffer(src_rect.left, src_rect.top, src_rect.right, src_rect.bottom, dst_rect.left, 555 glBlitFramebuffer(static_cast<GLint>(src_rect.left), static_cast<GLint>(src_rect.top),
533 dst_rect.top, dst_rect.right, dst_rect.bottom, buffers, 556 static_cast<GLint>(src_rect.right), static_cast<GLint>(src_rect.bottom),
557 static_cast<GLint>(dst_rect.left), static_cast<GLint>(dst_rect.top),
558 static_cast<GLint>(dst_rect.right), static_cast<GLint>(dst_rect.bottom),
559 buffers,
534 is_linear && (buffers == GL_COLOR_BUFFER_BIT) ? GL_LINEAR : GL_NEAREST); 560 is_linear && (buffers == GL_COLOR_BUFFER_BIT) ? GL_LINEAR : GL_NEAREST);
535} 561}
536 562