mirror of
https://github.com/Toastconcern/FrameStudio.git
synced 2026-10-29 04:02:56 +01:00
Frame Studio now builds for Windows (x64, x86, ARM64), Linux (x64, x86, ARM64)
and macOS (Apple Silicon, Intel):
- studio/platform.h with Win32 and POSIX implementations (dialogs through
tinyfiledialogs on Linux/macOS), a GLFW window beside the Win32 one, and a
platform-neutral frame pacer
- MoltenVK support in the renderer (portability enumeration) and bundled in
the macOS app
- 32-bit builds: large-address-aware, LZMA packing within a 32-bit address space
- unaligned file reads in the loaders go through loadUnaligned (no UB)
- scripts/build-studio.sh, studio/build_windows.bat [x64|x86|arm64],
cmake/llvm-mingw.cmake, and a GitHub Actions workflow building every target
Frame Home installs without Studio: frame/install-frame-home.{sh,ps1} and
"Install Frame Home.bat" (packaged as FrameHome-installer.zip).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
# Library usage example
|
|
|
|
This is a minimal example of using the astcenc codec as a library in another
|
|
project. This sample shows:
|
|
|
|
* How to include astcenc as an external project CMake dependency.
|
|
* How to use the API to compress and decompress an image.
|
|
|
|
For sake of simplicity the example application uses fixed compression settings,
|
|
reading an uncompressed LDR image, compressing using 6x6 blocks at medium
|
|
quality, and then decompressing and writing the decompressed image back to disk
|
|
as a PNG file.
|
|
|
|
## Building
|
|
|
|
:warning: For sake of simplicity the example CMake project uses the CMake
|
|
`ExternalProject` mechanism to import the astcenc project from GitHub. This is
|
|
trivial to integrate, but requires network access during the build to pull the
|
|
astcenc project.
|
|
|
|
Most users will want to store a copy of astcenc in a project sub-directory,
|
|
e.g. by using git submodules, and then use `add_subdirectory()` to include the
|
|
project in their build. This allows the user to directly use the astcenc core
|
|
library as a link requirement via `target_link_libraries()`, without the
|
|
additional plumbing that `ExternalProject` requires.
|
|
|
|
### Linux and macOS
|
|
|
|
From the `./Utils/Example` directory.
|
|
|
|
```
|
|
mkdir build
|
|
cd build
|
|
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
|
|
make -j8
|
|
```
|
|
|
|
### Windows
|
|
|
|
From the `./Utils/Example` directory, in a Visual Studio command prompt.
|
|
|
|
```
|
|
mkdir build
|
|
cd build
|
|
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
|
|
nmake
|
|
```
|
|
|
|
## Running
|
|
|
|
From the build directory above.
|
|
|
|
```
|
|
astcenc_example <input.png> <output.png>
|
|
```
|