Update thirdparty to latest

This commit is contained in:
2025-05-17 13:20:38 -04:00
parent 0487f03eff
commit dc8c73fc25
61 changed files with 143 additions and 16 deletions

View File

@@ -6,7 +6,7 @@ import sg "thirdparty:sokol/gfx"
Generated by sokol-shdc (https://github.com/floooh/sokol-tools)
Cmdline:
sokol-shdc --input C:\Projects\VEFontCache-Odin\backend\sokol\blit_atlas.shdc.glsl --output C:\Projects\VEFontCache-Odin\backend\sokol\blit_atlas.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
sokol-shdc --input C:\projects\VEFontCache-Odin\backend\sokol\blit_atlas.shdc.glsl --output C:\projects\VEFontCache-Odin\backend\sokol\blit_atlas.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
Overview:
=========

View File

@@ -6,7 +6,7 @@ import sg "thirdparty:sokol/gfx"
Generated by sokol-shdc (https://github.com/floooh/sokol-tools)
Cmdline:
sokol-shdc --input C:\Projects\VEFontCache-Odin\backend\sokol\draw_text.shdc.glsl --output C:\Projects\VEFontCache-Odin\backend\sokol\draw_text.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
sokol-shdc --input C:\projects\VEFontCache-Odin\backend\sokol\draw_text.shdc.glsl --output C:\projects\VEFontCache-Odin\backend\sokol\draw_text.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
Overview:
=========

View File

@@ -6,7 +6,7 @@ import sg "thirdparty:sokol/gfx"
Generated by sokol-shdc (https://github.com/floooh/sokol-tools)
Cmdline:
sokol-shdc --input C:\Projects\VEFontCache-Odin\backend\sokol\render_glyph.shdc.glsl --output C:\Projects\VEFontCache-Odin\backend\sokol\render_glyph.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
sokol-shdc --input C:\projects\VEFontCache-Odin\backend\sokol\render_glyph.shdc.glsl --output C:\projects\VEFontCache-Odin\backend\sokol\render_glyph.odin --slang glsl410:glsl300es:hlsl4:metal_macos:wgsl --format=sokol_odin
Overview:
=========

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,80 @@
name: Odin
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{matrix.os}}
# NOTE: odin macos and ubuntu releases are zipped twice, so this is bit of a hack.
# The examples folder also conflicts with the sokol examples, so we just remove it.
steps:
- uses: actions/checkout@main
- uses: ilammy/msvc-dev-cmd@v1
- if: runner.os == 'Linux'
name: prepare-linux
run: |
sudo apt-get update
sudo apt-get install libglu1-mesa-dev mesa-common-dev xorg-dev libasound-dev
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
echo "/usr/lib/llvm-17/bin" >> $GITHUB_PATH
curl -L https://github.com/odin-lang/Odin/releases/download/dev-2024-04/odin-ubuntu-amd64-dev-2024-04.zip --output odin.zip
unzip odin.zip
unzip dist.zip
rm -r ./dist/examples
mv ./dist/* ./
chmod a+x ./odin
cd sokol
chmod a+x ./build_clibs_linux.sh
./build_clibs_linux.sh
cd ..
- if: runner.os == 'macOS'
name: prepare-macos
run: |
brew install llvm@17
curl -L https://github.com/odin-lang/Odin/releases/download/dev-2024-04/odin-macos-amd64-dev-2024-04.zip --output odin.zip
unzip odin.zip
unzip dist.zip
rm -r ./dist/examples
mv ./dist/* ./
chmod a+x ./odin
cd sokol
chmod a+x ./build_clibs_macos.sh
./build_clibs_macos.sh
./build_clibs_macos_dylib.sh
cd ..
- if: runner.os == 'Windows'
name: prepare-windows
shell: cmd
run: |
curl -L https://github.com/odin-lang/Odin/releases/download/dev-2024-04/odin-windows-amd64-dev-2024-04.zip --output odin.zip
unzip odin.zip
cd sokol
build_clibs_windows.cmd
cd ..
- name: build
run: |
./odin build examples/blend -debug
./odin build examples/bufferoffsets -debug
./odin build examples/clear -debug
./odin build examples/cube -debug
./odin build examples/debugtext -debug
./odin build examples/debugtext-print -debug
./odin build examples/debugtext-userfont -debug
./odin build examples/instancing -debug
./odin build examples/mrt -debug
./odin build examples/noninterleaved -debug
./odin build examples/offscreen -debug
./odin build examples/quad -debug
./odin build examples/saudio -debug
./odin build examples/sgl -debug
./odin build examples/sgl-context -debug
./odin build examples/sgl-points -debug
./odin build examples/shapes -debug
./odin build examples/texcube -debug
./odin build examples/triangle -debug
./odin build examples/vertexpull -debug
./odin build examples/instancing-compute -debug

View File

@@ -1,3 +1,15 @@
.vscode/
build/
*.a
*.o
*.lib
*.obj
*.pdb
*.bin
*.exp
*.ilk
*.dll
*.dylib
*.exe
*.dSYM/
ols.json

View File

@@ -2675,7 +2675,10 @@ typedef struct {
bool tracked;
uint8_t capture_mask;
} mouse;
uint8_t raw_input_data[256];
struct {
size_t size;
void* ptr;
} raw_input_data;
} _sapp_win32_t;
#if defined(SOKOL_GLCORE)
@@ -7253,6 +7256,32 @@ _SOKOL_PRIVATE void _sapp_win32_lock_mouse(bool lock) {
_sapp.win32.mouse.requested_lock = lock;
}
_SOKOL_PRIVATE void _sapp_win32_free_raw_input_data(void) {
if (_sapp.win32.raw_input_data.ptr) {
_sapp_free(_sapp.win32.raw_input_data.ptr);
_sapp.win32.raw_input_data.ptr = 0;
_sapp.win32.raw_input_data.size = 0;
}
}
_SOKOL_PRIVATE void _sapp_win32_alloc_raw_input_data(size_t size) {
SOKOL_ASSERT(!_sapp.win32.raw_input_data.ptr);
SOKOL_ASSERT(size > 0);
_sapp.win32.raw_input_data.ptr = _sapp_malloc(size);
_sapp.win32.raw_input_data.size = size;
SOKOL_ASSERT(_sapp.win32.raw_input_data.ptr);
}
_SOKOL_PRIVATE void* _sapp_win32_ensure_raw_input_data(size_t required_size) {
if (required_size > _sapp.win32.raw_input_data.size) {
_sapp_win32_free_raw_input_data();
_sapp_win32_alloc_raw_input_data(required_size);
}
// we expect that malloc() returns at least 8-byte aligned memory
SOKOL_ASSERT((((uintptr_t)_sapp.win32.raw_input_data.ptr) & 7) == 0);
return _sapp.win32.raw_input_data.ptr;
}
_SOKOL_PRIVATE void _sapp_win32_do_lock_mouse(void) {
_sapp.mouse.locked = true;
@@ -7668,13 +7697,18 @@ _SOKOL_PRIVATE LRESULT CALLBACK _sapp_win32_wndproc(HWND hWnd, UINT uMsg, WPARAM
/* raw mouse input during mouse-lock */
if (_sapp.mouse.locked) {
HRAWINPUT ri = (HRAWINPUT) lParam;
UINT size = sizeof(_sapp.win32.raw_input_data);
// see: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getrawinputdata
if ((UINT)-1 == GetRawInputData(ri, RID_INPUT, &_sapp.win32.raw_input_data, &size, sizeof(RAWINPUTHEADER))) {
// also see: https://github.com/glfw/glfw/blob/e7ea71be039836da3a98cea55ae5569cb5eb885c/src/win32_window.c#L912-L924
// first poll for required size to alloc/grow input buffer, then get the actual data
UINT size = 0;
GetRawInputData(ri, RID_INPUT, NULL, &size, sizeof(RAWINPUTHEADER));
void* raw_input_data_ptr = _sapp_win32_ensure_raw_input_data(size);
if ((UINT)-1 == GetRawInputData(ri, RID_INPUT, raw_input_data_ptr, &size, sizeof(RAWINPUTHEADER))) {
_SAPP_ERROR(WIN32_GET_RAW_INPUT_DATA_FAILED);
break;
}
const RAWINPUT* raw_mouse_data = (const RAWINPUT*) &_sapp.win32.raw_input_data;
const RAWINPUT* raw_mouse_data = (const RAWINPUT*) raw_input_data_ptr;
if (raw_mouse_data->data.mouse.usFlags & MOUSE_MOVE_ABSOLUTE) {
/* mouse only reports absolute position
NOTE: This code is untested and will most likely behave wrong in Remote Desktop sessions.
@@ -8215,6 +8249,7 @@ _SOKOL_PRIVATE void _sapp_win32_run(const sapp_desc* desc) {
_sapp_win32_destroy_window();
_sapp_win32_destroy_icons();
_sapp_win32_restore_console();
_sapp_win32_free_raw_input_data();
_sapp_discard_state();
}

View File

@@ -452,7 +452,7 @@
sg_apply_scissor_rect[f]
sg_draw
The folling function may be called inside a render- or compute-pass, but
The following function may be called inside a render- or compute-pass, but
not outside a pass:
sg_apply_pipeline
@@ -818,7 +818,7 @@
- for the GLES3 backend, source code must be provided in '#version 300 es' syntax
- for the D3D11 backend, shaders can be provided as source or binary
blobs, the source code should be in HLSL4.0 (for compatibility with old
low-end GPUs) or preferrably in HLSL5.0 syntax, note that when
low-end GPUs) or preferably in HLSL5.0 syntax, note that when
shader source code is provided for the D3D11 backend, sokol-gfx will
dynamically load 'd3dcompiler_47.dll'
- for the Metal backends, shaders can be provided as source or binary blobs, the
@@ -883,7 +883,7 @@
- a boolean 'readonly' flag, this is used for validation and hazard
tracking in some 3D backends. Note that in render passes, only
readonly storage buffer bindings are allowed. In compute passes, any
read/write storage buffer binding is assumbed to be written to by the
read/write storage buffer binding is assumed to be written to by the
compute shader.
- a backend-specific bind slot:
- D3D11/HLSL:
@@ -978,7 +978,7 @@
- for Metal: https://github.com/floooh/sokol-samples/tree/master/metal
- for OpenGL: https://github.com/floooh/sokol-samples/tree/master/glfw
- for GLES3: https://github.com/floooh/sokol-samples/tree/master/html5
- for WebGPI: https://github.com/floooh/sokol-samples/tree/master/wgpu
- for WebGPU: https://github.com/floooh/sokol-samples/tree/master/wgpu
ON SG_IMAGESAMPLETYPE_UNFILTERABLE_FLOAT AND SG_SAMPLERTYPE_NONFILTERING
@@ -4124,7 +4124,7 @@ typedef struct sg_frame_stats {
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_COMPUTE_SHADER_EXPECTED, "sg_pipeline_desc.shader must be a compute shader") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_NO_COMPUTE_SHADER_EXPECTED, "sg_pipeline_desc.compute is false, but shader is a compute shader") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_NO_CONT_ATTRS, "sg_pipeline_desc.layout.attrs is not continuous") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_ATTR_BASETYPE_MISMATCH, "sg_pipeline_desc.layout.attrs[].format is incompatble with sg_shader_desc.attrs[].base_type") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_ATTR_BASETYPE_MISMATCH, "sg_pipeline_desc.layout.attrs[].format is incompatible with sg_shader_desc.attrs[].base_type") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_LAYOUT_STRIDE4, "sg_pipeline_desc.layout.buffers[].stride must be multiple of 4") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_ATTR_SEMANTICS, "D3D11 missing vertex attribute semantics in shader") \
_SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_SHADER_READONLY_STORAGEBUFFERS, "sg_pipeline_desc.shader: only readonly storage buffer bindings allowed in render pipelines") \

View File

@@ -453,7 +453,7 @@ package sokol_gfx
sg_apply_scissor_rect[f]
sg_draw
The folling function may be called inside a render- or compute-pass, but
The following function may be called inside a render- or compute-pass, but
not outside a pass:
sg_apply_pipeline
@@ -819,7 +819,7 @@ package sokol_gfx
- for the GLES3 backend, source code must be provided in '#version 300 es' syntax
- for the D3D11 backend, shaders can be provided as source or binary
blobs, the source code should be in HLSL4.0 (for compatibility with old
low-end GPUs) or preferrably in HLSL5.0 syntax, note that when
low-end GPUs) or preferably in HLSL5.0 syntax, note that when
shader source code is provided for the D3D11 backend, sokol-gfx will
dynamically load 'd3dcompiler_47.dll'
- for the Metal backends, shaders can be provided as source or binary blobs, the
@@ -884,7 +884,7 @@ package sokol_gfx
- a boolean 'readonly' flag, this is used for validation and hazard
tracking in some 3D backends. Note that in render passes, only
readonly storage buffer bindings are allowed. In compute passes, any
read/write storage buffer binding is assumbed to be written to by the
read/write storage buffer binding is assumed to be written to by the
compute shader.
- a backend-specific bind slot:
- D3D11/HLSL:
@@ -979,7 +979,7 @@ package sokol_gfx
- for Metal: https://github.com/floooh/sokol-samples/tree/master/metal
- for OpenGL: https://github.com/floooh/sokol-samples/tree/master/glfw
- for GLES3: https://github.com/floooh/sokol-samples/tree/master/html5
- for WebGPI: https://github.com/floooh/sokol-samples/tree/master/wgpu
- for WebGPU: https://github.com/floooh/sokol-samples/tree/master/wgpu
ON SG_IMAGESAMPLETYPE_UNFILTERABLE_FLOAT AND SG_SAMPLERTYPE_NONFILTERING

Binary file not shown.