Skip to content

blendMode: add BLEND/DARKEST/LIGHTEST/DIFFERENCE/REPLACE modes #109

blendMode: add BLEND/DARKEST/LIGHTEST/DIFFERENCE/REPLACE modes

blendMode: add BLEND/DARKEST/LIGHTEST/DIFFERENCE/REPLACE modes #109

Workflow file for this run

name: Build precompiled cache (Processing.o + PCH)
on:
workflow_dispatch:
push:
paths:
- 'src/Processing.cpp'
- 'src/Processing.h'
- 'src/Processing_defaults.cpp'
permissions:
contents: write
jobs:
linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install gcc-14
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -q
sudo apt-get install -y gcc-14 g++-14 libglfw3-dev libglew-dev
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
- name: Build cache
run: |
mkdir -p cache/linux-x64
# Download GLEW 2.3.1 headers to match bundled DLL
curl -L https://github.com/nigels-com/glew/releases/download/glew-2.3.1/glew-2.3.1.tgz -o glew.tgz
tar xf glew.tgz
CFLAGS="-std=c++2c -O2 -march=x86-64"
LFLAGS="-static-libgcc -static-libstdc++"
DEFS="-DPROCESSING_HAS_STB_IMAGE -DPROCESSING_HAS_STB_TRUETYPE"
INC="-I src -I glew-2.3.1/include"
echo "Building Processing.h.gch..."
g++ $CFLAGS $DEFS $INC -x c++-header src/Processing.h -o cache/linux-x64/Processing.h.gch
echo "Building Processing.o..."
g++ $CFLAGS $LFLAGS $DEFS $INC -c src/Processing.cpp -o cache/linux-x64/Processing.o
echo "Building Processing_defaults.o..."
g++ $CFLAGS $LFLAGS $DEFS $INC -c src/Processing_defaults.cpp -o cache/linux-x64/Processing_defaults.o
echo "Done:"
ls -lh cache/linux-x64/
- uses: actions/upload-artifact@v4
with:
name: cache-linux-x64
path: cache/linux-x64/
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install MinGW
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-glfw mingw-w64-x86_64-glew
- name: Bundle gcc runtime DLLs
shell: msys2 {0}
run: |
mkdir -p libs/windows-x64
cp /mingw64/bin/libgcc_s_seh-1.dll libs/windows-x64/
cp /mingw64/bin/libstdc++-6.dll libs/windows-x64/
cp /mingw64/bin/libwinpthread-1.dll libs/windows-x64/
cp /mingw64/bin/libssp-0.dll libs/windows-x64/ || true
- name: Upload gcc runtime DLLs
uses: actions/upload-artifact@v4
with:
name: windows-runtime-dlls
path: libs/windows-x64/*.dll
retention-days: 90
- name: Build cache
shell: msys2 {0}
run: |
mkdir -p cache/windows-x64
# Download GLEW 2.3.1 headers to match bundled DLL
curl -L https://github.com/nigels-com/glew/releases/download/glew-2.3.1/glew-2.3.1.tgz -o glew.tgz
tar xf glew.tgz
CFLAGS="-std=c++2c -O2 -march=x86-64"
LFLAGS="-static-libgcc -static-libstdc++"
DEFS="-DPROCESSING_HAS_STB_IMAGE -DPROCESSING_HAS_STB_TRUETYPE"
INC="-I src -I glew-2.3.1/include"
echo "Building Processing.h.gch..."
g++ $CFLAGS $DEFS $INC -x c++-header src/Processing.h -o cache/windows-x64/Processing.h.gch
echo "Building Processing.o..."
g++ $CFLAGS $LFLAGS $DEFS $INC -c src/Processing.cpp -o cache/windows-x64/Processing.o
echo "Building Processing_defaults.o..."
g++ $CFLAGS $LFLAGS $DEFS $INC -c src/Processing_defaults.cpp -o cache/windows-x64/Processing_defaults.o
ls -lh cache/windows-x64/
- uses: actions/upload-artifact@v4
with:
name: cache-windows-x64
path: cache/windows-x64/
macos-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
brew install glfw glew
- name: Build cache
run: |
mkdir -p cache/macos-arm64
BREW=$(brew --prefix)
FLAGS="-std=c++2c -O2 -w -DPROCESSING_HAS_STB_IMAGE -DPROCESSING_HAS_STB_TRUETYPE -I src -I $BREW/include"
echo "Building Processing.o..."
g++ $FLAGS -Wno-error -c src/Processing.cpp -o cache/macos-arm64/Processing.o || echo "WARNING: Processing.o failed"
echo "Building Processing_defaults.o..."
g++ $FLAGS -Wno-error -c src/Processing_defaults.cpp -o cache/macos-arm64/Processing_defaults.o || echo "WARNING: defaults.o failed"
echo "Building PCH..."
g++ $FLAGS -x c++-header src/Processing.h -o cache/macos-arm64/Processing.h.gch || echo "WARNING: PCH failed"
ls -lh cache/macos-arm64/
- uses: actions/upload-artifact@v4
with:
name: cache-macos-arm64
path: cache/macos-arm64/
macos-x64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
brew install glfw glew
- name: Build cache
run: |
mkdir -p cache/macos-x64
BREW=$(brew --prefix)
FLAGS="-std=c++2c -O2 -w -target x86_64-apple-macos10.13 -DPROCESSING_HAS_STB_IMAGE -DPROCESSING_HAS_STB_TRUETYPE -I src -I $BREW/include"
echo "Building Processing.o..."
g++ $FLAGS -Wno-error -c src/Processing.cpp -o cache/macos-x64/Processing.o || echo "WARNING: Processing.o failed"
echo "Building Processing_defaults.o..."
g++ $FLAGS -Wno-error -c src/Processing_defaults.cpp -o cache/macos-x64/Processing_defaults.o || echo "WARNING: defaults.o failed"
echo "Building PCH..."
g++ $FLAGS -x c++-header src/Processing.h -o cache/macos-x64/Processing.h.gch || echo "WARNING: PCH failed"
ls -lh cache/macos-x64/
- uses: actions/upload-artifact@v4
with:
name: cache-macos-x64
path: cache/macos-x64/