* fix appimage cd error and use static appimage runtime
* include `desktop-file-utils` for appimagetool
* remove mv of old `AppRun`
* revert indentation
* don't export `APPIMAGE_EXTRACT_AND_RUN`
* improve projectsearch
- stick status to top of view
- add horizontal scrolling
- added ellipsis at the end of the text if it's too long
* Reverted removal of 0 on yield.
---------
Co-authored-by: Adam Harrison <adamdharrison@gmail.com>
* renderer: rewrite glyph cache
This commit splits the current GlyphSet-based system into 2 caches,
CharMap and GlyphMap, which maps codepoints -> glyph IDs and glyph IDs -> glyphs respectively.
Each GlyphMap contains a number of GlyphAtlas mapped by their width,
and each GlyphAtlas has a list of surfaces with the same width.
Surfaces within the GlyphAtlas acts like a bump allocator, but is flexible
enough to allow older GlyphAtlas surfaces to be recycled.
GlyphMetric now contains atlas_idx and surface_idx, which points to the correct surface.
Since GlyphAtlas supports rudimentary packing & allocation, we no longer render whole
GlyphSets and this speeds up rendering in most cases.
Tab width is no longer set with the hacky "modify the GlyphMetric" hack.
* renderer: set natlas to 0 after freeing
* renderer: fix printf warning
* renderer: fix memory leak
* renderer: better whitespace rendering
* renderer: fix ubsan warning when casting ints
* renderer: fix tab handling
There's a bug with inconsistent tab widths caused by fontgroups.
* renderer: fix glyphs being loaded over and over
* renderer: add glyphmap size
* renderer: store per-surface offset_y and use it to find best-fitting surface
* renderer: fix MSVC compiler error
* renderer: remove return value from ren_font_glyph
* renderer: refactor xadvance calculation
* renderer: fix double free SDL_RWops if FT_Set_Pixel_Size fail
* renderer: always try .notdef before U+25A1
* renderer: disable ren_font_dump yet again
Accidentally commited this change.
* renderer: remove unused imports
* renderer: fix double free with FT_Open_Face
* renderer: return SDL_Surface in font_find_glyph_surface
* renderer: bring back metric flags for future extension
* renderer: refactor xadvance calculation into macro
* renderer: fix comment
* renderer: store GlyphMetric directly in the surface
* renderer: remove duplicated comment
* renderer: rename font_find_glyph_surface to font_allocate_glyph_surface
* renderer: refactor glyphmetric retrieval into an inline function
* renderer: do not render glyphs with bitmap set to null
This is a weird edge case, but at least it shouldn't crash
* renderer: refactor face metric code into its own function
* renderer: actually check if glyph fits in surface
* renderer: rudimentary support for non-scalable faces
At least it won't render nothing on the screen
* renderer: check for font_surface instead of metric directly
This is safe and shorter
* renderer: fix indentation
* renderer: rename GLYPH_PER_ATLAS to GLYPHS_PER_ATLAS
* renderer: rename all GLYPH_PER_ATLAS correctly
* renderer: make utf8_to_codepoint slightly more durable
* renderer: fix compiler unsigned cast warning
This is needed because we use `mtime` to determine if a file has actually changed, but on most systems this has a resolution of 1 second (and we truncate it to an integer anyways).
Without this wait, we would skip reloading a file that has been changed multiple times in the same `mtime` second, thus losing some data.
* macos: support drag-and-drop and default file associations
* resources/macos: use LSItemContentTypes to narrow down files
* macos: support opening folders
* rootview: workaround macos weird dnd event timing
* core/rootview: rename variable and refactor if statement
* Update font scale on monitor scale change for `RENDERER` backend (macOS)
* fix(renderer): check every font of a fontgroup for scale changes in `update_font_scale`
It is needed because fonts can be reused between groups and outside of them.
So if the first font of a group has already been scaled, we still need to check if the others still needs to be scaled.
* Update language_python.lua
* Update language_python.lua
* Update language_python.lua
* implemented a better `python_type` subsyntax
* Update language_python.lua
* fixed a small error where you couldn't hint a type at a var and guive it a value at the same time
* Update language_python.lua
* Update language_python.lua
Dictionaries appear now normally
* Update language_python.lua
* added suggestions concerning strings
* commited suggestion
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
* Various changes
* Update language_python.lua
Syntax more optimized but a tiny bit more complex...
* Simplified everything
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
* improve number highlighting for c
* add unsigned suffix
* add long suffixes
* reorder octal literals and add suffix for hex numbers
* fix integer and float suffixes
too many characters, send help
* resources: update copyright in info.plist
* meson.build: dynamically generate current year
"present" may be misleading.
* resources/macos: remove unecessary newlines
* ci: use latest macos images
* ci/build: clarify the purpose of md5sha1sum
* meson.build: remove hidapi usage
* ci: downgrade macos version for universal build
* scripts: codesign the universal binary with sha1 and sha256
* ci: revert back to macos-14 for universal
* ci/build: remove old comment
* CI: update various action versions
The most significant change is action/upload-artifact@v4,
which does not support uploading artifacts of the same name.
This makes our lives significantly worse, but I don't know
if GitHub will remove v3 in future or not.
* CI: fix macOS universal artifact download
* CI: update release action versions
* CI: use containers only for building
* CI: fix multiline commands
* CI: try to fix multiline strings again
* CI: fix multiline strings again ugh
* CI: Fix ccache in containers
* CI: Fix quotes again
* CI: fix ccache
* CI: fix deprecated set-output command
* ci: update build box to v2.1.2
* ci: revert to softprops/action-gh-release
* ci: add name to release
* ci: remove name again
* ci: fix wrong outputs reference
* ci: add name
* ci: add missing name for each step
* ci: format yaml files
* ci/release: add names to unamed entries
* ci/release: fix MSYS2 not downloading deps
* ci/release: change to ncipollo/release-action
There is some weird issue with softprops/action-gh-release and I can't update an existing release.
* ci/release: allow updating releases
* ci/release: upload all artifacts, then download them at once
* ci/release: use a better name for job
* ci/release: add release as dependency
* ci/release: set tag for update release
* ci/auto-labeler: remove workaround for old autolabeler issue
* ci/release: remove the need of another bash -c
* ci/release: remove weird bash -c
* fix: avoid iterating over a changing table in `run_threads`
This is done to avoid iterating over a table that can change in the meantime.
More precisely the issue appears if a thread is removed from the table, we yield early from `run_threads` because we reached the end of the frame, and a new thread is added before the next iteration.
For example:
```lua
local lost_time = false
core.add_thread(function()
-- force early yield
local t0 = system.get_time()
while system.get_time() - t0 < .1 do end
lost_time = true
end, "a")
local step = core.step
function core.step()
if lost_time then
-- add a new thread while run_threads hasn't finished iterating
core.add_thread(function()end, "a1")
lost_time = false
end
return step()
end
```
would crash with `invalid key to 'next'`.
* fix: only run coroutine if it wasn't removed
* fix: don't handle `core.threads` table as an array
This caused some entries to be skipped or even removed erroneously.