mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
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> |
||
|---|---|---|
| .. | ||
| access | ||
| doc | ||
| examples | ||
| include | ||
| lexers | ||
| lexers_x | ||
| lexlib | ||
| np3_patches | ||
| scripts | ||
| src | ||
| .gitignore | ||
| cppcheck.suppress | ||
| Lexilla.vcxproj | ||
| Lexilla.vcxproj.filters | ||
| License.txt | ||
| README | ||
| version.txt | ||
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