Notepad3/lexilla
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
..
access +upd: Lexilla v.5.4.5 2025-06-12 01:33:56 +02:00
doc fix: update to Lexilla v5.4.7 2026-02-26 07:58:18 +01:00
examples Update Lexilla to v5.4.1, replace Zufiliu's Dart lexer by new Lexilla's Dart lexer (based on Zufuliu's Dart lexer) 2024-11-30 11:33:15 +01:00
include fix: update to Lexilla v5.4.7 2026-02-26 07:58:18 +01:00
lexers add: lexer ABAQUS 2026-03-23 12:34:06 +01:00
lexers_x Clean up todo_lexers.txt - LexMarkdown comparison complete 2026-01-17 21:13:45 +02:00
lexlib upd: Lexilla v5.4.6, Scintilla v5.5.8 2026-02-14 01:13:14 +01:00
np3_patches deps: Upgrade Lexilla 5.4.5 to 5.4.6, add np3_patches docs 2026-01-18 00:15:40 +02:00
scripts add: lexer ABAQUS 2026-03-23 12:34:06 +01:00
src add: lexer ABAQUS 2026-03-23 12:34:06 +01:00
.gitignore +upd: Lexilla v5.3.0 and Scintilla v5.4.1 2024-01-10 17:06:08 +01:00
cppcheck.suppress upd: Lexilla v5.4.6, Scintilla v5.5.8 2026-02-14 01:13:14 +01:00
Lexilla.vcxproj Fix ARM64 flickering/rendering issues on Windows 11 25H2 2026-04-06 17:19:34 +02:00
Lexilla.vcxproj.filters Update Lexilla to v5.4.1, replace Zufiliu's Dart lexer by new Lexilla's Dart lexer (based on Zufuliu's Dart lexer) 2024-11-30 11:33:15 +01:00
License.txt + upd: Lexilla to v5.0.0 2021-03-11 18:20:26 +01:00
README +upd: Lexilla v.5.4.5 2025-06-12 01:33:56 +02:00
version.txt fix: update to Lexilla v5.4.7 2026-02-26 07:58:18 +01:00

README for Lexilla library.

The Lexilla library contains a set of lexers and folders that provides support for
programming, mark-up, and data languages for the Scintilla source code editing
component.

Lexilla is made available as both a shared library and static library.
The shared library is called liblexilla.so / liblexilla.dylib / lexilla.dll on Linux / macOS /
Windows.
The static library is called liblexilla.a when built with GCC or Clang and liblexilla.lib
when built with MSVC.

Lexilla is developed on Windows, Linux, and macOS and requires a C++17 compiler.
It may work on other Unix platforms like BSD but that is not a development focus.
MSVC 2019.4, GCC 9.0, Clang 9.0, and Apple Clang 11.0 are known to work.

MSVC is only available on Windows.

GCC and Clang work on Windows and Linux.

On macOS, only Apple Clang is available.

Lexilla requires some headers from Scintilla to build and expects a directory named
"scintilla" containing a copy of Scintilla 5+ to be a peer of the Lexilla top level
directory conventionally called "lexilla".

To use GCC, run lexilla/src/makefile:
	make

To use Clang, run lexilla/src/makefile:
	make CLANG=1
On macOS, CLANG is set automatically so this can just be
	make

To use MSVC, run lexilla/src/lexilla.mak:
	nmake -f lexilla.mak

To build a debugging version of the library, add DEBUG=1 to the command:
	make DEBUG=1
	
The built libraries are copied into lexilla/bin.

Lexilla relies on a list of lexers from the lexilla/lexers directory. If any changes are
made to the set of lexers then source and build files can be regenerated with the
lexilla/scripts/LexillaGen.py script which requires Python 3 and is tested with 3.7+.
Unix:
	python3 LexillaGen.py
Windows:
	pyw LexillaGen.py