Notepad3/scintilla
METANEOCORTEX\Kotti 4339223594 Fix ARM64 flickering/rendering issues on Windows 11 25H2
Addresses reported flickering and rendering problems on ARM64 devices
running Windows 11 25H2 by implementing ARM64-specific rendering
defaults, build configuration fixes, and redraw optimizations.

Rendering fixes:
- Default to SC_TECHNOLOGY_DIRECTWRITERETAIN on ARM64 to preserve
  back buffer between frames, avoiding blank flashes with Qualcomm
  Adreno GPUs and Win11 25H2 DWM compositor changes
- Wrap MsgThemeChanged() in WM_SETREDRAW FALSE/TRUE to suppress
  N intermediate repaints during heavy theme/DPI transitions
- Add WS_EX_COMPOSITED to main window on ARM64 for system-level
  double-buffering
- Remove RDW_ERASE from DarkMode ListView/TreeView RedrawWindow()
  calls to avoid background erase flash during theme changes

Build configuration fixes:
- Add _WIN64 preprocessor define to Scintilla, SciLexer, Lexilla
  ARM64 configurations (was missing, could cause 32-bit code paths)
- Add TargetMachine=MachineARM64 to all ARM64 linker sections across
  Notepad3, Scintilla, SciLexer, Lexilla projects
- Add CETCompat=false to Scintilla and SciLexer ARM64 configurations
  (CET is x86/x64 only, not compatible with ARM64)

Platform code improvements:
- Add _M_ARM64 detection for GrepWin binary selection (ARM64 was
  silently mapped to x64 binary via _WIN64 check)
- Add NP3_BUILD_ARM64 helper macro in TypeDefs.h for future
  ARM64-specific code paths
- Document RenderingTechnology setting in Build/Notepad3.ini with
  per-resolution override syntax and ARM64 troubleshooting tips

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-06 17:19:34 +02:00
..
call upd: Lexilla v5.4.6, Scintilla v5.5.8 2026-02-14 01:13:14 +01:00
doc VS version update 2026-03-22 13:45:59 +01:00
include chore: sync. with current scintilla mirror 2026-03-10 00:11:32 +01:00
np3_patches MUI - Migration of the MS VS2022 compiler to MS VS2026 2026-02-14 18:22:12 +01:00
pcre2 fix: PCRE2 interface - bug matching line-end ($) 2026-03-06 16:15:03 +01:00
scripts upd: Lexilla v5.4.6, Scintilla v5.5.8 2026-02-14 01:13:14 +01:00
src VS version update 2026-03-22 13:45:59 +01:00
win32 Fix ARM64 flickering/rendering issues on Windows 11 25H2 2026-04-06 17:19:34 +02:00
.editorconfig + fix: Oniguruma flexible EOL handling (Win CRLF, Unix LF and Mac CR) 2020-10-12 16:47:54 +02:00
cppcheck.suppress upd: Lexilla v5.4.6, Scintilla v5.5.8 2026-02-14 01:13:14 +01:00
License.txt + upd: to Scintilla v.5.0.0 2021-03-11 17:26:46 +01:00
README +upd: Scintilla Lib v5.5.3 2024-11-30 12:12:50 +01:00
Scintilla.vcxproj refactor: remove deprecated Win7 compatibility, refactor background worker and file observation, UTF-32 detection 2026-03-05 15:55:07 +01:00
Scintilla.vcxproj.filters refactor: replace regex engines: Oniguruma (retired) by PCRE2 v10.47 2026-03-02 19:26:36 +01:00
ScintillaDLL.vcxproj refactor: remove deprecated Win7 compatibility, refactor background worker and file observation, UTF-32 detection 2026-03-05 15:55:07 +01:00
ScintillaDLL.vcxproj.filters +upd: Scintilla version 4.3.0 2020-01-18 13:40:11 +01:00
version.txt fix: update to Scintilla v5.6.0 2026-02-26 06:48:12 +01:00
zipsrc.bat +upd: Scintilla v5.3.3 2023-02-24 18:15:03 +01:00

README for building of Scintilla, Lexilla, and SciTE

Scintilla and Lexilla can be built by themselves.
To build SciTE, Scintilla and Lexilla should first be built.

See lexilla/README for information on building Lexilla.

*** GTK+/Linux version ***

You must first have GTK+ 2.24 or later and GCC (7.1 or better) installed.
Clang may be used by adding CLANG=1 to the make command line.
Other C++ compilers may work but may require tweaking the make file.
Either GTK+ 2.x or 3.x may be used with 2.x the default and 3.x
chosen with the make argument GTK3=1.

To build Scintilla, use the makefile located in the scintilla/gtk directory
	cd scintilla/gtk
	make
	cd ../..

To build and install SciTE, use the makefile located in the scite/gtk directory
	cd scite/gtk
	make
	sudo make install

This installs SciTE into $prefix/bin. The value of $prefix is determined from
the location of Gnome if it is installed. This is usually /usr if installed
with Linux or /usr/local if built from source. If Gnome is not installed
/usr/bin is used as the prefix. The prefix can be overridden on the command
line like "make prefix=/opt" but the same value should be used for both make
and make install as this location is compiled into the executable. The global
properties file is installed at $prefix/share/scite/SciTEGlobal.properties.
The language specific properties files are also installed into this directory.

To remove SciTE
	sudo make uninstall

To clean the object files which may be needed to change $prefix
	make clean

The current make file supports static and dynamic linking between SciTE, Scintilla, and Lexilla.


*** Windows version ***

A C++ 17 compiler is required.
Visual Studio 2019 is the development system used for most development
although Mingw-w64 9.2 is also supported.

To build Scintilla, make in the scintilla/win32 directory
		cd scintilla\win32
GCC:		mingw32-make
Visual C++:	nmake -f scintilla.mak
		cd ..\..

To build SciTE, use the makefiles located in the scite/win32 directory
		cd scite\win32
GCC:		mingw32-make
Visual C++: 	nmake -f scite.mak

An executable SciTE will now be in scite/bin.

*** GTK+/Windows version ***

Mingw-w64 is known to work. Other compilers will probably not work.

Only Scintilla will build with GTK+ on Windows. SciTE will not work.

Make builds both a static library version of Scintilla with lexers (scintilla.a) and
a shared library without lexers (libscintilla.so or libscintilla.dll).

To build Scintilla, make in the scintilla/gtk directory
	cd scintilla\gtk
	mingw32-make

*** macOS Cocoa version ***

Xcode 9.2 or later may be used to build Scintilla on macOS.

There is no open source version of SciTE for macOS but there is a commercial
version available through the App Store.

To build Scintilla, run xcodebuild in the scintilla/cocoa/ScintillaFramework or 
scintilla/cocoa/Scintilla directory

        cd cocoa/Scintilla

	xcodebuild

*** Qt version ***

See the qt/README file to build Scintilla with Qt.