FlorianRhiem / pyGLFW

Python bindings for GLFW
MIT License
232 stars 36 forks source link

What exactly is PYGLFW_PREVIEW #63

Closed NaNraptor closed 2 years ago

NaNraptor commented 2 years ago

Does setting this env var mean that pyglfw automatically clones the latest code from glfw and builds it?

Or is the glfw version compiled by you (@FlorianRhiem I'd assume) at some point?

FlorianRhiem commented 2 years ago

Hey @NaNraptor,

there is a small explanation in the README.

As GLFW gets developed further, new functions and macros are being added to the development version, and it can be quite some time until those become part of an official GLFW release. pyGLFW generally only supports released versions of GLFW, but users might want to use new functions and macros before they are released, even though they might change.

To support these users, I add these functions and macros to the code of pyGLFW as they become available, but keep them in a few big if clauses (functions, data structures and macros), so that when a user imports them, they will only be included if the PYGLFW_PREVIEW variable is set or if the glfw_preview package has been installed.

To actually use the new functions, users still need to build the development version of GLFW themselves for their system. Also, when using a development version of GLFW, note that things can change between now and the released version.

You can read more about how this came to be in this issue that led to this mechanism being implemented.

NaNraptor commented 2 years ago

Ah I understand, thanks Florian. As per one of my previous issues (that I kind of hijacked) I am currently using the latest manually built glfw version from the dev branch. Should I be setting PYGLFW_PREVIEW given that circumstance? Im not sure whether anything would break between versions

FlorianRhiem commented 2 years ago

Only if you want to use any of the new functions and macros, otherwise I would recommend keeping it disabled.