Commit graph

83751 commits

Author SHA1 Message Date
Oleg Dubinskiy
e7ccb36b9b
[WIN32SS][NTDDRAW] Don't startup DirectX graphics each time on DirectDraw object creation (#5329)
CORE-17561, CORE-17932, CORE-18221

Do it at each system startup instead: Remove old DirectX initialization code.
It's now outdated and not needed anymore.

Previously, the corresponding hackish intEnableReactXDriver() function
did two things: load dxg.sys and enable DirectDraw.
Now loading DirectX graphics is done during WINSRV initialization, and
enabling DirectDraw is called during each (and also first) display mode
switch, as in Windows. As debug analysis proves, there are no any other
calls in NtGdiDdCreateDirectDrawObject, besides the corresponding DXG
function.
2023-06-21 18:03:27 +02:00
Oleg Dubinskiy
e034377b51
[WIN32SS][ENG][NTDDRAW] Manage DirectDraw instances when switching display mode (#4519)
CORE-17932

[ENG] Implement DirectDraw management in switch display mode functions
(e.g. resolution change, color depth, display frequency etc.):

- Switch DirectDraw instances between the two PDEVs (the current one and
  the new one allocated by ourselves) by calling dxg!DxDdDynamicModeChange
  function.

- Suspend them before and resume after the display mode switch, by calling
  dxg!DxDdsuspendDirectDraw and dxg!DxDdResumeDirectDraw appropriately.

We currently don't have these functions implemented, but MS DXG has, so
it allows to properly manage DirectDraw PDEVs using this driver, similarly
to Windows.
My analysis confirms that these functions are always called in XP/2k3 on
display mode switch, even when there is no any DirectX app running at the
moment. Analyzing their prototypes show that my guesses are correct.

- Initialize hDev and dhpdev members for EDD_DIRECTDRAW_GLOBAL for newly
  created surfaces, switch them during mode change and re-initialize after
  it also. They are commonly used by DirectDraw stack.
  In addition, enable DirectDraw for old and new PDEVs, by calling
  dxg!DxDdEnableDirectDraw function.


[NTDDRAW] Additionally, fix usage of DirectDraw lock count in the PDEVOBJ
structure.

- Enable cDirectDrawDisableLocks member for storing its value, instead of
  DxDd_nCount, which is marked as ROS-specific.

- Use it in win32k!DxEngGet/SetHdevData for getting/setting DirectDraw
  count appropriately.

My analysis also shows that in Windows, the PDEVOBJ::cDirectDrawDisableLocks
method calls DxEngGetHdevData with type 8, which corresponds to our DxDd_nCount.
So there are no doubts that this member is used there.

- Rename DxEngGetHdevData_dd_count alias of type 8 to DxEngGetHdevData_dd_locks,
  to match more accurately an actual member name. Update the enumeration
  and fix all code parts appropriately.

All these changes allow to properly change display mode during executing
DirectDraw applications, when they try to switch in full-screen mode.
At least a bugcheck that happened before my changes, does no longer appear.

There are still some games that don't run correctly, as if there is no
3D acceleration (which actually exists). This requires further investigations.
2023-06-21 18:00:24 +02:00
Hermès Bélusca-Maïto
3fa613b9da
[MINIHAL] Remove sysinfo.c from compilation. 2023-06-20 22:40:58 +02:00
Hermès Bélusca-Maïto
d6a78d580b
[HALX86] Tabs to 4-space indentation in generic/sysinfo.c + Fix typo "ALMI" -> "AMLI" 2023-06-20 22:40:57 +02:00
Hermès Bélusca-Maïto
d03fc32e7d
[MINIHAL] Remove unneeded files from compilation. 2023-06-20 18:39:01 +02:00
Carl J. Bialorucki
f203ad5cf4
[BROWSEUI] Add locked toolbar state persistence (#5350)
Store the state of the explorer toolbar, locked or unlocked, in the proper
registry location and set the proper toolbar state when initialized.

CORE-9094

- Set `HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Locked`
  to 1 when the explorer toolbar is locked, 0 when the toolbar is unlocked.
- Query `HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Locked`
  when the toolbar is initialized to set the correct locked state.
- Set the default state of the toolbar to locked if the registry key does not
  exist, matching the behavior of Windows Server 2003.
2023-06-20 11:16:23 +02:00
Hermès Bélusca-Maïto
157491e297
[STORPORT] MaximumNumberOfLogicalUnits should be initialized to SCSI_MAXIMUM_LOGICAL_UNITS
See https://www.osronline.com/article.cfm%5Earticle=538.htm
2023-06-19 21:10:53 +02:00
Hermès Bélusca-Maïto
3bc71f9086
[FREELDR][SCSIPORT][STORPORT] Use existing defines for some hardcoded max values.
See https://www.osronline.com/article.cfm%5Earticle=538.htm

[SCSIPORT] Remove 'MaxBus' variable, deprecated since commit fc3d38d1c (r26220).
2023-06-19 21:10:51 +02:00
Hermès Bélusca-Maïto
0fbd5eda85
[DDK] storport.h: Add some missing definitions that are in common with srb.h 2023-06-19 21:10:49 +02:00
Hermès Bélusca-Maïto
b12069d670
[DDK] srb.h: Introduce Win8+ SCSI_MAXIMUM_BUSES_PER_ADAPTER and comment about the old SCSI_MAXIMUM_* variables. 2023-06-19 21:10:44 +02:00
Hermès Bélusca-Maïto
7e1510eb9c
[HALX86] Implement HalpcGetCmosData and HalpcSetCmosData. 2023-06-19 21:09:03 +02:00
Hermès Bélusca-Maïto
0c16bcd4e8
[FREELDR] scsiport.c: Fix x64 compilation. 2023-06-19 21:09:01 +02:00
Hermès Bélusca-Maïto
af47866f76
[FREELDR:UEFI] Fix compilation warning LNK4006.
ntoskrnl.c.obj : warning LNK4006: _KeStallExecutionProcessor@4
already defined in stubs.c.obj; second definition ignored.
2023-06-19 21:09:00 +02:00
Hermès Bélusca-Maïto
095510bdac
[FREELDR:UEFI] Fix two MSVC build warnings C4553.
In both lines 451 and 474:
uefidisk.c: warning C4553: '==': result of expression not used; did you intend '='?

It's "funny" that GCC builds doesn't catch those...
2023-06-19 21:08:59 +02:00
Victor Perevertkin
38e4b859e2
[FRAMEBUFACC] Remove the driver
This is an unfinished attempt to rewrite the driver by Magnus Olsen,
dating back to 2007.
2023-06-19 13:58:46 +03:00
Victor Perevertkin
cdb130420e
[FRAMEBUF_NEW] Remove the driver
It doesn't seem to be better than the current "framebuf", and has an
unfriendly license (NT4 DDK Sample).
2023-06-19 13:58:46 +03:00
Victor Perevertkin
b9b2608bfb
[FRAMEBUF] Return the "old" driver back
It has a better license (GPL) and does not have visible drawbacks
compared to framebuf_new.
2023-06-19 13:58:43 +03:00
Katayama Hirofumi MZ
bc19bbe408 [MSPAINT] Add CMainWindow::CanPaste
CORE-18867
2023-06-19 18:59:00 +09:00
Katayama Hirofumi MZ
19d8862851
[MSPAINT] Fix CMainWindow::GetSaveFileName (#5356)
Fix filename extension cases and "File Type" field. If no filename extension on save, then append ".png" to the filename.
CORE-18867
2023-06-19 14:15:18 +09:00
Katayama Hirofumi MZ
64ef3ced9c
[MSPAINT] Add CMainWindow::CanUndo/CanRedo (#5355)
- Add CMainWindow::CanUndo and CMainWindow::CanRedo and use them.
- Fix wrongly-disabled Undo/Redo in some cases.
CORE-18867
2023-06-19 14:13:43 +09:00
Katayama Hirofumi MZ
b5335fb90b [MSPAINT] Simplify SelectionModel::StretchSkew
...and omit cloning HBITMAP in SelectionModel::InsertFromHBITMAP. CORE-18867
2023-06-19 14:11:16 +09:00
Katayama Hirofumi MZ
7bb0561c2d [MSPAINT] Delete useless CTextEditWindow::m_nAppIsMovingOrSizing
CORE-18867
2023-06-19 13:47:24 +09:00
Katayama Hirofumi MZ
fdba69be7c [MSPAINT] Follow-up Part 2 of Realize Masked Skew (96d3883)
CORE-18867
2023-06-19 10:11:35 +09:00
Katayama Hirofumi MZ
2661b2db61 [MSPAINT] Improve Japanese (ja-JP) translation (IDS_CANTPASTE)
CORE-18867
2023-06-19 10:08:04 +09:00
Katayama Hirofumi MZ
96d3883686 [MSPAINT] Follow-up of Realize Masked Skew (9afcbea)
CORE-18867
2023-06-19 10:00:39 +09:00
Katayama Hirofumi MZ
9afcbea24e [MSPAINT] Realize Masked Skew
- Add CreateMonoBitmap and CopyMonoImage functions to dib.cpp.
- Add bMono parameter to SkewDIB function.
- Add hbmMask parameter to InsertFromHBITMAP function.
- Add ToolsModel::IsSelection.
CORE-18867
2023-06-19 09:56:02 +09:00
Katayama Hirofumi MZ
f6bd638b4d [MSPAINT] Don't show canvas size boxes if textEditWindow is shown
CORE-18867
2023-06-19 08:36:45 +09:00
Katayama Hirofumi MZ
17bdf55474 [MSPAINT] Smartly restrict CTextEditWindow's size and position
...by using WM_SIZING and WM_MOVING. CORE-18867
2023-06-19 08:25:23 +09:00
Katayama Hirofumi MZ
7aadc1e1fe
[MSPAINT] Realize context menu on canvas (#5352)
- Add actions on Right-Click.
- Add ID_POPUPMENU resource menu.
- Use TrackPopupMenu to show the context menu.
- Improve CMainWindow::OnInitMenuPopup to display context menu.
- Add SelectionModel::m_bContentChanged flag to indicate whether the selection content is changed.
- Fix IDM_IMAGEINVERTCOLORS and IDM_IMAGEROTATEMIRROR commands.
CORE-18867
2023-06-19 07:51:19 +09:00
George Bișoc
0972f71d9a
[NTOS:PNP] Assert the presence of a device extension when handling PnP root power IRPs
Handling PnP root driver power IRPs requires that a device object must come up
with a device extension to determine whether it is a function driver and if so,
handle the IRP accordingly.

CORE-18989
2023-06-18 20:44:13 +02:00
Stanislav Motylkov
89ecf32e0b [MSPAINT] Improve wording of IDS_CANTPASTE message
Follow-up of #5349 (9f56e67). CORE-18867
2023-06-18 19:16:17 +03:00
Stanislav Motylkov
d614d62b09 [EXPLORER] Update copyright headers 2023-06-18 18:52:02 +03:00
Stanislav Motylkov
21f0095cc4 [IPCONFIG] Update copyright headers 2023-06-18 18:34:39 +03:00
Katayama Hirofumi MZ
8ba330ead2 [MSPAINT] Follow-up of #5349 (9f56e67); Avoid assertion failure
CORE-18867
2023-06-18 20:34:49 +09:00
Katayama Hirofumi MZ
9f56e67bc2
[MSPAINT] Use CF_DIB instead of CF_BITMAP (#5349)
CF_BITMAP is not recommended format for copying. In fact, Win10 won't accept it.
- Use CF_DIB clipboard format instead of CF_BITMAP in copying.
- Use CF_ENHMETAFILE, CF_DIB, or CF_BITMAP in pasting.
- Add BitmapToClipboardDIB, BitmapFromClipboardDIB, and BitmapFromHEMF helper functions to dib.cpp.
- Re-enable paste by fixing the bug that is embugged in the previous commit.
- Enable Cut, Copy, Paste, and Delete on text editing box by modifying OnInitMenuPopup.
- Add IDS_CANTPASTE resource string to show message on paste failure.
CORE-18867
2023-06-18 19:48:20 +09:00
Eric Kohl
aaa0cb6724 [IPCONFIG] Use conutils and replace hardcoded strings 2023-06-17 15:23:18 +02:00
Katayama Hirofumi MZ
e8c7e30030
[MSPAINT] Establish Undo/Redo management (#5347)
- Painting the canvas is done by overlaying the multiple layers.
- Drawing each overlay is implemented as polymorphism of OOP.
- Refine the Undo/Redo mechanism.
- Some adjustments.
CORE-17969
2023-06-17 21:15:35 +09:00
Thamatip Chitpong
b7071f67a8
[TASKMGR] Remove CRTDBG (#5348)
taskmgr doesn't use any CRT allocation. I don't see the point of using it.

This reverts commit 2441e86 .

CORE-18991
2023-06-17 03:33:29 +09:00
Katayama Hirofumi MZ
2f856f6f0d [MSPAINT] Add CachedBufferDIB function and use it
We do caching on buffering paint.
This will improve performance a little.
CORE-18867
2023-06-16 08:05:23 +09:00
Hermès Bélusca-Maïto
c706222f3f
[TASKMGR] Fix the license. Turns out it's LGPL-2.1-or-later from the texts.
Caught by Stanislav. Sorry for the oversight!
2023-06-15 19:45:23 +02:00
Hermès Bélusca-Maïto
f4735ccc9b
[TASKMGR] Re-include StringSafe usage in trayicon.c (see e.g. 99fb812be) 2023-06-15 13:28:16 +02:00
Hermès Bélusca-Maïto
434798e312
[TASKMGR] Move strsafe.h into precompiled header. 2023-06-15 13:26:32 +02:00
Hermès Bélusca-Maïto
9927163455
[TASKMGR] Reorder page controls to have natural TAB-ordering. 2023-06-15 12:55:27 +02:00
Hermès Bélusca-Maïto
3bdc062fb9
[PSDK][NDK] Update SYSTEM_PERFORMANCE_INFORMATION definition with Win7+ members.
See https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ex/sysinfo/performance.htm
for more information.
2023-06-15 12:55:08 +02:00
Hermès Bélusca-Maïto
d5707eefe2
[TASKMGR] High speed update is twice per second, and not every second.
And honour what is also told by the info in the status bar.
2023-06-15 12:45:08 +02:00
Hermès Bélusca-Maïto
2da0506f2a
[TASKMGR] Remove more dead code. 2023-06-15 12:44:37 +02:00
Hermès Bélusca-Maïto
6e77747b30
[TASKMGR] Simplify tray icon code. 2023-06-15 12:44:29 +02:00
Hermès Bélusca-Maïto
0b4c8bdd1c
[TASKMGR] Clamp the values returned from PerfDataGetProcessorUsage() and PerfDataGetProcessorSystemUsage() inside these functions.
It's necessary to make this clamping there so that returned values are
always used consistently in taskmgr, including in places where the
values are directly fetched into other functions.

This is a free adaptation from
Wine commit
a9742b3210c4cec67aca3c0012f3b9504a4368cf
From: Gerald Pfeifer <gerald@pfeifer.com>

taskmgr: Move out-of-domain checking into
PerfDataGetProcessorUsage() and PerfDataGetProcessorSystemUsage().
2023-06-15 12:44:21 +02:00
Hermès Bélusca-Maïto
7b53126375
[TASKMGR] Completely reformat perfpage.c, perfpage.h, procpage.h and trayicon.c
- Rename also these stupidly long "hPerformancePageBlablabla" variables.
- Remove unnecessary global variables in procpage.c/h.
2023-06-15 12:44:13 +02:00
Hermès Bélusca-Maïto
da7dcec6a0
[TASKMGR] Reformat the files' headers. Add Valerij in graphctl.c/h who rewrote most of the graph control. 2023-06-15 12:44:01 +02:00