[1.3.0] - 2025-11-21
Features
-
Video: Added Wayland backend support
-
Video: Added palGetVideoFeaturesEx() to check old and extended supported features.
-
Video: Added palGetWindowHandleInfoEx() to get extended window handles.
-
Video: Added palGetRawMouseWheelDelta() to get raw mouse wheel delta.
-
Video: Added PAL_CONFIG_BACKEND_GLES to
PalFBConfigBackendenum. -
Video: Added palSetPreferredInstance() to set the native instance or display PAL video should use rather than creating a new one.
-
Core: Added palPackFloat() to combine two floats into a single Int64 integer.
-
Core: Added palUnpackFloat() to retreive two floats from a single Int64 integer.
-
OpenGL: Added palGLSetInstance() to set the native instance or display PAL opengl should use. This must be set before calling palInitGL().
-
OpenGL: Added palGLGetBackend() to get the opengl backend.
-
Event: Added PAL_EVENT_WINDOW_DECORATION_MODE to
PalEventTypeenum. -
Event: Added PalDecorationMode enum.
Tests
-
Added native integration example: demonstrating Native API Integration with PAL API. see
native_integration_test.c. -
Added native instance example: demonstrating Native Instance or Display Integration with PAL API.
see native_instance_test.c. -
Added custom decoration example: demonstrating Custom Window Decoration.
see custom_decoration_test.c.
Notes
-
No ABI changes - existing code remains compatible.
-
OpenGL tests may fail - The opengl system now needs to call palGLSetInstance()
to set the instance or display before initializing. Failure to do this fails.
This is a runtime behavior change. The tests are updated in the repo. -
Pal mouse button event - The
event.datanow packs both the button and
wayland seat serial (If on wayland). Existing code that reads as a single value
without unpacking will see different values.
This is a runtime behavior change. The input_window_test.c has been updated in the repo. -
palJoinThread() - ABI remains unchanged but now takes the address
of a pointer variable for the return value of the thread.
PAL internally reinterpreted into a pointer-to-pointer. This is for ABI stability.
Example – Join thread and get the return value
void* retval;
palJoinThread(thread, &retval);