incbin
pl_mpeg
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
incbin
-
Self-contained Linux applications with lone Lisp
OK, yes, that does work. You can totally put application specific stuff in the elf and reflect on it at runtime. Much easier is to embed it directly and point a symbol value at the start of the data.
See https://github.com/graphitemaster/incbin for a pretty wrapper around that.
Aside from there being a drastically simpler answer to this problem available in sketchily documented fashion (the asm guys know .incbin is a thing, but higher level languages overcomplicate it), it's a good post. Idea is sound and goal was achieved.
-
The theory versus the practice of “static websites”
Thanks for the link. We also make static websites by direct inclusion their HTML code in the C++ binary of ClickHouse.
I've tried to use this library but found a bug: https://github.com/graphitemaster/incbin/issues/61
-
Olive.c: a simple graphics library that does not have any dependencies
won't work, since the preprocessor won't interpret directives inside string literals of course.
In many assemblers, there is a directive called "incbin" which pastes in unstructured binary data at the point of usage. I just found a very clever C and C++ wrapper [1] for that, which gives you an INCBIN() macro. Nice!
[1]: https://github.com/graphitemaster/incbin
-
embed workaround
There's always this: https://github.com/graphitemaster/incbin
-
Finally. Embed
Haven't the people making the standards other things to do, like, integrating useful features instead of duplicating incbin.h [0] years after that feature worked?
https://github.com/graphitemaster/incbin/blob/main/incbin.h
- How do I embed files or access them without an operating system?
-
Include files into the Sketch automatically with incbin
There is a project "https://github.com/graphitemaster/incbin" that can take a file and put that file content into the sketch ROM segment as constant / resource. It is an even nicer alternative to "xxd -i" or using string literals like: const char bla[] PROGMEM = R"CERT( ... )CERT";
pl_mpeg
-
Finally. Embed
You can get some IDE support with a simple preprocessor macro[1].
It's a crutch, but at least you don't need to stuff the shader into multiple "strings" or have string continuations (\) at the end of every line. Plus you get some syntax highlighting from the embedding language. I.e. the shader is highlighted as C code, which for the most part seems to be close enough.
[1] https://github.com/phoboslab/pl_mpeg/blob/master/pl_mpeg_pla...
-
Video Codecs and 4k
> MPEG is not free. A license is required for using MPEG.
For MPEG-1 this is not true anymore. All patents have expired. It's also far less computationally expensive and easier to implement/integrate than more modern codecs. This makes MPEG-1 a "good enough" solution for (e.g.) short video clips in a game.
Disclaimer: I wrote pl_mpeg[1], so my opinion is biased.
[1] https://github.com/phoboslab/pl_mpeg
What are some alternatives?
aoc-2020 - Advent of Code 2020 in 25 Different Languages
cdecl - Nim helper for using C Macros
xplain - Interactive demos
nimscripter - Quick and easy Nim <-> Nimscript interop
ComputerGraphics - Basic computer graphics implementation , with linux framebuffer
pyker - Python tool to convert files from a directory tree into a C header file.
execfs - Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file.
SuperSimpleGraphics - An SVG generating single header file C library appropriate for "intro to programming" classes in C/C++.
stb - stb single-file public domain libraries for C/C++
sitepress - Sitepress ruby gems
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.