Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: nichcode/PAL

Add Wayland backend support

21 Nov 10:47
@nichcode nichcode

Choose a tag to compare

[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 PalFBConfigBackend enum.

  • 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 PalEventType enum.

  • 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.data now 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);
Assets 2
Loading

Add character input event and foreign window attach/detach support

22 Oct 17:04
@nichcode nichcode
a4b4de0
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

[1.2.0] - 2025年10月22日

Features

  • Video: Added palGetInstance() to retrieve the native display or instance handle.
  • Video: Added palAttachWindow() for attaching foreign windows to PAL.
  • Video: Added palDetachWindow() for detaching foreign windows from PAL.
  • Event: Added PAL_EVENT_KEYCHAR to PalEventType enum.
  • Event: Added documentation for event bits(payload) layout.

Naming Update

  • PAL now stands for Prime Abstraction Layer,
    reflecting its role as the primary explicit foundation for OS and graphics abstraction.
  • All API remains unchanged — this is an identity update only.

Tests

  • Added multi-threaded OpenGL example: demonstrating Multi-Threaded OpenGL Rendering. see multi_thread_opengl_test.c.
  • Added attaching and detach foreign windows example. see attach_window_test.c
  • Added key character example. see char_event_test.c
Loading

Add X11 backend support

17 Oct 18:08
@nichcode nichcode
f948770
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

[1.1.0] - 2025年10月17日

Features

  • Build: Added Linux platform support across all modules.
  • Core: Added Linux backend support.
  • Video: Added X11-based backend support.
  • Thread: Added Linux backend support.
  • Opengl: Added Linux backend support.
  • System: Added Linux backend support.
  • Video: Added palCreateCursorFrom() to create system cursors.
  • Video: Added palSetFBConfig() to select window FBConfig.
  • Video: Added PAL_VIDEO_FEATURE_WINDOW_SET_ICON to PalVideoFeatures enum.
  • System: Added PAL_PLATFORM_API_COCOA to PalPlatformApiType enum.
  • System: Added PAL_PLATFORM_API_ANDRIOD to PalPlatformApiType enum.
  • System: Added PAL_PLATFORM_API_UIKIT to PalPlatformApiType enum.
  • System: Added PAL_PLATFORM_API_HEADLESS to PalPlatformApiType enum.
  • Core: Added PAL_RESULT_INVALID_FBCONFIG_BACKEND to PalResult enum.

Changed

  • System: PalCPUInfo.architecture is now determined at runtime instead of build time.
  • Opengl: palEnumerateGLFBConfigs() now does not use the glWindow paramter. Set to nullptr

Fixed

  • Fixed a bug where enter modal mode and exit modal mode operations triggered only one event.
  • Fixed repeated window state event (minimized, maximized, restore).

Notes

  • No API or ABI changes - existing Windows code remains compatible.
  • Linux video support currently targets X11 only: Wayland is planned for future releases.
  • Safe upgrade from v1.0.1 - just rebuild your project after updating.
Loading

Bugfix release - improve C/C++ interop and build integration

01 Oct 10:45
@nichcode nichcode

Choose a tag to compare

Fixed
Added extern "C" guards to all exported functions so PAL can now be linked from both C and C++ projects.
Fixed a condition variable bug where the wrong thread could acquire the mutex first, causing intermittent locking issues. See tests/condvar_test.c
Updated premake scripts to allow PAL to be included as a submodule or directly in another workspace if the build system is premake.

Notes
No API or ABI changes
Safe upgrade from v1.0 - just rebuild your project after updating.

Loading

v1.0

29 Sep 15:41
@nichcode nichcode

Choose a tag to compare

Loading

AltStyle によって変換されたページ (->オリジナル) /