Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
c161807
update to v1.3
planetis-m Apr 28, 2024
c307547
progress
planetis-m Apr 28, 2024
389a90f
progress
planetis-m Apr 28, 2024
a0c0d56
fix
planetis-m Apr 28, 2024
34bb32b
fix formating and off by one error
planetis-m Apr 28, 2024
0184618
use multireplace when applicable. Faster
planetis-m Apr 28, 2024
923e20a
lol fix mistake
planetis-m Apr 28, 2024
cdcb266
fix some dups
planetis-m Apr 28, 2024
f26c943
less dups
planetis-m Apr 28, 2024
aeaebaf
Hack: fix duplicate errors
planetis-m Apr 28, 2024
01aa834
progress
planetis-m Apr 29, 2024
6514089
nowhere near done but found a better generator at saemideluxe/semicon…
planetis-m Apr 29, 2024
30be97b
what if
planetis-m Apr 29, 2024
f9f47ab
stop the warnings
planetis-m Apr 29, 2024
dfda5ff
less bloat
planetis-m Apr 29, 2024
4cb0624
fix regression
planetis-m Apr 29, 2024
2a7a59c
almost there
planetis-m Apr 29, 2024
c31b486
make it compile
planetis-m Apr 29, 2024
dbb612a
remove .fmt
planetis-m Apr 29, 2024
f2f5a8b
small improvement
planetis-m Apr 29, 2024
f517505
improve
planetis-m Apr 29, 2024
c5042c5
missed one suffix
planetis-m Apr 30, 2024
8aea48a
no more void
planetis-m Apr 30, 2024
5c4df84
fix warnings
planetis-m Apr 30, 2024
2e143fc
rework vkinit raise nilacessdefect when instance is nil
planetis-m Apr 30, 2024
2dc94ec
add new
planetis-m Apr 30, 2024
66d816d
That looks wrong and I actually hit this bug
planetis-m Apr 30, 2024
d3b1547
a library shouldn't call quit
planetis-m Apr 30, 2024
9768a20
fixes
planetis-m May 7, 2024
393cd25
enum values fixes
planetis-m May 8, 2024
2f774bd
better
planetis-m May 8, 2024
6f7dbbf
generator improvements
planetis-m May 8, 2024
2a55701
added extension to enums
planetis-m May 8, 2024
3b5e8bf
add features
planetis-m May 8, 2024
6cb322a
add extensions constants
planetis-m May 9, 2024
ebd0897
some early flags helpers
planetis-m May 11, 2024
dec4d51
first version of constructors that deal with openarrays
planetis-m Jun 18, 2024
d391723
code is string. Wrong yes, convenient though..
planetis-m Jun 19, 2024
73ec9f2
add another exception
planetis-m Jun 19, 2024
7691882
cleanup exceptions
planetis-m Jun 19, 2024
c8283ed
treat cstringArray
planetis-m Jun 19, 2024
dabcb08
remove pp prefix
planetis-m Jun 19, 2024
fb0914b
remove .byref
planetis-m Jun 19, 2024
af6332b
handle special cases
planetis-m Jun 19, 2024
54d906f
add set helpers
planetis-m Jun 19, 2024
248aea8
more helpful if exported
planetis-m Jun 19, 2024
eddefc3
add `==`, necessary for destructors
planetis-m Jun 19, 2024
31f69fa
add helpers for VkDeviceSize
planetis-m Jun 19, 2024
632ccfa
fix flag helpers types throwing type errors
planetis-m Jul 8, 2024
0814b2d
{} macro improvement
planetis-m Jul 8, 2024
06ff7bc
update to vulkan 1.3.295
planetis-m Dec 3, 2024
1500501
v1.3.295
planetis-m Jan 19, 2026
dc09582
update and modernize
elcritch Jan 20, 2026
a485223
fix merge
elcritch Jan 20, 2026
838e01d
add ci
elcritch Jan 20, 2026
0fd800a
add ci
elcritch Jan 20, 2026
0e91fc0
add ci
elcritch Jan 20, 2026
b223dc9
Merge pull request #1 from elcritch/master
planetis-m Jan 22, 2026
c074de4
Update vulkan bindings to Vulkan 1.4.344
ASVIEST Feb 28, 2026
1897e42
Merge pull request #2 from ASVIEST/update_version
planetis-m Feb 28, 2026
490c116
Initial plan
Copilot Feb 28, 2026
cc9cdb4
chore: bump version to 1.4.344
Copilot Feb 28, 2026
07669e9
Merge pull request #3 from planetis-m/copilot/release-new-version
planetis-m Feb 28, 2026
e26c9cf
chore: cumulative updates before archival
planetis-m Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/workflows/build-full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
on:
push:
branches:
- "master"
pull_request:
branches:
- "*"

jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
nimversion:
- '2.2.6'
os:
- ubuntu-24.04
steps:
- uses: actions/checkout@v1
- name: Setup software OpenGL (Mesa) + Xvfb
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
xvfb \
xauth \
mesa-utils \
libgl1-mesa-dri \
libglx-mesa0 \
libegl-mesa0 \
libgles2 \
vulkan-tools libvulkan1 libvulkan-dev \
mesa-vulkan-drivers \
vulkan-validationlayers \


- uses: iffy/install-nim@v4
with:
version: ${{ matrix.nimversion }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Cache packages
uses: actions/cache@v3
with:
path: deps/
key: ${{ runner.os }}-${{ hashFiles('figdraw.nimble') }}

- name: Install Atlas
run: |
nimble install 'https://github.com/nim-lang/atlas@#head'
echo "Nim:: "
nim -v
echo "Nimble:: "
atlas -v

- name: Install Deps
run: |
# sync deps
atlas install --feature:examples

- name: Build Tests
env:
LIBGL_ALWAYS_SOFTWARE: "1"
MESA_GL_VERSION_OVERRIDE: "3.3"
MESA_GLSL_VERSION_OVERRIDE: "330"
VK_ICD_FILENAMES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json"
run: |
xvfb-run -a -s "-screen 0 1280x1024x24" nim test

185 changes: 17 additions & 168 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,171 +1,20 @@
### C ###
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Executables
*.exe
*
!*/
!*.*
nim.cfg
vendor/*/
nimcache
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
.tool-versions
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

### C++ ###
# Prerequisites

# Compiled Object files
*.slo

# Precompiled Headers

# Compiled Dynamic libraries

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai

# Executables

### Linux ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### macOS ###
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Nim ###
nimcache/

### OSX ###

# Icon must end with two \r

# Thumbnails

# Files that might appear in the root of a volume

# Directories potentially created on remote AFP share

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history

### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Binaries
[Bb]in/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

# Dynamic Libraries
*.dll
*.so
*.dylib

### NimGL ###

# Tests
tests/general
tests/tgeneral
tests/tglfw
tests/tmath
tests/topengl
tests/test
tests/triangle
tools/generator
imgui.ini
docs/

# End of https://www.gitignore.io/api/c,osx,nim,c++,linux,macos,windows,visualstudiocode

vk.xml
vk_layer_settings.txt
/*.png
nimble.develop
nimble.paths
.nimcache
deps/
/examples/mandelbrot/build/
.nimcache
nimbledeps
*.qoi
*.xml
19 changes: 19 additions & 0 deletions config.nims
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import std/[strutils, os]

task test, "Run tests/test.nim":
exec("nim c -r tests/test.nim")
exec("nim c -r tests/test_wrapper.nim")
exec("nim c examples/run_triangle.nim")
exec("nim c examples/run_mandelbrot.nim")

task gen, "Generate bindings from source":
exec("nim c -d:ssl -r tools/generator.nim")

task shaders, "Compile GLSL shaders to SPIR-V format":
let
shaderDir = "examples/mandelbrot/shaders"
outputDir = "examples/mandelbrot/build/shaders"
mkDir(outputDir)
for f in listFiles(shaderDir):
if f.endsWith(".glsl"):
exec "glslc -g -fshader-stage=comp " & f & " -o " & outputDir / splitFile(f).name & ".spv"
4 changes: 4 additions & 0 deletions examples/config.nims
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--path:"../src"
--define:vulkan
--path:"../deps/mandelbrot/src"
--path:"../deps/glfw"
4 changes: 4 additions & 0 deletions examples/mandelbrot/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Public Domain - Antonis Geralis

see: https://github.com/planetis-m/mandelbrot/tree/master

Loading