try
This commit is contained in:
parent
62ff73d0e7
commit
be6cf57d85
65 changed files with 8668 additions and 4495 deletions
24
.github/workflows/build.yml
vendored
24
.github/workflows/build.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
raylib-platform: ['Desktop', 'SDL']
|
raylib-platform: ['Desktop', 'SDL']
|
||||||
steps:
|
steps:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ jobs:
|
||||||
sudo cmake --install .
|
sudo cmake --install .
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v2.2.2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
|
@ -106,7 +106,7 @@ jobs:
|
||||||
# MACOSX_DEPLOYMENT_TARGET: 11.0
|
# MACOSX_DEPLOYMENT_TARGET: 11.0
|
||||||
# steps:
|
# steps:
|
||||||
# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
# - uses: actions/checkout@v2
|
# - uses: actions/checkout@v4
|
||||||
# with:
|
# with:
|
||||||
# submodules: recursive
|
# submodules: recursive
|
||||||
#
|
#
|
||||||
|
@ -121,7 +121,7 @@ jobs:
|
||||||
# sudo cmake --install .
|
# sudo cmake --install .
|
||||||
#
|
#
|
||||||
# - name: Setup Python
|
# - name: Setup Python
|
||||||
# uses: actions/setup-python@v2.2.2
|
# uses: actions/setup-python@v5
|
||||||
# with:
|
# with:
|
||||||
# # Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# # Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
# python-version: ${{ matrix.python-version }}
|
# python-version: ${{ matrix.python-version }}
|
||||||
|
@ -189,12 +189,12 @@ jobs:
|
||||||
raylib-platform: ['Desktop', 'SDL', 'DRM']
|
raylib-platform: ['Desktop', 'SDL', 'DRM']
|
||||||
steps:
|
steps:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v2.2.2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
|
@ -272,7 +272,7 @@ jobs:
|
||||||
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10' ]
|
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10' ]
|
||||||
raylib-platform: ['Desktop', 'SDL']
|
raylib-platform: ['Desktop', 'SDL']
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ jobs:
|
||||||
run: echo SDL2_DIR=${{ runner.temp }}\SDL2\cmake >> $env:GITHUB_ENV
|
run: echo SDL2_DIR=${{ runner.temp }}\SDL2\cmake >> $env:GITHUB_ENV
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v2.2.2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
|
@ -353,12 +353,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v2.2.2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
python-version: '3.12'
|
python-version: '3.12'
|
||||||
|
@ -400,12 +400,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v2.2.2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
||||||
python-version: '3.12'
|
python-version: '3.12'
|
||||||
|
|
65
README.md
65
README.md
|
@ -1,4 +1,6 @@
|
||||||
# Python Bindings for Raylib 5.0
|
# Python Bindings for Raylib 5.5
|
||||||
|
## Libraries: raymath, raygui, rlgl, physac and GLFW
|
||||||
|
## Backends: Desktop, SDL, DRM, Web
|
||||||
|
|
||||||
Chatroom: [Discord](https://discord.gg/fKDwt85aX6) or [Matrix](https://matrix.to/#/#raylib-python-cffi:matrix.org)
|
Chatroom: [Discord](https://discord.gg/fKDwt85aX6) or [Matrix](https://matrix.to/#/#raylib-python-cffi:matrix.org)
|
||||||
|
|
||||||
|
@ -8,14 +10,14 @@ original Raylib.
|
||||||
* Faster, fewer bugs and easier to maintain than ctypes.
|
* Faster, fewer bugs and easier to maintain than ctypes.
|
||||||
* Commercial-friendly license.
|
* Commercial-friendly license.
|
||||||
* Docstrings and auto-completion.
|
* Docstrings and auto-completion.
|
||||||
* **Now includes extra libraries: raymath, raygui, rlgl, physac and GLFW**
|
|
||||||
|
|
||||||
[Full documentation](http://electronstudio.github.io/raylib-python-cffi)
|
[Full documentation](http://electronstudio.github.io/raylib-python-cffi)
|
||||||
|
|
||||||
# Quickstart
|
# Quickstart
|
||||||
|
|
||||||
`pip3 install raylib`
|
`pip3 install raylib==5.0.0.4`
|
||||||
|
```python
|
||||||
from pyray import *
|
from pyray import *
|
||||||
init_window(800, 450, "Hello")
|
init_window(800, 450, "Hello")
|
||||||
while not window_should_close():
|
while not window_should_close():
|
||||||
|
@ -24,7 +26,7 @@ original Raylib.
|
||||||
draw_text("Hello world", 190, 200, 20, VIOLET)
|
draw_text("Hello world", 190, 200, 20, VIOLET)
|
||||||
end_drawing()
|
end_drawing()
|
||||||
close_window()
|
close_window()
|
||||||
|
```
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
@ -35,13 +37,35 @@ First make sure you have the latest pip installed:
|
||||||
Then install
|
Then install
|
||||||
|
|
||||||
python3 -m pip install setuptools
|
python3 -m pip install setuptools
|
||||||
python3 -m pip install raylib
|
python3 -m pip install raylib==5.0.0.4
|
||||||
|
|
||||||
On most platforms it should install a binary wheel (Windows 10 x64, MacOS 12 x64/arm64, Linux Ubuntu2004 x64/arm64).
|
On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
||||||
|
|
||||||
If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
|
||||||
using homebrew, apt, etc.
|
using homebrew, apt, etc.
|
||||||
|
|
||||||
|
## Windows
|
||||||
|
|
||||||
|
Binaries require x64 Windows 10 or newer. (For x86 or older Windows you will have to build from source.)
|
||||||
|
|
||||||
|
Use an [official Windows Python release](https://www.python.org/downloads/windows/) rather than WSL, MSYS, etc.
|
||||||
|
|
||||||
|
## MacOS
|
||||||
|
|
||||||
|
Binaries require arm64 MacOS 13 or x64 MacOS 12 or newer.
|
||||||
|
|
||||||
|
Older MacOS requires building from source but this is usually simple:
|
||||||
|
|
||||||
|
brew install pkg-config
|
||||||
|
brew install raylib
|
||||||
|
python3 -m pip install raylib==5.0.0.4
|
||||||
|
|
||||||
|
## Linux
|
||||||
|
|
||||||
|
Binaries require OS newer than Ubuntu 2020, x64 or arm64. Otherwise build from source.
|
||||||
|
(Pip should attempt automatically but will need Raylib itself installed and also pkg-config.)
|
||||||
|
|
||||||
|
The arm64 builds are built on Raspberry Pi arm64 Bullseye
|
||||||
|
so may not work on other boards.
|
||||||
|
|
||||||
## Raspberry Pi
|
## Raspberry Pi
|
||||||
|
|
||||||
[Using on Rasperry Pi](RPI.rst)
|
[Using on Rasperry Pi](RPI.rst)
|
||||||
|
@ -54,12 +78,23 @@ There is now a separate dynamic version of this binding:
|
||||||
|
|
||||||
It works on some systems where the static version doesn't, [but be sure to read these caveats before using it](https://electronstudio.github.io/raylib-python-cffi/dynamic.html)
|
It works on some systems where the static version doesn't, [but be sure to read these caveats before using it](https://electronstudio.github.io/raylib-python-cffi/dynamic.html)
|
||||||
|
|
||||||
## Beta testing
|
## SDL backend
|
||||||
|
|
||||||
If you find a bug, it may be fixed in the [latest dev release](https://github.com/electronstudio/raylib-python-cffi/releases).
|
This is not well tested but has better support for controllers:
|
||||||
You can install an alpha or beta version by specifying the exact version number like this:
|
|
||||||
|
|
||||||
python3 -m pip install raylib==4.2.0.0.dev4
|
python3 -m pip uninstall raylib
|
||||||
|
python3 -m pip install raylib_sdl
|
||||||
|
|
||||||
|
You can't have multiple backends installed at once.
|
||||||
|
|
||||||
|
## DRM backend
|
||||||
|
|
||||||
|
This uses the Linux framebuffer for devices that don't run X11/Wayland:
|
||||||
|
|
||||||
|
python3 -m pip uninstall raylib
|
||||||
|
python3 -m pip install raylib_drm
|
||||||
|
|
||||||
|
You can't have multiple backends installed at once.
|
||||||
|
|
||||||
## Problems?
|
## Problems?
|
||||||
|
|
||||||
|
@ -143,9 +178,9 @@ A related library (that is a work in progress!):
|
||||||
* Converting more examples from C to Python
|
* Converting more examples from C to Python
|
||||||
* Testing on more platforms
|
* Testing on more platforms
|
||||||
|
|
||||||
# License (updated)
|
# License
|
||||||
|
|
||||||
The bindings are now under the Eclipse Public License, so you are free to
|
Eclipse Public License, so you are free to
|
||||||
statically link and use in non-free / proprietary / commercial projects!
|
statically link and use in non-free / proprietary / commercial projects!
|
||||||
|
|
||||||
# Performance
|
# Performance
|
||||||
|
|
9
RPI.rst
9
RPI.rst
|
@ -12,7 +12,10 @@ We have published binary wheels compiled for 64-bit Raspberry OS Bullseye in X11
|
||||||
|
|
||||||
python -m pip install --break-system-packages raylib
|
python -m pip install --break-system-packages raylib
|
||||||
|
|
||||||
If it doesn't work, or you're not on Bullseye, or you're 32 bit, or if you want to use Raylib in ``PLATFORM_DRM`` mode, you will need to compile your own raylib. See below.
|
Alternatively there is a DRM wheel called ``raylib_drm`` to use the framebuffer without X11. You can't have both wheels
|
||||||
|
installed at once.
|
||||||
|
|
||||||
|
If it doesn't work, or you're not on Bullseye, or you're 32 bit, you will need to compile your own raylib. See below.
|
||||||
For full instructions on this, see https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi . If you need help with this ask Raylib.
|
For full instructions on this, see https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi . If you need help with this ask Raylib.
|
||||||
|
|
||||||
Option 2: Compile Raylib from source X11 mode
|
Option 2: Compile Raylib from source X11 mode
|
||||||
|
@ -39,7 +42,7 @@ Then have pip compile and install the wheel:
|
||||||
::
|
::
|
||||||
|
|
||||||
python3 -m pip install --break-system-packages setuptools
|
python3 -m pip install --break-system-packages setuptools
|
||||||
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.3
|
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.4
|
||||||
|
|
||||||
Option 3: Compile Raylib from source DRM mode
|
Option 3: Compile Raylib from source DRM mode
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
@ -82,7 +85,7 @@ Then have pip compile and install the wheel:
|
||||||
::
|
::
|
||||||
|
|
||||||
python3 -m pip install --break-system-packages setuptools
|
python3 -m pip install --break-system-packages setuptools
|
||||||
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.3
|
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -63,8 +63,6 @@ def ctype_to_python_type(t):
|
||||||
print("""from typing import Any
|
print("""from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def pointer(struct):
|
|
||||||
...
|
|
||||||
""")
|
""")
|
||||||
|
|
||||||
# These words can be used for c arg names, but not in python
|
# These words can be used for c arg names, but not in python
|
||||||
|
@ -137,7 +135,7 @@ for struct in ffi.list_types()[0]:
|
||||||
# elif ffi.typeof(struct).kind == "enum":
|
# elif ffi.typeof(struct).kind == "enum":
|
||||||
# print(f"{struct}: int")
|
# print(f"{struct}: int")
|
||||||
else:
|
else:
|
||||||
print("ERROR UNKNOWN TYPE", ffi.typeof(struct), file=sys.stderr)
|
print("WARNING: SKIPPING UNKNOWN TYPE", ffi.typeof(struct), file=sys.stderr)
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
LIGHTGRAY : Color
|
LIGHTGRAY : Color
|
||||||
|
|
|
@ -133,7 +133,7 @@ for struct in ffi.list_types()[0]:
|
||||||
elif ffi.typeof(struct).kind == "enum":
|
elif ffi.typeof(struct).kind == "enum":
|
||||||
print(f"{struct}: int")
|
print(f"{struct}: int")
|
||||||
else:
|
else:
|
||||||
print("ERROR UNKNOWN TYPE", ffi.typeof(struct), file=sys.stderr)
|
print("WARNING: SKIPPING UNKNOWN TYPE", ffi.typeof(struct), file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 614f580883a5bffb7f1606004f7be223
|
config: 6b88b88b20947586d6498748ffd23a92
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -6,18 +8,14 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Building from source — Raylib Python documentation</title>
|
<title>Building from source — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
|
@ -47,7 +45,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -55,7 +53,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
|
113
docs/README.html
113
docs/README.html
|
@ -1,23 +1,21 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Python Bindings for Raylib 5.0 — Raylib Python documentation</title>
|
<title>Python Bindings for Raylib 5.5 — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
|
@ -47,12 +45,20 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Python Bindings for Raylib 5.5</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#libraries-raymath-raygui-rlgl-physac-and-glfw">Libraries: raymath, raygui, rlgl, physac and GLFW</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#backends-desktop-sdl-drm-web">Backends: Desktop, SDL, DRM, Web</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#installation">Installation</a><ul>
|
<li class="toctree-l1"><a class="reference internal" href="#installation">Installation</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#macos">MacOS</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="#raspberry-pi">Raspberry Pi</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="#raspberry-pi">Raspberry Pi</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="#dynamic-binding-version">Dynamic binding version</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="#dynamic-binding-version">Dynamic binding version</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="#beta-testing">Beta testing</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="#sdl-backend">SDL backend</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="#drm-backend">DRM backend</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="#problems">Problems?</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="#problems">Problems?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -65,7 +71,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="#performance">Performance</a><ul>
|
<li class="toctree-l1"><a class="reference internal" href="#performance">Performance</a><ul>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="#bunnymark">Bunnymark</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="#bunnymark">Bunnymark</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -93,7 +99,7 @@
|
||||||
<div role="navigation" aria-label="Page navigation">
|
<div role="navigation" aria-label="Page navigation">
|
||||||
<ul class="wy-breadcrumbs">
|
<ul class="wy-breadcrumbs">
|
||||||
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||||
<li class="breadcrumb-item active">Python Bindings for Raylib 5.0</li>
|
<li class="breadcrumb-item active">Python Bindings for Raylib 5.5</li>
|
||||||
<li class="wy-breadcrumbs-aside">
|
<li class="wy-breadcrumbs-aside">
|
||||||
<a href="_sources/README.md.txt" rel="nofollow"> View page source</a>
|
<a href="_sources/README.md.txt" rel="nofollow"> View page source</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -103,9 +109,13 @@
|
||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
<div itemprop="articleBody">
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
<section id="python-bindings-for-raylib-5-0">
|
<section id="python-bindings-for-raylib-5-5">
|
||||||
<h1>Python Bindings for Raylib 5.0<a class="headerlink" href="#python-bindings-for-raylib-5-0" title="Link to this heading"></a></h1>
|
<h1>Python Bindings for Raylib 5.5<a class="headerlink" href="#python-bindings-for-raylib-5-5" title="Link to this heading"></a></h1>
|
||||||
<iframe src="https://electronstudio.github.io/raylib-python-cffi-pygbag-examples/shapes_bouncing_ball/build/web/" style="border:0px #ffffff none;" name="myiFrame" scrolling="no" frameborder="1" marginheight="0px" marginwidth="0px" height="450px" width="800px" allowfullscreen></iframe>
|
<section id="libraries-raymath-raygui-rlgl-physac-and-glfw">
|
||||||
|
<h2>Libraries: raymath, raygui, rlgl, physac and GLFW<a class="headerlink" href="#libraries-raymath-raygui-rlgl-physac-and-glfw" title="Link to this heading"></a></h2>
|
||||||
|
</section>
|
||||||
|
<section id="backends-desktop-sdl-drm-web">
|
||||||
|
<h2>Backends: Desktop, SDL, DRM, Web<a class="headerlink" href="#backends-desktop-sdl-drm-web" title="Link to this heading"></a></h2>
|
||||||
<p>Chatroom: <a class="reference external" href="https://discord.gg/fKDwt85aX6">Discord</a> or <a class="reference external" href="https://matrix.to/#/#raylib-python-cffi:matrix.org">Matrix</a></p>
|
<p>Chatroom: <a class="reference external" href="https://discord.gg/fKDwt85aX6">Discord</a> or <a class="reference external" href="https://matrix.to/#/#raylib-python-cffi:matrix.org">Matrix</a></p>
|
||||||
<p>New CFFI API static bindings.</p>
|
<p>New CFFI API static bindings.</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
|
@ -114,21 +124,21 @@ original Raylib.</p></li>
|
||||||
<li><p>Faster, fewer bugs and easier to maintain than ctypes.</p></li>
|
<li><p>Faster, fewer bugs and easier to maintain than ctypes.</p></li>
|
||||||
<li><p>Commercial-friendly license.</p></li>
|
<li><p>Commercial-friendly license.</p></li>
|
||||||
<li><p>Docstrings and auto-completion.</p></li>
|
<li><p>Docstrings and auto-completion.</p></li>
|
||||||
<li><p><strong>Now includes extra libraries: raymath, raygui, rlgl, physac and GLFW</strong></p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><a class="reference external" href="http://electronstudio.github.io/raylib-python-cffi">Full documentation</a></p>
|
<p><a class="reference external" href="http://electronstudio.github.io/raylib-python-cffi">Full documentation</a></p>
|
||||||
</section>
|
</section>
|
||||||
|
</section>
|
||||||
<section id="quickstart">
|
<section id="quickstart">
|
||||||
<h1>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading"></a></h1>
|
<h1>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading"></a></h1>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">pip3</span> <span class="pre">install</span> <span class="pre">raylib</span></code></p>
|
<p><code class="docutils literal notranslate"><span class="pre">pip3</span> <span class="pre">install</span> <span class="pre">raylib==5.0.0.4</span></code></p>
|
||||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>from pyray import *
|
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">pyray</span> <span class="kn">import</span> <span class="o">*</span>
|
||||||
init_window(800, 450, "Hello")
|
<span class="n">init_window</span><span class="p">(</span><span class="mi">800</span><span class="p">,</span> <span class="mi">450</span><span class="p">,</span> <span class="s2">"Hello"</span><span class="p">)</span>
|
||||||
while not window_should_close():
|
<span class="k">while</span> <span class="ow">not</span> <span class="n">window_should_close</span><span class="p">():</span>
|
||||||
begin_drawing()
|
<span class="n">begin_drawing</span><span class="p">()</span>
|
||||||
clear_background(WHITE)
|
<span class="n">clear_background</span><span class="p">(</span><span class="n">WHITE</span><span class="p">)</span>
|
||||||
draw_text("Hello world", 190, 200, 20, VIOLET)
|
<span class="n">draw_text</span><span class="p">(</span><span class="s2">"Hello world"</span><span class="p">,</span> <span class="mi">190</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="n">VIOLET</span><span class="p">)</span>
|
||||||
end_drawing()
|
<span class="n">end_drawing</span><span class="p">()</span>
|
||||||
close_window()
|
<span class="n">close_window</span><span class="p">()</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
@ -140,12 +150,33 @@ close_window()
|
||||||
</div>
|
</div>
|
||||||
<p>Then install</p>
|
<p>Then install</p>
|
||||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip install setuptools
|
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip install setuptools
|
||||||
python3 -m pip install raylib
|
python3 -m pip install raylib==5.0.0.4
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>On most platforms it should install a binary wheel (Windows 10 x64, MacOS 12 x64/arm64, Linux Ubuntu2004 x64/arm64).</p>
|
<p>On most platforms it should install a binary wheel. If yours isn’t available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
||||||
<p>If yours isn’t available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
|
||||||
using homebrew, apt, etc.</p>
|
using homebrew, apt, etc.</p>
|
||||||
|
<section id="windows">
|
||||||
|
<h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
|
||||||
|
<p>Binaries require x64 Windows 10 or newer. (For x86 or older Windows you will have to build from source.)</p>
|
||||||
|
<p>Use an <a class="reference external" href="https://www.python.org/downloads/windows/">official Windows Python release</a> rather than WSL, MSYS, etc.</p>
|
||||||
|
</section>
|
||||||
|
<section id="macos">
|
||||||
|
<h2>MacOS<a class="headerlink" href="#macos" title="Link to this heading"></a></h2>
|
||||||
|
<p>Binaries require arm64 MacOS 13 or x64 MacOS 12 or newer.</p>
|
||||||
|
<p>Older MacOS requires building from source but this is usually simple:</p>
|
||||||
|
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>brew install pkg-config
|
||||||
|
brew install raylib
|
||||||
|
python3 -m pip install raylib==5.0.0.4
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="linux">
|
||||||
|
<h2>Linux<a class="headerlink" href="#linux" title="Link to this heading"></a></h2>
|
||||||
|
<p>Binaries require OS newer than Ubuntu 2020, x64 or arm64. Otherwise build from source.
|
||||||
|
(Pip should attempt automatically but will need Raylib itself installed and also pkg-config.)</p>
|
||||||
|
<p>The arm64 builds are built on Raspberry Pi arm64 Bullseye
|
||||||
|
so may not work on other boards.</p>
|
||||||
|
</section>
|
||||||
<section id="raspberry-pi">
|
<section id="raspberry-pi">
|
||||||
<h2>Raspberry Pi<a class="headerlink" href="#raspberry-pi" title="Link to this heading"></a></h2>
|
<h2>Raspberry Pi<a class="headerlink" href="#raspberry-pi" title="Link to this heading"></a></h2>
|
||||||
<p><a class="reference internal" href="RPI.html"><span class="std std-doc">Using on Rasperry Pi</span></a></p>
|
<p><a class="reference internal" href="RPI.html"><span class="std std-doc">Using on Rasperry Pi</span></a></p>
|
||||||
|
@ -158,13 +189,23 @@ using homebrew, apt, etc.</p>
|
||||||
</div>
|
</div>
|
||||||
<p>It works on some systems where the static version doesn’t, <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/dynamic.html">but be sure to read these caveats before using it</a></p>
|
<p>It works on some systems where the static version doesn’t, <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/dynamic.html">but be sure to read these caveats before using it</a></p>
|
||||||
</section>
|
</section>
|
||||||
<section id="beta-testing">
|
<section id="sdl-backend">
|
||||||
<h2>Beta testing<a class="headerlink" href="#beta-testing" title="Link to this heading"></a></h2>
|
<h2>SDL backend<a class="headerlink" href="#sdl-backend" title="Link to this heading"></a></h2>
|
||||||
<p>If you find a bug, it may be fixed in the <a class="reference external" href="https://github.com/electronstudio/raylib-python-cffi/releases">latest dev release</a>.
|
<p>This is not well tested but has better support for controllers:</p>
|
||||||
You can install an alpha or beta version by specifying the exact version number like this:</p>
|
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip uninstall raylib
|
||||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip install raylib==4.2.0.0.dev4
|
python3 -m pip install raylib_sdl
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
<p>You can’t have multiple backends installed at once.</p>
|
||||||
|
</section>
|
||||||
|
<section id="drm-backend">
|
||||||
|
<h2>DRM backend<a class="headerlink" href="#drm-backend" title="Link to this heading"></a></h2>
|
||||||
|
<p>This uses the Linux framebuffer for devices that don’t run X11/Wayland:</p>
|
||||||
|
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip uninstall raylib
|
||||||
|
python3 -m pip install raylib_drm
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>You can’t have multiple backends installed at once.</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="problems">
|
<section id="problems">
|
||||||
<h2>Problems?<a class="headerlink" href="#problems" title="Link to this heading"></a></h2>
|
<h2>Problems?<a class="headerlink" href="#problems" title="Link to this heading"></a></h2>
|
||||||
|
@ -242,9 +283,9 @@ Carefully read all their <a class="reference external" href="https://pygame-web.
|
||||||
<li><p>Testing on more platforms</p></li>
|
<li><p>Testing on more platforms</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<section id="license-updated">
|
<section id="license">
|
||||||
<h1>License (updated)<a class="headerlink" href="#license-updated" title="Link to this heading"></a></h1>
|
<h1>License<a class="headerlink" href="#license" title="Link to this heading"></a></h1>
|
||||||
<p>The bindings are now under the Eclipse Public License, so you are free to
|
<p>Eclipse Public License, so you are free to
|
||||||
statically link and use in non-free / proprietary / commercial projects!</p>
|
statically link and use in non-free / proprietary / commercial projects!</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="performance">
|
<section id="performance">
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -6,18 +8,14 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Raspberry Pi — Raylib Python documentation</title>
|
<title>Raspberry Pi — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
|
@ -46,7 +44,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -54,7 +52,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
@ -103,7 +101,9 @@
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>If it doesn’t work, or you’re not on Bullseye, or you’re 32 bit, or if you want to use Raylib in <code class="docutils literal notranslate"><span class="pre">PLATFORM_DRM</span></code> mode, you will need to compile your own raylib. See below.
|
<p>Alternatively there is a DRM wheel called <code class="docutils literal notranslate"><span class="pre">raylib_drm</span></code> to use the framebuffer without X11. You can’t have both wheels
|
||||||
|
installed at once.</p>
|
||||||
|
<p>If it doesn’t work, or you’re not on Bullseye, or you’re 32 bit, you will need to compile your own raylib. See below.
|
||||||
For full instructions on this, see <a class="reference external" href="https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi">https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi</a> . If you need help with this ask Raylib.</p>
|
For full instructions on this, see <a class="reference external" href="https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi">https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi</a> . If you need help with this ask Raylib.</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="option-2-compile-raylib-from-source-x11-mode">
|
<section id="option-2-compile-raylib-from-source-x11-mode">
|
||||||
|
@ -124,7 +124,7 @@ For full instructions on this, see <a class="reference external" href="https://g
|
||||||
</div>
|
</div>
|
||||||
<p>Then have pip compile and install the wheel:</p>
|
<p>Then have pip compile and install the wheel:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">setuptools</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">setuptools</span>
|
||||||
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">cache</span><span class="o">-</span><span class="nb">dir</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">binary</span> <span class="n">raylib</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">force</span><span class="o">-</span><span class="n">reinstall</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span><span class="o">==</span><span class="mf">5.0.0.3</span>
|
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">cache</span><span class="o">-</span><span class="nb">dir</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">binary</span> <span class="n">raylib</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">force</span><span class="o">-</span><span class="n">reinstall</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span><span class="o">==</span><span class="mf">5.0.0.4</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
@ -157,7 +157,7 @@ For full instructions on this, see <a class="reference external" href="https://g
|
||||||
</div>
|
</div>
|
||||||
<p>Then have pip compile and install the wheel:</p>
|
<p>Then have pip compile and install the wheel:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">setuptools</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">setuptools</span>
|
||||||
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">cache</span><span class="o">-</span><span class="nb">dir</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">binary</span> <span class="n">raylib</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">force</span><span class="o">-</span><span class="n">reinstall</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span><span class="o">==</span><span class="mf">5.0.0.3</span>
|
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">cache</span><span class="o">-</span><span class="nb">dir</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">binary</span> <span class="n">raylib</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">force</span><span class="o">-</span><span class="n">reinstall</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">raylib</span><span class="o">==</span><span class="mf">5.0.0.4</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="admonition attention">
|
<div class="admonition attention">
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
# Python Bindings for Raylib 5.0
|
# Python Bindings for Raylib 5.5
|
||||||
|
## Libraries: raymath, raygui, rlgl, physac and GLFW
|
||||||
|
## Backends: Desktop, SDL, DRM, Web
|
||||||
|
|
||||||
Chatroom: [Discord](https://discord.gg/fKDwt85aX6) or [Matrix](https://matrix.to/#/#raylib-python-cffi:matrix.org)
|
Chatroom: [Discord](https://discord.gg/fKDwt85aX6) or [Matrix](https://matrix.to/#/#raylib-python-cffi:matrix.org)
|
||||||
|
|
||||||
|
@ -8,14 +10,14 @@ original Raylib.
|
||||||
* Faster, fewer bugs and easier to maintain than ctypes.
|
* Faster, fewer bugs and easier to maintain than ctypes.
|
||||||
* Commercial-friendly license.
|
* Commercial-friendly license.
|
||||||
* Docstrings and auto-completion.
|
* Docstrings and auto-completion.
|
||||||
* **Now includes extra libraries: raymath, raygui, rlgl, physac and GLFW**
|
|
||||||
|
|
||||||
[Full documentation](http://electronstudio.github.io/raylib-python-cffi)
|
[Full documentation](http://electronstudio.github.io/raylib-python-cffi)
|
||||||
|
|
||||||
# Quickstart
|
# Quickstart
|
||||||
|
|
||||||
`pip3 install raylib`
|
`pip3 install raylib==5.0.0.4`
|
||||||
|
```python
|
||||||
from pyray import *
|
from pyray import *
|
||||||
init_window(800, 450, "Hello")
|
init_window(800, 450, "Hello")
|
||||||
while not window_should_close():
|
while not window_should_close():
|
||||||
|
@ -24,7 +26,7 @@ original Raylib.
|
||||||
draw_text("Hello world", 190, 200, 20, VIOLET)
|
draw_text("Hello world", 190, 200, 20, VIOLET)
|
||||||
end_drawing()
|
end_drawing()
|
||||||
close_window()
|
close_window()
|
||||||
|
```
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
@ -35,13 +37,35 @@ First make sure you have the latest pip installed:
|
||||||
Then install
|
Then install
|
||||||
|
|
||||||
python3 -m pip install setuptools
|
python3 -m pip install setuptools
|
||||||
python3 -m pip install raylib
|
python3 -m pip install raylib==5.0.0.4
|
||||||
|
|
||||||
On most platforms it should install a binary wheel (Windows 10 x64, MacOS 12 x64/arm64, Linux Ubuntu2004 x64/arm64).
|
On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
||||||
|
|
||||||
If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
|
|
||||||
using homebrew, apt, etc.
|
using homebrew, apt, etc.
|
||||||
|
|
||||||
|
## Windows
|
||||||
|
|
||||||
|
Binaries require x64 Windows 10 or newer. (For x86 or older Windows you will have to build from source.)
|
||||||
|
|
||||||
|
Use an [official Windows Python release](https://www.python.org/downloads/windows/) rather than WSL, MSYS, etc.
|
||||||
|
|
||||||
|
## MacOS
|
||||||
|
|
||||||
|
Binaries require arm64 MacOS 13 or x64 MacOS 12 or newer.
|
||||||
|
|
||||||
|
Older MacOS requires building from source but this is usually simple:
|
||||||
|
|
||||||
|
brew install pkg-config
|
||||||
|
brew install raylib
|
||||||
|
python3 -m pip install raylib==5.0.0.4
|
||||||
|
|
||||||
|
## Linux
|
||||||
|
|
||||||
|
Binaries require OS newer than Ubuntu 2020, x64 or arm64. Otherwise build from source.
|
||||||
|
(Pip should attempt automatically but will need Raylib itself installed and also pkg-config.)
|
||||||
|
|
||||||
|
The arm64 builds are built on Raspberry Pi arm64 Bullseye
|
||||||
|
so may not work on other boards.
|
||||||
|
|
||||||
## Raspberry Pi
|
## Raspberry Pi
|
||||||
|
|
||||||
[Using on Rasperry Pi](RPI.rst)
|
[Using on Rasperry Pi](RPI.rst)
|
||||||
|
@ -54,12 +78,23 @@ There is now a separate dynamic version of this binding:
|
||||||
|
|
||||||
It works on some systems where the static version doesn't, [but be sure to read these caveats before using it](https://electronstudio.github.io/raylib-python-cffi/dynamic.html)
|
It works on some systems where the static version doesn't, [but be sure to read these caveats before using it](https://electronstudio.github.io/raylib-python-cffi/dynamic.html)
|
||||||
|
|
||||||
## Beta testing
|
## SDL backend
|
||||||
|
|
||||||
If you find a bug, it may be fixed in the [latest dev release](https://github.com/electronstudio/raylib-python-cffi/releases).
|
This is not well tested but has better support for controllers:
|
||||||
You can install an alpha or beta version by specifying the exact version number like this:
|
|
||||||
|
|
||||||
python3 -m pip install raylib==4.2.0.0.dev4
|
python3 -m pip uninstall raylib
|
||||||
|
python3 -m pip install raylib_sdl
|
||||||
|
|
||||||
|
You can't have multiple backends installed at once.
|
||||||
|
|
||||||
|
## DRM backend
|
||||||
|
|
||||||
|
This uses the Linux framebuffer for devices that don't run X11/Wayland:
|
||||||
|
|
||||||
|
python3 -m pip uninstall raylib
|
||||||
|
python3 -m pip install raylib_drm
|
||||||
|
|
||||||
|
You can't have multiple backends installed at once.
|
||||||
|
|
||||||
## Problems?
|
## Problems?
|
||||||
|
|
||||||
|
@ -143,9 +178,9 @@ A related library (that is a work in progress!):
|
||||||
* Converting more examples from C to Python
|
* Converting more examples from C to Python
|
||||||
* Testing on more platforms
|
* Testing on more platforms
|
||||||
|
|
||||||
# License (updated)
|
# License
|
||||||
|
|
||||||
The bindings are now under the Eclipse Public License, so you are free to
|
Eclipse Public License, so you are free to
|
||||||
statically link and use in non-free / proprietary / commercial projects!
|
statically link and use in non-free / proprietary / commercial projects!
|
||||||
|
|
||||||
# Performance
|
# Performance
|
||||||
|
|
|
@ -12,7 +12,10 @@ We have published binary wheels compiled for 64-bit Raspberry OS Bullseye in X11
|
||||||
|
|
||||||
python -m pip install --break-system-packages raylib
|
python -m pip install --break-system-packages raylib
|
||||||
|
|
||||||
If it doesn't work, or you're not on Bullseye, or you're 32 bit, or if you want to use Raylib in ``PLATFORM_DRM`` mode, you will need to compile your own raylib. See below.
|
Alternatively there is a DRM wheel called ``raylib_drm`` to use the framebuffer without X11. You can't have both wheels
|
||||||
|
installed at once.
|
||||||
|
|
||||||
|
If it doesn't work, or you're not on Bullseye, or you're 32 bit, you will need to compile your own raylib. See below.
|
||||||
For full instructions on this, see https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi . If you need help with this ask Raylib.
|
For full instructions on this, see https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi . If you need help with this ask Raylib.
|
||||||
|
|
||||||
Option 2: Compile Raylib from source X11 mode
|
Option 2: Compile Raylib from source X11 mode
|
||||||
|
@ -39,7 +42,7 @@ Then have pip compile and install the wheel:
|
||||||
::
|
::
|
||||||
|
|
||||||
python3 -m pip install --break-system-packages setuptools
|
python3 -m pip install --break-system-packages setuptools
|
||||||
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.3
|
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.4
|
||||||
|
|
||||||
Option 3: Compile Raylib from source DRM mode
|
Option 3: Compile Raylib from source DRM mode
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
@ -82,7 +85,7 @@ Then have pip compile and install the wheel:
|
||||||
::
|
::
|
||||||
|
|
||||||
python3 -m pip install --break-system-packages setuptools
|
python3 -m pip install --break-system-packages setuptools
|
||||||
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.3
|
python3 -m pip install --no-cache-dir --no-binary raylib --upgrade --force-reinstall --break-system-packages raylib==5.0.0.4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
15
docs/_static/basic.css
vendored
15
docs/_static/basic.css
vendored
|
@ -1,12 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* basic.css
|
|
||||||
* ~~~~~~~~~
|
|
||||||
*
|
|
||||||
* Sphinx stylesheet -- basic theme.
|
* Sphinx stylesheet -- basic theme.
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* -- main layout ----------------------------------------------------------- */
|
/* -- main layout ----------------------------------------------------------- */
|
||||||
|
@ -115,15 +108,11 @@ img {
|
||||||
/* -- search page ----------------------------------------------------------- */
|
/* -- search page ----------------------------------------------------------- */
|
||||||
|
|
||||||
ul.search {
|
ul.search {
|
||||||
margin: 10px 0 0 20px;
|
margin-top: 10px;
|
||||||
padding: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.search li {
|
ul.search li {
|
||||||
padding: 5px 0 5px 20px;
|
padding: 5px 0;
|
||||||
background-image: url(file.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 0 7px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.search li a {
|
ul.search li a {
|
||||||
|
|
2
docs/_static/css/badge_only.css
vendored
2
docs/_static/css/badge_only.css
vendored
|
@ -1 +1 @@
|
||||||
.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
|
.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}
|
2
docs/_static/css/theme.css
vendored
2
docs/_static/css/theme.css
vendored
File diff suppressed because one or more lines are too long
7
docs/_static/doctools.js
vendored
7
docs/_static/doctools.js
vendored
|
@ -1,12 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* doctools.js
|
|
||||||
* ~~~~~~~~~~~
|
|
||||||
*
|
|
||||||
* Base JavaScript utilities for all Sphinx HTML documentation.
|
* Base JavaScript utilities for all Sphinx HTML documentation.
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
|
BIN
docs/_static/fonts/Lato/lato-bold.eot
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bold.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bold.ttf
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bold.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bold.woff
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bold.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bold.woff2
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bold.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bolditalic.eot
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bolditalic.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bolditalic.ttf
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bolditalic.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bolditalic.woff
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bolditalic.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-bolditalic.woff2
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-bolditalic.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-italic.eot
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-italic.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-italic.ttf
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-italic.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-italic.woff
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-italic.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-italic.woff2
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-italic.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-regular.eot
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-regular.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-regular.ttf
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-regular.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-regular.woff
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-regular.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/Lato/lato-regular.woff2
vendored
Normal file
BIN
docs/_static/fonts/Lato/lato-regular.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
vendored
Normal file
Binary file not shown.
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
vendored
Normal file
BIN
docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
vendored
Normal file
Binary file not shown.
7
docs/_static/graphviz.css
vendored
7
docs/_static/graphviz.css
vendored
|
@ -1,12 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* graphviz.css
|
|
||||||
* ~~~~~~~~~~~~
|
|
||||||
*
|
|
||||||
* Sphinx stylesheet -- graphviz extension.
|
* Sphinx stylesheet -- graphviz extension.
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
img.graphviz {
|
img.graphviz {
|
||||||
|
|
4
docs/_static/js/html5shiv-printshiv.min.js
vendored
4
docs/_static/js/html5shiv-printshiv.min.js
vendored
|
@ -1,4 +0,0 @@
|
||||||
/**
|
|
||||||
* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
|
||||||
*/
|
|
||||||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);
|
|
4
docs/_static/js/html5shiv.min.js
vendored
4
docs/_static/js/html5shiv.min.js
vendored
|
@ -1,4 +0,0 @@
|
||||||
/**
|
|
||||||
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
|
||||||
*/
|
|
||||||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
|
|
224
docs/_static/js/versions.js
vendored
Normal file
224
docs/_static/js/versions.js
vendored
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
const themeFlyoutDisplay = "hidden";
|
||||||
|
const themeVersionSelector = "True";
|
||||||
|
const themeLanguageSelector = "True";
|
||||||
|
|
||||||
|
if (themeFlyoutDisplay === "attached") {
|
||||||
|
function renderLanguages(config) {
|
||||||
|
if (!config.projects.translations.length) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
const languagesHTML = `
|
||||||
|
<dl>
|
||||||
|
<dt>Languages</dt>
|
||||||
|
${config.projects.translations
|
||||||
|
.map(
|
||||||
|
(translation) => `
|
||||||
|
<dd ${translation.slug == config.projects.current.slug ? 'class="rtd-current-item"' : ""}>
|
||||||
|
<a href="${translation.urls.documentation}">${translation.language.code}</a>
|
||||||
|
</dd>
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.join("\n")}
|
||||||
|
</dl>
|
||||||
|
`;
|
||||||
|
return languagesHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderVersions(config) {
|
||||||
|
if (!config.versions.active.length) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
const versionsHTML = `
|
||||||
|
<dl>
|
||||||
|
<dt>Versions</dt>
|
||||||
|
${config.versions.active
|
||||||
|
.map(
|
||||||
|
(version) => `
|
||||||
|
<dd ${version.slug === config.versions.current.slug ? 'class="rtd-current-item"' : ""}>
|
||||||
|
<a href="${version.urls.documentation}">${version.slug}</a>
|
||||||
|
</dd>
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.join("\n")}
|
||||||
|
</dl>
|
||||||
|
`;
|
||||||
|
return versionsHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderDownloads(config) {
|
||||||
|
if (!Object.keys(config.versions.current.downloads).length) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
const downloadsNameDisplay = {
|
||||||
|
pdf: "PDF",
|
||||||
|
epub: "Epub",
|
||||||
|
htmlzip: "HTML",
|
||||||
|
};
|
||||||
|
|
||||||
|
const downloadsHTML = `
|
||||||
|
<dl>
|
||||||
|
<dt>Downloads</dt>
|
||||||
|
${Object.entries(config.versions.current.downloads)
|
||||||
|
.map(
|
||||||
|
([name, url]) => `
|
||||||
|
<dd>
|
||||||
|
<a href="${url}">${downloadsNameDisplay[name]}</a>
|
||||||
|
</dd>
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.join("\n")}
|
||||||
|
</dl>
|
||||||
|
`;
|
||||||
|
return downloadsHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("readthedocs-addons-data-ready", function (event) {
|
||||||
|
const config = event.detail.data();
|
||||||
|
|
||||||
|
const flyout = `
|
||||||
|
<div class="rst-versions" data-toggle="rst-versions" role="note">
|
||||||
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||||
|
<span class="fa fa-book"> Read the Docs</span>
|
||||||
|
v: ${config.versions.current.slug}
|
||||||
|
<span class="fa fa-caret-down"></span>
|
||||||
|
</span>
|
||||||
|
<div class="rst-other-versions">
|
||||||
|
<div class="injected">
|
||||||
|
${renderLanguages(config)}
|
||||||
|
${renderVersions(config)}
|
||||||
|
${renderDownloads(config)}
|
||||||
|
<dl>
|
||||||
|
<dt>On Read the Docs</dt>
|
||||||
|
<dd>
|
||||||
|
<a href="${config.projects.current.urls.home}">Project Home</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="${config.projects.current.urls.builds}">Builds</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="${config.projects.current.urls.downloads}">Downloads</a>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>Search</dt>
|
||||||
|
<dd>
|
||||||
|
<form id="flyout-search-form">
|
||||||
|
<input
|
||||||
|
class="wy-form"
|
||||||
|
type="text"
|
||||||
|
name="q"
|
||||||
|
aria-label="Search docs"
|
||||||
|
placeholder="Search docs"
|
||||||
|
/>
|
||||||
|
</form>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr />
|
||||||
|
<small>
|
||||||
|
<span>Hosted by <a href="https://about.readthedocs.org/?utm_source=&utm_content=flyout">Read the Docs</a></span>
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Inject the generated flyout into the body HTML element.
|
||||||
|
document.body.insertAdjacentHTML("beforeend", flyout);
|
||||||
|
|
||||||
|
// Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout.
|
||||||
|
document
|
||||||
|
.querySelector("#flyout-search-form")
|
||||||
|
.addEventListener("focusin", () => {
|
||||||
|
const event = new CustomEvent("readthedocs-search-show");
|
||||||
|
document.dispatchEvent(event);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (themeLanguageSelector || themeVersionSelector) {
|
||||||
|
function onSelectorSwitch(event) {
|
||||||
|
const option = event.target.selectedIndex;
|
||||||
|
const item = event.target.options[option];
|
||||||
|
window.location.href = item.dataset.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("readthedocs-addons-data-ready", function (event) {
|
||||||
|
const config = event.detail.data();
|
||||||
|
|
||||||
|
const versionSwitch = document.querySelector(
|
||||||
|
"div.switch-menus > div.version-switch",
|
||||||
|
);
|
||||||
|
if (themeVersionSelector) {
|
||||||
|
let versions = config.versions.active;
|
||||||
|
if (config.versions.current.hidden || config.versions.current.type === "external") {
|
||||||
|
versions.unshift(config.versions.current);
|
||||||
|
}
|
||||||
|
const versionSelect = `
|
||||||
|
<select>
|
||||||
|
${versions
|
||||||
|
.map(
|
||||||
|
(version) => `
|
||||||
|
<option
|
||||||
|
value="${version.slug}"
|
||||||
|
${config.versions.current.slug === version.slug ? 'selected="selected"' : ""}
|
||||||
|
data-url="${version.urls.documentation}">
|
||||||
|
${version.slug}
|
||||||
|
</option>`,
|
||||||
|
)
|
||||||
|
.join("\n")}
|
||||||
|
</select>
|
||||||
|
`;
|
||||||
|
|
||||||
|
versionSwitch.innerHTML = versionSelect;
|
||||||
|
versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
const languageSwitch = document.querySelector(
|
||||||
|
"div.switch-menus > div.language-switch",
|
||||||
|
);
|
||||||
|
|
||||||
|
if (themeLanguageSelector) {
|
||||||
|
if (config.projects.translations.length) {
|
||||||
|
// Add the current language to the options on the selector
|
||||||
|
let languages = config.projects.translations.concat(
|
||||||
|
config.projects.current,
|
||||||
|
);
|
||||||
|
languages = languages.sort((a, b) =>
|
||||||
|
a.language.name.localeCompare(b.language.name),
|
||||||
|
);
|
||||||
|
|
||||||
|
const languageSelect = `
|
||||||
|
<select>
|
||||||
|
${languages
|
||||||
|
.map(
|
||||||
|
(language) => `
|
||||||
|
<option
|
||||||
|
value="${language.language.code}"
|
||||||
|
${config.projects.current.slug === language.slug ? 'selected="selected"' : ""}
|
||||||
|
data-url="${language.urls.documentation}">
|
||||||
|
${language.language.name}
|
||||||
|
</option>`,
|
||||||
|
)
|
||||||
|
.join("\n")}
|
||||||
|
</select>
|
||||||
|
`;
|
||||||
|
|
||||||
|
languageSwitch.innerHTML = languageSelect;
|
||||||
|
languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
languageSwitch.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("readthedocs-addons-data-ready", function (event) {
|
||||||
|
// Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav.
|
||||||
|
document
|
||||||
|
.querySelector("[role='search'] input")
|
||||||
|
.addEventListener("focusin", () => {
|
||||||
|
const event = new CustomEvent("readthedocs-search-show");
|
||||||
|
document.dispatchEvent(event);
|
||||||
|
});
|
||||||
|
});
|
7
docs/_static/language_data.js
vendored
7
docs/_static/language_data.js
vendored
|
@ -1,13 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* language_data.js
|
|
||||||
* ~~~~~~~~~~~~~~~~
|
|
||||||
*
|
|
||||||
* This script contains the language-specific data used by searchtools.js,
|
* This script contains the language-specific data used by searchtools.js,
|
||||||
* namely the list of stopwords, stemmer, scorer and splitter.
|
* namely the list of stopwords, stemmer, scorer and splitter.
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
|
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
|
||||||
|
|
45
docs/_static/searchtools.js
vendored
45
docs/_static/searchtools.js
vendored
|
@ -1,12 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* searchtools.js
|
|
||||||
* ~~~~~~~~~~~~~~~~
|
|
||||||
*
|
|
||||||
* Sphinx JavaScript utilities for the full-text search.
|
* Sphinx JavaScript utilities for the full-text search.
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
@ -20,7 +13,7 @@ if (typeof Scorer === "undefined") {
|
||||||
// and returns the new score.
|
// and returns the new score.
|
||||||
/*
|
/*
|
||||||
score: result => {
|
score: result => {
|
||||||
const [docname, title, anchor, descr, score, filename] = result
|
const [docname, title, anchor, descr, score, filename, kind] = result
|
||||||
return score
|
return score
|
||||||
},
|
},
|
||||||
*/
|
*/
|
||||||
|
@ -47,6 +40,14 @@ if (typeof Scorer === "undefined") {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Global search result kind enum, used by themes to style search results.
|
||||||
|
class SearchResultKind {
|
||||||
|
static get index() { return "index"; }
|
||||||
|
static get object() { return "object"; }
|
||||||
|
static get text() { return "text"; }
|
||||||
|
static get title() { return "title"; }
|
||||||
|
}
|
||||||
|
|
||||||
const _removeChildren = (element) => {
|
const _removeChildren = (element) => {
|
||||||
while (element && element.lastChild) element.removeChild(element.lastChild);
|
while (element && element.lastChild) element.removeChild(element.lastChild);
|
||||||
};
|
};
|
||||||
|
@ -64,9 +65,13 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
|
||||||
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
||||||
const contentRoot = document.documentElement.dataset.content_root;
|
const contentRoot = document.documentElement.dataset.content_root;
|
||||||
|
|
||||||
const [docName, title, anchor, descr, score, _filename] = item;
|
const [docName, title, anchor, descr, score, _filename, kind] = item;
|
||||||
|
|
||||||
let listItem = document.createElement("li");
|
let listItem = document.createElement("li");
|
||||||
|
// Add a class representing the item's type:
|
||||||
|
// can be used by a theme's CSS selector for styling
|
||||||
|
// See SearchResultKind for the class names.
|
||||||
|
listItem.classList.add(`kind-${kind}`);
|
||||||
let requestUrl;
|
let requestUrl;
|
||||||
let linkUrl;
|
let linkUrl;
|
||||||
if (docBuilder === "dirhtml") {
|
if (docBuilder === "dirhtml") {
|
||||||
|
@ -115,8 +120,10 @@ const _finishSearch = (resultCount) => {
|
||||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
|
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
|
||||||
);
|
);
|
||||||
else
|
else
|
||||||
Search.status.innerText = _(
|
Search.status.innerText = Documentation.ngettext(
|
||||||
"Search finished, found ${resultCount} page(s) matching the search query."
|
"Search finished, found one page matching the search query.",
|
||||||
|
"Search finished, found ${resultCount} pages matching the search query.",
|
||||||
|
resultCount,
|
||||||
).replace('${resultCount}', resultCount);
|
).replace('${resultCount}', resultCount);
|
||||||
};
|
};
|
||||||
const _displayNextItem = (
|
const _displayNextItem = (
|
||||||
|
@ -138,7 +145,7 @@ const _displayNextItem = (
|
||||||
else _finishSearch(resultCount);
|
else _finishSearch(resultCount);
|
||||||
};
|
};
|
||||||
// Helper function used by query() to order search results.
|
// Helper function used by query() to order search results.
|
||||||
// Each input is an array of [docname, title, anchor, descr, score, filename].
|
// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
|
||||||
// Order the results by score (in opposite order of appearance, since the
|
// Order the results by score (in opposite order of appearance, since the
|
||||||
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
|
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
|
||||||
const _orderResultsByScoreThenName = (a, b) => {
|
const _orderResultsByScoreThenName = (a, b) => {
|
||||||
|
@ -178,7 +185,7 @@ const Search = {
|
||||||
|
|
||||||
htmlToText: (htmlString, anchor) => {
|
htmlToText: (htmlString, anchor) => {
|
||||||
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
|
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
|
||||||
for (const removalQuery of [".headerlinks", "script", "style"]) {
|
for (const removalQuery of [".headerlink", "script", "style"]) {
|
||||||
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
|
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
|
||||||
}
|
}
|
||||||
if (anchor) {
|
if (anchor) {
|
||||||
|
@ -248,6 +255,7 @@ const Search = {
|
||||||
searchSummary.classList.add("search-summary");
|
searchSummary.classList.add("search-summary");
|
||||||
searchSummary.innerText = "";
|
searchSummary.innerText = "";
|
||||||
const searchList = document.createElement("ul");
|
const searchList = document.createElement("ul");
|
||||||
|
searchList.setAttribute("role", "list");
|
||||||
searchList.classList.add("search");
|
searchList.classList.add("search");
|
||||||
|
|
||||||
const out = document.getElementById("search-results");
|
const out = document.getElementById("search-results");
|
||||||
|
@ -318,7 +326,7 @@ const Search = {
|
||||||
const indexEntries = Search._index.indexentries;
|
const indexEntries = Search._index.indexentries;
|
||||||
|
|
||||||
// Collect multiple result groups to be sorted separately and then ordered.
|
// Collect multiple result groups to be sorted separately and then ordered.
|
||||||
// Each is an array of [docname, title, anchor, descr, score, filename].
|
// Each is an array of [docname, title, anchor, descr, score, filename, kind].
|
||||||
const normalResults = [];
|
const normalResults = [];
|
||||||
const nonMainIndexResults = [];
|
const nonMainIndexResults = [];
|
||||||
|
|
||||||
|
@ -328,14 +336,16 @@ const Search = {
|
||||||
for (const [title, foundTitles] of Object.entries(allTitles)) {
|
for (const [title, foundTitles] of Object.entries(allTitles)) {
|
||||||
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
|
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
|
||||||
for (const [file, id] of foundTitles) {
|
for (const [file, id] of foundTitles) {
|
||||||
let score = Math.round(100 * queryLower.length / title.length)
|
const score = Math.round(Scorer.title * queryLower.length / title.length);
|
||||||
|
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
|
||||||
normalResults.push([
|
normalResults.push([
|
||||||
docNames[file],
|
docNames[file],
|
||||||
titles[file] !== title ? `${titles[file]} > ${title}` : title,
|
titles[file] !== title ? `${titles[file]} > ${title}` : title,
|
||||||
id !== null ? "#" + id : "",
|
id !== null ? "#" + id : "",
|
||||||
null,
|
null,
|
||||||
score,
|
score + boost,
|
||||||
filenames[file],
|
filenames[file],
|
||||||
|
SearchResultKind.title,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -353,6 +363,7 @@ const Search = {
|
||||||
null,
|
null,
|
||||||
score,
|
score,
|
||||||
filenames[file],
|
filenames[file],
|
||||||
|
SearchResultKind.index,
|
||||||
];
|
];
|
||||||
if (isMain) {
|
if (isMain) {
|
||||||
normalResults.push(result);
|
normalResults.push(result);
|
||||||
|
@ -474,6 +485,7 @@ const Search = {
|
||||||
descr,
|
descr,
|
||||||
score,
|
score,
|
||||||
filenames[match[0]],
|
filenames[match[0]],
|
||||||
|
SearchResultKind.object,
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
Object.keys(objects).forEach((prefix) =>
|
Object.keys(objects).forEach((prefix) =>
|
||||||
|
@ -584,6 +596,7 @@ const Search = {
|
||||||
null,
|
null,
|
||||||
score,
|
score,
|
||||||
filenames[file],
|
filenames[file],
|
||||||
|
SearchResultKind.text,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -6,18 +8,14 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Dynamic Bindings — Raylib Python documentation</title>
|
<title>Dynamic Bindings — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
|
@ -47,7 +45,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -55,7 +53,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
|
1090
docs/genindex.html
1090
docs/genindex.html
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -6,23 +8,19 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Raylib Python — Raylib Python documentation</title>
|
<title>Raylib Python — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Python Bindings for Raylib 5.0" href="README.html" />
|
<link rel="next" title="Python Bindings for Raylib 5.5" href="README.html" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="wy-body-for-nav">
|
<body class="wy-body-for-nav">
|
||||||
|
@ -46,7 +44,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -54,7 +52,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
@ -94,7 +92,7 @@
|
||||||
<div class="toctree-wrapper compound">
|
<div class="toctree-wrapper compound">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -102,7 +100,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
@ -122,7 +120,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
<a href="README.html" class="btn btn-neutral float-right" title="Python Bindings for Raylib 5.0" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
<a href="README.html" class="btn btn-neutral float-right" title="Python Bindings for Raylib 5.5" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
BIN
docs/objects.inv
BIN
docs/objects.inv
Binary file not shown.
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -5,18 +7,14 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Python Module Index — Raylib Python documentation</title>
|
<title>Python Module Index — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
|
@ -51,7 +49,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -59,7 +57,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
|
5613
docs/pyray.html
5613
docs/pyray.html
File diff suppressed because it is too large
Load diff
4475
docs/raylib.html
4475
docs/raylib.html
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" data-content_root="./">
|
<html class="writer-html5" lang="en" data-content_root="./">
|
||||||
<head>
|
<head>
|
||||||
|
@ -5,19 +7,15 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Search — Raylib Python documentation</title>
|
<title>Search — Raylib Python documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
|
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=4ae1632d" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||||||
<script src="_static/doctools.js?v=9a2dae69"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<script src="_static/searchtools.js"></script>
|
<script src="_static/searchtools.js"></script>
|
||||||
|
@ -47,7 +45,7 @@
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.0</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html">Python Bindings for Raylib 5.5</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#quickstart">Quickstart</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#installation">Installation</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#how-to-use">How to use</a></li>
|
||||||
|
@ -55,7 +53,7 @@
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#app-showcase">App showcase</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#rlzero">RLZero</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#help-wanted">Help wanted</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#license-updated">License (updated)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#license">License</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#performance">Performance</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#packaging-your-app">Packaging your app</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="README.html#advert">Advert</a></li>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,9 +1,9 @@
|
||||||
import raylib
|
import raylib
|
||||||
|
|
||||||
RAYLIB_VERSION_MAJOR: int = 5
|
RAYLIB_VERSION_MAJOR: int = 5
|
||||||
RAYLIB_VERSION_MINOR: int = 0
|
RAYLIB_VERSION_MINOR: int = 5
|
||||||
RAYLIB_VERSION_PATCH: int = 0
|
RAYLIB_VERSION_PATCH: int = 0
|
||||||
RAYLIB_VERSION: str = "5.0"
|
RAYLIB_VERSION: str = "5.5-dev"
|
||||||
PI: float = 3.141592653589793
|
PI: float = 3.141592653589793
|
||||||
DEG2RAD = PI / 180.0
|
DEG2RAD = PI / 180.0
|
||||||
RAD2DEG = 180.0 / PI
|
RAD2DEG = 180.0 / PI
|
||||||
|
@ -18,7 +18,7 @@ PI: float = 3.141592653589793
|
||||||
EPSILON: float = 1e-06
|
EPSILON: float = 1e-06
|
||||||
DEG2RAD = PI / 180.0
|
DEG2RAD = PI / 180.0
|
||||||
RAD2DEG = 180.0 / PI
|
RAD2DEG = 180.0 / PI
|
||||||
RLGL_VERSION: str = "4.5"
|
RLGL_VERSION: str = "5.0"
|
||||||
RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
|
RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
|
||||||
RL_DEFAULT_BATCH_BUFFERS: int = 1
|
RL_DEFAULT_BATCH_BUFFERS: int = 1
|
||||||
RL_DEFAULT_BATCH_DRAWCALLS: int = 256
|
RL_DEFAULT_BATCH_DRAWCALLS: int = 256
|
||||||
|
@ -89,6 +89,17 @@ RL_BLEND_SRC_RGB: int = 32969
|
||||||
RL_BLEND_DST_ALPHA: int = 32970
|
RL_BLEND_DST_ALPHA: int = 32970
|
||||||
RL_BLEND_SRC_ALPHA: int = 32971
|
RL_BLEND_SRC_ALPHA: int = 32971
|
||||||
RL_BLEND_COLOR: int = 32773
|
RL_BLEND_COLOR: int = 32773
|
||||||
|
RL_READ_FRAMEBUFFER: int = 36008
|
||||||
|
RL_DRAW_FRAMEBUFFER: int = 36009
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION: int = 0
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD: int = 1
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL: int = 2
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR: int = 3
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT: int = 4
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2: int = 5
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES: int = 6
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS: int = 7
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS: int = 8
|
||||||
RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
|
RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
|
||||||
RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
|
RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
|
||||||
PI: float = 3.141592653589793
|
PI: float = 3.141592653589793
|
||||||
|
@ -108,6 +119,8 @@ GL_COMPRESSED_RGBA_ASTC_4x4_KHR: int = 37808
|
||||||
GL_COMPRESSED_RGBA_ASTC_8x8_KHR: int = 37815
|
GL_COMPRESSED_RGBA_ASTC_8x8_KHR: int = 37815
|
||||||
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: int = 34047
|
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: int = 34047
|
||||||
GL_TEXTURE_MAX_ANISOTROPY_EXT: int = 34046
|
GL_TEXTURE_MAX_ANISOTROPY_EXT: int = 34046
|
||||||
|
GL_PROGRAM_POINT_SIZE: int = 34370
|
||||||
|
GL_LINE_WIDTH: int = 2849
|
||||||
GL_UNSIGNED_SHORT_5_6_5: int = 33635
|
GL_UNSIGNED_SHORT_5_6_5: int = 33635
|
||||||
GL_UNSIGNED_SHORT_5_5_5_1: int = 32820
|
GL_UNSIGNED_SHORT_5_5_5_1: int = 32820
|
||||||
GL_UNSIGNED_SHORT_4_4_4_4: int = 32819
|
GL_UNSIGNED_SHORT_4_4_4_4: int = 32819
|
||||||
|
@ -119,19 +132,22 @@ RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL: str = "vertexNormal"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR: str = "vertexColor"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR: str = "vertexColor"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT: str = "vertexTangent"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT: str = "vertexTangent"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2: str = "vertexTexCoord2"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2: str = "vertexTexCoord2"
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS: str = "vertexBoneIds"
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS: str = "vertexBoneWeights"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_MVP: str = "mvp"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_MVP: str = "mvp"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW: str = "matView"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW: str = "matView"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION: str = "matProjection"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION: str = "matProjection"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL: str = "matModel"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL: str = "matModel"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL: str = "matNormal"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL: str = "matNormal"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR: str = "colDiffuse"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR: str = "colDiffuse"
|
||||||
|
RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES: str = "boneMatrices"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0: str = "texture0"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0: str = "texture0"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1: str = "texture1"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1: str = "texture1"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2: str = "texture2"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2: str = "texture2"
|
||||||
RAYGUI_VERSION_MAJOR: int = 4
|
RAYGUI_VERSION_MAJOR: int = 4
|
||||||
RAYGUI_VERSION_MINOR: int = 0
|
RAYGUI_VERSION_MINOR: int = 5
|
||||||
RAYGUI_VERSION_PATCH: int = 0
|
RAYGUI_VERSION_PATCH: int = 0
|
||||||
RAYGUI_VERSION: str = "4.0"
|
RAYGUI_VERSION: str = "4.5-dev"
|
||||||
SCROLLBAR_LEFT_SIDE: int = 0
|
SCROLLBAR_LEFT_SIDE: int = 0
|
||||||
SCROLLBAR_RIGHT_SIDE: int = 1
|
SCROLLBAR_RIGHT_SIDE: int = 1
|
||||||
RAYGUI_ICON_SIZE: int = 16
|
RAYGUI_ICON_SIZE: int = 16
|
||||||
|
@ -155,6 +171,7 @@ RAYGUI_PANEL_BORDER_WIDTH: int = 1
|
||||||
RAYGUI_TABBAR_ITEM_WIDTH: int = 160
|
RAYGUI_TABBAR_ITEM_WIDTH: int = 160
|
||||||
RAYGUI_MIN_SCROLLBAR_WIDTH: int = 40
|
RAYGUI_MIN_SCROLLBAR_WIDTH: int = 40
|
||||||
RAYGUI_MIN_SCROLLBAR_HEIGHT: int = 40
|
RAYGUI_MIN_SCROLLBAR_HEIGHT: int = 40
|
||||||
|
RAYGUI_MIN_MOUSE_WHEEL_SPEED: int = 20
|
||||||
RAYGUI_TOGGLEGROUP_MAX_ITEMS: int = 32
|
RAYGUI_TOGGLEGROUP_MAX_ITEMS: int = 32
|
||||||
RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: int = 40
|
RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: int = 40
|
||||||
RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: int = 1
|
RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: int = 1
|
||||||
|
@ -429,12 +446,14 @@ GLFW_CONTEXT_RELEASE_BEHAVIOR: int = 139273
|
||||||
GLFW_CONTEXT_NO_ERROR: int = 139274
|
GLFW_CONTEXT_NO_ERROR: int = 139274
|
||||||
GLFW_CONTEXT_CREATION_API: int = 139275
|
GLFW_CONTEXT_CREATION_API: int = 139275
|
||||||
GLFW_SCALE_TO_MONITOR: int = 139276
|
GLFW_SCALE_TO_MONITOR: int = 139276
|
||||||
|
GLFW_SCALE_FRAMEBUFFER: int = 139277
|
||||||
GLFW_COCOA_RETINA_FRAMEBUFFER: int = 143361
|
GLFW_COCOA_RETINA_FRAMEBUFFER: int = 143361
|
||||||
GLFW_COCOA_FRAME_NAME: int = 143362
|
GLFW_COCOA_FRAME_NAME: int = 143362
|
||||||
GLFW_COCOA_GRAPHICS_SWITCHING: int = 143363
|
GLFW_COCOA_GRAPHICS_SWITCHING: int = 143363
|
||||||
GLFW_X11_CLASS_NAME: int = 147457
|
GLFW_X11_CLASS_NAME: int = 147457
|
||||||
GLFW_X11_INSTANCE_NAME: int = 147458
|
GLFW_X11_INSTANCE_NAME: int = 147458
|
||||||
GLFW_WIN32_KEYBOARD_MENU: int = 151553
|
GLFW_WIN32_KEYBOARD_MENU: int = 151553
|
||||||
|
GLFW_WIN32_SHOWDEFAULT: int = 151554
|
||||||
GLFW_WAYLAND_APP_ID: int = 155649
|
GLFW_WAYLAND_APP_ID: int = 155649
|
||||||
GLFW_NO_API: int = 0
|
GLFW_NO_API: int = 0
|
||||||
GLFW_OPENGL_API: int = 196609
|
GLFW_OPENGL_API: int = 196609
|
||||||
|
@ -467,6 +486,8 @@ GLFW_ANGLE_PLATFORM_TYPE_D3D9: int = 225284
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_D3D11: int = 225285
|
GLFW_ANGLE_PLATFORM_TYPE_D3D11: int = 225285
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_VULKAN: int = 225287
|
GLFW_ANGLE_PLATFORM_TYPE_VULKAN: int = 225287
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_METAL: int = 225288
|
GLFW_ANGLE_PLATFORM_TYPE_METAL: int = 225288
|
||||||
|
GLFW_WAYLAND_PREFER_LIBDECOR: int = 229377
|
||||||
|
GLFW_WAYLAND_DISABLE_LIBDECOR: int = 229378
|
||||||
GLFW_ANY_POSITION: int = 2147483648
|
GLFW_ANY_POSITION: int = 2147483648
|
||||||
GLFW_ARROW_CURSOR: int = 221185
|
GLFW_ARROW_CURSOR: int = 221185
|
||||||
GLFW_IBEAM_CURSOR: int = 221186
|
GLFW_IBEAM_CURSOR: int = 221186
|
||||||
|
@ -486,6 +507,7 @@ GLFW_PLATFORM: int = 327683
|
||||||
GLFW_COCOA_CHDIR_RESOURCES: int = 331777
|
GLFW_COCOA_CHDIR_RESOURCES: int = 331777
|
||||||
GLFW_COCOA_MENUBAR: int = 331778
|
GLFW_COCOA_MENUBAR: int = 331778
|
||||||
GLFW_X11_XCB_VULKAN_SURFACE: int = 335873
|
GLFW_X11_XCB_VULKAN_SURFACE: int = 335873
|
||||||
|
GLFW_WAYLAND_LIBDECOR: int = 339969
|
||||||
GLFW_ANY_PLATFORM: int = 393216
|
GLFW_ANY_PLATFORM: int = 393216
|
||||||
GLFW_PLATFORM_WIN32: int = 393217
|
GLFW_PLATFORM_WIN32: int = 393217
|
||||||
GLFW_PLATFORM_COCOA: int = 393218
|
GLFW_PLATFORM_COCOA: int = 393218
|
||||||
|
|
|
@ -136,7 +136,7 @@ class KeyboardKey(IntEnum):
|
||||||
KEY_KP_ENTER = 335
|
KEY_KP_ENTER = 335
|
||||||
KEY_KP_EQUAL = 336
|
KEY_KP_EQUAL = 336
|
||||||
KEY_BACK = 4
|
KEY_BACK = 4
|
||||||
KEY_MENU = 82
|
KEY_MENU = 5
|
||||||
KEY_VOLUME_UP = 24
|
KEY_VOLUME_UP = 24
|
||||||
KEY_VOLUME_DOWN = 25
|
KEY_VOLUME_DOWN = 25
|
||||||
|
|
||||||
|
@ -230,6 +230,9 @@ class ShaderLocationIndex(IntEnum):
|
||||||
SHADER_LOC_MAP_IRRADIANCE = 23
|
SHADER_LOC_MAP_IRRADIANCE = 23
|
||||||
SHADER_LOC_MAP_PREFILTER = 24
|
SHADER_LOC_MAP_PREFILTER = 24
|
||||||
SHADER_LOC_MAP_BRDF = 25
|
SHADER_LOC_MAP_BRDF = 25
|
||||||
|
SHADER_LOC_VERTEX_BONEIDS = 26
|
||||||
|
SHADER_LOC_VERTEX_BONEWEIGHTS = 27
|
||||||
|
SHADER_LOC_BONE_MATRICES = 28
|
||||||
|
|
||||||
class ShaderUniformDataType(IntEnum):
|
class ShaderUniformDataType(IntEnum):
|
||||||
SHADER_UNIFORM_FLOAT = 0
|
SHADER_UNIFORM_FLOAT = 0
|
||||||
|
@ -433,6 +436,8 @@ class GuiComboBoxProperty(IntEnum):
|
||||||
class GuiDropdownBoxProperty(IntEnum):
|
class GuiDropdownBoxProperty(IntEnum):
|
||||||
ARROW_PADDING = 16
|
ARROW_PADDING = 16
|
||||||
DROPDOWN_ITEMS_SPACING = 17
|
DROPDOWN_ITEMS_SPACING = 17
|
||||||
|
DROPDOWN_ARROW_HIDDEN = 18
|
||||||
|
DROPDOWN_ROLL_UP = 19
|
||||||
|
|
||||||
class GuiTextBoxProperty(IntEnum):
|
class GuiTextBoxProperty(IntEnum):
|
||||||
TEXT_READONLY = 16
|
TEXT_READONLY = 16
|
||||||
|
@ -446,6 +451,7 @@ class GuiListViewProperty(IntEnum):
|
||||||
LIST_ITEMS_SPACING = 17
|
LIST_ITEMS_SPACING = 17
|
||||||
SCROLLBAR_WIDTH = 18
|
SCROLLBAR_WIDTH = 18
|
||||||
SCROLLBAR_SIDE = 19
|
SCROLLBAR_SIDE = 19
|
||||||
|
LIST_ITEMS_BORDER_WIDTH = 20
|
||||||
|
|
||||||
class GuiColorPickerProperty(IntEnum):
|
class GuiColorPickerProperty(IntEnum):
|
||||||
COLOR_SELECTOR_SIZE = 16
|
COLOR_SELECTOR_SIZE = 16
|
||||||
|
@ -675,15 +681,15 @@ class GuiIconName(IntEnum):
|
||||||
ICON_FOLDER = 217
|
ICON_FOLDER = 217
|
||||||
ICON_FILE = 218
|
ICON_FILE = 218
|
||||||
ICON_SAND_TIMER = 219
|
ICON_SAND_TIMER = 219
|
||||||
ICON_220 = 220
|
ICON_WARNING = 220
|
||||||
ICON_221 = 221
|
ICON_HELP_BOX = 221
|
||||||
ICON_222 = 222
|
ICON_INFO_BOX = 222
|
||||||
ICON_223 = 223
|
ICON_PRIORITY = 223
|
||||||
ICON_224 = 224
|
ICON_LAYERS_ISO = 224
|
||||||
ICON_225 = 225
|
ICON_LAYERS2 = 225
|
||||||
ICON_226 = 226
|
ICON_MLAYERS = 226
|
||||||
ICON_227 = 227
|
ICON_MAPS = 227
|
||||||
ICON_228 = 228
|
ICON_HOT = 228
|
||||||
ICON_229 = 229
|
ICON_229 = 229
|
||||||
ICON_230 = 230
|
ICON_230 = 230
|
||||||
ICON_231 = 231
|
ICON_231 = 231
|
||||||
|
|
|
@ -21,7 +21,7 @@ model.materials.maps[pr.MATERIAL_MAP_ALBEDO].texture = texture
|
||||||
pr.unload_image(image)
|
pr.unload_image(image)
|
||||||
|
|
||||||
pos = pr.get_mouse_position()
|
pos = pr.get_mouse_position()
|
||||||
ray = pr.get_mouse_ray(pos, camera)
|
ray = pr.get_screen_to_world_ray(pos, camera)
|
||||||
|
|
||||||
|
|
||||||
while not pr.window_should_close():
|
while not pr.window_should_close():
|
||||||
|
@ -36,6 +36,6 @@ while not pr.window_should_close():
|
||||||
pr.end_drawing()
|
pr.end_drawing()
|
||||||
|
|
||||||
pos = pr.get_mouse_position()
|
pos = pr.get_mouse_position()
|
||||||
ray = pr.get_mouse_ray(pos, camera)
|
ray = pr.get_screen_to_world_ray(pos, camera)
|
||||||
|
|
||||||
pr.close_window()
|
pr.close_window()
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
echo "building and installing raylib"
|
echo "building and installing raylib"
|
||||||
cd raylib-c
|
cd raylib-c
|
||||||
|
rm -rf build
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release ..
|
cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
@ -16,6 +17,7 @@ sudo cp ./raylib-c/src/rlgl.h /usr/local/include/
|
||||||
sudo cp ./raylib-c/src/raymath.h /usr/local/include/
|
sudo cp ./raylib-c/src/raymath.h /usr/local/include/
|
||||||
sudo cp ./raygui/src/raygui.h /usr/local/include/
|
sudo cp ./raygui/src/raygui.h /usr/local/include/
|
||||||
sudo cp ./physac/src/physac.h /usr/local/include/
|
sudo cp ./physac/src/physac.h /usr/local/include/
|
||||||
|
sudo cp -r ./raylib-c/src/external/glfw/include/GLFW /usr/local/include/
|
||||||
|
|
||||||
echo "building raylib_parser"
|
echo "building raylib_parser"
|
||||||
|
|
||||||
|
@ -37,6 +39,7 @@ python3 raylib/build.py
|
||||||
|
|
||||||
echo "creating enums.py"
|
echo "creating enums.py"
|
||||||
|
|
||||||
|
python3 -m pip install inflection --break-system-packages # TODO: venv
|
||||||
python3 create_enums.py > raylib/enums.py
|
python3 create_enums.py > raylib/enums.py
|
||||||
python3 create_enums.py > dynamic/raylib/enums.py
|
python3 create_enums.py > dynamic/raylib/enums.py
|
||||||
|
|
||||||
|
@ -56,7 +59,7 @@ python3 create_stub_static.py >raylib/__init__.pyi
|
||||||
|
|
||||||
echo "installing sphinx modules"
|
echo "installing sphinx modules"
|
||||||
|
|
||||||
python -m venv venv
|
python3 -m venv venv
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
pip3 install sphinx-autoapi myst_parser sphinx_rtd_theme
|
pip3 install sphinx-autoapi myst_parser sphinx_rtd_theme
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def pointer(struct):
|
|
||||||
...
|
|
||||||
|
|
||||||
def attach_audio_mixed_processor(processor: Any,) -> None:
|
def attach_audio_mixed_processor(processor: Any,) -> None:
|
||||||
"""Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s"""
|
"""Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'"""
|
||||||
...
|
...
|
||||||
def attach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
|
def attach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
|
||||||
"""Attach audio stream processor to stream, receives the samples as <float>s"""
|
"""Attach audio stream processor to stream, receives the samples as 'float'"""
|
||||||
...
|
...
|
||||||
def begin_blend_mode(mode: int,) -> None:
|
def begin_blend_mode(mode: int,) -> None:
|
||||||
"""Begin blending mode (alpha, additive, multiplied, subtract, custom)"""
|
"""Begin blending mode (alpha, additive, multiplied, subtract, custom)"""
|
||||||
|
@ -43,6 +41,9 @@ def check_collision_box_sphere(box: BoundingBox,center: Vector3,radius: float,)
|
||||||
def check_collision_boxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
|
def check_collision_boxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
|
||||||
"""Check collision between two bounding boxes"""
|
"""Check collision between two bounding boxes"""
|
||||||
...
|
...
|
||||||
|
def check_collision_circle_line(center: Vector2,radius: float,p1: Vector2,p2: Vector2,) -> bool:
|
||||||
|
"""Check if circle collides with a line created betweeen two points [p1] and [p2]"""
|
||||||
|
...
|
||||||
def check_collision_circle_rec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
|
def check_collision_circle_rec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
|
||||||
"""Check collision between circle and rectangle"""
|
"""Check collision between circle and rectangle"""
|
||||||
...
|
...
|
||||||
|
@ -112,6 +113,12 @@ def color_from_hsv(hue: float,saturation: float,value: float,) -> Color:
|
||||||
def color_from_normalized(normalized: Vector4,) -> Color:
|
def color_from_normalized(normalized: Vector4,) -> Color:
|
||||||
"""Get Color from normalized values [0..1]"""
|
"""Get Color from normalized values [0..1]"""
|
||||||
...
|
...
|
||||||
|
def color_is_equal(col1: Color,col2: Color,) -> bool:
|
||||||
|
"""Check if two colors are equal"""
|
||||||
|
...
|
||||||
|
def color_lerp(color1: Color,color2: Color,factor: float,) -> Color:
|
||||||
|
"""Get color lerp interpolation between two colors, factor [0.0f..1.0f]"""
|
||||||
|
...
|
||||||
def color_normalize(color: Color,) -> Vector4:
|
def color_normalize(color: Color,) -> Vector4:
|
||||||
"""Get Color normalized as float [0..1]"""
|
"""Get Color normalized as float [0..1]"""
|
||||||
...
|
...
|
||||||
|
@ -122,7 +129,7 @@ def color_to_hsv(color: Color,) -> Vector3:
|
||||||
"""Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
|
"""Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
|
||||||
...
|
...
|
||||||
def color_to_int(color: Color,) -> int:
|
def color_to_int(color: Color,) -> int:
|
||||||
"""Get hexadecimal value for a Color"""
|
"""Get hexadecimal value for a Color (0xRRGGBBAA)"""
|
||||||
...
|
...
|
||||||
def compress_data(data: str,dataSize: int,compDataSize: Any,) -> str:
|
def compress_data(data: str,dataSize: int,compDataSize: Any,) -> str:
|
||||||
"""Compress data (DEFLATE algorithm), memory must be MemFree()"""
|
"""Compress data (DEFLATE algorithm), memory must be MemFree()"""
|
||||||
|
@ -160,7 +167,7 @@ def disable_cursor() -> None:
|
||||||
def disable_event_waiting() -> None:
|
def disable_event_waiting() -> None:
|
||||||
"""Disable waiting for events on EndDrawing(), automatic events polling"""
|
"""Disable waiting for events on EndDrawing(), automatic events polling"""
|
||||||
...
|
...
|
||||||
def draw_billboard(camera: Camera3D,texture: Texture,position: Vector3,size: float,tint: Color,) -> None:
|
def draw_billboard(camera: Camera3D,texture: Texture,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
"""Draw a billboard texture"""
|
"""Draw a billboard texture"""
|
||||||
...
|
...
|
||||||
def draw_billboard_pro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
|
def draw_billboard_pro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
|
||||||
|
@ -184,7 +191,7 @@ def draw_circle(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
||||||
def draw_circle_3d(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
|
def draw_circle_3d(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
|
||||||
"""Draw a circle in 3D world space"""
|
"""Draw a circle in 3D world space"""
|
||||||
...
|
...
|
||||||
def draw_circle_gradient(centerX: int,centerY: int,radius: float,color1: Color,color2: Color,) -> None:
|
def draw_circle_gradient(centerX: int,centerY: int,radius: float,inner: Color,outer: Color,) -> None:
|
||||||
"""Draw a gradient-filled circle"""
|
"""Draw a gradient-filled circle"""
|
||||||
...
|
...
|
||||||
def draw_circle_lines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
def draw_circle_lines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
||||||
|
@ -268,6 +275,12 @@ def draw_model(model: Model,position: Vector3,scale: float,tint: Color,) -> None
|
||||||
def draw_model_ex(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
def draw_model_ex(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
||||||
"""Draw a model with extended parameters"""
|
"""Draw a model with extended parameters"""
|
||||||
...
|
...
|
||||||
|
def draw_model_points(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
|
"""Draw a model as points"""
|
||||||
|
...
|
||||||
|
def draw_model_points_ex(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
||||||
|
"""Draw a model as points with extended parameters"""
|
||||||
|
...
|
||||||
def draw_model_wires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
def draw_model_wires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
"""Draw a model wires (with texture if set)"""
|
"""Draw a model wires (with texture if set)"""
|
||||||
...
|
...
|
||||||
|
@ -275,10 +288,10 @@ def draw_model_wires_ex(model: Model,position: Vector3,rotationAxis: Vector3,rot
|
||||||
"""Draw a model wires (with texture if set) with extended parameters"""
|
"""Draw a model wires (with texture if set) with extended parameters"""
|
||||||
...
|
...
|
||||||
def draw_pixel(posX: int,posY: int,color: Color,) -> None:
|
def draw_pixel(posX: int,posY: int,color: Color,) -> None:
|
||||||
"""Draw a pixel"""
|
"""Draw a pixel using geometry [Can be slow, use with care]"""
|
||||||
...
|
...
|
||||||
def draw_pixel_v(position: Vector2,color: Color,) -> None:
|
def draw_pixel_v(position: Vector2,color: Color,) -> None:
|
||||||
"""Draw a pixel (Vector version)"""
|
"""Draw a pixel using geometry (Vector version) [Can be slow, use with care]"""
|
||||||
...
|
...
|
||||||
def draw_plane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
|
def draw_plane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
|
||||||
"""Draw a plane XZ"""
|
"""Draw a plane XZ"""
|
||||||
|
@ -301,13 +314,13 @@ def draw_ray(ray: Ray,color: Color,) -> None:
|
||||||
def draw_rectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
def draw_rectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
||||||
"""Draw a color-filled rectangle"""
|
"""Draw a color-filled rectangle"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_gradient_ex(rec: Rectangle,col1: Color,col2: Color,col3: Color,col4: Color,) -> None:
|
def draw_rectangle_gradient_ex(rec: Rectangle,topLeft: Color,bottomLeft: Color,topRight: Color,bottomRight: Color,) -> None:
|
||||||
"""Draw a gradient-filled rectangle with custom vertex colors"""
|
"""Draw a gradient-filled rectangle with custom vertex colors"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
|
def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,left: Color,right: Color,) -> None:
|
||||||
"""Draw a horizontal-gradient-filled rectangle"""
|
"""Draw a horizontal-gradient-filled rectangle"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
|
def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,top: Color,bottom: Color,) -> None:
|
||||||
"""Draw a vertical-gradient-filled rectangle"""
|
"""Draw a vertical-gradient-filled rectangle"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_lines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
def draw_rectangle_lines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
||||||
|
@ -325,7 +338,10 @@ def draw_rectangle_rec(rec: Rectangle,color: Color,) -> None:
|
||||||
def draw_rectangle_rounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
def draw_rectangle_rounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
||||||
"""Draw rectangle with rounded edges"""
|
"""Draw rectangle with rounded edges"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_rounded_lines(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
|
def draw_rectangle_rounded_lines(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
||||||
|
"""Draw rectangle lines with rounded edges"""
|
||||||
|
...
|
||||||
|
def draw_rectangle_rounded_lines_ex(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
|
||||||
"""Draw rectangle with rounded edges outline"""
|
"""Draw rectangle with rounded edges outline"""
|
||||||
...
|
...
|
||||||
def draw_rectangle_v(position: Vector2,size: Vector2,color: Color,) -> None:
|
def draw_rectangle_v(position: Vector2,size: Vector2,color: Color,) -> None:
|
||||||
|
@ -481,6 +497,9 @@ def export_image_to_memory(image: Image,fileType: str,fileSize: Any,) -> str:
|
||||||
def export_mesh(mesh: Mesh,fileName: str,) -> bool:
|
def export_mesh(mesh: Mesh,fileName: str,) -> bool:
|
||||||
"""Export mesh data to file, returns true on success"""
|
"""Export mesh data to file, returns true on success"""
|
||||||
...
|
...
|
||||||
|
def export_mesh_as_code(mesh: Mesh,fileName: str,) -> bool:
|
||||||
|
"""Export mesh as code file (.h) defining multiple arrays of vertex attributes"""
|
||||||
|
...
|
||||||
def export_wave(wave: Wave,fileName: str,) -> bool:
|
def export_wave(wave: Wave,fileName: str,) -> bool:
|
||||||
"""Export wave data to file, returns true on success"""
|
"""Export wave data to file, returns true on success"""
|
||||||
...
|
...
|
||||||
|
@ -715,9 +734,6 @@ def get_mouse_delta() -> Vector2:
|
||||||
def get_mouse_position() -> Vector2:
|
def get_mouse_position() -> Vector2:
|
||||||
"""Get mouse position XY"""
|
"""Get mouse position XY"""
|
||||||
...
|
...
|
||||||
def get_mouse_ray(mousePosition: Vector2,camera: Camera3D,) -> Ray:
|
|
||||||
"""Get a ray trace from mouse position"""
|
|
||||||
...
|
|
||||||
def get_mouse_wheel_move() -> float:
|
def get_mouse_wheel_move() -> float:
|
||||||
"""Get mouse wheel movement for X or Y, whichever is larger"""
|
"""Get mouse wheel movement for X or Y, whichever is larger"""
|
||||||
...
|
...
|
||||||
|
@ -790,6 +806,12 @@ def get_screen_height() -> int:
|
||||||
def get_screen_to_world_2d(position: Vector2,camera: Camera2D,) -> Vector2:
|
def get_screen_to_world_2d(position: Vector2,camera: Camera2D,) -> Vector2:
|
||||||
"""Get the world space position for a 2d camera screen space position"""
|
"""Get the world space position for a 2d camera screen space position"""
|
||||||
...
|
...
|
||||||
|
def get_screen_to_world_ray(position: Vector2,camera: Camera3D,) -> Ray:
|
||||||
|
"""Get a ray trace from screen position (i.e mouse)"""
|
||||||
|
...
|
||||||
|
def get_screen_to_world_ray_ex(position: Vector2,camera: Camera3D,width: int,height: int,) -> Ray:
|
||||||
|
"""Get a ray trace from screen position (i.e mouse) in a viewport"""
|
||||||
|
...
|
||||||
def get_screen_width() -> int:
|
def get_screen_width() -> int:
|
||||||
"""Get current screen width"""
|
"""Get current screen width"""
|
||||||
...
|
...
|
||||||
|
@ -799,6 +821,12 @@ def get_shader_location(shader: Shader,uniformName: str,) -> int:
|
||||||
def get_shader_location_attrib(shader: Shader,attribName: str,) -> int:
|
def get_shader_location_attrib(shader: Shader,attribName: str,) -> int:
|
||||||
"""Get shader attribute location"""
|
"""Get shader attribute location"""
|
||||||
...
|
...
|
||||||
|
def get_shapes_texture() -> Texture:
|
||||||
|
"""Get texture that is used for shapes drawing"""
|
||||||
|
...
|
||||||
|
def get_shapes_texture_rectangle() -> Rectangle:
|
||||||
|
"""Get texture source rectangle that is used for shapes drawing"""
|
||||||
|
...
|
||||||
def get_spline_point_basis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
|
def get_spline_point_basis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
|
||||||
"""Get (evaluate) spline point: B-Spline"""
|
"""Get (evaluate) spline point: B-Spline"""
|
||||||
...
|
...
|
||||||
|
@ -869,7 +897,7 @@ def gui_color_panel(bounds: Rectangle,text: str,color: Any,) -> int:
|
||||||
"""Color Panel control"""
|
"""Color Panel control"""
|
||||||
...
|
...
|
||||||
def gui_color_panel_hsv(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
def gui_color_panel_hsv(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
||||||
"""Color Panel control that returns HSV color value, used by GuiColorPickerHSV()"""
|
"""Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()"""
|
||||||
...
|
...
|
||||||
def gui_color_picker(bounds: Rectangle,text: str,color: Any,) -> int:
|
def gui_color_picker(bounds: Rectangle,text: str,color: Any,) -> int:
|
||||||
"""Color Picker control (multiple color controls)"""
|
"""Color Picker control (multiple color controls)"""
|
||||||
|
@ -878,7 +906,7 @@ def gui_color_picker_hsv(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
||||||
"""Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
|
"""Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
|
||||||
...
|
...
|
||||||
def gui_combo_box(bounds: Rectangle,text: str,active: Any,) -> int:
|
def gui_combo_box(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Combo Box control, returns selected item index"""
|
"""Combo Box control"""
|
||||||
...
|
...
|
||||||
def gui_disable() -> None:
|
def gui_disable() -> None:
|
||||||
"""Disable gui controls (global state)"""
|
"""Disable gui controls (global state)"""
|
||||||
|
@ -890,7 +918,7 @@ def gui_draw_icon(iconId: int,posX: int,posY: int,pixelSize: int,color: Color,)
|
||||||
"""Draw icon using pixel size at specified position"""
|
"""Draw icon using pixel size at specified position"""
|
||||||
...
|
...
|
||||||
def gui_dropdown_box(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
|
def gui_dropdown_box(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
|
||||||
"""Dropdown Box control, returns selected item"""
|
"""Dropdown Box control"""
|
||||||
...
|
...
|
||||||
def gui_dummy_rec(bounds: Rectangle,text: str,) -> int:
|
def gui_dummy_rec(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Dummy control for placeholders"""
|
"""Dummy control for placeholders"""
|
||||||
|
@ -914,7 +942,7 @@ def gui_get_style(control: int,property: int,) -> int:
|
||||||
"""Get one style property"""
|
"""Get one style property"""
|
||||||
...
|
...
|
||||||
def gui_grid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
|
def gui_grid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
|
||||||
"""Grid control, returns mouse cell position"""
|
"""Grid control"""
|
||||||
...
|
...
|
||||||
def gui_group_box(bounds: Rectangle,text: str,) -> int:
|
def gui_group_box(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Group Box control with text name"""
|
"""Group Box control with text name"""
|
||||||
|
@ -926,16 +954,16 @@ def gui_is_locked() -> bool:
|
||||||
"""Check if gui is locked (global state)"""
|
"""Check if gui is locked (global state)"""
|
||||||
...
|
...
|
||||||
def gui_label(bounds: Rectangle,text: str,) -> int:
|
def gui_label(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Label control, shows text"""
|
"""Label control"""
|
||||||
...
|
...
|
||||||
def gui_label_button(bounds: Rectangle,text: str,) -> int:
|
def gui_label_button(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Label button control, show true when clicked"""
|
"""Label button control, returns true when clicked"""
|
||||||
...
|
...
|
||||||
def gui_line(bounds: Rectangle,text: str,) -> int:
|
def gui_line(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Line separator control, could contain text"""
|
"""Line separator control, could contain text"""
|
||||||
...
|
...
|
||||||
def gui_list_view(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
|
def gui_list_view(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
|
||||||
"""List View control, returns selected list item index"""
|
"""List View control"""
|
||||||
...
|
...
|
||||||
def gui_list_view_ex(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
|
def gui_list_view_ex(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
|
||||||
"""List View with extended parameters"""
|
"""List View with extended parameters"""
|
||||||
|
@ -959,7 +987,7 @@ def gui_panel(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Panel control, useful to group controls"""
|
"""Panel control, useful to group controls"""
|
||||||
...
|
...
|
||||||
def gui_progress_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def gui_progress_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Progress Bar control, shows current progress value"""
|
"""Progress Bar control"""
|
||||||
...
|
...
|
||||||
def gui_scroll_panel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
|
def gui_scroll_panel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
|
||||||
"""Scroll Panel control"""
|
"""Scroll Panel control"""
|
||||||
|
@ -983,13 +1011,13 @@ def gui_set_tooltip(tooltip: str,) -> None:
|
||||||
"""Set tooltip string"""
|
"""Set tooltip string"""
|
||||||
...
|
...
|
||||||
def gui_slider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def gui_slider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Slider control, returns selected value"""
|
"""Slider control"""
|
||||||
...
|
...
|
||||||
def gui_slider_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def gui_slider_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Slider Bar control, returns selected value"""
|
"""Slider Bar control"""
|
||||||
...
|
...
|
||||||
def gui_spinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
def gui_spinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
||||||
"""Spinner control, returns selected value"""
|
"""Spinner control"""
|
||||||
...
|
...
|
||||||
def gui_status_bar(bounds: Rectangle,text: str,) -> int:
|
def gui_status_bar(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Status Bar control, shows info text"""
|
"""Status Bar control, shows info text"""
|
||||||
|
@ -1004,13 +1032,13 @@ def gui_text_input_box(bounds: Rectangle,title: str,message: str,buttons: str,te
|
||||||
"""Text Input Box control, ask for text, supports secret"""
|
"""Text Input Box control, ask for text, supports secret"""
|
||||||
...
|
...
|
||||||
def gui_toggle(bounds: Rectangle,text: str,active: Any,) -> int:
|
def gui_toggle(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Button control, returns true when active"""
|
"""Toggle Button control"""
|
||||||
...
|
...
|
||||||
def gui_toggle_group(bounds: Rectangle,text: str,active: Any,) -> int:
|
def gui_toggle_group(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Group control, returns active toggle index"""
|
"""Toggle Group control"""
|
||||||
...
|
...
|
||||||
def gui_toggle_slider(bounds: Rectangle,text: str,active: Any,) -> int:
|
def gui_toggle_slider(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Slider control, returns true when clicked"""
|
"""Toggle Slider control"""
|
||||||
...
|
...
|
||||||
def gui_unlock() -> None:
|
def gui_unlock() -> None:
|
||||||
"""Unlock gui controls (global state)"""
|
"""Unlock gui controls (global state)"""
|
||||||
|
@ -1018,6 +1046,9 @@ def gui_unlock() -> None:
|
||||||
def gui_value_box(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
def gui_value_box(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
||||||
"""Value Box control, updates input text with numbers"""
|
"""Value Box control, updates input text with numbers"""
|
||||||
...
|
...
|
||||||
|
def gui_value_box_float(bounds: Rectangle,text: str,textValue: str,value: Any,editMode: bool,) -> int:
|
||||||
|
"""Value box control for float values"""
|
||||||
|
...
|
||||||
def gui_window_box(bounds: Rectangle,title: str,) -> int:
|
def gui_window_box(bounds: Rectangle,title: str,) -> int:
|
||||||
"""Window Box control, shows a window that can be closed"""
|
"""Window Box control, shows a window that can be closed"""
|
||||||
...
|
...
|
||||||
|
@ -1087,6 +1118,9 @@ def image_draw_circle_v(dst: Any,center: Vector2,radius: int,color: Color,) -> N
|
||||||
def image_draw_line(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
|
def image_draw_line(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
|
||||||
"""Draw line within an image"""
|
"""Draw line within an image"""
|
||||||
...
|
...
|
||||||
|
def image_draw_line_ex(dst: Any,start: Vector2,end: Vector2,thick: int,color: Color,) -> None:
|
||||||
|
"""Draw a line defining thickness within an image"""
|
||||||
|
...
|
||||||
def image_draw_line_v(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
|
def image_draw_line_v(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
|
||||||
"""Draw line within an image (Vector version)"""
|
"""Draw line within an image (Vector version)"""
|
||||||
...
|
...
|
||||||
|
@ -1114,6 +1148,21 @@ def image_draw_text(dst: Any,text: str,posX: int,posY: int,fontSize: int,color:
|
||||||
def image_draw_text_ex(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
|
def image_draw_text_ex(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
|
||||||
"""Draw text (custom sprite font) within an image (destination)"""
|
"""Draw text (custom sprite font) within an image (destination)"""
|
||||||
...
|
...
|
||||||
|
def image_draw_triangle(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
|
||||||
|
"""Draw triangle within an image"""
|
||||||
|
...
|
||||||
|
def image_draw_triangle_ex(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,c1: Color,c2: Color,c3: Color,) -> None:
|
||||||
|
"""Draw triangle with interpolated colors within an image"""
|
||||||
|
...
|
||||||
|
def image_draw_triangle_fan(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
|
||||||
|
"""Draw a triangle fan defined by points within an image (first vertex is the center)"""
|
||||||
|
...
|
||||||
|
def image_draw_triangle_lines(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
|
||||||
|
"""Draw triangle outline within an image"""
|
||||||
|
...
|
||||||
|
def image_draw_triangle_strip(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
|
||||||
|
"""Draw a triangle strip defined by points within an image"""
|
||||||
|
...
|
||||||
def image_flip_horizontal(image: Any,) -> None:
|
def image_flip_horizontal(image: Any,) -> None:
|
||||||
"""Flip image horizontally"""
|
"""Flip image horizontally"""
|
||||||
...
|
...
|
||||||
|
@ -1123,9 +1172,15 @@ def image_flip_vertical(image: Any,) -> None:
|
||||||
def image_format(image: Any,newFormat: int,) -> None:
|
def image_format(image: Any,newFormat: int,) -> None:
|
||||||
"""Convert image data to desired format"""
|
"""Convert image data to desired format"""
|
||||||
...
|
...
|
||||||
|
def image_from_channel(image: Image,selectedChannel: int,) -> Image:
|
||||||
|
"""Create an image from a selected channel of another image (GRAYSCALE)"""
|
||||||
|
...
|
||||||
def image_from_image(image: Image,rec: Rectangle,) -> Image:
|
def image_from_image(image: Image,rec: Rectangle,) -> Image:
|
||||||
"""Create an image from another image piece"""
|
"""Create an image from another image piece"""
|
||||||
...
|
...
|
||||||
|
def image_kernel_convolution(image: Any,kernel: Any,kernelSize: int,) -> None:
|
||||||
|
"""Apply custom square convolution kernel to image"""
|
||||||
|
...
|
||||||
def image_mipmaps(image: Any,) -> None:
|
def image_mipmaps(image: Any,) -> None:
|
||||||
"""Compute all mipmap levels for a provided image"""
|
"""Compute all mipmap levels for a provided image"""
|
||||||
...
|
...
|
||||||
|
@ -1189,6 +1244,9 @@ def is_file_dropped() -> bool:
|
||||||
def is_file_extension(fileName: str,ext: str,) -> bool:
|
def is_file_extension(fileName: str,ext: str,) -> bool:
|
||||||
"""Check file extension (including point: .png, .wav)"""
|
"""Check file extension (including point: .png, .wav)"""
|
||||||
...
|
...
|
||||||
|
def is_file_name_valid(fileName: str,) -> bool:
|
||||||
|
"""Check if fileName is valid for the platform/OS"""
|
||||||
|
...
|
||||||
def is_font_ready(font: Font,) -> bool:
|
def is_font_ready(font: Font,) -> bool:
|
||||||
"""Check if a font is ready"""
|
"""Check if a font is ready"""
|
||||||
...
|
...
|
||||||
|
@ -1316,7 +1374,7 @@ def load_directory_files(dirPath: str,) -> FilePathList:
|
||||||
"""Load directory filepaths"""
|
"""Load directory filepaths"""
|
||||||
...
|
...
|
||||||
def load_directory_files_ex(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
|
def load_directory_files_ex(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
|
||||||
"""Load directory filepaths with extension filtering and recursive directory scan"""
|
"""Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result"""
|
||||||
...
|
...
|
||||||
def load_dropped_files() -> FilePathList:
|
def load_dropped_files() -> FilePathList:
|
||||||
"""Load dropped filepaths"""
|
"""Load dropped filepaths"""
|
||||||
|
@ -1334,7 +1392,7 @@ def load_font_data(fileData: str,dataSize: int,fontSize: int,codepoints: Any,cod
|
||||||
"""Load font data for further use"""
|
"""Load font data for further use"""
|
||||||
...
|
...
|
||||||
def load_font_ex(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
|
def load_font_ex(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
|
||||||
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont"""
|
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height"""
|
||||||
...
|
...
|
||||||
def load_font_from_image(image: Image,key: Color,firstChar: int,) -> Font:
|
def load_font_from_image(image: Image,key: Color,firstChar: int,) -> Font:
|
||||||
"""Load font from Image (XNA style)"""
|
"""Load font from Image (XNA style)"""
|
||||||
|
@ -1348,6 +1406,9 @@ def load_image(fileName: str,) -> Image:
|
||||||
def load_image_anim(fileName: str,frames: Any,) -> Image:
|
def load_image_anim(fileName: str,frames: Any,) -> Image:
|
||||||
"""Load image sequence from file (frames appended to image.data)"""
|
"""Load image sequence from file (frames appended to image.data)"""
|
||||||
...
|
...
|
||||||
|
def load_image_anim_from_memory(fileType: str,fileData: str,dataSize: int,frames: Any,) -> Image:
|
||||||
|
"""Load image sequence from memory buffer"""
|
||||||
|
...
|
||||||
def load_image_colors(image: Image,) -> Any:
|
def load_image_colors(image: Image,) -> Any:
|
||||||
"""Load color data from image as a Color array (RGBA - 32bit)"""
|
"""Load color data from image as a Color array (RGBA - 32bit)"""
|
||||||
...
|
...
|
||||||
|
@ -1366,9 +1427,6 @@ def load_image_palette(image: Image,maxPaletteSize: int,colorCount: Any,) -> Any
|
||||||
def load_image_raw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
|
def load_image_raw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
|
||||||
"""Load image from RAW file data"""
|
"""Load image from RAW file data"""
|
||||||
...
|
...
|
||||||
def load_image_svg(fileNameOrString: str,width: int,height: int,) -> Image:
|
|
||||||
"""Load image from SVG file data or string with specified size"""
|
|
||||||
...
|
|
||||||
def load_material_default() -> Material:
|
def load_material_default() -> Material:
|
||||||
"""Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
|
"""Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
|
||||||
...
|
...
|
||||||
|
@ -1435,13 +1493,19 @@ def load_wave_from_memory(fileType: str,fileData: str,dataSize: int,) -> Wave:
|
||||||
def load_wave_samples(wave: Wave,) -> Any:
|
def load_wave_samples(wave: Wave,) -> Any:
|
||||||
"""Load samples data from wave as a 32bit float data array"""
|
"""Load samples data from wave as a 32bit float data array"""
|
||||||
...
|
...
|
||||||
|
def make_directory(dirPath: str,) -> int:
|
||||||
|
"""Create directories (including full path requested), returns 0 on success"""
|
||||||
|
...
|
||||||
def matrix_add(left: Matrix,right: Matrix,) -> Matrix:
|
def matrix_add(left: Matrix,right: Matrix,) -> Matrix:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def matrix_decompose(mat: Matrix,translation: Any,rotation: Any,scale: Any,) -> None:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def matrix_determinant(mat: Matrix,) -> float:
|
def matrix_determinant(mat: Matrix,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
def matrix_frustum(left: float,right: float,bottom: float,top: float,near: float,far: float,) -> Matrix:
|
def matrix_frustum(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
def matrix_identity() -> Matrix:
|
def matrix_identity() -> Matrix:
|
||||||
|
@ -1564,6 +1628,9 @@ def quaternion_add(q1: Vector4,q2: Vector4,) -> Vector4:
|
||||||
def quaternion_add_value(q: Vector4,add: float,) -> Vector4:
|
def quaternion_add_value(q: Vector4,add: float,) -> Vector4:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def quaternion_cubic_hermite_spline(q1: Vector4,outTangent1: Vector4,q2: Vector4,inTangent2: Vector4,t: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def quaternion_divide(q1: Vector4,q2: Vector4,) -> Vector4:
|
def quaternion_divide(q1: Vector4,q2: Vector4,) -> Vector4:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -1687,6 +1754,9 @@ def set_exit_key(key: int,) -> None:
|
||||||
def set_gamepad_mappings(mappings: str,) -> int:
|
def set_gamepad_mappings(mappings: str,) -> int:
|
||||||
"""Set internal gamepad mappings (SDL_GameControllerDB)"""
|
"""Set internal gamepad mappings (SDL_GameControllerDB)"""
|
||||||
...
|
...
|
||||||
|
def set_gamepad_vibration(gamepad: int,leftMotor: float,rightMotor: float,) -> None:
|
||||||
|
"""Set gamepad vibration for both motors"""
|
||||||
|
...
|
||||||
def set_gestures_enabled(flags: int,) -> None:
|
def set_gestures_enabled(flags: int,) -> None:
|
||||||
"""Enable a set of gestures using flags"""
|
"""Enable a set of gestures using flags"""
|
||||||
...
|
...
|
||||||
|
@ -1879,6 +1949,12 @@ def text_split(text: str,delimiter: str,count: Any,) -> list[str]:
|
||||||
def text_subtext(text: str,position: int,length: int,) -> str:
|
def text_subtext(text: str,position: int,length: int,) -> str:
|
||||||
"""Get a piece of a text string"""
|
"""Get a piece of a text string"""
|
||||||
...
|
...
|
||||||
|
def text_to_camel(text: str,) -> str:
|
||||||
|
"""Get Camel case notation version of provided string"""
|
||||||
|
...
|
||||||
|
def text_to_float(text: str,) -> float:
|
||||||
|
"""Get float value from text (negative values not supported)"""
|
||||||
|
...
|
||||||
def text_to_integer(text: str,) -> int:
|
def text_to_integer(text: str,) -> int:
|
||||||
"""Get integer value from text (negative values not supported)"""
|
"""Get integer value from text (negative values not supported)"""
|
||||||
...
|
...
|
||||||
|
@ -1888,14 +1964,17 @@ def text_to_lower(text: str,) -> str:
|
||||||
def text_to_pascal(text: str,) -> str:
|
def text_to_pascal(text: str,) -> str:
|
||||||
"""Get Pascal case notation version of provided string"""
|
"""Get Pascal case notation version of provided string"""
|
||||||
...
|
...
|
||||||
|
def text_to_snake(text: str,) -> str:
|
||||||
|
"""Get Snake case notation version of provided string"""
|
||||||
|
...
|
||||||
def text_to_upper(text: str,) -> str:
|
def text_to_upper(text: str,) -> str:
|
||||||
"""Get upper case version of provided string"""
|
"""Get upper case version of provided string"""
|
||||||
...
|
...
|
||||||
def toggle_borderless_windowed() -> None:
|
def toggle_borderless_windowed() -> None:
|
||||||
"""Toggle window state: borderless windowed (only PLATFORM_DESKTOP)"""
|
"""Toggle window state: borderless windowed [resizes window to match monitor resolution] (only PLATFORM_DESKTOP)"""
|
||||||
...
|
...
|
||||||
def toggle_fullscreen() -> None:
|
def toggle_fullscreen() -> None:
|
||||||
"""Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)"""
|
"""Toggle window state: fullscreen/windowed [resizes monitor to match window resolution] (only PLATFORM_DESKTOP)"""
|
||||||
...
|
...
|
||||||
def trace_log(*args) -> None:
|
def trace_log(*args) -> None:
|
||||||
"""VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
|
"""VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
|
||||||
|
@ -1903,7 +1982,7 @@ def trace_log(*args) -> None:
|
||||||
def unload_audio_stream(stream: AudioStream,) -> None:
|
def unload_audio_stream(stream: AudioStream,) -> None:
|
||||||
"""Unload audio stream and free memory"""
|
"""Unload audio stream and free memory"""
|
||||||
...
|
...
|
||||||
def unload_automation_event_list(list_0: Any,) -> None:
|
def unload_automation_event_list(list_0: AutomationEventList,) -> None:
|
||||||
"""Unload automation events list from file"""
|
"""Unload automation events list from file"""
|
||||||
...
|
...
|
||||||
def unload_codepoints(codepoints: Any,) -> None:
|
def unload_codepoints(codepoints: Any,) -> None:
|
||||||
|
@ -1999,6 +2078,9 @@ def update_mesh_buffer(mesh: Mesh,index: int,data: Any,dataSize: int,offset: int
|
||||||
def update_model_animation(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
def update_model_animation(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
||||||
"""Update model animation pose"""
|
"""Update model animation pose"""
|
||||||
...
|
...
|
||||||
|
def update_model_animation_bone_matrices(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
||||||
|
"""Update model animation mesh bone matrices (Note GPU skinning does not work on Mac)"""
|
||||||
|
...
|
||||||
def update_music_stream(music: Music,) -> None:
|
def update_music_stream(music: Music,) -> None:
|
||||||
"""Updates buffers for music streaming"""
|
"""Updates buffers for music streaming"""
|
||||||
...
|
...
|
||||||
|
@ -2062,6 +2144,12 @@ def vector2_lerp(v1: Vector2,v2: Vector2,amount: float,) -> Vector2:
|
||||||
def vector2_line_angle(start: Vector2,end: Vector2,) -> float:
|
def vector2_line_angle(start: Vector2,end: Vector2,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def vector2_max(v1: Vector2,v2: Vector2,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector2_min(v1: Vector2,v2: Vector2,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def vector2_move_towards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
|
def vector2_move_towards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2080,6 +2168,9 @@ def vector2_one() -> Vector2:
|
||||||
def vector2_reflect(v: Vector2,normal: Vector2,) -> Vector2:
|
def vector2_reflect(v: Vector2,normal: Vector2,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def vector2_refract(v: Vector2,n: Vector2,r: float,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def vector2_rotate(v: Vector2,angle: float,) -> Vector2:
|
def vector2_rotate(v: Vector2,angle: float,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2119,6 +2210,9 @@ def vector3_clamp_value(v: Vector3,min_1: float,max_2: float,) -> Vector3:
|
||||||
def vector3_cross_product(v1: Vector3,v2: Vector3,) -> Vector3:
|
def vector3_cross_product(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def vector3_cubic_hermite(v1: Vector3,tangent1: Vector3,v2: Vector3,tangent2: Vector3,amount: float,) -> Vector3:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def vector_3distance(v1: Vector3,v2: Vector3,) -> float:
|
def vector_3distance(v1: Vector3,v2: Vector3,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2152,6 +2246,9 @@ def vector3_max(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
def vector3_min(v1: Vector3,v2: Vector3,) -> Vector3:
|
def vector3_min(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def vector3_move_towards(v: Vector3,target: Vector3,maxDistance: float,) -> Vector3:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def vector3_multiply(v1: Vector3,v2: Vector3,) -> Vector3:
|
def vector3_multiply(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2209,14 +2306,80 @@ def vector3_unproject(source: Vector3,projection: Matrix,view: Matrix,) -> Vecto
|
||||||
def vector3_zero() -> Vector3:
|
def vector3_zero() -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def vector4_add(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_add_value(v: Vector4,add: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_distance(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_distance_sqr(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_divide(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_dot_product(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_equals(p: Vector4,q: Vector4,) -> int:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_invert(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_length(v: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_length_sqr(v: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_lerp(v1: Vector4,v2: Vector4,amount: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_max(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_min(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_move_towards(v: Vector4,target: Vector4,maxDistance: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_multiply(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_negate(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_normalize(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_one() -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_scale(v: Vector4,scale: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_subtract(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_subtract_value(v: Vector4,add: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def vector4_zero() -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def wait_time(seconds: float,) -> None:
|
def wait_time(seconds: float,) -> None:
|
||||||
"""Wait for some time (halt program execution)"""
|
"""Wait for some time (halt program execution)"""
|
||||||
...
|
...
|
||||||
def wave_copy(wave: Wave,) -> Wave:
|
def wave_copy(wave: Wave,) -> Wave:
|
||||||
"""Copy a wave to a new wave"""
|
"""Copy a wave to a new wave"""
|
||||||
...
|
...
|
||||||
def wave_crop(wave: Any,initSample: int,finalSample: int,) -> None:
|
def wave_crop(wave: Any,initFrame: int,finalFrame: int,) -> None:
|
||||||
"""Crop a wave to defined samples range"""
|
"""Crop a wave to defined frames range"""
|
||||||
...
|
...
|
||||||
def wave_format(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
|
def wave_format(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
|
||||||
"""Convert wave data to desired format"""
|
"""Convert wave data to desired format"""
|
||||||
|
@ -2383,6 +2546,9 @@ def glfw_get_window_pos(window: Any,xpos: Any,ypos: Any,) -> None:
|
||||||
def glfw_get_window_size(window: Any,width: Any,height: Any,) -> None:
|
def glfw_get_window_size(window: Any,width: Any,height: Any,) -> None:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def glfw_get_window_title(window: Any,) -> str:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def glfw_get_window_user_pointer(window: Any,) -> Any:
|
def glfw_get_window_user_pointer(window: Any,) -> Any:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2593,6 +2759,9 @@ def rl_active_texture_slot(slot: int,) -> None:
|
||||||
def rl_begin(mode: int,) -> None:
|
def rl_begin(mode: int,) -> None:
|
||||||
"""Initialize drawing mode (how to organize vertex)"""
|
"""Initialize drawing mode (how to organize vertex)"""
|
||||||
...
|
...
|
||||||
|
def rl_bind_framebuffer(target: int,framebuffer: int,) -> None:
|
||||||
|
"""Bind framebuffer (FBO)"""
|
||||||
|
...
|
||||||
def rl_bind_image_texture(id: int,index: int,format: int,readonly: bool,) -> None:
|
def rl_bind_image_texture(id: int,index: int,format: int,readonly: bool,) -> None:
|
||||||
"""Bind image texture"""
|
"""Bind image texture"""
|
||||||
...
|
...
|
||||||
|
@ -2623,6 +2792,9 @@ def rl_color4f(x: float,y: float,z: float,w: float,) -> None:
|
||||||
def rl_color4ub(r: str,g: str,b: str,a: str,) -> None:
|
def rl_color4ub(r: str,g: str,b: str,a: str,) -> None:
|
||||||
"""Define one vertex (color) - 4 byte"""
|
"""Define one vertex (color) - 4 byte"""
|
||||||
...
|
...
|
||||||
|
def rl_color_mask(r: bool,g: bool,b: bool,a: bool,) -> None:
|
||||||
|
"""Color mask control"""
|
||||||
|
...
|
||||||
def rl_compile_shader(shaderCode: str,type: int,) -> int:
|
def rl_compile_shader(shaderCode: str,type: int,) -> int:
|
||||||
"""Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
|
"""Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
|
||||||
...
|
...
|
||||||
|
@ -2681,7 +2853,7 @@ def rl_disable_vertex_buffer_element() -> None:
|
||||||
"""Disable vertex buffer element (VBO element)"""
|
"""Disable vertex buffer element (VBO element)"""
|
||||||
...
|
...
|
||||||
def rl_disable_wire_mode() -> None:
|
def rl_disable_wire_mode() -> None:
|
||||||
"""Disable wire mode ( and point ) maybe rename"""
|
"""Disable wire (and point) mode"""
|
||||||
...
|
...
|
||||||
def rl_draw_render_batch(batch: Any,) -> None:
|
def rl_draw_render_batch(batch: Any,) -> None:
|
||||||
"""Draw render batch data (Update->Draw->Reset)"""
|
"""Draw render batch data (Update->Draw->Reset)"""
|
||||||
|
@ -2690,16 +2862,16 @@ def rl_draw_render_batch_active() -> None:
|
||||||
"""Update and draw internal render batch"""
|
"""Update and draw internal render batch"""
|
||||||
...
|
...
|
||||||
def rl_draw_vertex_array(offset: int,count: int,) -> None:
|
def rl_draw_vertex_array(offset: int,count: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array (currently active vao)"""
|
||||||
...
|
...
|
||||||
def rl_draw_vertex_array_elements(offset: int,count: int,buffer: Any,) -> None:
|
def rl_draw_vertex_array_elements(offset: int,count: int,buffer: Any,) -> None:
|
||||||
""""""
|
"""Draw vertex array elements"""
|
||||||
...
|
...
|
||||||
def rl_draw_vertex_array_elements_instanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
|
def rl_draw_vertex_array_elements_instanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array elements with instancing"""
|
||||||
...
|
...
|
||||||
def rl_draw_vertex_array_instanced(offset: int,count: int,instances: int,) -> None:
|
def rl_draw_vertex_array_instanced(offset: int,count: int,instances: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array (currently active vao) with instancing"""
|
||||||
...
|
...
|
||||||
def rl_enable_backface_culling() -> None:
|
def rl_enable_backface_culling() -> None:
|
||||||
"""Enable backface culling"""
|
"""Enable backface culling"""
|
||||||
|
@ -2767,6 +2939,15 @@ def rl_frustum(left: float,right: float,bottom: float,top: float,znear: float,zf
|
||||||
def rl_gen_texture_mipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
|
def rl_gen_texture_mipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
|
||||||
"""Generate mipmap data for selected texture"""
|
"""Generate mipmap data for selected texture"""
|
||||||
...
|
...
|
||||||
|
def rl_get_active_framebuffer() -> int:
|
||||||
|
"""Get the currently active render texture (fbo), 0 for default framebuffer"""
|
||||||
|
...
|
||||||
|
def rl_get_cull_distance_far() -> float:
|
||||||
|
"""Get cull plane distance far"""
|
||||||
|
...
|
||||||
|
def rl_get_cull_distance_near() -> float:
|
||||||
|
"""Get cull plane distance near"""
|
||||||
|
...
|
||||||
def rl_get_framebuffer_height() -> int:
|
def rl_get_framebuffer_height() -> int:
|
||||||
"""Get default framebuffer height"""
|
"""Get default framebuffer height"""
|
||||||
...
|
...
|
||||||
|
@ -2833,7 +3014,7 @@ def rl_load_draw_quad() -> None:
|
||||||
def rl_load_extensions(loader: Any,) -> None:
|
def rl_load_extensions(loader: Any,) -> None:
|
||||||
"""Load OpenGL extensions (loader function required)"""
|
"""Load OpenGL extensions (loader function required)"""
|
||||||
...
|
...
|
||||||
def rl_load_framebuffer(width: int,height: int,) -> int:
|
def rl_load_framebuffer() -> int:
|
||||||
"""Load an empty framebuffer"""
|
"""Load an empty framebuffer"""
|
||||||
...
|
...
|
||||||
def rl_load_identity() -> None:
|
def rl_load_identity() -> None:
|
||||||
|
@ -2852,10 +3033,10 @@ def rl_load_shader_program(vShaderId: int,fShaderId: int,) -> int:
|
||||||
"""Load custom shader program"""
|
"""Load custom shader program"""
|
||||||
...
|
...
|
||||||
def rl_load_texture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
|
def rl_load_texture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
|
||||||
"""Load texture in GPU"""
|
"""Load texture data"""
|
||||||
...
|
...
|
||||||
def rl_load_texture_cubemap(data: Any,size: int,format: int,) -> int:
|
def rl_load_texture_cubemap(data: Any,size: int,format: int,) -> int:
|
||||||
"""Load texture cubemap"""
|
"""Load texture cubemap data"""
|
||||||
...
|
...
|
||||||
def rl_load_texture_depth(width: int,height: int,useRenderBuffer: bool,) -> int:
|
def rl_load_texture_depth(width: int,height: int,useRenderBuffer: bool,) -> int:
|
||||||
"""Load depth texture/renderbuffer (to be attached to fbo)"""
|
"""Load depth texture/renderbuffer (to be attached to fbo)"""
|
||||||
|
@ -2864,10 +3045,10 @@ def rl_load_vertex_array() -> int:
|
||||||
"""Load vertex array (vao) if supported"""
|
"""Load vertex array (vao) if supported"""
|
||||||
...
|
...
|
||||||
def rl_load_vertex_buffer(buffer: Any,size: int,dynamic: bool,) -> int:
|
def rl_load_vertex_buffer(buffer: Any,size: int,dynamic: bool,) -> int:
|
||||||
"""Load a vertex buffer attribute"""
|
"""Load a vertex buffer object"""
|
||||||
...
|
...
|
||||||
def rl_load_vertex_buffer_element(buffer: Any,size: int,dynamic: bool,) -> int:
|
def rl_load_vertex_buffer_element(buffer: Any,size: int,dynamic: bool,) -> int:
|
||||||
"""Load a new attributes element buffer"""
|
"""Load vertex buffer elements object"""
|
||||||
...
|
...
|
||||||
def rl_matrix_mode(mode: int,) -> None:
|
def rl_matrix_mode(mode: int,) -> None:
|
||||||
"""Choose the current matrix to be transformed"""
|
"""Choose the current matrix to be transformed"""
|
||||||
|
@ -2914,6 +3095,9 @@ def rl_set_blend_factors_separate(glSrcRGB: int,glDstRGB: int,glSrcAlpha: int,gl
|
||||||
def rl_set_blend_mode(mode: int,) -> None:
|
def rl_set_blend_mode(mode: int,) -> None:
|
||||||
"""Set blending mode"""
|
"""Set blending mode"""
|
||||||
...
|
...
|
||||||
|
def rl_set_clip_planes(nearPlane: float,farPlane: float,) -> None:
|
||||||
|
"""Set clip planes distances"""
|
||||||
|
...
|
||||||
def rl_set_cull_face(mode: int,) -> None:
|
def rl_set_cull_face(mode: int,) -> None:
|
||||||
"""Set face culling mode"""
|
"""Set face culling mode"""
|
||||||
...
|
...
|
||||||
|
@ -2950,20 +3134,23 @@ def rl_set_texture(id: int,) -> None:
|
||||||
def rl_set_uniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
|
def rl_set_uniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
|
||||||
"""Set shader value uniform"""
|
"""Set shader value uniform"""
|
||||||
...
|
...
|
||||||
|
def rl_set_uniform_matrices(locIndex: int,mat: Any,count: int,) -> None:
|
||||||
|
"""Set shader value matrices"""
|
||||||
|
...
|
||||||
def rl_set_uniform_matrix(locIndex: int,mat: Matrix,) -> None:
|
def rl_set_uniform_matrix(locIndex: int,mat: Matrix,) -> None:
|
||||||
"""Set shader value matrix"""
|
"""Set shader value matrix"""
|
||||||
...
|
...
|
||||||
def rl_set_uniform_sampler(locIndex: int,textureId: int,) -> None:
|
def rl_set_uniform_sampler(locIndex: int,textureId: int,) -> None:
|
||||||
"""Set shader value sampler"""
|
"""Set shader value sampler"""
|
||||||
...
|
...
|
||||||
def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,pointer: Any,) -> None:
|
def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,offset: int,) -> None:
|
||||||
""""""
|
"""Set vertex attribute data configuration"""
|
||||||
...
|
...
|
||||||
def rl_set_vertex_attribute_default(locIndex: int,value: Any,attribType: int,count: int,) -> None:
|
def rl_set_vertex_attribute_default(locIndex: int,value: Any,attribType: int,count: int,) -> None:
|
||||||
"""Set vertex attribute default value"""
|
"""Set vertex attribute default value, when attribute to provided"""
|
||||||
...
|
...
|
||||||
def rl_set_vertex_attribute_divisor(index: int,divisor: int,) -> None:
|
def rl_set_vertex_attribute_divisor(index: int,divisor: int,) -> None:
|
||||||
""""""
|
"""Set vertex attribute data divisor"""
|
||||||
...
|
...
|
||||||
def rl_tex_coord2f(x: float,y: float,) -> None:
|
def rl_tex_coord2f(x: float,y: float,) -> None:
|
||||||
"""Define one vertex (texture coordinate) - 2 float"""
|
"""Define one vertex (texture coordinate) - 2 float"""
|
||||||
|
@ -2990,22 +3177,22 @@ def rl_unload_texture(id: int,) -> None:
|
||||||
"""Unload texture from GPU memory"""
|
"""Unload texture from GPU memory"""
|
||||||
...
|
...
|
||||||
def rl_unload_vertex_array(vaoId: int,) -> None:
|
def rl_unload_vertex_array(vaoId: int,) -> None:
|
||||||
""""""
|
"""Unload vertex array (vao)"""
|
||||||
...
|
...
|
||||||
def rl_unload_vertex_buffer(vboId: int,) -> None:
|
def rl_unload_vertex_buffer(vboId: int,) -> None:
|
||||||
""""""
|
"""Unload vertex buffer object"""
|
||||||
...
|
...
|
||||||
def rl_update_shader_buffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rl_update_shader_buffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update SSBO buffer data"""
|
"""Update SSBO buffer data"""
|
||||||
...
|
...
|
||||||
def rl_update_texture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
|
def rl_update_texture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
|
||||||
"""Update GPU texture with new data"""
|
"""Update texture with new data on GPU"""
|
||||||
...
|
...
|
||||||
def rl_update_vertex_buffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rl_update_vertex_buffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update GPU buffer with new data"""
|
"""Update vertex buffer object data on GPU buffer"""
|
||||||
...
|
...
|
||||||
def rl_update_vertex_buffer_elements(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rl_update_vertex_buffer_elements(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update vertex buffer elements with new data"""
|
"""Update vertex buffer elements data on GPU buffer"""
|
||||||
...
|
...
|
||||||
def rl_vertex2f(x: float,y: float,) -> None:
|
def rl_vertex2f(x: float,y: float,) -> None:
|
||||||
"""Define one vertex (position) - 2 float"""
|
"""Define one vertex (position) - 2 float"""
|
||||||
|
@ -3154,7 +3341,7 @@ class Matrix2x2:
|
||||||
self.m11=m11
|
self.m11=m11
|
||||||
class Mesh:
|
class Mesh:
|
||||||
""" struct """
|
""" struct """
|
||||||
def __init__(self, vertexCount, triangleCount, vertices, texcoords, texcoords2, normals, tangents, colors, indices, animVertices, animNormals, boneIds, boneWeights, vaoId, vboId):
|
def __init__(self, vertexCount, triangleCount, vertices, texcoords, texcoords2, normals, tangents, colors, indices, animVertices, animNormals, boneIds, boneWeights, boneMatrices, boneCount, vaoId, vboId):
|
||||||
self.vertexCount=vertexCount
|
self.vertexCount=vertexCount
|
||||||
self.triangleCount=triangleCount
|
self.triangleCount=triangleCount
|
||||||
self.vertices=vertices
|
self.vertices=vertices
|
||||||
|
@ -3168,6 +3355,8 @@ class Mesh:
|
||||||
self.animNormals=animNormals
|
self.animNormals=animNormals
|
||||||
self.boneIds=boneIds
|
self.boneIds=boneIds
|
||||||
self.boneWeights=boneWeights
|
self.boneWeights=boneWeights
|
||||||
|
self.boneMatrices=boneMatrices
|
||||||
|
self.boneCount=boneCount
|
||||||
self.vaoId=vaoId
|
self.vaoId=vaoId
|
||||||
self.vboId=vboId
|
self.vboId=vboId
|
||||||
class Model:
|
class Model:
|
||||||
|
@ -3333,12 +3522,11 @@ class Vector4:
|
||||||
self.w=w
|
self.w=w
|
||||||
class VrDeviceInfo:
|
class VrDeviceInfo:
|
||||||
""" struct """
|
""" struct """
|
||||||
def __init__(self, hResolution, vResolution, hScreenSize, vScreenSize, vScreenCenter, eyeToScreenDistance, lensSeparationDistance, interpupillaryDistance, lensDistortionValues, chromaAbCorrection):
|
def __init__(self, hResolution, vResolution, hScreenSize, vScreenSize, eyeToScreenDistance, lensSeparationDistance, interpupillaryDistance, lensDistortionValues, chromaAbCorrection):
|
||||||
self.hResolution=hResolution
|
self.hResolution=hResolution
|
||||||
self.vResolution=vResolution
|
self.vResolution=vResolution
|
||||||
self.hScreenSize=hScreenSize
|
self.hScreenSize=hScreenSize
|
||||||
self.vScreenSize=vScreenSize
|
self.vScreenSize=vScreenSize
|
||||||
self.vScreenCenter=vScreenCenter
|
|
||||||
self.eyeToScreenDistance=eyeToScreenDistance
|
self.eyeToScreenDistance=eyeToScreenDistance
|
||||||
self.lensSeparationDistance=lensSeparationDistance
|
self.lensSeparationDistance=lensSeparationDistance
|
||||||
self.interpupillaryDistance=interpupillaryDistance
|
self.interpupillaryDistance=interpupillaryDistance
|
||||||
|
@ -3389,10 +3577,11 @@ class rlRenderBatch:
|
||||||
self.currentDepth=currentDepth
|
self.currentDepth=currentDepth
|
||||||
class rlVertexBuffer:
|
class rlVertexBuffer:
|
||||||
""" struct """
|
""" struct """
|
||||||
def __init__(self, elementCount, vertices, texcoords, colors, indices, vaoId, vboId):
|
def __init__(self, elementCount, vertices, texcoords, normals, colors, indices, vaoId, vboId):
|
||||||
self.elementCount=elementCount
|
self.elementCount=elementCount
|
||||||
self.vertices=vertices
|
self.vertices=vertices
|
||||||
self.texcoords=texcoords
|
self.texcoords=texcoords
|
||||||
|
self.normals=normals
|
||||||
self.colors=colors
|
self.colors=colors
|
||||||
self.indices=indices
|
self.indices=indices
|
||||||
self.vaoId=vaoId
|
self.vaoId=vaoId
|
||||||
|
@ -3563,7 +3752,7 @@ class KeyboardKey(IntEnum):
|
||||||
KEY_KP_ENTER = 335
|
KEY_KP_ENTER = 335
|
||||||
KEY_KP_EQUAL = 336
|
KEY_KP_EQUAL = 336
|
||||||
KEY_BACK = 4
|
KEY_BACK = 4
|
||||||
KEY_MENU = 82
|
KEY_MENU = 5
|
||||||
KEY_VOLUME_UP = 24
|
KEY_VOLUME_UP = 24
|
||||||
KEY_VOLUME_DOWN = 25
|
KEY_VOLUME_DOWN = 25
|
||||||
|
|
||||||
|
@ -3657,6 +3846,9 @@ class ShaderLocationIndex(IntEnum):
|
||||||
SHADER_LOC_MAP_IRRADIANCE = 23
|
SHADER_LOC_MAP_IRRADIANCE = 23
|
||||||
SHADER_LOC_MAP_PREFILTER = 24
|
SHADER_LOC_MAP_PREFILTER = 24
|
||||||
SHADER_LOC_MAP_BRDF = 25
|
SHADER_LOC_MAP_BRDF = 25
|
||||||
|
SHADER_LOC_VERTEX_BONEIDS = 26
|
||||||
|
SHADER_LOC_VERTEX_BONEWEIGHTS = 27
|
||||||
|
SHADER_LOC_BONE_MATRICES = 28
|
||||||
|
|
||||||
class ShaderUniformDataType(IntEnum):
|
class ShaderUniformDataType(IntEnum):
|
||||||
SHADER_UNIFORM_FLOAT = 0
|
SHADER_UNIFORM_FLOAT = 0
|
||||||
|
@ -3860,6 +4052,8 @@ class GuiComboBoxProperty(IntEnum):
|
||||||
class GuiDropdownBoxProperty(IntEnum):
|
class GuiDropdownBoxProperty(IntEnum):
|
||||||
ARROW_PADDING = 16
|
ARROW_PADDING = 16
|
||||||
DROPDOWN_ITEMS_SPACING = 17
|
DROPDOWN_ITEMS_SPACING = 17
|
||||||
|
DROPDOWN_ARROW_HIDDEN = 18
|
||||||
|
DROPDOWN_ROLL_UP = 19
|
||||||
|
|
||||||
class GuiTextBoxProperty(IntEnum):
|
class GuiTextBoxProperty(IntEnum):
|
||||||
TEXT_READONLY = 16
|
TEXT_READONLY = 16
|
||||||
|
@ -3873,6 +4067,7 @@ class GuiListViewProperty(IntEnum):
|
||||||
LIST_ITEMS_SPACING = 17
|
LIST_ITEMS_SPACING = 17
|
||||||
SCROLLBAR_WIDTH = 18
|
SCROLLBAR_WIDTH = 18
|
||||||
SCROLLBAR_SIDE = 19
|
SCROLLBAR_SIDE = 19
|
||||||
|
LIST_ITEMS_BORDER_WIDTH = 20
|
||||||
|
|
||||||
class GuiColorPickerProperty(IntEnum):
|
class GuiColorPickerProperty(IntEnum):
|
||||||
COLOR_SELECTOR_SIZE = 16
|
COLOR_SELECTOR_SIZE = 16
|
||||||
|
@ -4102,15 +4297,15 @@ class GuiIconName(IntEnum):
|
||||||
ICON_FOLDER = 217
|
ICON_FOLDER = 217
|
||||||
ICON_FILE = 218
|
ICON_FILE = 218
|
||||||
ICON_SAND_TIMER = 219
|
ICON_SAND_TIMER = 219
|
||||||
ICON_220 = 220
|
ICON_WARNING = 220
|
||||||
ICON_221 = 221
|
ICON_HELP_BOX = 221
|
||||||
ICON_222 = 222
|
ICON_INFO_BOX = 222
|
||||||
ICON_223 = 223
|
ICON_PRIORITY = 223
|
||||||
ICON_224 = 224
|
ICON_LAYERS_ISO = 224
|
||||||
ICON_225 = 225
|
ICON_LAYERS2 = 225
|
||||||
ICON_226 = 226
|
ICON_MLAYERS = 226
|
||||||
ICON_227 = 227
|
ICON_MAPS = 227
|
||||||
ICON_228 = 228
|
ICON_HOT = 228
|
||||||
ICON_229 = 229
|
ICON_229 = 229
|
||||||
ICON_230 = 230
|
ICON_230 = 230
|
||||||
ICON_231 = 231
|
ICON_231 = 231
|
||||||
|
|
|
@ -12,10 +12,10 @@ ARROWS_SIZE: int
|
||||||
ARROWS_VISIBLE: int
|
ARROWS_VISIBLE: int
|
||||||
ARROW_PADDING: int
|
ARROW_PADDING: int
|
||||||
def AttachAudioMixedProcessor(processor: Any,) -> None:
|
def AttachAudioMixedProcessor(processor: Any,) -> None:
|
||||||
"""Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s"""
|
"""Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'"""
|
||||||
...
|
...
|
||||||
def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
|
def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
|
||||||
"""Attach audio stream processor to stream, receives the samples as <float>s"""
|
"""Attach audio stream processor to stream, receives the samples as 'float'"""
|
||||||
...
|
...
|
||||||
BACKGROUND_COLOR: int
|
BACKGROUND_COLOR: int
|
||||||
BASE_COLOR_DISABLED: int
|
BASE_COLOR_DISABLED: int
|
||||||
|
@ -89,6 +89,9 @@ def CheckCollisionBoxSphere(box: BoundingBox,center: Vector3,radius: float,) ->
|
||||||
def CheckCollisionBoxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
|
def CheckCollisionBoxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
|
||||||
"""Check collision between two bounding boxes"""
|
"""Check collision between two bounding boxes"""
|
||||||
...
|
...
|
||||||
|
def CheckCollisionCircleLine(center: Vector2,radius: float,p1: Vector2,p2: Vector2,) -> bool:
|
||||||
|
"""Check if circle collides with a line created betweeen two points [p1] and [p2]"""
|
||||||
|
...
|
||||||
def CheckCollisionCircleRec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
|
def CheckCollisionCircleRec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
|
||||||
"""Check collision between circle and rectangle"""
|
"""Check collision between circle and rectangle"""
|
||||||
...
|
...
|
||||||
|
@ -158,6 +161,12 @@ def ColorFromHSV(hue: float,saturation: float,value: float,) -> Color:
|
||||||
def ColorFromNormalized(normalized: Vector4,) -> Color:
|
def ColorFromNormalized(normalized: Vector4,) -> Color:
|
||||||
"""Get Color from normalized values [0..1]"""
|
"""Get Color from normalized values [0..1]"""
|
||||||
...
|
...
|
||||||
|
def ColorIsEqual(col1: Color,col2: Color,) -> bool:
|
||||||
|
"""Check if two colors are equal"""
|
||||||
|
...
|
||||||
|
def ColorLerp(color1: Color,color2: Color,factor: float,) -> Color:
|
||||||
|
"""Get color lerp interpolation between two colors, factor [0.0f..1.0f]"""
|
||||||
|
...
|
||||||
def ColorNormalize(color: Color,) -> Vector4:
|
def ColorNormalize(color: Color,) -> Vector4:
|
||||||
"""Get Color normalized as float [0..1]"""
|
"""Get Color normalized as float [0..1]"""
|
||||||
...
|
...
|
||||||
|
@ -168,7 +177,7 @@ def ColorToHSV(color: Color,) -> Vector3:
|
||||||
"""Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
|
"""Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
|
||||||
...
|
...
|
||||||
def ColorToInt(color: Color,) -> int:
|
def ColorToInt(color: Color,) -> int:
|
||||||
"""Get hexadecimal value for a Color"""
|
"""Get hexadecimal value for a Color (0xRRGGBBAA)"""
|
||||||
...
|
...
|
||||||
def CompressData(data: str,dataSize: int,compDataSize: Any,) -> str:
|
def CompressData(data: str,dataSize: int,compDataSize: Any,) -> str:
|
||||||
"""Compress data (DEFLATE algorithm), memory must be MemFree()"""
|
"""Compress data (DEFLATE algorithm), memory must be MemFree()"""
|
||||||
|
@ -184,7 +193,9 @@ def CreatePhysicsBodyRectangle(pos: Vector2,width: float,height: float,density:
|
||||||
...
|
...
|
||||||
DEFAULT: int
|
DEFAULT: int
|
||||||
DROPDOWNBOX: int
|
DROPDOWNBOX: int
|
||||||
|
DROPDOWN_ARROW_HIDDEN: int
|
||||||
DROPDOWN_ITEMS_SPACING: int
|
DROPDOWN_ITEMS_SPACING: int
|
||||||
|
DROPDOWN_ROLL_UP: int
|
||||||
def DecodeDataBase64(data: str,outputSize: Any,) -> str:
|
def DecodeDataBase64(data: str,outputSize: Any,) -> str:
|
||||||
"""Decode Base64 string data, memory must be MemFree()"""
|
"""Decode Base64 string data, memory must be MemFree()"""
|
||||||
...
|
...
|
||||||
|
@ -209,7 +220,7 @@ def DisableCursor() -> None:
|
||||||
def DisableEventWaiting() -> None:
|
def DisableEventWaiting() -> None:
|
||||||
"""Disable waiting for events on EndDrawing(), automatic events polling"""
|
"""Disable waiting for events on EndDrawing(), automatic events polling"""
|
||||||
...
|
...
|
||||||
def DrawBillboard(camera: Camera3D,texture: Texture,position: Vector3,size: float,tint: Color,) -> None:
|
def DrawBillboard(camera: Camera3D,texture: Texture,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
"""Draw a billboard texture"""
|
"""Draw a billboard texture"""
|
||||||
...
|
...
|
||||||
def DrawBillboardPro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
|
def DrawBillboardPro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
|
||||||
|
@ -233,7 +244,7 @@ def DrawCircle(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
||||||
def DrawCircle3D(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
|
def DrawCircle3D(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
|
||||||
"""Draw a circle in 3D world space"""
|
"""Draw a circle in 3D world space"""
|
||||||
...
|
...
|
||||||
def DrawCircleGradient(centerX: int,centerY: int,radius: float,color1: Color,color2: Color,) -> None:
|
def DrawCircleGradient(centerX: int,centerY: int,radius: float,inner: Color,outer: Color,) -> None:
|
||||||
"""Draw a gradient-filled circle"""
|
"""Draw a gradient-filled circle"""
|
||||||
...
|
...
|
||||||
def DrawCircleLines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
def DrawCircleLines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
|
||||||
|
@ -317,6 +328,12 @@ def DrawModel(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
def DrawModelEx(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
def DrawModelEx(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
||||||
"""Draw a model with extended parameters"""
|
"""Draw a model with extended parameters"""
|
||||||
...
|
...
|
||||||
|
def DrawModelPoints(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
|
"""Draw a model as points"""
|
||||||
|
...
|
||||||
|
def DrawModelPointsEx(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
|
||||||
|
"""Draw a model as points with extended parameters"""
|
||||||
|
...
|
||||||
def DrawModelWires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
def DrawModelWires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
|
||||||
"""Draw a model wires (with texture if set)"""
|
"""Draw a model wires (with texture if set)"""
|
||||||
...
|
...
|
||||||
|
@ -324,10 +341,10 @@ def DrawModelWiresEx(model: Model,position: Vector3,rotationAxis: Vector3,rotati
|
||||||
"""Draw a model wires (with texture if set) with extended parameters"""
|
"""Draw a model wires (with texture if set) with extended parameters"""
|
||||||
...
|
...
|
||||||
def DrawPixel(posX: int,posY: int,color: Color,) -> None:
|
def DrawPixel(posX: int,posY: int,color: Color,) -> None:
|
||||||
"""Draw a pixel"""
|
"""Draw a pixel using geometry [Can be slow, use with care]"""
|
||||||
...
|
...
|
||||||
def DrawPixelV(position: Vector2,color: Color,) -> None:
|
def DrawPixelV(position: Vector2,color: Color,) -> None:
|
||||||
"""Draw a pixel (Vector version)"""
|
"""Draw a pixel using geometry (Vector version) [Can be slow, use with care]"""
|
||||||
...
|
...
|
||||||
def DrawPlane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
|
def DrawPlane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
|
||||||
"""Draw a plane XZ"""
|
"""Draw a plane XZ"""
|
||||||
|
@ -350,13 +367,13 @@ def DrawRay(ray: Ray,color: Color,) -> None:
|
||||||
def DrawRectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
def DrawRectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
||||||
"""Draw a color-filled rectangle"""
|
"""Draw a color-filled rectangle"""
|
||||||
...
|
...
|
||||||
def DrawRectangleGradientEx(rec: Rectangle,col1: Color,col2: Color,col3: Color,col4: Color,) -> None:
|
def DrawRectangleGradientEx(rec: Rectangle,topLeft: Color,bottomLeft: Color,topRight: Color,bottomRight: Color,) -> None:
|
||||||
"""Draw a gradient-filled rectangle with custom vertex colors"""
|
"""Draw a gradient-filled rectangle with custom vertex colors"""
|
||||||
...
|
...
|
||||||
def DrawRectangleGradientH(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
|
def DrawRectangleGradientH(posX: int,posY: int,width: int,height: int,left: Color,right: Color,) -> None:
|
||||||
"""Draw a horizontal-gradient-filled rectangle"""
|
"""Draw a horizontal-gradient-filled rectangle"""
|
||||||
...
|
...
|
||||||
def DrawRectangleGradientV(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
|
def DrawRectangleGradientV(posX: int,posY: int,width: int,height: int,top: Color,bottom: Color,) -> None:
|
||||||
"""Draw a vertical-gradient-filled rectangle"""
|
"""Draw a vertical-gradient-filled rectangle"""
|
||||||
...
|
...
|
||||||
def DrawRectangleLines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
def DrawRectangleLines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
|
||||||
|
@ -374,7 +391,10 @@ def DrawRectangleRec(rec: Rectangle,color: Color,) -> None:
|
||||||
def DrawRectangleRounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
def DrawRectangleRounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
||||||
"""Draw rectangle with rounded edges"""
|
"""Draw rectangle with rounded edges"""
|
||||||
...
|
...
|
||||||
def DrawRectangleRoundedLines(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
|
def DrawRectangleRoundedLines(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
|
||||||
|
"""Draw rectangle lines with rounded edges"""
|
||||||
|
...
|
||||||
|
def DrawRectangleRoundedLinesEx(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
|
||||||
"""Draw rectangle with rounded edges outline"""
|
"""Draw rectangle with rounded edges outline"""
|
||||||
...
|
...
|
||||||
def DrawRectangleV(position: Vector2,size: Vector2,color: Color,) -> None:
|
def DrawRectangleV(position: Vector2,size: Vector2,color: Color,) -> None:
|
||||||
|
@ -530,6 +550,9 @@ def ExportImageToMemory(image: Image,fileType: str,fileSize: Any,) -> str:
|
||||||
def ExportMesh(mesh: Mesh,fileName: str,) -> bool:
|
def ExportMesh(mesh: Mesh,fileName: str,) -> bool:
|
||||||
"""Export mesh data to file, returns true on success"""
|
"""Export mesh data to file, returns true on success"""
|
||||||
...
|
...
|
||||||
|
def ExportMeshAsCode(mesh: Mesh,fileName: str,) -> bool:
|
||||||
|
"""Export mesh as code file (.h) defining multiple arrays of vertex attributes"""
|
||||||
|
...
|
||||||
def ExportWave(wave: Wave,fileName: str,) -> bool:
|
def ExportWave(wave: Wave,fileName: str,) -> bool:
|
||||||
"""Export wave data to file, returns true on success"""
|
"""Export wave data to file, returns true on success"""
|
||||||
...
|
...
|
||||||
|
@ -819,9 +842,6 @@ def GetMouseDelta() -> Vector2:
|
||||||
def GetMousePosition() -> Vector2:
|
def GetMousePosition() -> Vector2:
|
||||||
"""Get mouse position XY"""
|
"""Get mouse position XY"""
|
||||||
...
|
...
|
||||||
def GetMouseRay(mousePosition: Vector2,camera: Camera3D,) -> Ray:
|
|
||||||
"""Get a ray trace from mouse position"""
|
|
||||||
...
|
|
||||||
def GetMouseWheelMove() -> float:
|
def GetMouseWheelMove() -> float:
|
||||||
"""Get mouse wheel movement for X or Y, whichever is larger"""
|
"""Get mouse wheel movement for X or Y, whichever is larger"""
|
||||||
...
|
...
|
||||||
|
@ -894,6 +914,12 @@ def GetScreenHeight() -> int:
|
||||||
def GetScreenToWorld2D(position: Vector2,camera: Camera2D,) -> Vector2:
|
def GetScreenToWorld2D(position: Vector2,camera: Camera2D,) -> Vector2:
|
||||||
"""Get the world space position for a 2d camera screen space position"""
|
"""Get the world space position for a 2d camera screen space position"""
|
||||||
...
|
...
|
||||||
|
def GetScreenToWorldRay(position: Vector2,camera: Camera3D,) -> Ray:
|
||||||
|
"""Get a ray trace from screen position (i.e mouse)"""
|
||||||
|
...
|
||||||
|
def GetScreenToWorldRayEx(position: Vector2,camera: Camera3D,width: int,height: int,) -> Ray:
|
||||||
|
"""Get a ray trace from screen position (i.e mouse) in a viewport"""
|
||||||
|
...
|
||||||
def GetScreenWidth() -> int:
|
def GetScreenWidth() -> int:
|
||||||
"""Get current screen width"""
|
"""Get current screen width"""
|
||||||
...
|
...
|
||||||
|
@ -903,6 +929,12 @@ def GetShaderLocation(shader: Shader,uniformName: str,) -> int:
|
||||||
def GetShaderLocationAttrib(shader: Shader,attribName: str,) -> int:
|
def GetShaderLocationAttrib(shader: Shader,attribName: str,) -> int:
|
||||||
"""Get shader attribute location"""
|
"""Get shader attribute location"""
|
||||||
...
|
...
|
||||||
|
def GetShapesTexture() -> Texture:
|
||||||
|
"""Get texture that is used for shapes drawing"""
|
||||||
|
...
|
||||||
|
def GetShapesTextureRectangle() -> Rectangle:
|
||||||
|
"""Get texture source rectangle that is used for shapes drawing"""
|
||||||
|
...
|
||||||
def GetSplinePointBasis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
|
def GetSplinePointBasis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
|
||||||
"""Get (evaluate) spline point: B-Spline"""
|
"""Get (evaluate) spline point: B-Spline"""
|
||||||
...
|
...
|
||||||
|
@ -973,7 +1005,7 @@ def GuiColorPanel(bounds: Rectangle,text: str,color: Any,) -> int:
|
||||||
"""Color Panel control"""
|
"""Color Panel control"""
|
||||||
...
|
...
|
||||||
def GuiColorPanelHSV(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
def GuiColorPanelHSV(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
||||||
"""Color Panel control that returns HSV color value, used by GuiColorPickerHSV()"""
|
"""Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()"""
|
||||||
...
|
...
|
||||||
def GuiColorPicker(bounds: Rectangle,text: str,color: Any,) -> int:
|
def GuiColorPicker(bounds: Rectangle,text: str,color: Any,) -> int:
|
||||||
"""Color Picker control (multiple color controls)"""
|
"""Color Picker control (multiple color controls)"""
|
||||||
|
@ -982,7 +1014,7 @@ def GuiColorPickerHSV(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
|
||||||
"""Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
|
"""Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
|
||||||
...
|
...
|
||||||
def GuiComboBox(bounds: Rectangle,text: str,active: Any,) -> int:
|
def GuiComboBox(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Combo Box control, returns selected item index"""
|
"""Combo Box control"""
|
||||||
...
|
...
|
||||||
def GuiDisable() -> None:
|
def GuiDisable() -> None:
|
||||||
"""Disable gui controls (global state)"""
|
"""Disable gui controls (global state)"""
|
||||||
|
@ -994,7 +1026,7 @@ def GuiDrawIcon(iconId: int,posX: int,posY: int,pixelSize: int,color: Color,) ->
|
||||||
"""Draw icon using pixel size at specified position"""
|
"""Draw icon using pixel size at specified position"""
|
||||||
...
|
...
|
||||||
def GuiDropdownBox(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
|
def GuiDropdownBox(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
|
||||||
"""Dropdown Box control, returns selected item"""
|
"""Dropdown Box control"""
|
||||||
...
|
...
|
||||||
def GuiDummyRec(bounds: Rectangle,text: str,) -> int:
|
def GuiDummyRec(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Dummy control for placeholders"""
|
"""Dummy control for placeholders"""
|
||||||
|
@ -1018,7 +1050,7 @@ def GuiGetStyle(control: int,property: int,) -> int:
|
||||||
"""Get one style property"""
|
"""Get one style property"""
|
||||||
...
|
...
|
||||||
def GuiGrid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
|
def GuiGrid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
|
||||||
"""Grid control, returns mouse cell position"""
|
"""Grid control"""
|
||||||
...
|
...
|
||||||
def GuiGroupBox(bounds: Rectangle,text: str,) -> int:
|
def GuiGroupBox(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Group Box control with text name"""
|
"""Group Box control with text name"""
|
||||||
|
@ -1030,16 +1062,16 @@ def GuiIsLocked() -> bool:
|
||||||
"""Check if gui is locked (global state)"""
|
"""Check if gui is locked (global state)"""
|
||||||
...
|
...
|
||||||
def GuiLabel(bounds: Rectangle,text: str,) -> int:
|
def GuiLabel(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Label control, shows text"""
|
"""Label control"""
|
||||||
...
|
...
|
||||||
def GuiLabelButton(bounds: Rectangle,text: str,) -> int:
|
def GuiLabelButton(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Label button control, show true when clicked"""
|
"""Label button control, returns true when clicked"""
|
||||||
...
|
...
|
||||||
def GuiLine(bounds: Rectangle,text: str,) -> int:
|
def GuiLine(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Line separator control, could contain text"""
|
"""Line separator control, could contain text"""
|
||||||
...
|
...
|
||||||
def GuiListView(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
|
def GuiListView(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
|
||||||
"""List View control, returns selected list item index"""
|
"""List View control"""
|
||||||
...
|
...
|
||||||
def GuiListViewEx(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
|
def GuiListViewEx(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
|
||||||
"""List View with extended parameters"""
|
"""List View with extended parameters"""
|
||||||
|
@ -1063,7 +1095,7 @@ def GuiPanel(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Panel control, useful to group controls"""
|
"""Panel control, useful to group controls"""
|
||||||
...
|
...
|
||||||
def GuiProgressBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def GuiProgressBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Progress Bar control, shows current progress value"""
|
"""Progress Bar control"""
|
||||||
...
|
...
|
||||||
def GuiScrollPanel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
|
def GuiScrollPanel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
|
||||||
"""Scroll Panel control"""
|
"""Scroll Panel control"""
|
||||||
|
@ -1087,13 +1119,13 @@ def GuiSetTooltip(tooltip: str,) -> None:
|
||||||
"""Set tooltip string"""
|
"""Set tooltip string"""
|
||||||
...
|
...
|
||||||
def GuiSlider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def GuiSlider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Slider control, returns selected value"""
|
"""Slider control"""
|
||||||
...
|
...
|
||||||
def GuiSliderBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
def GuiSliderBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
|
||||||
"""Slider Bar control, returns selected value"""
|
"""Slider Bar control"""
|
||||||
...
|
...
|
||||||
def GuiSpinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
def GuiSpinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
||||||
"""Spinner control, returns selected value"""
|
"""Spinner control"""
|
||||||
...
|
...
|
||||||
def GuiStatusBar(bounds: Rectangle,text: str,) -> int:
|
def GuiStatusBar(bounds: Rectangle,text: str,) -> int:
|
||||||
"""Status Bar control, shows info text"""
|
"""Status Bar control, shows info text"""
|
||||||
|
@ -1108,13 +1140,13 @@ def GuiTextInputBox(bounds: Rectangle,title: str,message: str,buttons: str,text:
|
||||||
"""Text Input Box control, ask for text, supports secret"""
|
"""Text Input Box control, ask for text, supports secret"""
|
||||||
...
|
...
|
||||||
def GuiToggle(bounds: Rectangle,text: str,active: Any,) -> int:
|
def GuiToggle(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Button control, returns true when active"""
|
"""Toggle Button control"""
|
||||||
...
|
...
|
||||||
def GuiToggleGroup(bounds: Rectangle,text: str,active: Any,) -> int:
|
def GuiToggleGroup(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Group control, returns active toggle index"""
|
"""Toggle Group control"""
|
||||||
...
|
...
|
||||||
def GuiToggleSlider(bounds: Rectangle,text: str,active: Any,) -> int:
|
def GuiToggleSlider(bounds: Rectangle,text: str,active: Any,) -> int:
|
||||||
"""Toggle Slider control, returns true when clicked"""
|
"""Toggle Slider control"""
|
||||||
...
|
...
|
||||||
def GuiUnlock() -> None:
|
def GuiUnlock() -> None:
|
||||||
"""Unlock gui controls (global state)"""
|
"""Unlock gui controls (global state)"""
|
||||||
|
@ -1122,6 +1154,9 @@ def GuiUnlock() -> None:
|
||||||
def GuiValueBox(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
def GuiValueBox(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
|
||||||
"""Value Box control, updates input text with numbers"""
|
"""Value Box control, updates input text with numbers"""
|
||||||
...
|
...
|
||||||
|
def GuiValueBoxFloat(bounds: Rectangle,text: str,textValue: str,value: Any,editMode: bool,) -> int:
|
||||||
|
"""Value box control for float values"""
|
||||||
|
...
|
||||||
def GuiWindowBox(bounds: Rectangle,title: str,) -> int:
|
def GuiWindowBox(bounds: Rectangle,title: str,) -> int:
|
||||||
"""Window Box control, shows a window that can be closed"""
|
"""Window Box control, shows a window that can be closed"""
|
||||||
...
|
...
|
||||||
|
@ -1133,15 +1168,6 @@ def HideCursor() -> None:
|
||||||
"""Hides cursor"""
|
"""Hides cursor"""
|
||||||
...
|
...
|
||||||
ICON_1UP: int
|
ICON_1UP: int
|
||||||
ICON_220: int
|
|
||||||
ICON_221: int
|
|
||||||
ICON_222: int
|
|
||||||
ICON_223: int
|
|
||||||
ICON_224: int
|
|
||||||
ICON_225: int
|
|
||||||
ICON_226: int
|
|
||||||
ICON_227: int
|
|
||||||
ICON_228: int
|
|
||||||
ICON_229: int
|
ICON_229: int
|
||||||
ICON_230: int
|
ICON_230: int
|
||||||
ICON_231: int
|
ICON_231: int
|
||||||
|
@ -1287,13 +1313,18 @@ ICON_GRID_FILL: int
|
||||||
ICON_HAND_POINTER: int
|
ICON_HAND_POINTER: int
|
||||||
ICON_HEART: int
|
ICON_HEART: int
|
||||||
ICON_HELP: int
|
ICON_HELP: int
|
||||||
|
ICON_HELP_BOX: int
|
||||||
ICON_HEX: int
|
ICON_HEX: int
|
||||||
ICON_HIDPI: int
|
ICON_HIDPI: int
|
||||||
|
ICON_HOT: int
|
||||||
ICON_HOUSE: int
|
ICON_HOUSE: int
|
||||||
ICON_INFO: int
|
ICON_INFO: int
|
||||||
|
ICON_INFO_BOX: int
|
||||||
ICON_KEY: int
|
ICON_KEY: int
|
||||||
ICON_LASER: int
|
ICON_LASER: int
|
||||||
ICON_LAYERS: int
|
ICON_LAYERS: int
|
||||||
|
ICON_LAYERS2: int
|
||||||
|
ICON_LAYERS_ISO: int
|
||||||
ICON_LAYERS_VISIBLE: int
|
ICON_LAYERS_VISIBLE: int
|
||||||
ICON_LENS: int
|
ICON_LENS: int
|
||||||
ICON_LENS_BIG: int
|
ICON_LENS_BIG: int
|
||||||
|
@ -1307,7 +1338,9 @@ ICON_LOCK_CLOSE: int
|
||||||
ICON_LOCK_OPEN: int
|
ICON_LOCK_OPEN: int
|
||||||
ICON_MAGNET: int
|
ICON_MAGNET: int
|
||||||
ICON_MAILBOX: int
|
ICON_MAILBOX: int
|
||||||
|
ICON_MAPS: int
|
||||||
ICON_MIPMAPS: int
|
ICON_MIPMAPS: int
|
||||||
|
ICON_MLAYERS: int
|
||||||
ICON_MODE_2D: int
|
ICON_MODE_2D: int
|
||||||
ICON_MODE_3D: int
|
ICON_MODE_3D: int
|
||||||
ICON_MONITOR: int
|
ICON_MONITOR: int
|
||||||
|
@ -1331,6 +1364,7 @@ ICON_PLAYER_RECORD: int
|
||||||
ICON_PLAYER_STOP: int
|
ICON_PLAYER_STOP: int
|
||||||
ICON_POT: int
|
ICON_POT: int
|
||||||
ICON_PRINTER: int
|
ICON_PRINTER: int
|
||||||
|
ICON_PRIORITY: int
|
||||||
ICON_REDO: int
|
ICON_REDO: int
|
||||||
ICON_REDO_FILL: int
|
ICON_REDO_FILL: int
|
||||||
ICON_REG_EXP: int
|
ICON_REG_EXP: int
|
||||||
|
@ -1377,6 +1411,7 @@ ICON_UNDO: int
|
||||||
ICON_UNDO_FILL: int
|
ICON_UNDO_FILL: int
|
||||||
ICON_VERTICAL_BARS: int
|
ICON_VERTICAL_BARS: int
|
||||||
ICON_VERTICAL_BARS_FILL: int
|
ICON_VERTICAL_BARS_FILL: int
|
||||||
|
ICON_WARNING: int
|
||||||
ICON_WATER_DROP: int
|
ICON_WATER_DROP: int
|
||||||
ICON_WAVE: int
|
ICON_WAVE: int
|
||||||
ICON_WAVE_SINUS: int
|
ICON_WAVE_SINUS: int
|
||||||
|
@ -1451,6 +1486,9 @@ def ImageDrawCircleV(dst: Any,center: Vector2,radius: int,color: Color,) -> None
|
||||||
def ImageDrawLine(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
|
def ImageDrawLine(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
|
||||||
"""Draw line within an image"""
|
"""Draw line within an image"""
|
||||||
...
|
...
|
||||||
|
def ImageDrawLineEx(dst: Any,start: Vector2,end: Vector2,thick: int,color: Color,) -> None:
|
||||||
|
"""Draw a line defining thickness within an image"""
|
||||||
|
...
|
||||||
def ImageDrawLineV(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
|
def ImageDrawLineV(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
|
||||||
"""Draw line within an image (Vector version)"""
|
"""Draw line within an image (Vector version)"""
|
||||||
...
|
...
|
||||||
|
@ -1478,6 +1516,21 @@ def ImageDrawText(dst: Any,text: str,posX: int,posY: int,fontSize: int,color: Co
|
||||||
def ImageDrawTextEx(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
|
def ImageDrawTextEx(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
|
||||||
"""Draw text (custom sprite font) within an image (destination)"""
|
"""Draw text (custom sprite font) within an image (destination)"""
|
||||||
...
|
...
|
||||||
|
def ImageDrawTriangle(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
|
||||||
|
"""Draw triangle within an image"""
|
||||||
|
...
|
||||||
|
def ImageDrawTriangleEx(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,c1: Color,c2: Color,c3: Color,) -> None:
|
||||||
|
"""Draw triangle with interpolated colors within an image"""
|
||||||
|
...
|
||||||
|
def ImageDrawTriangleFan(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
|
||||||
|
"""Draw a triangle fan defined by points within an image (first vertex is the center)"""
|
||||||
|
...
|
||||||
|
def ImageDrawTriangleLines(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
|
||||||
|
"""Draw triangle outline within an image"""
|
||||||
|
...
|
||||||
|
def ImageDrawTriangleStrip(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
|
||||||
|
"""Draw a triangle strip defined by points within an image"""
|
||||||
|
...
|
||||||
def ImageFlipHorizontal(image: Any,) -> None:
|
def ImageFlipHorizontal(image: Any,) -> None:
|
||||||
"""Flip image horizontally"""
|
"""Flip image horizontally"""
|
||||||
...
|
...
|
||||||
|
@ -1487,9 +1540,15 @@ def ImageFlipVertical(image: Any,) -> None:
|
||||||
def ImageFormat(image: Any,newFormat: int,) -> None:
|
def ImageFormat(image: Any,newFormat: int,) -> None:
|
||||||
"""Convert image data to desired format"""
|
"""Convert image data to desired format"""
|
||||||
...
|
...
|
||||||
|
def ImageFromChannel(image: Image,selectedChannel: int,) -> Image:
|
||||||
|
"""Create an image from a selected channel of another image (GRAYSCALE)"""
|
||||||
|
...
|
||||||
def ImageFromImage(image: Image,rec: Rectangle,) -> Image:
|
def ImageFromImage(image: Image,rec: Rectangle,) -> Image:
|
||||||
"""Create an image from another image piece"""
|
"""Create an image from another image piece"""
|
||||||
...
|
...
|
||||||
|
def ImageKernelConvolution(image: Any,kernel: Any,kernelSize: int,) -> None:
|
||||||
|
"""Apply custom square convolution kernel to image"""
|
||||||
|
...
|
||||||
def ImageMipmaps(image: Any,) -> None:
|
def ImageMipmaps(image: Any,) -> None:
|
||||||
"""Compute all mipmap levels for a provided image"""
|
"""Compute all mipmap levels for a provided image"""
|
||||||
...
|
...
|
||||||
|
@ -1553,6 +1612,9 @@ def IsFileDropped() -> bool:
|
||||||
def IsFileExtension(fileName: str,ext: str,) -> bool:
|
def IsFileExtension(fileName: str,ext: str,) -> bool:
|
||||||
"""Check file extension (including point: .png, .wav)"""
|
"""Check file extension (including point: .png, .wav)"""
|
||||||
...
|
...
|
||||||
|
def IsFileNameValid(fileName: str,) -> bool:
|
||||||
|
"""Check if fileName is valid for the platform/OS"""
|
||||||
|
...
|
||||||
def IsFontReady(font: Font,) -> bool:
|
def IsFontReady(font: Font,) -> bool:
|
||||||
"""Check if a font is ready"""
|
"""Check if a font is ready"""
|
||||||
...
|
...
|
||||||
|
@ -1777,6 +1839,7 @@ KEY_ZERO: int
|
||||||
LABEL: int
|
LABEL: int
|
||||||
LINE_COLOR: int
|
LINE_COLOR: int
|
||||||
LISTVIEW: int
|
LISTVIEW: int
|
||||||
|
LIST_ITEMS_BORDER_WIDTH: int
|
||||||
LIST_ITEMS_HEIGHT: int
|
LIST_ITEMS_HEIGHT: int
|
||||||
LIST_ITEMS_SPACING: int
|
LIST_ITEMS_SPACING: int
|
||||||
LOG_ALL: int
|
LOG_ALL: int
|
||||||
|
@ -1803,7 +1866,7 @@ def LoadDirectoryFiles(dirPath: str,) -> FilePathList:
|
||||||
"""Load directory filepaths"""
|
"""Load directory filepaths"""
|
||||||
...
|
...
|
||||||
def LoadDirectoryFilesEx(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
|
def LoadDirectoryFilesEx(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
|
||||||
"""Load directory filepaths with extension filtering and recursive directory scan"""
|
"""Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result"""
|
||||||
...
|
...
|
||||||
def LoadDroppedFiles() -> FilePathList:
|
def LoadDroppedFiles() -> FilePathList:
|
||||||
"""Load dropped filepaths"""
|
"""Load dropped filepaths"""
|
||||||
|
@ -1821,7 +1884,7 @@ def LoadFontData(fileData: str,dataSize: int,fontSize: int,codepoints: Any,codep
|
||||||
"""Load font data for further use"""
|
"""Load font data for further use"""
|
||||||
...
|
...
|
||||||
def LoadFontEx(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
|
def LoadFontEx(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
|
||||||
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont"""
|
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height"""
|
||||||
...
|
...
|
||||||
def LoadFontFromImage(image: Image,key: Color,firstChar: int,) -> Font:
|
def LoadFontFromImage(image: Image,key: Color,firstChar: int,) -> Font:
|
||||||
"""Load font from Image (XNA style)"""
|
"""Load font from Image (XNA style)"""
|
||||||
|
@ -1835,6 +1898,9 @@ def LoadImage(fileName: str,) -> Image:
|
||||||
def LoadImageAnim(fileName: str,frames: Any,) -> Image:
|
def LoadImageAnim(fileName: str,frames: Any,) -> Image:
|
||||||
"""Load image sequence from file (frames appended to image.data)"""
|
"""Load image sequence from file (frames appended to image.data)"""
|
||||||
...
|
...
|
||||||
|
def LoadImageAnimFromMemory(fileType: str,fileData: str,dataSize: int,frames: Any,) -> Image:
|
||||||
|
"""Load image sequence from memory buffer"""
|
||||||
|
...
|
||||||
def LoadImageColors(image: Image,) -> Any:
|
def LoadImageColors(image: Image,) -> Any:
|
||||||
"""Load color data from image as a Color array (RGBA - 32bit)"""
|
"""Load color data from image as a Color array (RGBA - 32bit)"""
|
||||||
...
|
...
|
||||||
|
@ -1853,9 +1919,6 @@ def LoadImagePalette(image: Image,maxPaletteSize: int,colorCount: Any,) -> Any:
|
||||||
def LoadImageRaw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
|
def LoadImageRaw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
|
||||||
"""Load image from RAW file data"""
|
"""Load image from RAW file data"""
|
||||||
...
|
...
|
||||||
def LoadImageSvg(fileNameOrString: str,width: int,height: int,) -> Image:
|
|
||||||
"""Load image from SVG file data or string with specified size"""
|
|
||||||
...
|
|
||||||
def LoadMaterialDefault() -> Material:
|
def LoadMaterialDefault() -> Material:
|
||||||
"""Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
|
"""Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
|
||||||
...
|
...
|
||||||
|
@ -1951,13 +2014,19 @@ MOUSE_CURSOR_RESIZE_EW: int
|
||||||
MOUSE_CURSOR_RESIZE_NESW: int
|
MOUSE_CURSOR_RESIZE_NESW: int
|
||||||
MOUSE_CURSOR_RESIZE_NS: int
|
MOUSE_CURSOR_RESIZE_NS: int
|
||||||
MOUSE_CURSOR_RESIZE_NWSE: int
|
MOUSE_CURSOR_RESIZE_NWSE: int
|
||||||
|
def MakeDirectory(dirPath: str,) -> int:
|
||||||
|
"""Create directories (including full path requested), returns 0 on success"""
|
||||||
|
...
|
||||||
def MatrixAdd(left: Matrix,right: Matrix,) -> Matrix:
|
def MatrixAdd(left: Matrix,right: Matrix,) -> Matrix:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def MatrixDecompose(mat: Matrix,translation: Any,rotation: Any,scale: Any,) -> None:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def MatrixDeterminant(mat: Matrix,) -> float:
|
def MatrixDeterminant(mat: Matrix,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
def MatrixFrustum(left: float,right: float,bottom: float,top: float,near: float,far: float,) -> Matrix:
|
def MatrixFrustum(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
def MatrixIdentity() -> Matrix:
|
def MatrixIdentity() -> Matrix:
|
||||||
|
@ -2111,6 +2180,9 @@ def QuaternionAdd(q1: Vector4,q2: Vector4,) -> Vector4:
|
||||||
def QuaternionAddValue(q: Vector4,add: float,) -> Vector4:
|
def QuaternionAddValue(q: Vector4,add: float,) -> Vector4:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def QuaternionCubicHermiteSpline(q1: Vector4,outTangent1: Vector4,q2: Vector4,inTangent2: Vector4,t: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def QuaternionDivide(q1: Vector4,q2: Vector4,) -> Vector4:
|
def QuaternionDivide(q1: Vector4,q2: Vector4,) -> Vector4:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2276,6 +2348,10 @@ RL_SHADER_UNIFORM_IVEC2: int
|
||||||
RL_SHADER_UNIFORM_IVEC3: int
|
RL_SHADER_UNIFORM_IVEC3: int
|
||||||
RL_SHADER_UNIFORM_IVEC4: int
|
RL_SHADER_UNIFORM_IVEC4: int
|
||||||
RL_SHADER_UNIFORM_SAMPLER2D: int
|
RL_SHADER_UNIFORM_SAMPLER2D: int
|
||||||
|
RL_SHADER_UNIFORM_UINT: int
|
||||||
|
RL_SHADER_UNIFORM_UIVEC2: int
|
||||||
|
RL_SHADER_UNIFORM_UIVEC3: int
|
||||||
|
RL_SHADER_UNIFORM_UIVEC4: int
|
||||||
RL_SHADER_UNIFORM_VEC2: int
|
RL_SHADER_UNIFORM_VEC2: int
|
||||||
RL_SHADER_UNIFORM_VEC3: int
|
RL_SHADER_UNIFORM_VEC3: int
|
||||||
RL_SHADER_UNIFORM_VEC4: int
|
RL_SHADER_UNIFORM_VEC4: int
|
||||||
|
@ -2314,6 +2390,7 @@ SHADER_ATTRIB_FLOAT: int
|
||||||
SHADER_ATTRIB_VEC2: int
|
SHADER_ATTRIB_VEC2: int
|
||||||
SHADER_ATTRIB_VEC3: int
|
SHADER_ATTRIB_VEC3: int
|
||||||
SHADER_ATTRIB_VEC4: int
|
SHADER_ATTRIB_VEC4: int
|
||||||
|
SHADER_LOC_BONE_MATRICES: int
|
||||||
SHADER_LOC_COLOR_AMBIENT: int
|
SHADER_LOC_COLOR_AMBIENT: int
|
||||||
SHADER_LOC_COLOR_DIFFUSE: int
|
SHADER_LOC_COLOR_DIFFUSE: int
|
||||||
SHADER_LOC_COLOR_SPECULAR: int
|
SHADER_LOC_COLOR_SPECULAR: int
|
||||||
|
@ -2334,6 +2411,8 @@ SHADER_LOC_MATRIX_NORMAL: int
|
||||||
SHADER_LOC_MATRIX_PROJECTION: int
|
SHADER_LOC_MATRIX_PROJECTION: int
|
||||||
SHADER_LOC_MATRIX_VIEW: int
|
SHADER_LOC_MATRIX_VIEW: int
|
||||||
SHADER_LOC_VECTOR_VIEW: int
|
SHADER_LOC_VECTOR_VIEW: int
|
||||||
|
SHADER_LOC_VERTEX_BONEIDS: int
|
||||||
|
SHADER_LOC_VERTEX_BONEWEIGHTS: int
|
||||||
SHADER_LOC_VERTEX_COLOR: int
|
SHADER_LOC_VERTEX_COLOR: int
|
||||||
SHADER_LOC_VERTEX_NORMAL: int
|
SHADER_LOC_VERTEX_NORMAL: int
|
||||||
SHADER_LOC_VERTEX_POSITION: int
|
SHADER_LOC_VERTEX_POSITION: int
|
||||||
|
@ -2402,6 +2481,9 @@ def SetExitKey(key: int,) -> None:
|
||||||
def SetGamepadMappings(mappings: str,) -> int:
|
def SetGamepadMappings(mappings: str,) -> int:
|
||||||
"""Set internal gamepad mappings (SDL_GameControllerDB)"""
|
"""Set internal gamepad mappings (SDL_GameControllerDB)"""
|
||||||
...
|
...
|
||||||
|
def SetGamepadVibration(gamepad: int,leftMotor: float,rightMotor: float,) -> None:
|
||||||
|
"""Set gamepad vibration for both motors"""
|
||||||
|
...
|
||||||
def SetGesturesEnabled(flags: int,) -> None:
|
def SetGesturesEnabled(flags: int,) -> None:
|
||||||
"""Enable a set of gestures using flags"""
|
"""Enable a set of gestures using flags"""
|
||||||
...
|
...
|
||||||
|
@ -2627,6 +2709,12 @@ def TextSplit(text: str,delimiter: str,count: Any,) -> list[str]:
|
||||||
def TextSubtext(text: str,position: int,length: int,) -> str:
|
def TextSubtext(text: str,position: int,length: int,) -> str:
|
||||||
"""Get a piece of a text string"""
|
"""Get a piece of a text string"""
|
||||||
...
|
...
|
||||||
|
def TextToCamel(text: str,) -> str:
|
||||||
|
"""Get Camel case notation version of provided string"""
|
||||||
|
...
|
||||||
|
def TextToFloat(text: str,) -> float:
|
||||||
|
"""Get float value from text (negative values not supported)"""
|
||||||
|
...
|
||||||
def TextToInteger(text: str,) -> int:
|
def TextToInteger(text: str,) -> int:
|
||||||
"""Get integer value from text (negative values not supported)"""
|
"""Get integer value from text (negative values not supported)"""
|
||||||
...
|
...
|
||||||
|
@ -2636,14 +2724,17 @@ def TextToLower(text: str,) -> str:
|
||||||
def TextToPascal(text: str,) -> str:
|
def TextToPascal(text: str,) -> str:
|
||||||
"""Get Pascal case notation version of provided string"""
|
"""Get Pascal case notation version of provided string"""
|
||||||
...
|
...
|
||||||
|
def TextToSnake(text: str,) -> str:
|
||||||
|
"""Get Snake case notation version of provided string"""
|
||||||
|
...
|
||||||
def TextToUpper(text: str,) -> str:
|
def TextToUpper(text: str,) -> str:
|
||||||
"""Get upper case version of provided string"""
|
"""Get upper case version of provided string"""
|
||||||
...
|
...
|
||||||
def ToggleBorderlessWindowed() -> None:
|
def ToggleBorderlessWindowed() -> None:
|
||||||
"""Toggle window state: borderless windowed (only PLATFORM_DESKTOP)"""
|
"""Toggle window state: borderless windowed [resizes window to match monitor resolution] (only PLATFORM_DESKTOP)"""
|
||||||
...
|
...
|
||||||
def ToggleFullscreen() -> None:
|
def ToggleFullscreen() -> None:
|
||||||
"""Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)"""
|
"""Toggle window state: fullscreen/windowed [resizes monitor to match window resolution] (only PLATFORM_DESKTOP)"""
|
||||||
...
|
...
|
||||||
def TraceLog(*args) -> None:
|
def TraceLog(*args) -> None:
|
||||||
"""VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
|
"""VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
|
||||||
|
@ -2651,7 +2742,7 @@ def TraceLog(*args) -> None:
|
||||||
def UnloadAudioStream(stream: AudioStream,) -> None:
|
def UnloadAudioStream(stream: AudioStream,) -> None:
|
||||||
"""Unload audio stream and free memory"""
|
"""Unload audio stream and free memory"""
|
||||||
...
|
...
|
||||||
def UnloadAutomationEventList(list_0: Any,) -> None:
|
def UnloadAutomationEventList(list_0: AutomationEventList,) -> None:
|
||||||
"""Unload automation events list from file"""
|
"""Unload automation events list from file"""
|
||||||
...
|
...
|
||||||
def UnloadCodepoints(codepoints: Any,) -> None:
|
def UnloadCodepoints(codepoints: Any,) -> None:
|
||||||
|
@ -2747,6 +2838,9 @@ def UpdateMeshBuffer(mesh: Mesh,index: int,data: Any,dataSize: int,offset: int,)
|
||||||
def UpdateModelAnimation(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
def UpdateModelAnimation(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
||||||
"""Update model animation pose"""
|
"""Update model animation pose"""
|
||||||
...
|
...
|
||||||
|
def UpdateModelAnimationBoneMatrices(model: Model,anim: ModelAnimation,frame: int,) -> None:
|
||||||
|
"""Update model animation mesh bone matrices (Note GPU skinning does not work on Mac)"""
|
||||||
|
...
|
||||||
def UpdateMusicStream(music: Music,) -> None:
|
def UpdateMusicStream(music: Music,) -> None:
|
||||||
"""Updates buffers for music streaming"""
|
"""Updates buffers for music streaming"""
|
||||||
...
|
...
|
||||||
|
@ -2811,6 +2905,12 @@ def Vector2Lerp(v1: Vector2,v2: Vector2,amount: float,) -> Vector2:
|
||||||
def Vector2LineAngle(start: Vector2,end: Vector2,) -> float:
|
def Vector2LineAngle(start: Vector2,end: Vector2,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def Vector2Max(v1: Vector2,v2: Vector2,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector2Min(v1: Vector2,v2: Vector2,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def Vector2MoveTowards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
|
def Vector2MoveTowards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2829,6 +2929,9 @@ def Vector2One() -> Vector2:
|
||||||
def Vector2Reflect(v: Vector2,normal: Vector2,) -> Vector2:
|
def Vector2Reflect(v: Vector2,normal: Vector2,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def Vector2Refract(v: Vector2,n: Vector2,r: float,) -> Vector2:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def Vector2Rotate(v: Vector2,angle: float,) -> Vector2:
|
def Vector2Rotate(v: Vector2,angle: float,) -> Vector2:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2868,6 +2971,9 @@ def Vector3ClampValue(v: Vector3,min_1: float,max_2: float,) -> Vector3:
|
||||||
def Vector3CrossProduct(v1: Vector3,v2: Vector3,) -> Vector3:
|
def Vector3CrossProduct(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def Vector3CubicHermite(v1: Vector3,tangent1: Vector3,v2: Vector3,tangent2: Vector3,amount: float,) -> Vector3:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def Vector3Distance(v1: Vector3,v2: Vector3,) -> float:
|
def Vector3Distance(v1: Vector3,v2: Vector3,) -> float:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2901,6 +3007,9 @@ def Vector3Max(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
def Vector3Min(v1: Vector3,v2: Vector3,) -> Vector3:
|
def Vector3Min(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def Vector3MoveTowards(v: Vector3,target: Vector3,maxDistance: float,) -> Vector3:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def Vector3Multiply(v1: Vector3,v2: Vector3,) -> Vector3:
|
def Vector3Multiply(v1: Vector3,v2: Vector3,) -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -2958,14 +3067,80 @@ def Vector3Unproject(source: Vector3,projection: Matrix,view: Matrix,) -> Vector
|
||||||
def Vector3Zero() -> Vector3:
|
def Vector3Zero() -> Vector3:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def Vector4Add(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4AddValue(v: Vector4,add: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Distance(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4DistanceSqr(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Divide(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4DotProduct(v1: Vector4,v2: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Equals(p: Vector4,q: Vector4,) -> int:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Invert(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Length(v: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4LengthSqr(v: Vector4,) -> float:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Lerp(v1: Vector4,v2: Vector4,amount: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Max(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Min(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4MoveTowards(v: Vector4,target: Vector4,maxDistance: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Multiply(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Negate(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Normalize(v: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4One() -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Scale(v: Vector4,scale: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Subtract(v1: Vector4,v2: Vector4,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4SubtractValue(v: Vector4,add: float,) -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
|
def Vector4Zero() -> Vector4:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def WaitTime(seconds: float,) -> None:
|
def WaitTime(seconds: float,) -> None:
|
||||||
"""Wait for some time (halt program execution)"""
|
"""Wait for some time (halt program execution)"""
|
||||||
...
|
...
|
||||||
def WaveCopy(wave: Wave,) -> Wave:
|
def WaveCopy(wave: Wave,) -> Wave:
|
||||||
"""Copy a wave to a new wave"""
|
"""Copy a wave to a new wave"""
|
||||||
...
|
...
|
||||||
def WaveCrop(wave: Any,initSample: int,finalSample: int,) -> None:
|
def WaveCrop(wave: Any,initFrame: int,finalFrame: int,) -> None:
|
||||||
"""Crop a wave to defined samples range"""
|
"""Crop a wave to defined frames range"""
|
||||||
...
|
...
|
||||||
def WaveFormat(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
|
def WaveFormat(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
|
||||||
"""Convert wave data to desired format"""
|
"""Convert wave data to desired format"""
|
||||||
|
@ -3132,6 +3307,9 @@ def glfwGetWindowPos(window: Any,xpos: Any,ypos: Any,) -> None:
|
||||||
def glfwGetWindowSize(window: Any,width: Any,height: Any,) -> None:
|
def glfwGetWindowSize(window: Any,width: Any,height: Any,) -> None:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
def glfwGetWindowTitle(window: Any,) -> str:
|
||||||
|
""""""
|
||||||
|
...
|
||||||
def glfwGetWindowUserPointer(window: Any,) -> Any:
|
def glfwGetWindowUserPointer(window: Any,) -> Any:
|
||||||
""""""
|
""""""
|
||||||
...
|
...
|
||||||
|
@ -3342,6 +3520,9 @@ def rlActiveTextureSlot(slot: int,) -> None:
|
||||||
def rlBegin(mode: int,) -> None:
|
def rlBegin(mode: int,) -> None:
|
||||||
"""Initialize drawing mode (how to organize vertex)"""
|
"""Initialize drawing mode (how to organize vertex)"""
|
||||||
...
|
...
|
||||||
|
def rlBindFramebuffer(target: int,framebuffer: int,) -> None:
|
||||||
|
"""Bind framebuffer (FBO)"""
|
||||||
|
...
|
||||||
def rlBindImageTexture(id: int,index: int,format: int,readonly: bool,) -> None:
|
def rlBindImageTexture(id: int,index: int,format: int,readonly: bool,) -> None:
|
||||||
"""Bind image texture"""
|
"""Bind image texture"""
|
||||||
...
|
...
|
||||||
|
@ -3372,6 +3553,9 @@ def rlColor4f(x: float,y: float,z: float,w: float,) -> None:
|
||||||
def rlColor4ub(r: str,g: str,b: str,a: str,) -> None:
|
def rlColor4ub(r: str,g: str,b: str,a: str,) -> None:
|
||||||
"""Define one vertex (color) - 4 byte"""
|
"""Define one vertex (color) - 4 byte"""
|
||||||
...
|
...
|
||||||
|
def rlColorMask(r: bool,g: bool,b: bool,a: bool,) -> None:
|
||||||
|
"""Color mask control"""
|
||||||
|
...
|
||||||
def rlCompileShader(shaderCode: str,type: int,) -> int:
|
def rlCompileShader(shaderCode: str,type: int,) -> int:
|
||||||
"""Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
|
"""Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
|
||||||
...
|
...
|
||||||
|
@ -3430,7 +3614,7 @@ def rlDisableVertexBufferElement() -> None:
|
||||||
"""Disable vertex buffer element (VBO element)"""
|
"""Disable vertex buffer element (VBO element)"""
|
||||||
...
|
...
|
||||||
def rlDisableWireMode() -> None:
|
def rlDisableWireMode() -> None:
|
||||||
"""Disable wire mode ( and point ) maybe rename"""
|
"""Disable wire (and point) mode"""
|
||||||
...
|
...
|
||||||
def rlDrawRenderBatch(batch: Any,) -> None:
|
def rlDrawRenderBatch(batch: Any,) -> None:
|
||||||
"""Draw render batch data (Update->Draw->Reset)"""
|
"""Draw render batch data (Update->Draw->Reset)"""
|
||||||
|
@ -3439,16 +3623,16 @@ def rlDrawRenderBatchActive() -> None:
|
||||||
"""Update and draw internal render batch"""
|
"""Update and draw internal render batch"""
|
||||||
...
|
...
|
||||||
def rlDrawVertexArray(offset: int,count: int,) -> None:
|
def rlDrawVertexArray(offset: int,count: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array (currently active vao)"""
|
||||||
...
|
...
|
||||||
def rlDrawVertexArrayElements(offset: int,count: int,buffer: Any,) -> None:
|
def rlDrawVertexArrayElements(offset: int,count: int,buffer: Any,) -> None:
|
||||||
""""""
|
"""Draw vertex array elements"""
|
||||||
...
|
...
|
||||||
def rlDrawVertexArrayElementsInstanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
|
def rlDrawVertexArrayElementsInstanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array elements with instancing"""
|
||||||
...
|
...
|
||||||
def rlDrawVertexArrayInstanced(offset: int,count: int,instances: int,) -> None:
|
def rlDrawVertexArrayInstanced(offset: int,count: int,instances: int,) -> None:
|
||||||
""""""
|
"""Draw vertex array (currently active vao) with instancing"""
|
||||||
...
|
...
|
||||||
def rlEnableBackfaceCulling() -> None:
|
def rlEnableBackfaceCulling() -> None:
|
||||||
"""Enable backface culling"""
|
"""Enable backface culling"""
|
||||||
|
@ -3516,6 +3700,15 @@ def rlFrustum(left: float,right: float,bottom: float,top: float,znear: float,zfa
|
||||||
def rlGenTextureMipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
|
def rlGenTextureMipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
|
||||||
"""Generate mipmap data for selected texture"""
|
"""Generate mipmap data for selected texture"""
|
||||||
...
|
...
|
||||||
|
def rlGetActiveFramebuffer() -> int:
|
||||||
|
"""Get the currently active render texture (fbo), 0 for default framebuffer"""
|
||||||
|
...
|
||||||
|
def rlGetCullDistanceFar() -> float:
|
||||||
|
"""Get cull plane distance far"""
|
||||||
|
...
|
||||||
|
def rlGetCullDistanceNear() -> float:
|
||||||
|
"""Get cull plane distance near"""
|
||||||
|
...
|
||||||
def rlGetFramebufferHeight() -> int:
|
def rlGetFramebufferHeight() -> int:
|
||||||
"""Get default framebuffer height"""
|
"""Get default framebuffer height"""
|
||||||
...
|
...
|
||||||
|
@ -3582,7 +3775,7 @@ def rlLoadDrawQuad() -> None:
|
||||||
def rlLoadExtensions(loader: Any,) -> None:
|
def rlLoadExtensions(loader: Any,) -> None:
|
||||||
"""Load OpenGL extensions (loader function required)"""
|
"""Load OpenGL extensions (loader function required)"""
|
||||||
...
|
...
|
||||||
def rlLoadFramebuffer(width: int,height: int,) -> int:
|
def rlLoadFramebuffer() -> int:
|
||||||
"""Load an empty framebuffer"""
|
"""Load an empty framebuffer"""
|
||||||
...
|
...
|
||||||
def rlLoadIdentity() -> None:
|
def rlLoadIdentity() -> None:
|
||||||
|
@ -3601,10 +3794,10 @@ def rlLoadShaderProgram(vShaderId: int,fShaderId: int,) -> int:
|
||||||
"""Load custom shader program"""
|
"""Load custom shader program"""
|
||||||
...
|
...
|
||||||
def rlLoadTexture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
|
def rlLoadTexture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
|
||||||
"""Load texture in GPU"""
|
"""Load texture data"""
|
||||||
...
|
...
|
||||||
def rlLoadTextureCubemap(data: Any,size: int,format: int,) -> int:
|
def rlLoadTextureCubemap(data: Any,size: int,format: int,) -> int:
|
||||||
"""Load texture cubemap"""
|
"""Load texture cubemap data"""
|
||||||
...
|
...
|
||||||
def rlLoadTextureDepth(width: int,height: int,useRenderBuffer: bool,) -> int:
|
def rlLoadTextureDepth(width: int,height: int,useRenderBuffer: bool,) -> int:
|
||||||
"""Load depth texture/renderbuffer (to be attached to fbo)"""
|
"""Load depth texture/renderbuffer (to be attached to fbo)"""
|
||||||
|
@ -3613,10 +3806,10 @@ def rlLoadVertexArray() -> int:
|
||||||
"""Load vertex array (vao) if supported"""
|
"""Load vertex array (vao) if supported"""
|
||||||
...
|
...
|
||||||
def rlLoadVertexBuffer(buffer: Any,size: int,dynamic: bool,) -> int:
|
def rlLoadVertexBuffer(buffer: Any,size: int,dynamic: bool,) -> int:
|
||||||
"""Load a vertex buffer attribute"""
|
"""Load a vertex buffer object"""
|
||||||
...
|
...
|
||||||
def rlLoadVertexBufferElement(buffer: Any,size: int,dynamic: bool,) -> int:
|
def rlLoadVertexBufferElement(buffer: Any,size: int,dynamic: bool,) -> int:
|
||||||
"""Load a new attributes element buffer"""
|
"""Load vertex buffer elements object"""
|
||||||
...
|
...
|
||||||
def rlMatrixMode(mode: int,) -> None:
|
def rlMatrixMode(mode: int,) -> None:
|
||||||
"""Choose the current matrix to be transformed"""
|
"""Choose the current matrix to be transformed"""
|
||||||
|
@ -3663,6 +3856,9 @@ def rlSetBlendFactorsSeparate(glSrcRGB: int,glDstRGB: int,glSrcAlpha: int,glDstA
|
||||||
def rlSetBlendMode(mode: int,) -> None:
|
def rlSetBlendMode(mode: int,) -> None:
|
||||||
"""Set blending mode"""
|
"""Set blending mode"""
|
||||||
...
|
...
|
||||||
|
def rlSetClipPlanes(nearPlane: float,farPlane: float,) -> None:
|
||||||
|
"""Set clip planes distances"""
|
||||||
|
...
|
||||||
def rlSetCullFace(mode: int,) -> None:
|
def rlSetCullFace(mode: int,) -> None:
|
||||||
"""Set face culling mode"""
|
"""Set face culling mode"""
|
||||||
...
|
...
|
||||||
|
@ -3699,20 +3895,23 @@ def rlSetTexture(id: int,) -> None:
|
||||||
def rlSetUniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
|
def rlSetUniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
|
||||||
"""Set shader value uniform"""
|
"""Set shader value uniform"""
|
||||||
...
|
...
|
||||||
|
def rlSetUniformMatrices(locIndex: int,mat: Any,count: int,) -> None:
|
||||||
|
"""Set shader value matrices"""
|
||||||
|
...
|
||||||
def rlSetUniformMatrix(locIndex: int,mat: Matrix,) -> None:
|
def rlSetUniformMatrix(locIndex: int,mat: Matrix,) -> None:
|
||||||
"""Set shader value matrix"""
|
"""Set shader value matrix"""
|
||||||
...
|
...
|
||||||
def rlSetUniformSampler(locIndex: int,textureId: int,) -> None:
|
def rlSetUniformSampler(locIndex: int,textureId: int,) -> None:
|
||||||
"""Set shader value sampler"""
|
"""Set shader value sampler"""
|
||||||
...
|
...
|
||||||
def rlSetVertexAttribute(index: int,compSize: int,type: int,normalized: bool,stride: int,pointer: Any,) -> None:
|
def rlSetVertexAttribute(index: int,compSize: int,type: int,normalized: bool,stride: int,offset: int,) -> None:
|
||||||
""""""
|
"""Set vertex attribute data configuration"""
|
||||||
...
|
...
|
||||||
def rlSetVertexAttributeDefault(locIndex: int,value: Any,attribType: int,count: int,) -> None:
|
def rlSetVertexAttributeDefault(locIndex: int,value: Any,attribType: int,count: int,) -> None:
|
||||||
"""Set vertex attribute default value"""
|
"""Set vertex attribute default value, when attribute to provided"""
|
||||||
...
|
...
|
||||||
def rlSetVertexAttributeDivisor(index: int,divisor: int,) -> None:
|
def rlSetVertexAttributeDivisor(index: int,divisor: int,) -> None:
|
||||||
""""""
|
"""Set vertex attribute data divisor"""
|
||||||
...
|
...
|
||||||
def rlTexCoord2f(x: float,y: float,) -> None:
|
def rlTexCoord2f(x: float,y: float,) -> None:
|
||||||
"""Define one vertex (texture coordinate) - 2 float"""
|
"""Define one vertex (texture coordinate) - 2 float"""
|
||||||
|
@ -3739,22 +3938,22 @@ def rlUnloadTexture(id: int,) -> None:
|
||||||
"""Unload texture from GPU memory"""
|
"""Unload texture from GPU memory"""
|
||||||
...
|
...
|
||||||
def rlUnloadVertexArray(vaoId: int,) -> None:
|
def rlUnloadVertexArray(vaoId: int,) -> None:
|
||||||
""""""
|
"""Unload vertex array (vao)"""
|
||||||
...
|
...
|
||||||
def rlUnloadVertexBuffer(vboId: int,) -> None:
|
def rlUnloadVertexBuffer(vboId: int,) -> None:
|
||||||
""""""
|
"""Unload vertex buffer object"""
|
||||||
...
|
...
|
||||||
def rlUpdateShaderBuffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rlUpdateShaderBuffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update SSBO buffer data"""
|
"""Update SSBO buffer data"""
|
||||||
...
|
...
|
||||||
def rlUpdateTexture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
|
def rlUpdateTexture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
|
||||||
"""Update GPU texture with new data"""
|
"""Update texture with new data on GPU"""
|
||||||
...
|
...
|
||||||
def rlUpdateVertexBuffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rlUpdateVertexBuffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update GPU buffer with new data"""
|
"""Update vertex buffer object data on GPU buffer"""
|
||||||
...
|
...
|
||||||
def rlUpdateVertexBufferElements(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
def rlUpdateVertexBufferElements(id: int,data: Any,dataSize: int,offset: int,) -> None:
|
||||||
"""Update vertex buffer elements with new data"""
|
"""Update vertex buffer elements data on GPU buffer"""
|
||||||
...
|
...
|
||||||
def rlVertex2f(x: float,y: float,) -> None:
|
def rlVertex2f(x: float,y: float,) -> None:
|
||||||
"""Define one vertex (position) - 2 float"""
|
"""Define one vertex (position) - 2 float"""
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import raylib
|
import raylib
|
||||||
|
|
||||||
RAYLIB_VERSION_MAJOR: int = 5
|
RAYLIB_VERSION_MAJOR: int = 5
|
||||||
RAYLIB_VERSION_MINOR: int = 0
|
RAYLIB_VERSION_MINOR: int = 5
|
||||||
RAYLIB_VERSION_PATCH: int = 0
|
RAYLIB_VERSION_PATCH: int = 0
|
||||||
RAYLIB_VERSION: str = "5.0"
|
RAYLIB_VERSION: str = "5.5-dev"
|
||||||
PI: float = 3.141592653589793
|
PI: float = 3.141592653589793
|
||||||
DEG2RAD = PI / 180.0
|
DEG2RAD = PI / 180.0
|
||||||
RAD2DEG = 180.0 / PI
|
RAD2DEG = 180.0 / PI
|
||||||
|
@ -18,7 +18,7 @@ PI: float = 3.141592653589793
|
||||||
EPSILON: float = 1e-06
|
EPSILON: float = 1e-06
|
||||||
DEG2RAD = PI / 180.0
|
DEG2RAD = PI / 180.0
|
||||||
RAD2DEG = 180.0 / PI
|
RAD2DEG = 180.0 / PI
|
||||||
RLGL_VERSION: str = "4.5"
|
RLGL_VERSION: str = "5.0"
|
||||||
RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
|
RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
|
||||||
RL_DEFAULT_BATCH_BUFFERS: int = 1
|
RL_DEFAULT_BATCH_BUFFERS: int = 1
|
||||||
RL_DEFAULT_BATCH_DRAWCALLS: int = 256
|
RL_DEFAULT_BATCH_DRAWCALLS: int = 256
|
||||||
|
@ -89,6 +89,17 @@ RL_BLEND_SRC_RGB: int = 32969
|
||||||
RL_BLEND_DST_ALPHA: int = 32970
|
RL_BLEND_DST_ALPHA: int = 32970
|
||||||
RL_BLEND_SRC_ALPHA: int = 32971
|
RL_BLEND_SRC_ALPHA: int = 32971
|
||||||
RL_BLEND_COLOR: int = 32773
|
RL_BLEND_COLOR: int = 32773
|
||||||
|
RL_READ_FRAMEBUFFER: int = 36008
|
||||||
|
RL_DRAW_FRAMEBUFFER: int = 36009
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION: int = 0
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD: int = 1
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL: int = 2
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR: int = 3
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT: int = 4
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2: int = 5
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES: int = 6
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS: int = 7
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS: int = 8
|
||||||
RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
|
RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
|
||||||
RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
|
RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
|
||||||
PI: float = 3.141592653589793
|
PI: float = 3.141592653589793
|
||||||
|
@ -108,6 +119,8 @@ GL_COMPRESSED_RGBA_ASTC_4x4_KHR: int = 37808
|
||||||
GL_COMPRESSED_RGBA_ASTC_8x8_KHR: int = 37815
|
GL_COMPRESSED_RGBA_ASTC_8x8_KHR: int = 37815
|
||||||
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: int = 34047
|
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: int = 34047
|
||||||
GL_TEXTURE_MAX_ANISOTROPY_EXT: int = 34046
|
GL_TEXTURE_MAX_ANISOTROPY_EXT: int = 34046
|
||||||
|
GL_PROGRAM_POINT_SIZE: int = 34370
|
||||||
|
GL_LINE_WIDTH: int = 2849
|
||||||
GL_UNSIGNED_SHORT_5_6_5: int = 33635
|
GL_UNSIGNED_SHORT_5_6_5: int = 33635
|
||||||
GL_UNSIGNED_SHORT_5_5_5_1: int = 32820
|
GL_UNSIGNED_SHORT_5_5_5_1: int = 32820
|
||||||
GL_UNSIGNED_SHORT_4_4_4_4: int = 32819
|
GL_UNSIGNED_SHORT_4_4_4_4: int = 32819
|
||||||
|
@ -119,19 +132,22 @@ RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL: str = "vertexNormal"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR: str = "vertexColor"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR: str = "vertexColor"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT: str = "vertexTangent"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT: str = "vertexTangent"
|
||||||
RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2: str = "vertexTexCoord2"
|
RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2: str = "vertexTexCoord2"
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS: str = "vertexBoneIds"
|
||||||
|
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS: str = "vertexBoneWeights"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_MVP: str = "mvp"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_MVP: str = "mvp"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW: str = "matView"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW: str = "matView"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION: str = "matProjection"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION: str = "matProjection"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL: str = "matModel"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL: str = "matModel"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL: str = "matNormal"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL: str = "matNormal"
|
||||||
RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR: str = "colDiffuse"
|
RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR: str = "colDiffuse"
|
||||||
|
RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES: str = "boneMatrices"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0: str = "texture0"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0: str = "texture0"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1: str = "texture1"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1: str = "texture1"
|
||||||
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2: str = "texture2"
|
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2: str = "texture2"
|
||||||
RAYGUI_VERSION_MAJOR: int = 4
|
RAYGUI_VERSION_MAJOR: int = 4
|
||||||
RAYGUI_VERSION_MINOR: int = 0
|
RAYGUI_VERSION_MINOR: int = 5
|
||||||
RAYGUI_VERSION_PATCH: int = 0
|
RAYGUI_VERSION_PATCH: int = 0
|
||||||
RAYGUI_VERSION: str = "4.0"
|
RAYGUI_VERSION: str = "4.5-dev"
|
||||||
SCROLLBAR_LEFT_SIDE: int = 0
|
SCROLLBAR_LEFT_SIDE: int = 0
|
||||||
SCROLLBAR_RIGHT_SIDE: int = 1
|
SCROLLBAR_RIGHT_SIDE: int = 1
|
||||||
RAYGUI_ICON_SIZE: int = 16
|
RAYGUI_ICON_SIZE: int = 16
|
||||||
|
@ -155,6 +171,7 @@ RAYGUI_PANEL_BORDER_WIDTH: int = 1
|
||||||
RAYGUI_TABBAR_ITEM_WIDTH: int = 160
|
RAYGUI_TABBAR_ITEM_WIDTH: int = 160
|
||||||
RAYGUI_MIN_SCROLLBAR_WIDTH: int = 40
|
RAYGUI_MIN_SCROLLBAR_WIDTH: int = 40
|
||||||
RAYGUI_MIN_SCROLLBAR_HEIGHT: int = 40
|
RAYGUI_MIN_SCROLLBAR_HEIGHT: int = 40
|
||||||
|
RAYGUI_MIN_MOUSE_WHEEL_SPEED: int = 20
|
||||||
RAYGUI_TOGGLEGROUP_MAX_ITEMS: int = 32
|
RAYGUI_TOGGLEGROUP_MAX_ITEMS: int = 32
|
||||||
RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: int = 40
|
RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: int = 40
|
||||||
RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: int = 1
|
RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: int = 1
|
||||||
|
@ -429,12 +446,14 @@ GLFW_CONTEXT_RELEASE_BEHAVIOR: int = 139273
|
||||||
GLFW_CONTEXT_NO_ERROR: int = 139274
|
GLFW_CONTEXT_NO_ERROR: int = 139274
|
||||||
GLFW_CONTEXT_CREATION_API: int = 139275
|
GLFW_CONTEXT_CREATION_API: int = 139275
|
||||||
GLFW_SCALE_TO_MONITOR: int = 139276
|
GLFW_SCALE_TO_MONITOR: int = 139276
|
||||||
|
GLFW_SCALE_FRAMEBUFFER: int = 139277
|
||||||
GLFW_COCOA_RETINA_FRAMEBUFFER: int = 143361
|
GLFW_COCOA_RETINA_FRAMEBUFFER: int = 143361
|
||||||
GLFW_COCOA_FRAME_NAME: int = 143362
|
GLFW_COCOA_FRAME_NAME: int = 143362
|
||||||
GLFW_COCOA_GRAPHICS_SWITCHING: int = 143363
|
GLFW_COCOA_GRAPHICS_SWITCHING: int = 143363
|
||||||
GLFW_X11_CLASS_NAME: int = 147457
|
GLFW_X11_CLASS_NAME: int = 147457
|
||||||
GLFW_X11_INSTANCE_NAME: int = 147458
|
GLFW_X11_INSTANCE_NAME: int = 147458
|
||||||
GLFW_WIN32_KEYBOARD_MENU: int = 151553
|
GLFW_WIN32_KEYBOARD_MENU: int = 151553
|
||||||
|
GLFW_WIN32_SHOWDEFAULT: int = 151554
|
||||||
GLFW_WAYLAND_APP_ID: int = 155649
|
GLFW_WAYLAND_APP_ID: int = 155649
|
||||||
GLFW_NO_API: int = 0
|
GLFW_NO_API: int = 0
|
||||||
GLFW_OPENGL_API: int = 196609
|
GLFW_OPENGL_API: int = 196609
|
||||||
|
@ -467,6 +486,8 @@ GLFW_ANGLE_PLATFORM_TYPE_D3D9: int = 225284
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_D3D11: int = 225285
|
GLFW_ANGLE_PLATFORM_TYPE_D3D11: int = 225285
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_VULKAN: int = 225287
|
GLFW_ANGLE_PLATFORM_TYPE_VULKAN: int = 225287
|
||||||
GLFW_ANGLE_PLATFORM_TYPE_METAL: int = 225288
|
GLFW_ANGLE_PLATFORM_TYPE_METAL: int = 225288
|
||||||
|
GLFW_WAYLAND_PREFER_LIBDECOR: int = 229377
|
||||||
|
GLFW_WAYLAND_DISABLE_LIBDECOR: int = 229378
|
||||||
GLFW_ANY_POSITION: int = 2147483648
|
GLFW_ANY_POSITION: int = 2147483648
|
||||||
GLFW_ARROW_CURSOR: int = 221185
|
GLFW_ARROW_CURSOR: int = 221185
|
||||||
GLFW_IBEAM_CURSOR: int = 221186
|
GLFW_IBEAM_CURSOR: int = 221186
|
||||||
|
@ -486,6 +507,7 @@ GLFW_PLATFORM: int = 327683
|
||||||
GLFW_COCOA_CHDIR_RESOURCES: int = 331777
|
GLFW_COCOA_CHDIR_RESOURCES: int = 331777
|
||||||
GLFW_COCOA_MENUBAR: int = 331778
|
GLFW_COCOA_MENUBAR: int = 331778
|
||||||
GLFW_X11_XCB_VULKAN_SURFACE: int = 335873
|
GLFW_X11_XCB_VULKAN_SURFACE: int = 335873
|
||||||
|
GLFW_WAYLAND_LIBDECOR: int = 339969
|
||||||
GLFW_ANY_PLATFORM: int = 393216
|
GLFW_ANY_PLATFORM: int = 393216
|
||||||
GLFW_PLATFORM_WIN32: int = 393217
|
GLFW_PLATFORM_WIN32: int = 393217
|
||||||
GLFW_PLATFORM_COCOA: int = 393218
|
GLFW_PLATFORM_COCOA: int = 393218
|
||||||
|
|
|
@ -136,7 +136,7 @@ class KeyboardKey(IntEnum):
|
||||||
KEY_KP_ENTER = 335
|
KEY_KP_ENTER = 335
|
||||||
KEY_KP_EQUAL = 336
|
KEY_KP_EQUAL = 336
|
||||||
KEY_BACK = 4
|
KEY_BACK = 4
|
||||||
KEY_MENU = 82
|
KEY_MENU = 5
|
||||||
KEY_VOLUME_UP = 24
|
KEY_VOLUME_UP = 24
|
||||||
KEY_VOLUME_DOWN = 25
|
KEY_VOLUME_DOWN = 25
|
||||||
|
|
||||||
|
@ -230,6 +230,9 @@ class ShaderLocationIndex(IntEnum):
|
||||||
SHADER_LOC_MAP_IRRADIANCE = 23
|
SHADER_LOC_MAP_IRRADIANCE = 23
|
||||||
SHADER_LOC_MAP_PREFILTER = 24
|
SHADER_LOC_MAP_PREFILTER = 24
|
||||||
SHADER_LOC_MAP_BRDF = 25
|
SHADER_LOC_MAP_BRDF = 25
|
||||||
|
SHADER_LOC_VERTEX_BONEIDS = 26
|
||||||
|
SHADER_LOC_VERTEX_BONEWEIGHTS = 27
|
||||||
|
SHADER_LOC_BONE_MATRICES = 28
|
||||||
|
|
||||||
class ShaderUniformDataType(IntEnum):
|
class ShaderUniformDataType(IntEnum):
|
||||||
SHADER_UNIFORM_FLOAT = 0
|
SHADER_UNIFORM_FLOAT = 0
|
||||||
|
@ -433,6 +436,8 @@ class GuiComboBoxProperty(IntEnum):
|
||||||
class GuiDropdownBoxProperty(IntEnum):
|
class GuiDropdownBoxProperty(IntEnum):
|
||||||
ARROW_PADDING = 16
|
ARROW_PADDING = 16
|
||||||
DROPDOWN_ITEMS_SPACING = 17
|
DROPDOWN_ITEMS_SPACING = 17
|
||||||
|
DROPDOWN_ARROW_HIDDEN = 18
|
||||||
|
DROPDOWN_ROLL_UP = 19
|
||||||
|
|
||||||
class GuiTextBoxProperty(IntEnum):
|
class GuiTextBoxProperty(IntEnum):
|
||||||
TEXT_READONLY = 16
|
TEXT_READONLY = 16
|
||||||
|
@ -446,6 +451,7 @@ class GuiListViewProperty(IntEnum):
|
||||||
LIST_ITEMS_SPACING = 17
|
LIST_ITEMS_SPACING = 17
|
||||||
SCROLLBAR_WIDTH = 18
|
SCROLLBAR_WIDTH = 18
|
||||||
SCROLLBAR_SIDE = 19
|
SCROLLBAR_SIDE = 19
|
||||||
|
LIST_ITEMS_BORDER_WIDTH = 20
|
||||||
|
|
||||||
class GuiColorPickerProperty(IntEnum):
|
class GuiColorPickerProperty(IntEnum):
|
||||||
COLOR_SELECTOR_SIZE = 16
|
COLOR_SELECTOR_SIZE = 16
|
||||||
|
@ -675,15 +681,15 @@ class GuiIconName(IntEnum):
|
||||||
ICON_FOLDER = 217
|
ICON_FOLDER = 217
|
||||||
ICON_FILE = 218
|
ICON_FILE = 218
|
||||||
ICON_SAND_TIMER = 219
|
ICON_SAND_TIMER = 219
|
||||||
ICON_220 = 220
|
ICON_WARNING = 220
|
||||||
ICON_221 = 221
|
ICON_HELP_BOX = 221
|
||||||
ICON_222 = 222
|
ICON_INFO_BOX = 222
|
||||||
ICON_223 = 223
|
ICON_PRIORITY = 223
|
||||||
ICON_224 = 224
|
ICON_LAYERS_ISO = 224
|
||||||
ICON_225 = 225
|
ICON_LAYERS2 = 225
|
||||||
ICON_226 = 226
|
ICON_MLAYERS = 226
|
||||||
ICON_227 = 227
|
ICON_MAPS = 227
|
||||||
ICON_228 = 228
|
ICON_HOT = 228
|
||||||
ICON_229 = 229
|
ICON_229 = 229
|
||||||
ICON_230 = 230
|
ICON_230 = 230
|
||||||
ICON_231 = 231
|
ICON_231 = 231
|
||||||
|
|
|
@ -169,9 +169,11 @@
|
||||||
*
|
*
|
||||||
* @ingroup input
|
* @ingroup input
|
||||||
* @{ */
|
* @{ */
|
||||||
|
/*! @ingroup input
|
||||||
|
*/
|
||||||
/*! @} */
|
/*! @} */
|
||||||
/*! @defgroup keys Keyboard keys
|
/*! @defgroup keys Keyboard key tokens
|
||||||
* @brief Keyboard key IDs.
|
* @brief Keyboard key tokens.
|
||||||
*
|
*
|
||||||
* See [key input](@ref input_key) for how these are used.
|
* See [key input](@ref input_key) for how these are used.
|
||||||
*
|
*
|
||||||
|
@ -193,7 +195,6 @@
|
||||||
* @ingroup input
|
* @ingroup input
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
/* The unknown key */
|
|
||||||
/* Printable keys */
|
/* Printable keys */
|
||||||
/* Function keys */
|
/* Function keys */
|
||||||
/*! @} */
|
/*! @} */
|
||||||
|
@ -420,11 +421,11 @@
|
||||||
*/
|
*/
|
||||||
/*! @brief Platform unavailable or no matching platform was found.
|
/*! @brief Platform unavailable or no matching platform was found.
|
||||||
*
|
*
|
||||||
* If emitted during initialization, no matching platform was found. If @ref
|
* If emitted during initialization, no matching platform was found. If the @ref
|
||||||
* GLFW_PLATFORM is set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of the
|
* GLFW_PLATFORM init hint was set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of
|
||||||
* platforms supported by this library binary, except for the Null platform. If set to
|
* the platforms supported by this library binary, except for the Null platform. If the
|
||||||
* a specific platform, it is either not supported by this library binary or GLFW was not
|
* init hint was set to a specific platform, it is either not supported by this library
|
||||||
* able to detect it.
|
* binary or GLFW was not able to detect it.
|
||||||
*
|
*
|
||||||
* If emitted by a native access function, GLFW was initialized for a different platform
|
* If emitted by a native access function, GLFW was initialized for a different platform
|
||||||
* than the function is for.
|
* than the function is for.
|
||||||
|
@ -640,8 +641,14 @@
|
||||||
/*! @brief Window content area scaling window
|
/*! @brief Window content area scaling window
|
||||||
* [window hint](@ref GLFW_SCALE_TO_MONITOR).
|
* [window hint](@ref GLFW_SCALE_TO_MONITOR).
|
||||||
*/
|
*/
|
||||||
/*! @brief macOS specific
|
/*! @brief Window framebuffer scaling
|
||||||
* [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint).
|
* [window hint](@ref GLFW_SCALE_FRAMEBUFFER_hint).
|
||||||
|
*/
|
||||||
|
/*! @brief Legacy name for compatibility.
|
||||||
|
*
|
||||||
|
* This is an alias for the
|
||||||
|
* [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint) window hint for
|
||||||
|
* compatibility with earlier versions.
|
||||||
*/
|
*/
|
||||||
/*! @brief macOS specific
|
/*! @brief macOS specific
|
||||||
* [window hint](@ref GLFW_COCOA_FRAME_NAME_hint).
|
* [window hint](@ref GLFW_COCOA_FRAME_NAME_hint).
|
||||||
|
@ -655,6 +662,8 @@
|
||||||
/*! @brief X11 specific
|
/*! @brief X11 specific
|
||||||
* [window hint](@ref GLFW_X11_CLASS_NAME_hint).
|
* [window hint](@ref GLFW_X11_CLASS_NAME_hint).
|
||||||
*/
|
*/
|
||||||
|
/*! @brief Win32 specific [window hint](@ref GLFW_WIN32_SHOWDEFAULT_hint).
|
||||||
|
*/
|
||||||
/*! @brief Wayland specific
|
/*! @brief Wayland specific
|
||||||
* [window hint](@ref GLFW_WAYLAND_APP_ID_hint).
|
* [window hint](@ref GLFW_WAYLAND_APP_ID_hint).
|
||||||
*
|
*
|
||||||
|
@ -703,11 +712,11 @@
|
||||||
* @note @macos This shape is provided by a private system API and may fail
|
* @note @macos This shape is provided by a private system API and may fail
|
||||||
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
|
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
|
||||||
*
|
*
|
||||||
* @note @x11 This shape is provided by a newer standard not supported by all
|
|
||||||
* cursor themes.
|
|
||||||
*
|
|
||||||
* @note @wayland This shape is provided by a newer standard not supported by
|
* @note @wayland This shape is provided by a newer standard not supported by
|
||||||
* all cursor themes.
|
* all cursor themes.
|
||||||
|
*
|
||||||
|
* @note @x11 This shape is provided by a newer standard not supported by all
|
||||||
|
* cursor themes.
|
||||||
*/
|
*/
|
||||||
/*! @brief The top-right to bottom-left diagonal resize/move arrow shape.
|
/*! @brief The top-right to bottom-left diagonal resize/move arrow shape.
|
||||||
*
|
*
|
||||||
|
@ -717,11 +726,11 @@
|
||||||
* @note @macos This shape is provided by a private system API and may fail
|
* @note @macos This shape is provided by a private system API and may fail
|
||||||
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
|
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
|
||||||
*
|
*
|
||||||
* @note @x11 This shape is provided by a newer standard not supported by all
|
|
||||||
* cursor themes.
|
|
||||||
*
|
|
||||||
* @note @wayland This shape is provided by a newer standard not supported by
|
* @note @wayland This shape is provided by a newer standard not supported by
|
||||||
* all cursor themes.
|
* all cursor themes.
|
||||||
|
*
|
||||||
|
* @note @x11 This shape is provided by a newer standard not supported by all
|
||||||
|
* cursor themes.
|
||||||
*/
|
*/
|
||||||
/*! @brief The omni-directional resize/move cursor shape.
|
/*! @brief The omni-directional resize/move cursor shape.
|
||||||
*
|
*
|
||||||
|
@ -733,11 +742,11 @@
|
||||||
* The operation-not-allowed shape. This is usually a circle with a diagonal
|
* The operation-not-allowed shape. This is usually a circle with a diagonal
|
||||||
* line through it.
|
* line through it.
|
||||||
*
|
*
|
||||||
* @note @x11 This shape is provided by a newer standard not supported by all
|
|
||||||
* cursor themes.
|
|
||||||
*
|
|
||||||
* @note @wayland This shape is provided by a newer standard not supported by
|
* @note @wayland This shape is provided by a newer standard not supported by
|
||||||
* all cursor themes.
|
* all cursor themes.
|
||||||
|
*
|
||||||
|
* @note @x11 This shape is provided by a newer standard not supported by all
|
||||||
|
* cursor themes.
|
||||||
*/
|
*/
|
||||||
/*! @brief Legacy name for compatibility.
|
/*! @brief Legacy name for compatibility.
|
||||||
*
|
*
|
||||||
|
@ -778,6 +787,10 @@
|
||||||
*
|
*
|
||||||
* X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint).
|
* X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint).
|
||||||
*/
|
*/
|
||||||
|
/*! @brief Wayland specific init hint.
|
||||||
|
*
|
||||||
|
* Wayland specific [init hint](@ref GLFW_WAYLAND_LIBDECOR_hint).
|
||||||
|
*/
|
||||||
/*! @} */
|
/*! @} */
|
||||||
/*! @addtogroup init
|
/*! @addtogroup init
|
||||||
* @{ */
|
* @{ */
|
||||||
|
@ -860,16 +873,25 @@ typedef struct GLFWcursor GLFWcursor;
|
||||||
* or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
|
* or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
|
||||||
* failures gracefully yet.
|
* failures gracefully yet.
|
||||||
*
|
*
|
||||||
* This function may be called during @ref glfwInit but before the library is
|
* This function must support being called during @ref glfwInit but before the library is
|
||||||
* flagged as initialized, as well as during @ref glfwTerminate after the
|
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
|
||||||
* library is no longer flagged as initialized.
|
* longer flagged as initialized.
|
||||||
*
|
*
|
||||||
* Any memory allocated by this function will be deallocated during library
|
* Any memory allocated via this function will be deallocated via the same allocator
|
||||||
* termination or earlier.
|
* during library termination or earlier.
|
||||||
|
*
|
||||||
|
* Any memory allocated via this function must be suitably aligned for any object type.
|
||||||
|
* If you are using C99 or earlier, this alignment is platform-dependent but will be the
|
||||||
|
* same as what `malloc` provides. If you are using C11 or later, this is the value of
|
||||||
|
* `alignof(max_align_t)`.
|
||||||
*
|
*
|
||||||
* The size will always be greater than zero. Allocations of size zero are filtered out
|
* The size will always be greater than zero. Allocations of size zero are filtered out
|
||||||
* before reaching the custom allocator.
|
* before reaching the custom allocator.
|
||||||
*
|
*
|
||||||
|
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
|
||||||
|
*
|
||||||
|
* This function must not call any GLFW function.
|
||||||
|
*
|
||||||
* @param[in] size The minimum size, in bytes, of the memory block.
|
* @param[in] size The minimum size, in bytes, of the memory block.
|
||||||
* @param[in] user The user-defined pointer from the allocator.
|
* @param[in] user The user-defined pointer from the allocator.
|
||||||
* @return The address of the newly allocated memory block, or `NULL` if an
|
* @return The address of the newly allocated memory block, or `NULL` if an
|
||||||
|
@ -880,7 +902,8 @@ typedef struct GLFWcursor GLFWcursor;
|
||||||
*
|
*
|
||||||
* @reentrancy This function should not call any GLFW function.
|
* @reentrancy This function should not call any GLFW function.
|
||||||
*
|
*
|
||||||
* @thread_safety This function may be called from any thread that calls GLFW functions.
|
* @thread_safety This function must support being called from any thread that calls GLFW
|
||||||
|
* functions.
|
||||||
*
|
*
|
||||||
* @sa @ref init_allocator
|
* @sa @ref init_allocator
|
||||||
* @sa @ref GLFWallocator
|
* @sa @ref GLFWallocator
|
||||||
|
@ -902,16 +925,26 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user);
|
||||||
* `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
|
* `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
|
||||||
* failures gracefully yet.
|
* failures gracefully yet.
|
||||||
*
|
*
|
||||||
* This function may be called during @ref glfwInit but before the library is
|
* This function must support being called during @ref glfwInit but before the library is
|
||||||
* flagged as initialized, as well as during @ref glfwTerminate after the
|
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
|
||||||
* library is no longer flagged as initialized.
|
* longer flagged as initialized.
|
||||||
*
|
*
|
||||||
* Any memory allocated by this function will be deallocated during library
|
* Any memory allocated via this function will be deallocated via the same allocator
|
||||||
* termination or earlier.
|
* during library termination or earlier.
|
||||||
|
*
|
||||||
|
* Any memory allocated via this function must be suitably aligned for any object type.
|
||||||
|
* If you are using C99 or earlier, this alignment is platform-dependent but will be the
|
||||||
|
* same as what `realloc` provides. If you are using C11 or later, this is the value of
|
||||||
|
* `alignof(max_align_t)`.
|
||||||
*
|
*
|
||||||
* The block address will never be `NULL` and the size will always be greater than zero.
|
* The block address will never be `NULL` and the size will always be greater than zero.
|
||||||
* Reallocations of a block to size zero are converted into deallocations. Reallocations
|
* Reallocations of a block to size zero are converted into deallocations before reaching
|
||||||
* of `NULL` to a non-zero size are converted into regular allocations.
|
* the custom allocator. Reallocations of `NULL` to a non-zero size are converted into
|
||||||
|
* regular allocations before reaching the custom allocator.
|
||||||
|
*
|
||||||
|
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
|
||||||
|
*
|
||||||
|
* This function must not call any GLFW function.
|
||||||
*
|
*
|
||||||
* @param[in] block The address of the memory block to reallocate.
|
* @param[in] block The address of the memory block to reallocate.
|
||||||
* @param[in] size The new minimum size, in bytes, of the memory block.
|
* @param[in] size The new minimum size, in bytes, of the memory block.
|
||||||
|
@ -924,7 +957,8 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user);
|
||||||
*
|
*
|
||||||
* @reentrancy This function should not call any GLFW function.
|
* @reentrancy This function should not call any GLFW function.
|
||||||
*
|
*
|
||||||
* @thread_safety This function may be called from any thread that calls GLFW functions.
|
* @thread_safety This function must support being called from any thread that calls GLFW
|
||||||
|
* functions.
|
||||||
*
|
*
|
||||||
* @sa @ref init_allocator
|
* @sa @ref init_allocator
|
||||||
* @sa @ref GLFWallocator
|
* @sa @ref GLFWallocator
|
||||||
|
@ -945,13 +979,17 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user);
|
||||||
* This function may deallocate the specified memory block. This memory block
|
* This function may deallocate the specified memory block. This memory block
|
||||||
* will have been allocated with the same allocator.
|
* will have been allocated with the same allocator.
|
||||||
*
|
*
|
||||||
* This function may be called during @ref glfwInit but before the library is
|
* This function must support being called during @ref glfwInit but before the library is
|
||||||
* flagged as initialized, as well as during @ref glfwTerminate after the
|
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
|
||||||
* library is no longer flagged as initialized.
|
* longer flagged as initialized.
|
||||||
*
|
*
|
||||||
* The block address will never be `NULL`. Deallocations of `NULL` are filtered out
|
* The block address will never be `NULL`. Deallocations of `NULL` are filtered out
|
||||||
* before reaching the custom allocator.
|
* before reaching the custom allocator.
|
||||||
*
|
*
|
||||||
|
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
|
||||||
|
*
|
||||||
|
* This function must not call any GLFW function.
|
||||||
|
*
|
||||||
* @param[in] block The address of the memory block to deallocate.
|
* @param[in] block The address of the memory block to deallocate.
|
||||||
* @param[in] user The user-defined pointer from the allocator.
|
* @param[in] user The user-defined pointer from the allocator.
|
||||||
*
|
*
|
||||||
|
@ -960,7 +998,8 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user);
|
||||||
*
|
*
|
||||||
* @reentrancy This function should not call any GLFW function.
|
* @reentrancy This function should not call any GLFW function.
|
||||||
*
|
*
|
||||||
* @thread_safety This function may be called from any thread that calls GLFW functions.
|
* @thread_safety This function must support being called from any thread that calls GLFW
|
||||||
|
* functions.
|
||||||
*
|
*
|
||||||
* @sa @ref init_allocator
|
* @sa @ref init_allocator
|
||||||
* @sa @ref GLFWallocator
|
* @sa @ref GLFWallocator
|
||||||
|
@ -1503,7 +1542,10 @@ typedef struct GLFWgamepadstate
|
||||||
*/
|
*/
|
||||||
float axes[6];
|
float axes[6];
|
||||||
} GLFWgamepadstate;
|
} GLFWgamepadstate;
|
||||||
/*! @brief
|
/*! @brief Custom heap memory allocator.
|
||||||
|
*
|
||||||
|
* This describes a custom heap memory allocator for GLFW. To set an allocator, pass it
|
||||||
|
* to @ref glfwInitAllocator before initializing the library.
|
||||||
*
|
*
|
||||||
* @sa @ref init_allocator
|
* @sa @ref init_allocator
|
||||||
* @sa @ref glfwInitAllocator
|
* @sa @ref glfwInitAllocator
|
||||||
|
@ -1514,9 +1556,21 @@ typedef struct GLFWgamepadstate
|
||||||
*/
|
*/
|
||||||
typedef struct GLFWallocator
|
typedef struct GLFWallocator
|
||||||
{
|
{
|
||||||
|
/*! The memory allocation function. See @ref GLFWallocatefun for details about
|
||||||
|
* allocation function.
|
||||||
|
*/
|
||||||
GLFWallocatefun allocate;
|
GLFWallocatefun allocate;
|
||||||
|
/*! The memory reallocation function. See @ref GLFWreallocatefun for details about
|
||||||
|
* reallocation function.
|
||||||
|
*/
|
||||||
GLFWreallocatefun reallocate;
|
GLFWreallocatefun reallocate;
|
||||||
|
/*! The memory deallocation function. See @ref GLFWdeallocatefun for details about
|
||||||
|
* deallocation function.
|
||||||
|
*/
|
||||||
GLFWdeallocatefun deallocate;
|
GLFWdeallocatefun deallocate;
|
||||||
|
/*! The user pointer for this custom allocator. This value will be passed to the
|
||||||
|
* allocator functions.
|
||||||
|
*/
|
||||||
void* user;
|
void* user;
|
||||||
} GLFWallocator;
|
} GLFWallocator;
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
@ -1558,6 +1612,13 @@ typedef struct GLFWallocator
|
||||||
* and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init
|
* and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init
|
||||||
* hint.
|
* hint.
|
||||||
*
|
*
|
||||||
|
* @remark __Wayland, X11:__ If the library was compiled with support for both
|
||||||
|
* Wayland and X11, and the @ref GLFW_PLATFORM init hint is set to
|
||||||
|
* `GLFW_ANY_PLATFORM`, the `XDG_SESSION_TYPE` environment variable affects
|
||||||
|
* which platform is picked. If the environment variable is not set, or is set
|
||||||
|
* to something other than `wayland` or `x11`, the regular detection mechanism
|
||||||
|
* will be used instead.
|
||||||
|
*
|
||||||
* @remark @x11 This function will set the `LC_CTYPE` category of the
|
* @remark @x11 This function will set the `LC_CTYPE` category of the
|
||||||
* application locale according to the current environment if that category is
|
* application locale according to the current environment if that category is
|
||||||
* still "C". This is because the "C" locale breaks Unicode text input.
|
* still "C". This is because the "C" locale breaks Unicode text input.
|
||||||
|
@ -1643,8 +1704,12 @@ typedef struct GLFWallocator
|
||||||
* To use the default allocator, call this function with a `NULL` argument.
|
* To use the default allocator, call this function with a `NULL` argument.
|
||||||
*
|
*
|
||||||
* If you specify an allocator struct, every member must be a valid function
|
* If you specify an allocator struct, every member must be a valid function
|
||||||
* pointer. If any member is `NULL`, this function emits @ref
|
* pointer. If any member is `NULL`, this function will emit @ref
|
||||||
* GLFW_INVALID_VALUE and the init allocator is unchanged.
|
* GLFW_INVALID_VALUE and the init allocator will be unchanged.
|
||||||
|
*
|
||||||
|
* The functions in the allocator must fulfil a number of requirements. See the
|
||||||
|
* documentation for @ref GLFWallocatefun, @ref GLFWreallocatefun and @ref
|
||||||
|
* GLFWdeallocatefun for details.
|
||||||
*
|
*
|
||||||
* @param[in] allocator The allocator to use at the next initialization, or
|
* @param[in] allocator The allocator to use at the next initialization, or
|
||||||
* `NULL` to use the default one.
|
* `NULL` to use the default one.
|
||||||
|
@ -1952,9 +2017,10 @@ typedef struct GLFWallocator
|
||||||
* specified monitor.
|
* specified monitor.
|
||||||
*
|
*
|
||||||
* Some platforms do not provide accurate monitor size information, either
|
* Some platforms do not provide accurate monitor size information, either
|
||||||
* because the monitor
|
* because the monitor [EDID][] data is incorrect or because the driver does
|
||||||
* [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
|
* not report it accurately.
|
||||||
* data is incorrect or because the driver does not report it accurately.
|
*
|
||||||
|
* [EDID]: https://en.wikipedia.org/wiki/Extended_display_identification_data
|
||||||
*
|
*
|
||||||
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
||||||
* non-`NULL` size arguments will be set to zero.
|
* non-`NULL` size arguments will be set to zero.
|
||||||
|
@ -2000,6 +2066,9 @@ typedef struct GLFWallocator
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
|
* @remark @wayland Fractional scaling information is not yet available for
|
||||||
|
* monitors, so this function only returns integer content scales.
|
||||||
|
*
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref monitor_scale
|
* @sa @ref monitor_scale
|
||||||
|
@ -2189,11 +2258,11 @@ typedef struct GLFWallocator
|
||||||
* @param[in] monitor The monitor whose gamma ramp to set.
|
* @param[in] monitor The monitor whose gamma ramp to set.
|
||||||
* @param[in] gamma The desired exponent.
|
* @param[in] gamma The desired exponent.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_INVALID_VALUE,
|
||||||
* GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
|
* @ref GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
|
||||||
*
|
*
|
||||||
* @remark @wayland Gamma handling is a privileged protocol, this function
|
* @remark @wayland Gamma handling is a privileged protocol, this function
|
||||||
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR.
|
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
|
||||||
*
|
*
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
|
@ -2212,11 +2281,11 @@ typedef struct GLFWallocator
|
||||||
* @return The current gamma ramp, or `NULL` if an
|
* @return The current gamma ramp, or `NULL` if an
|
||||||
* [error](@ref error_handling) occurred.
|
* [error](@ref error_handling) occurred.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
|
||||||
* GLFW_PLATFORM_ERROR.
|
* and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
|
||||||
*
|
*
|
||||||
* @remark @wayland Gamma handling is a privileged protocol, this function
|
* @remark @wayland Gamma handling is a privileged protocol, this function
|
||||||
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR while
|
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE while
|
||||||
* returning `NULL`.
|
* returning `NULL`.
|
||||||
*
|
*
|
||||||
* @pointer_lifetime The returned structure and its arrays are allocated and
|
* @pointer_lifetime The returned structure and its arrays are allocated and
|
||||||
|
@ -2250,8 +2319,8 @@ typedef struct GLFWallocator
|
||||||
* @param[in] monitor The monitor whose gamma ramp to set.
|
* @param[in] monitor The monitor whose gamma ramp to set.
|
||||||
* @param[in] ramp The gamma ramp to use.
|
* @param[in] ramp The gamma ramp to use.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
|
||||||
* GLFW_PLATFORM_ERROR.
|
* and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
|
||||||
*
|
*
|
||||||
* @remark The size of the specified gamma ramp should match the size of the
|
* @remark The size of the specified gamma ramp should match the size of the
|
||||||
* current ramp for that monitor.
|
* current ramp for that monitor.
|
||||||
|
@ -2259,7 +2328,7 @@ typedef struct GLFWallocator
|
||||||
* @remark @win32 The gamma ramp size must be 256.
|
* @remark @win32 The gamma ramp size must be 256.
|
||||||
*
|
*
|
||||||
* @remark @wayland Gamma handling is a privileged protocol, this function
|
* @remark @wayland Gamma handling is a privileged protocol, this function
|
||||||
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR.
|
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
|
||||||
*
|
*
|
||||||
* @pointer_lifetime The specified gamma ramp is copied before this function
|
* @pointer_lifetime The specified gamma ramp is copied before this function
|
||||||
* returns.
|
* returns.
|
||||||
|
@ -2427,8 +2496,8 @@ typedef struct GLFWallocator
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
|
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
|
||||||
* GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
|
* GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE, @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
* @remark @win32 Window creation will fail if the Microsoft GDI software
|
* @remark @win32 Window creation will fail if the Microsoft GDI software
|
||||||
* OpenGL implementation is the only one available.
|
* OpenGL implementation is the only one available.
|
||||||
|
@ -2450,23 +2519,35 @@ typedef struct GLFWallocator
|
||||||
* @remark @macos The GLFW window has no icon, as it is not a document
|
* @remark @macos The GLFW window has no icon, as it is not a document
|
||||||
* window, but the dock icon will be the same as the application bundle's icon.
|
* window, but the dock icon will be the same as the application bundle's icon.
|
||||||
* For more information on bundles, see the
|
* For more information on bundles, see the
|
||||||
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
|
* [Bundle Programming Guide][bundle-guide] in the Mac Developer Library.
|
||||||
* in the Mac Developer Library.
|
*
|
||||||
|
* [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/
|
||||||
*
|
*
|
||||||
* @remark @macos On OS X 10.10 and later the window frame will not be rendered
|
* @remark @macos On OS X 10.10 and later the window frame will not be rendered
|
||||||
* at full resolution on Retina displays unless the
|
* at full resolution on Retina displays unless the
|
||||||
* [GLFW_COCOA_RETINA_FRAMEBUFFER](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint)
|
* [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint)
|
||||||
* hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the
|
* hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the
|
||||||
* application bundle's `Info.plist`. For more information, see
|
* application bundle's `Info.plist`. For more information, see
|
||||||
* [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
|
* [High Resolution Guidelines for OS X][hidpi-guide] in the Mac Developer
|
||||||
* in the Mac Developer Library. The GLFW test and example programs use
|
* Library. The GLFW test and example programs use a custom `Info.plist`
|
||||||
* a custom `Info.plist` template for this, which can be found as
|
* template for this, which can be found as `CMake/Info.plist.in` in the source
|
||||||
* `CMake/Info.plist.in` in the source tree.
|
* tree.
|
||||||
|
*
|
||||||
|
* [hidpi-guide]: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html
|
||||||
*
|
*
|
||||||
* @remark @macos When activating frame autosaving with
|
* @remark @macos When activating frame autosaving with
|
||||||
* [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
|
* [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
|
||||||
* window size and position may be overridden by previously saved values.
|
* window size and position may be overridden by previously saved values.
|
||||||
*
|
*
|
||||||
|
* @remark @wayland GLFW uses [libdecor][] where available to create its window
|
||||||
|
* decorations. This in turn uses server-side XDG decorations where available
|
||||||
|
* and provides high quality client-side decorations on compositors like GNOME.
|
||||||
|
* If both XDG decorations and libdecor are unavailable, GLFW falls back to
|
||||||
|
* a very simple set of window decorations that only support moving, resizing
|
||||||
|
* and the window manager's right-click menu.
|
||||||
|
*
|
||||||
|
* [libdecor]: https://gitlab.freedesktop.org/libdecor/libdecor
|
||||||
|
*
|
||||||
* @remark @x11 Some window managers will not respect the placement of
|
* @remark @x11 Some window managers will not respect the placement of
|
||||||
* initially hidden windows.
|
* initially hidden windows.
|
||||||
*
|
*
|
||||||
|
@ -2483,20 +2564,6 @@ typedef struct GLFWallocator
|
||||||
* [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to
|
* [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to
|
||||||
* override this.
|
* override this.
|
||||||
*
|
*
|
||||||
* @remark @wayland Compositors should implement the xdg-decoration protocol
|
|
||||||
* for GLFW to decorate the window properly. If this protocol isn't
|
|
||||||
* supported, or if the compositor prefers client-side decorations, a very
|
|
||||||
* simple fallback frame will be drawn using the wp_viewporter protocol. A
|
|
||||||
* compositor can still emit close, maximize or fullscreen events, using for
|
|
||||||
* instance a keybind mechanism. If neither of these protocols is supported,
|
|
||||||
* the window won't be decorated.
|
|
||||||
*
|
|
||||||
* @remark @wayland A full screen window will not attempt to change the mode,
|
|
||||||
* no matter what the requested size or refresh rate.
|
|
||||||
*
|
|
||||||
* @remark @wayland Screensaver inhibition requires the idle-inhibit protocol
|
|
||||||
* to be implemented in the user's compositor.
|
|
||||||
*
|
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref window_creation
|
* @sa @ref window_creation
|
||||||
|
@ -2575,6 +2642,37 @@ typedef struct GLFWallocator
|
||||||
* @ingroup window
|
* @ingroup window
|
||||||
*/
|
*/
|
||||||
void glfwSetWindowShouldClose(GLFWwindow* window, int value);
|
void glfwSetWindowShouldClose(GLFWwindow* window, int value);
|
||||||
|
/*! @brief Returns the title of the specified window.
|
||||||
|
*
|
||||||
|
* This function returns the window title, encoded as UTF-8, of the specified
|
||||||
|
* window. This is the title set previously by @ref glfwCreateWindow
|
||||||
|
* or @ref glfwSetWindowTitle.
|
||||||
|
*
|
||||||
|
* @param[in] window The window to query.
|
||||||
|
* @return The UTF-8 encoded window title, or `NULL` if an
|
||||||
|
* [error](@ref error_handling) occurred.
|
||||||
|
*
|
||||||
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
||||||
|
*
|
||||||
|
* @remark The returned title is currently a copy of the title last set by @ref
|
||||||
|
* glfwCreateWindow or @ref glfwSetWindowTitle. It does not include any
|
||||||
|
* additional text which may be appended by the platform or another program.
|
||||||
|
*
|
||||||
|
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
||||||
|
* should not free it yourself. It is valid until the next call to @ref
|
||||||
|
* glfwGetWindowTitle or @ref glfwSetWindowTitle, or until the library is
|
||||||
|
* terminated.
|
||||||
|
*
|
||||||
|
* @thread_safety This function must only be called from the main thread.
|
||||||
|
*
|
||||||
|
* @sa @ref window_title
|
||||||
|
* @sa @ref glfwSetWindowTitle
|
||||||
|
*
|
||||||
|
* @since Added in version 3.4.
|
||||||
|
*
|
||||||
|
* @ingroup window
|
||||||
|
*/
|
||||||
|
const char* glfwGetWindowTitle(GLFWwindow* window);
|
||||||
/*! @brief Sets the title of the specified window.
|
/*! @brief Sets the title of the specified window.
|
||||||
*
|
*
|
||||||
* This function sets the window title, encoded as UTF-8, of the specified
|
* This function sets the window title, encoded as UTF-8, of the specified
|
||||||
|
@ -2592,6 +2690,7 @@ typedef struct GLFWallocator
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref window_title
|
* @sa @ref window_title
|
||||||
|
* @sa @ref glfwGetWindowTitle
|
||||||
*
|
*
|
||||||
* @since Added in version 1.0.
|
* @since Added in version 1.0.
|
||||||
* @glfw3 Added window handle parameter.
|
* @glfw3 Added window handle parameter.
|
||||||
|
@ -2630,8 +2729,9 @@ typedef struct GLFWallocator
|
||||||
* @remark @macos Regular windows do not have icons on macOS. This function
|
* @remark @macos Regular windows do not have icons on macOS. This function
|
||||||
* will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as
|
* will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as
|
||||||
* the application bundle's icon. For more information on bundles, see the
|
* the application bundle's icon. For more information on bundles, see the
|
||||||
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
|
* [Bundle Programming Guide][bundle-guide] in the Mac Developer Library.
|
||||||
* in the Mac Developer Library.
|
*
|
||||||
|
* [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/
|
||||||
*
|
*
|
||||||
* @remark @wayland There is no existing protocol to change an icon, the
|
* @remark @wayland There is no existing protocol to change an icon, the
|
||||||
* window will thus inherit the one defined in the application's desktop file.
|
* window will thus inherit the one defined in the application's desktop file.
|
||||||
|
@ -2849,9 +2949,6 @@ typedef struct GLFWallocator
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
* @remark @wayland A full screen window will not attempt to change the mode,
|
|
||||||
* no matter what the requested size.
|
|
||||||
*
|
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref window_size
|
* @sa @ref window_size
|
||||||
|
@ -3172,11 +3269,11 @@ typedef struct GLFWallocator
|
||||||
*
|
*
|
||||||
* @param[in] window The window to give input focus.
|
* @param[in] window The window to give input focus.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
* GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
|
* GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
* @remark @wayland It is not possible for an application to set the input
|
* @remark @wayland The compositor will likely ignore focus requests unless
|
||||||
* focus. This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
|
* another window created by the same application already has input focus.
|
||||||
*
|
*
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
|
@ -3278,9 +3375,6 @@ typedef struct GLFWallocator
|
||||||
* @remark @wayland The desired window position is ignored, as there is no way
|
* @remark @wayland The desired window position is ignored, as there is no way
|
||||||
* for an application to set this property.
|
* for an application to set this property.
|
||||||
*
|
*
|
||||||
* @remark @wayland Setting the window to full screen will not attempt to
|
|
||||||
* change the mode, no matter what the requested size or refresh rate.
|
|
||||||
*
|
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref window_monitor
|
* @sa @ref window_monitor
|
||||||
|
@ -3351,11 +3445,15 @@ typedef struct GLFWallocator
|
||||||
* @param[in] value `GLFW_TRUE` or `GLFW_FALSE`.
|
* @param[in] value `GLFW_TRUE` or `GLFW_FALSE`.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
|
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
|
||||||
|
* GLFW_FEATURE_UNAVAILABLE (see remarks).
|
||||||
*
|
*
|
||||||
* @remark Calling @ref glfwGetWindowAttrib will always return the latest
|
* @remark Calling @ref glfwGetWindowAttrib will always return the latest
|
||||||
* value, even if that value is ignored by the current mode of the window.
|
* value, even if that value is ignored by the current mode of the window.
|
||||||
*
|
*
|
||||||
|
* @remark @wayland The [GLFW_FLOATING](@ref GLFW_FLOATING_attrib) window attribute is
|
||||||
|
* not supported. Setting this will emit @ref GLFW_FEATURE_UNAVAILABLE.
|
||||||
|
*
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref window_attribs
|
* @sa @ref window_attribs
|
||||||
|
@ -4011,8 +4109,8 @@ typedef struct GLFWallocator
|
||||||
* @param[in] scancode The scancode of the key to query.
|
* @param[in] scancode The scancode of the key to query.
|
||||||
* @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
|
* @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_INVALID_VALUE, @ref GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
* @remark The contents of the returned string may change when a keyboard
|
* @remark The contents of the returned string may change when a keyboard
|
||||||
* layout change event is received.
|
* layout change event is received.
|
||||||
|
@ -4033,15 +4131,18 @@ typedef struct GLFWallocator
|
||||||
*
|
*
|
||||||
* This function returns the platform-specific scancode of the specified key.
|
* This function returns the platform-specific scancode of the specified key.
|
||||||
*
|
*
|
||||||
* If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this
|
* If the specified [key token](@ref keys) corresponds to a physical key not
|
||||||
* method will return `-1`.
|
* supported on the current platform then this method will return `-1`.
|
||||||
|
* Calling this function with anything other than a key token will return `-1`
|
||||||
|
* and generate a @ref GLFW_INVALID_ENUM error.
|
||||||
*
|
*
|
||||||
* @param[in] key Any [named key](@ref keys).
|
* @param[in] key Any [key token](@ref keys).
|
||||||
* @return The platform-specific scancode for the key, or `-1` if an
|
* @return The platform-specific scancode for the key, or `-1` if the key is
|
||||||
* [error](@ref error_handling) occurred.
|
* not supported on the current platform or an [error](@ref error_handling)
|
||||||
|
* occurred.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
* GLFW_INVALID_ENUM.
|
||||||
*
|
*
|
||||||
* @thread_safety This function may be called from any thread.
|
* @thread_safety This function may be called from any thread.
|
||||||
*
|
*
|
||||||
|
@ -4178,11 +4279,11 @@ typedef struct GLFWallocator
|
||||||
* @param[in] ypos The desired y-coordinate, relative to the top edge of the
|
* @param[in] ypos The desired y-coordinate, relative to the top edge of the
|
||||||
* content area.
|
* content area.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
|
||||||
*
|
*
|
||||||
* @remark @wayland This function will only work when the cursor mode is
|
* @remark @wayland This function will only work when the cursor mode is
|
||||||
* `GLFW_CURSOR_DISABLED`, otherwise it will do nothing.
|
* `GLFW_CURSOR_DISABLED`, otherwise it will emit @ref GLFW_FEATURE_UNAVAILABLE.
|
||||||
*
|
*
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
|
@ -4341,9 +4442,9 @@ typedef struct GLFWallocator
|
||||||
* [character callback](@ref glfwSetCharCallback) instead.
|
* [character callback](@ref glfwSetCharCallback) instead.
|
||||||
*
|
*
|
||||||
* When a window loses input focus, it will generate synthetic key release
|
* When a window loses input focus, it will generate synthetic key release
|
||||||
* events for all pressed keys. You can tell these events from user-generated
|
* events for all pressed keys with associated key tokens. You can tell these
|
||||||
* events by the fact that the synthetic ones are generated after the focus
|
* events from user-generated events by the fact that the synthetic ones are
|
||||||
* loss event has been processed, i.e. after the
|
* generated after the focus loss event has been processed, i.e. after the
|
||||||
* [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
|
* [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
|
||||||
*
|
*
|
||||||
* The scancode of a key is specific to that platform or sometimes even to that
|
* The scancode of a key is specific to that platform or sometimes even to that
|
||||||
|
@ -4617,8 +4718,6 @@ typedef struct GLFWallocator
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
||||||
*
|
*
|
||||||
* @remark @wayland File drop is currently unimplemented.
|
|
||||||
*
|
|
||||||
* @thread_safety This function must only be called from the main thread.
|
* @thread_safety This function must only be called from the main thread.
|
||||||
*
|
*
|
||||||
* @sa @ref path_drop
|
* @sa @ref path_drop
|
||||||
|
@ -5071,6 +5170,11 @@ typedef struct GLFWallocator
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
* GLFW_PLATFORM_ERROR.
|
* GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
|
* @remark @win32 The clipboard on Windows has a single global lock for reading and
|
||||||
|
* writing. GLFW tries to acquire it a few times, which is almost always enough. If it
|
||||||
|
* cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns.
|
||||||
|
* It is safe to try this multiple times.
|
||||||
|
*
|
||||||
* @pointer_lifetime The specified string is copied before this function
|
* @pointer_lifetime The specified string is copied before this function
|
||||||
* returns.
|
* returns.
|
||||||
*
|
*
|
||||||
|
@ -5098,6 +5202,11 @@ typedef struct GLFWallocator
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
|
* GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
|
* @remark @win32 The clipboard on Windows has a single global lock for reading and
|
||||||
|
* writing. GLFW tries to acquire it a few times, which is almost always enough. If it
|
||||||
|
* cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns.
|
||||||
|
* It is safe to try this multiple times.
|
||||||
|
*
|
||||||
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
||||||
* should not free it yourself. It is valid until the next call to @ref
|
* should not free it yourself. It is valid until the next call to @ref
|
||||||
* glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
|
* glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
|
||||||
|
@ -5215,12 +5324,15 @@ typedef struct GLFWallocator
|
||||||
* thread.
|
* thread.
|
||||||
*
|
*
|
||||||
* This function makes the OpenGL or OpenGL ES context of the specified window
|
* This function makes the OpenGL or OpenGL ES context of the specified window
|
||||||
* current on the calling thread. A context must only be made current on
|
* current on the calling thread. It can also detach the current context from
|
||||||
* a single thread at a time and each thread can have only a single current
|
* the calling thread without making a new one current by passing in `NULL`.
|
||||||
* context at a time.
|
|
||||||
*
|
*
|
||||||
* When moving a context between threads, you must make it non-current on the
|
* A context must only be made current on a single thread at a time and each
|
||||||
* old thread before making it current on the new one.
|
* thread can have only a single current context at a time. Making a context
|
||||||
|
* current detaches any previously current context on the calling thread.
|
||||||
|
*
|
||||||
|
* When moving a context between threads, you must detach it (make it
|
||||||
|
* non-current) on the old thread before making it current on the new one.
|
||||||
*
|
*
|
||||||
* By default, making a context non-current implicitly forces a pipeline flush.
|
* By default, making a context non-current implicitly forces a pipeline flush.
|
||||||
* On machines that support `GL_KHR_context_flush_control`, you can control
|
* On machines that support `GL_KHR_context_flush_control`, you can control
|
||||||
|
@ -5235,6 +5347,10 @@ typedef struct GLFWallocator
|
||||||
* @param[in] window The window whose context to make current, or `NULL` to
|
* @param[in] window The window whose context to make current, or `NULL` to
|
||||||
* detach the current context.
|
* detach the current context.
|
||||||
*
|
*
|
||||||
|
* @remarks If the previously current context was created via a different
|
||||||
|
* context creation API than the one passed to this function, GLFW will still
|
||||||
|
* detach the previous one from its API before making the new one current.
|
||||||
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
||||||
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
||||||
*
|
*
|
||||||
|
|
|
@ -21,7 +21,7 @@ model.materials.maps[pr.MaterialMapIndex.MATERIAL_MAP_ALBEDO].texture = texture
|
||||||
pr.unload_image(image)
|
pr.unload_image(image)
|
||||||
|
|
||||||
pos = pr.get_mouse_position()
|
pos = pr.get_mouse_position()
|
||||||
ray = pr.get_mouse_ray(pos, camera)
|
ray = pr.get_screen_to_world_ray(pos, camera)
|
||||||
#rayhit = pr.get_ray_collision_ground(ray, 0)
|
#rayhit = pr.get_ray_collision_ground(ray, 0)
|
||||||
#print(str(rayhit.position.x))
|
#print(str(rayhit.position.x))
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ while not pr.window_should_close():
|
||||||
pr.end_drawing()
|
pr.end_drawing()
|
||||||
|
|
||||||
pos = pr.get_mouse_position()
|
pos = pr.get_mouse_position()
|
||||||
ray = pr.get_mouse_ray(pos, camera)
|
ray = pr.get_screen_to_world_ray(pos, camera)
|
||||||
#rayhit = pr.get_ray_collision_ground(ray, 0)
|
#rayhit = pr.get_ray_collision_ground(ray, 0)
|
||||||
#print(str(rayhit.position.x))
|
#print(str(rayhit.position.x))
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ model.materials.maps[MATERIAL_MAP_ALBEDO].texture = texture
|
||||||
unload_image(image)
|
unload_image(image)
|
||||||
|
|
||||||
pos = get_mouse_position()
|
pos = get_mouse_position()
|
||||||
ray = get_mouse_ray(pos, camera)
|
ray = get_screen_to_world_ray(pos, camera)
|
||||||
#rayhit = get_ray_collision_ground(ray, 0)
|
#rayhit = get_ray_collision_ground(ray, 0)
|
||||||
#print(str(rayhit.position.x))
|
#print(str(rayhit.position.x))
|
||||||
|
|
||||||
|
@ -33,11 +33,11 @@ while not window_should_close():
|
||||||
draw_model(model, (-8.0, 0.0, -8.0), 1.0, RED)
|
draw_model(model, (-8.0, 0.0, -8.0), 1.0, RED)
|
||||||
draw_grid(20, 1.0)
|
draw_grid(20, 1.0)
|
||||||
end_mode_3d()
|
end_mode_3d()
|
||||||
draw_text("This mesh should be textured", 190, 200, 20, VIOLET)
|
draw_text("This mesh should be tesxtured", 190, 200, 20, VIOLET)
|
||||||
end_drawing()
|
end_drawing()
|
||||||
|
|
||||||
pos = get_mouse_position()
|
pos = get_mouse_position()
|
||||||
ray = get_mouse_ray(pos, camera)
|
ray = get_screen_to_world_ray(pos, camera)
|
||||||
#rayhit = get_ray_collision_ground(ray, 0)
|
#rayhit = get_ray_collision_ground(ray, 0)
|
||||||
#print(str(rayhit.position.x))
|
#print(str(rayhit.position.x))
|
||||||
|
|
||||||
|
|
Reference in a new issue