Here you’ll find Kinc bindings for s7 Scheme, as well as an s7 Scheme interpreter embedded into a Kinc application meant for interactive development.
Work in Progress, not usable by others.
- [ ] Documentation
- [ ] Getting Started
- [ ] Project Layout
- [ ] Naming
- [ ] Building
- [ ] Interactive Development
- [ ] Developer shell environment vars
- [ ] S7KINC_DEV_SHELL
- [ ] S7KINC_DEV_ROOT
- [ ] Developer shell environment vars
- [ ] main.scm and special defines, hooks, reqlet, helper procs (i.e. with/make-g4-*-buffer), etc.
- [ ] Examples
- [-] s7-kinc
- [X] embed s7 interpreter
- [X] allow access to the interpreter via a socket server
- [X] redirect s7’s stderr out to socket clients
- [ ] organize logging
- [X] get .so reloads to work. Done, but existing objects are still tied to previously loaded c-functions. New c-objects use newly loaded so.
- [-] Builds
- [-] release build with stripped dependencies / source
- [ ] assert / s7 error stripping?
- [X] development build with shell / load-paths overridden
- Prebuilt shared libs for kinc bindings seem to work, but themselves are not linked to some needed functions (sds, s7ctypes). Seems not to be a problem as they’re found when loaded into the main application.
- While bindings for kinc_init and kinc_start work, the main loop is kept on the C side to avoid scheme-side errors halting the loop (which occurs when it’s started on the scheme side). This way the REPL remains useful.
- opaque types
- kinc_compute_constant_location
- kinc_compute_shader
- kinc_compute_texture_unit
- kinc_event
- kinc_fiber
- kinc_mutex
- kinc_semaphore
- kinc_thread
- kinc_thread_local
- kinc_uber_mutex
- kinc_g4_constant_location
- kinc_g4_index_buffer
- kinc_g4_shader
- kinc_g4_texture_array
- kinc_g4_texture_unit
- kinc_g4_vertex_buffer
- kinc_g5_command_list
- kinc_g5_compute_shader
- kinc_g5_constant_location
- kinc_g5_index_buffer
- kinc_g5_shader
- kinc_g5_texture_unit
- kinc_g5_vertex_buffer
- kinc_video
- [-] Kinc
- [X] color
- [X] display
- [ ] error
- [-] image
- [ ] log
- [X] system
- [ ] video
- [X] window
- [ ] audio1
- [ ] audio
- [ ] sound
- [ ] soundstream
- [ ] audio2
- [ ] compute
- [X] graphics1
- [ ] graphics2
- [-] graphics4
- [X] constantlocation
- [-] graphics
- [X] indexbuffer
- [-] pipeline
- [ ] rendertarget
- [X] shader
- [ ] texture
- [ ] texturearray
- [X] textureunit
- [X] usage
- [-] vertexbuffer
- [X] vertexstructure
- [ ] graphics5
- [ ] commandlist
- [ ] compute
- [ ] constantbuffer
- [ ] constantlocation
- [ ] graphics
- [ ] indexbuffer
- [ ] pipeline
- [ ] raytrace
- [ ] rendertarget
- [ ] shader
- [ ] texture
- [ ] textureunit
- [ ] vertexbuffer
- [ ] vertexstructure
- [ ] input
- [ ] acceleration
- [ ] gamepad
- [ ] keyboard
- [ ] mouse
- [ ] pen
- [ ] rotation
- [ ] surface
- [ ] io
- [ ] filereader
- [ ] filewriter
- [ ] math
- [ ] core
- [ ] matrix
- [ ] quaternion
- [ ] random
- [ ] vector
- [ ] network
- [ ] http
- [ ] socket
- [ ] simd
- [ ] threads
- [ ] atomic
- [ ] event
- [ ] fiber
- [ ] mutex
- [ ] semaphore
- [ ] thread
- [ ] threadlocal
- [ ] vr
The following functions are ‘!’ (not yet implemented / empty definition), or ‘~’ (may possibly be improved), in Kinc’s Linux backend:
display.h
- ~ kinc_display_available
- ~ kinc_display_name
- ~ kinc_display_count_available_modes
- ~ kinc_display_available_mode
window.h
- ! kinc_window_create
- ! kinc_window_destroy
- ! kinc_count_windows
- ! kinc_window_resize
- ! kinc_window_move
- ! kinc_window_change_features
- ! kinc_window_change_framebuffer
- ! kinc_window_x
- ! kinc_window_y
- ! kinc_window_display
- ! kinc_window_show
- ! kinc_window_hide
- ! kinc_window_set_ppi_changed_callback
- ! kinc_window_vsynced
system.h
- ! kinc_login
- ! kinc_unlock_achievement
- ! kinc_disallow_user_change
- ! kinc_allow_user_change
- ! kinc_set_keep_screen_on
graphics4/graphics.h (opengl backend)
- ~ kinc_g4_render_occlusion_query -> in backend / not in api (OpenGL only?)
- ~ kinc_g4_start_occlusion_query -> in api / not in backend (Direct3D only?)
- ~ kinc_g4_end_occlusion_query - in api / not in backend (Direct3D only?)