Commit Graph

5288 Commits

Author SHA1 Message Date
WerWolv
0aec3fffe1 fix: Unused lambda captures 2025-05-25 22:21:40 +02:00
WerWolv
38ef00548a impr: Speed up Import Pattern popup
Closes #2264
2025-05-25 21:08:52 +02:00
WerWolv
c78c8072e9 fix: Text Editor Scrollbars being added multiple times 2025-05-25 20:35:03 +02:00
WerWolv
7c98411abe fix: Tutorial highlighting of menu item 2025-05-25 18:21:26 +02:00
WerWolv
e22516662f patterns: Updated pattern language 2025-05-25 18:21:03 +02:00
WerWolv
24c1f48522 build: Updated lunasvg and libyara 2025-05-25 15:32:43 +02:00
WerWolv
69b07d40e4 build: Updated ImGui to v1.91.9b 2025-05-25 15:30:33 +02:00
WerWolv
b96692b1ba fix: Global scale race condition during font loading 2025-05-25 15:11:09 +02:00
WerWolv
53afb7cba0 git: Add Ubuntu 25.04 release 2025-05-25 14:09:56 +02:00
WerWolv
8e0953af1e git: Only put the current web assembly build into the release artifact 2025-05-25 13:46:57 +02:00
WerWolv
724f9aa524 git: Deploy both latest release and nightly to web.imhex.werwolv.net 2025-05-25 13:43:06 +02:00
WerWolv
7067ffafe7 patterns: Display pattern errors in red in the pattern data view 2025-05-25 11:46:41 +02:00
WerWolv
145c88db31 patterns: Updated pattern language
Fixes #2266
2025-05-25 11:00:59 +02:00
paxcut
56615d6c06 patterns: Updated pattern language (#2270) 2025-05-24 16:44:59 -07:00
WerWolv
d26bcc1abe fix: Menu bar being gone on the Web build 2025-05-24 23:10:53 +02:00
WerWolv
04f817c042 fix: Web Assembly build 2025-05-24 22:45:17 +02:00
WerWolv
b58f97c1f1 impr: Added function to Texture class to retrieve raw image from GPU 2025-05-24 22:32:56 +02:00
WerWolv
96dc386694 fix: Linux build errors 2025-05-24 22:32:33 +02:00
WerWolv
c6c70daa5e fix: macOS build errors 2025-05-24 22:32:24 +02:00
WerWolv
de16375903 impr: Slightly simplify subpixel rendering logic and required ImGui patches 2025-05-24 22:32:08 +02:00
WerWolv
c6548d5ad1 fix: Non-subpixel rendered glyphs appearing as white rectangles if subpixel rendering is enabled 2025-05-24 21:59:21 +02:00
WerWolv
bd8c4e807c fix: Remove extra pixel from Hex Editor selection frame 2025-05-24 16:19:13 +02:00
WerWolv
553549302c impr: Use linear scaling for the windows title bar icon 2025-05-24 16:18:59 +02:00
WerWolv
c69a7012c5 fix: Unifont glyphs being rendered too far down 2025-05-24 16:09:15 +02:00
WerWolv
7acc5fc02e impr: Make title bar backdrop actually a backdrop and not an overlay 2025-05-24 11:57:02 +02:00
WerWolv
39bc165f36 build: Prevent frame pointer omission to improve stack traces 2025-05-24 11:56:44 +02:00
WerWolv
707a92281b fix: Multithreaded disk access issues 2025-05-24 11:48:07 +02:00
WerWolv
823013a3d9 fix: Fonts being smaller than their set size value 2025-05-24 11:47:46 +02:00
WerWolv
7089561b21 git: Remove accidentally committed file 2025-05-19 00:01:23 +02:00
WerWolv
0f0bff1685 fix: Remaining Subpixel rendering issues 2025-05-19 00:00:32 +02:00
WerWolv
b6387c3f64 fix: Crash when loading subpixel font didn't work 2025-05-18 11:10:43 +02:00
paxcut
ff0bcfb7da fix: More per-provider data access errors (#2256) 2025-05-17 21:48:36 -07:00
Stephen Hewitt
f729d36214 fix: Crash when sorting for value fields in pattern data view, fix HTML export encoding (#2242)
<!--
Please provide as much information as possible about what your PR aims
to do.
PRs with no description will most likely be closed until more
information is provided.
If you're planing on changing fundamental behaviour or add big new
features, please open a GitHub Issue first before starting to work on
it.
If it's not something big and you still want to contact us about it,
feel free to do so !
-->

### Problem description
This is a fix for the ImHex bug "ImHex crashes when analysing any PE
file #2221"

### Implementation description
This is a fix for the ImHex bug "ImHex crashes when analysing any PE
file #2221". The fix requires changes to the Pattern Language and the
ImHex UI. Revision would be wise. We want to avoid collateral damage.
It's a big code base and I'm new to it and the compilers/build-systems
used. And the bug is complex and low-level. I suspect this will fix
other random crashes. The problem is caused by two issues:
- The std::sort algorithm conjuring up garbage due to the sorting
criteria not being a strict weak ordering. See
[this](https://github.com/Voultapher/sort-research-rs/blob/main/writeup/sort_safety/text.md)
link.
- We sort shared_ptr&lt;ptrn::Pattern&gt; by pointer value, and the
object is a clone. In essence we're changing the values as we're
sorting.
 
Fixes #2221

### IMPORTANT
I'm not sure how "plugins/builtin/source/content/data_formatters.cpp"
got into the PR. Been trying for an hour to rectify. I'm not a Git
expert (the last time I used source control seriously SourceSafe was a
thing) please ignore that file. It's a fix for another PR I submitted. I
suspect I stuffed up the branching and merging.

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2025-05-17 20:50:21 +00:00
WerWolv
d5a07b6a5b patterns: Updated pattern language 2025-05-17 22:20:05 +02:00
WerWolv
bda0b3ce18 fix: More per-provider data access errors 2025-05-17 22:14:27 +02:00
WerWolv
14d95a7e46 patterns: Updated pattern language 2025-05-17 20:31:38 +02:00
WerWolv
2ef2cdd874 fix: Make sure PerProvider don't get accessed using a nullptr provider 2025-05-17 20:29:54 +02:00
paxcut
57c2d84122 improv: made the text editors to be per provider. (#2255)
The recent update that made importing patterns undoable had the side
effect of undoing tab changes as well. When working on a fix for that it
became clear that the undo/redo stacks were being shared by all
providers so that you could undo changes done in a separate file. The
problem was fixed by making the text editors (and the console editors as
well) to be per provider which gives better control on things like
breakpoints and selections and a more robust focusing system that
preserves the cursor positions and removes the need to click on a
pattern to start editing. There are a lot of changes, but they are
mostly all the uses of text editors being now coded differently to
manage the providers. File imports are still undoable, but switching
providers is not.
Further changes suggested by reviewer were implemented namely a mull provider was being used and there was a get function missing which prevented the use of the preferred syntax.
2025-05-17 11:26:54 -07:00
paxcut
d263962a06 fix: horizontal scrollbar missing in console (#2253)
The recent changes to the text editor to fix the longest line length
problems broke the console horizontal scrollbar. The code that displays
the console editor was more complicated that it needed be, and it had
the bad side effect of resetting the cursor which prevented horizontal
scrolling. Adding a function that appends lines to the text editor fixes
all problems and makes the code clearer. To accommodate for strings
containing zeros, the code that inserts text was changed to print a '.'
when zeros are encountered thus keeping the line length the same.
2025-05-17 00:23:43 -07:00
WerWolv
e32c5784af impr: Further refine pattern tree indenting 2025-05-16 20:24:38 +02:00
WerWolv
1496a6e755 impr: Improve indentation of pattern data tree
#2252
2025-05-16 18:50:35 +02:00
WerWolv
6dab1063a1 fix: Provider getting marked as dirty immediately on load
#2251
2025-05-16 18:50:03 +02:00
paxcut
ff286f3e05 fix: subpixel effects on hex editor. (#2247)
The implementation of subpixel rendering using draw call lists with
callbacks prevents call list merging and their associated clip rects in
tables. As a result clip rects become as narrow as the columns of the
table which can clip previously renderable primitives. The hex editor
has several draw calls that render outside their column so if subpixel
rendering is selected those primitives cease to be displayed.

To fix this issue, and to verify that this was indeed the cause behind
the issue, we simply push an adequately sized clip rect before the draw
call command and pop it right after.

A problem with segment vertical separators not being rendered in the
first tow was also fixed.
2025-05-16 01:31:29 -07:00
WerWolv
6f112c2d16 feat: Added custom encoding row to data inspector 2025-05-15 22:00:43 +02:00
paxcut
8f222dab99 fix: unable to display models if indices are not contiguous in the input file (#2248)
If you tried to collect the indices using addressof like stl pattern
collects vertices you get a small square for visualizer and no error
message. The changes here are able to extract the indices if they can be
extracted and give an error message if they can't.
2025-05-14 22:08:16 -07:00
paxcut
828951ffe9 build: msvc uninitialized variables. (#2239)
MSVC build failing because of a warning treated as an error for
variables being used without initializing even though they are being
passed as references.
2025-05-12 01:58:10 -07:00
WerWolv
616f34e210 fix: Window being created partially off-screen if monitor is too small
Fixes #2238
2025-05-11 23:54:58 +02:00
WerWolv
fa3ed7e618 impr: Load all unicode planes if requested 2025-05-11 23:26:27 +02:00
WerWolv
a207969dec fix: Unicode enable option not working correctly 2025-05-11 23:07:52 +02:00
WerWolv
7fde40b04e impr: Allow for higher planes of unicode characters to be recognized
#2237
2025-05-11 23:07:27 +02:00