gamelib: A library for creating 3d applications in python.
Project description
gamelib
This is a library I've been working on for writing 3d applications in python. You'll need to know at least a little bit about writing shaders in glsl to be effective with this library, though I do plan to include default implementations in the future.
Prerequisites
This package requires support for OpenGL 3.3 or later, depends on gcc and currently supports python >= 3.8
Installation
Optionally create a virtual environment:
python3 -m venv venv
. venv/bin/activate
Install with pip:
pip install gamelib
Usage
Detailed usage documentation can be found in the modules themselves, to get started you should import gamelib and init must be called before doing anything involving the window or OpenGL context, so it's recommended to call at the entry point to your application.
import gamelib
gamelib.init()
Update should be called on a loop to not hang the application.
while gamelib.is_running():
gamelib.update()
To avoid hanging the main loop while executing a long running task, you can use the internal schedules.
def my_long_running_function():
time.sleep(1)
gamelib.threaded_schedule.once(my_long_running_function, -1)
As mentioned above, see the modules for further documentation, or refer to example applications linked below.
Running the test suite
To run the tests you'll first need to get the source and install both the requirements and requirements-dev dependencies.
git clone https://github.com/peffjepin/gamelib.git
cd gamelib
pip install -r requirements.txt
pip install -r requirements-dev.txt
Then to run the tests simply:
pytest
For testing against different python versions you can run tox. The tox environment is set up to skip tests that require an opengl context.
tox
For a coverage report:
pytest --cov=gamelib --cov-report=html
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gamelib-0.0.1.tar.gz
.
File metadata
- Download URL: gamelib-0.0.1.tar.gz
- Upload date:
- Size: 72.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aca479d96e2c13b19da85df1e085e9f3487fb6733b7ccec96662a731ad350bb1 |
|
MD5 | 19364b3d007c8866eb3dd07afb80d165 |
|
BLAKE2b-256 | 4c551b22ccaa2661d0976f52f95f0f26a6dfdd0d35838a8794c70a2bd0756610 |
File details
Details for the file gamelib-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: gamelib-0.0.1-py3-none-any.whl
- Upload date:
- Size: 81.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb1ab05dfe84b70508b69b24e0372b8f01ff37089d102744f88f34a0971ac9e0 |
|
MD5 | ffc90d8f42fcc221f96700790ed14484 |
|
BLAKE2b-256 | 8a8c21fd986dd7841019d6d0f9473f7b63d490d62b8e779a9b60ff4a34abf888 |