|
1 | 1 | raylibpy
|
2 | 2 | ========
|
3 | 3 |
|
4 |
| -TODO. (sorry...) |
| 4 | +**raylib is a simple and easy-to-use library to learn videogames programming. raylibpy |
| 5 | +brings the all the strengths of this great library to Python, via ctypes binding.** |
| 6 | + |
| 7 | +More about raylib can be found at its [repository](https://github.com/raisan5/raylib) |
| 8 | +and/or [website](https://www.raylib.com). |
| 9 | + |
| 10 | + |
| 11 | +##features |
| 12 | +* **NO external dependencies**, all required libraries included with raylib. |
| 13 | +* Multiple platforms supported: **Window, MacOS, Android... and many more!** |
| 14 | +* Hardware accelerated with OpenGL (**1.1, 2.1, 3.3 or ES 2.0**) |
| 15 | +* **Unique OpenGL abstraction layer** (usable as standalone module): rlgl |
| 16 | +* Multiple Font formats supported (XNA fonts, AngelCode fonts, TTF) |
| 17 | +* Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) |
| 18 | +* **Full 3d support** for 3d Shapes, Models, Billboards, Heightmaps and more! |
| 19 | +* Flexible Materials system, supports classic maps and **PBR maps** |
| 20 | +* Shaders support, including Model shaders and Postprocessing shaders |
| 21 | +* Audio loading and playing with streamming support (WAV, OGG, MP3, FLAC, XM, MOD) |
| 22 | +* **VR stereo rendering** support with configurable HMD device parameters |
| 23 | + |
| 24 | + |
| 25 | +## binaries |
| 26 | + |
| 27 | +raylibpy comes by default with 32bit binaries for Windows (`libraylib_shared.dll`, mingw), |
| 28 | +Linux (`libraylib.so.2.0.0`, i386) and MacOS (`libraylib.2.0.0.dylib`), but raylib have |
| 29 | +other [binary releases](https://github.com/raisan5/raylib/releases) (win64, mingw or |
| 30 | +msvc15 and linux amd64). |
| 31 | + |
| 32 | +raylibpy will look for the respective binary in 3 locations: |
| 33 | +* In the `RAYLIB_BIN_PATH` environment variable; |
| 34 | +* in the directory where the `__main__` module is located, and |
| 35 | +* in the raylibpy package directory. |
| 36 | + |
| 37 | +`RAYLIB_LIB_PATH` accepts as value: `__main__`, as the entry point module directory; |
| 38 | +`__file__` as the package directory or another specific directory. |
| 39 | + |
| 40 | +if `RAYLIB_BIN_PATH` is not set, it will look in the package directory first, |
| 41 | +then in the `__main__` module location. Note though that `__main__` refers the module selected to |
| 42 | +start the Python interpreter, not the `__main__.py` file, although it might be the case. |
| 43 | + |
| 44 | +The binaries made available by raylib are all OpenGL 3.3. For OpenGL 1.1 or 2.1, |
| 45 | +you can download the raylib source and build with the necessary changes in the Makefile. |
| 46 | +More information on how to build raylib can be found in the [raylib wiki pages](https://github.com/raisan5/raylib/wiki). |
| 47 | + |
| 48 | + |
| 49 | +## raylib vs raylibpy |
| 50 | + |
| 51 | +Except for the naming conventions and data types (names and convertions), theres no |
| 52 | +significative differences between raylib and raylibpy. At the moment, only bytes |
| 53 | +are accepted as string arguments, no implicit convertion is made between integers and |
| 54 | +floats. Some of the refinements to be done are exposed below: |
| 55 | + |
| 56 | +| Expects or returns | Accepts/returns only | Will accept/return | |
| 57 | +| ------- | ------- | ------- | |
| 58 | +| `const char *` | `bytes` (ASCII) | `str` (unicode) | |
| 59 | +| `const char **` | `CharPtrPtr` | `List[str]` | |
| 60 | +| `int` | `int` | `float` | |
| 61 | +| `float` | `float` | `int` | |
| 62 | +| `int*` as argument | `IntPtr` as argument | `int` as return, if omitted as argument | |
| 63 | +| `Vector3` | `Vector3` | `Tuple[float, float, float]` or `List[float]` | |
| 64 | +| `Vector3 *` | `Vector3Ptr` as `byref(instance)` | array, sequence or `bytes` | |
| 65 | + |
0 commit comments