This commit is contained in:
Richard Smith 2024-10-17 15:58:59 +01:00
parent cfad3eacaa
commit 1817fec006
16 changed files with 287 additions and 217 deletions

View file

@ -127,7 +127,7 @@ project.</p>
<p>If the Pip build doesnt work, please submit a bug. (And if you have
fixed it, a PR.)</p>
</div>
<p>Manual instructions follow, but may be outdated, so see also how we actually build the wheels
<p>Manual instructions follow, but are probably outdated, so see instead how we actually build the wheels
at <a class="reference external" href="https://github.com/electronstudio/raylib-python-cffi/blob/master/.github/workflows/build.yml">https://github.com/electronstudio/raylib-python-cffi/blob/master/.github/workflows/build.yml</a></p>
<section id="windows-manual-build">
<h3>Windows manual build<a class="headerlink" href="#windows-manual-build" title="Link to this heading"></a></h3>

View file

@ -64,7 +64,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="#how-to-use">How to use</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#if-you-are-familiar-with-c-coding-and-the-raylib-c-library-and-you-want-to-use-an-exact-copy-of-the-c-api">If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API</a></li>
<li class="toctree-l2"><a class="reference internal" href="#if-you-prefer-a-slightly-more-pythonistic-api-and-don-t-mind-it-might-be-slightly-slower">If you prefer a slightly more Pythonistic API and dont mind it might be slightly slower</a></li>
<li class="toctree-l2"><a class="reference internal" href="#if-you-prefer-a-more-pythonistic-api">If you prefer a more Pythonistic API</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="#running-in-a-web-browser">Running in a web browser</a></li>
@ -116,7 +116,7 @@
</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></p>
<p>New CFFI API static bindings.</p>
<ul class="simple">
<li><p>Automatically generated to be as close as possible to
@ -153,7 +153,8 @@ original Raylib.</p></li>
python3 -m pip install raylib==5.0.0.4
</pre></div>
</div>
<p>On most platforms it should install a binary wheel. If yours isnt available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
<p>On most platforms it should install a binary wheel. If yours isnt 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>
<section id="windows">
<h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
@ -162,19 +163,25 @@ using homebrew, apt, 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>Binaries require:</p>
<ul class="simple">
<li><p>arm64 MacOS 14</p></li>
<li><p>x64 MacOS 10.13, or newer.</p></li>
</ul>
<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>
<p>(I do have binaries for arm64 MacOS 11, 12 and 13 but I have no way of testing they work, so post an issue
if you want to test them.)</p>
</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
<p>The arm64 binaries are built on Raspberry Pi arm64 Bullseye with OpenGL 2.0
so may not work on other boards.</p>
</section>
<section id="raspberry-pi">
@ -184,7 +191,8 @@ so may not work on other boards.</p>
<section id="dynamic-binding-version">
<h2>Dynamic binding version<a class="headerlink" href="#dynamic-binding-version" title="Link to this heading"></a></h2>
<p>There is now a separate dynamic version of this binding:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip install raylib_dynamic
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python3 -m pip uninstall raylib
python3 -m pip install raylib_dynamic
</pre></div>
</div>
<p>It works on some systems where the static version doesnt, <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>
@ -196,7 +204,7 @@ so may not work on other boards.</p>
python3 -m pip install raylib_sdl
</pre></div>
</div>
<p>You cant have multiple backends installed at once.</p>
<p>You cant have multiple raylib packages 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>
@ -205,26 +213,28 @@ python3 -m pip install raylib_sdl
python3 -m pip install raylib_drm
</pre></div>
</div>
<p>You cant have multiple backends installed at once.</p>
<p>You cant have multiple raylib packages installed at once.</p>
</section>
<section id="problems">
<h2>Problems?<a class="headerlink" href="#problems" title="Link to this heading"></a></h2>
<p>If it doesnt work, <a class="reference internal" href="BUILDING.html"><span class="std std-doc">try to build manually.</span></a>. If that works then <a class="reference external" href="https://github.com/electronstudio/raylib-python-cffi/issues">submit an issue</a>
to let us know what you did.</p>
<p>If you need help you can try asking <a class="reference external" href="https://discord.gg/raylib">on Discord</a>.</p>
<p>If you need help you can try asking on <a class="reference external" href="https://discord.gg/fKDwt85aX6">our discord</a>. There is also a large <a class="reference external" href="https://discord.gg/raylib">Raylib discord</a>
for issues that are not Python-specific.</p>
<p>If it still doesnt work, <a class="reference external" href="https://github.com/electronstudio/raylib-python-cffi/issues">submit an issue</a>.</p>
</section>
</section>
<section id="how-to-use">
<h1>How to use<a class="headerlink" href="#how-to-use" title="Link to this heading"></a></h1>
<p>There are two APIs, you can use either or both:</p>
<p>There are two modules in the raylib package, <code class="docutils literal notranslate"><span class="pre">raylib</span></code> and <code class="docutils literal notranslate"><span class="pre">pyray</span></code>. (There is no separate package for
pyray). You can use either or both:</p>
<section id="if-you-are-familiar-with-c-coding-and-the-raylib-c-library-and-you-want-to-use-an-exact-copy-of-the-c-api">
<h2>If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API<a class="headerlink" href="#if-you-are-familiar-with-c-coding-and-the-raylib-c-library-and-you-want-to-use-an-exact-copy-of-the-c-api" title="Link to this heading"></a></h2>
<p>Use <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/raylib.html">the C API</a>.</p>
<p>Use <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/raylib.html">the raylib module</a>.</p>
</section>
<section id="if-you-prefer-a-slightly-more-pythonistic-api-and-don-t-mind-it-might-be-slightly-slower">
<h2>If you prefer a slightly more Pythonistic API and dont mind it might be slightly slower<a class="headerlink" href="#if-you-prefer-a-slightly-more-pythonistic-api-and-don-t-mind-it-might-be-slightly-slower" title="Link to this heading"></a></h2>
<p>Use <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/pyray.html">the Python API</a>.</p>
<section id="if-you-prefer-a-more-pythonistic-api">
<h2>If you prefer a more Pythonistic API<a class="headerlink" href="#if-you-prefer-a-more-pythonistic-api" title="Link to this heading"></a></h2>
<p>Use <a class="reference external" href="https://electronstudio.github.io/raylib-python-cffi/pyray.html">the pyray module</a>.</p>
</section>
</section>
<section id="running-in-a-web-browser">

View file

@ -38,7 +38,7 @@ project.
If the Pip build doesnt work, please submit a bug. (And if you have
fixed it, a PR.)
Manual instructions follow, but may be outdated, so see also how we actually build the wheels
Manual instructions follow, but are probably outdated, so see instead how we actually build the wheels
at https://github.com/electronstudio/raylib-python-cffi/blob/master/.github/workflows/build.yml
Windows manual build

View file

@ -2,7 +2,7 @@
## 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)
New CFFI API static bindings.
* Automatically generated to be as close as possible to
@ -39,7 +39,8 @@ Then install
python3 -m pip install setuptools
python3 -m pip install raylib==5.0.0.4
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.
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.
using homebrew, apt, etc.
## Windows
@ -50,7 +51,9 @@ Use an [official Windows Python release](https://www.python.org/downloads/window
## MacOS
Binaries require arm64 MacOS 13 or x64 MacOS 12 or newer.
Binaries require:
* arm64 MacOS 14
* x64 MacOS 10.13, or newer.
Older MacOS requires building from source but this is usually simple:
@ -58,12 +61,15 @@ Older MacOS requires building from source but this is usually simple:
brew install raylib
python3 -m pip install raylib==5.0.0.4
(I do have binaries for arm64 MacOS 11, 12 and 13 but I have no way of testing they work, so post an issue
if you want to test them.)
## 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
The arm64 binaries are built on Raspberry Pi arm64 Bullseye with OpenGL 2.0
so may not work on other boards.
## Raspberry Pi
@ -74,6 +80,7 @@ so may not work on other boards.
There is now a separate dynamic version of this binding:
python3 -m pip uninstall raylib
python3 -m pip install raylib_dynamic
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)
@ -85,7 +92,7 @@ This is not well tested but has better support for controllers:
python3 -m pip uninstall raylib
python3 -m pip install raylib_sdl
You can't have multiple backends installed at once.
You can't have multiple raylib packages installed at once.
## DRM backend
@ -94,29 +101,31 @@ 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.
You can't have multiple raylib packages installed at once.
## Problems?
If it doesn't work, [try to build manually.](BUILDING.rst). If that works then [submit an issue](https://github.com/electronstudio/raylib-python-cffi/issues)
to let us know what you did.
If you need help you can try asking [on Discord](https://discord.gg/raylib).
If you need help you can try asking on [our discord](https://discord.gg/fKDwt85aX6). There is also a large [Raylib discord](https://discord.gg/raylib)
for issues that are not Python-specific.
If it still doesn't work, [submit an issue](https://github.com/electronstudio/raylib-python-cffi/issues).
# How to use
There are two APIs, you can use either or both:
There are two modules in the raylib package, `raylib` and `pyray`. (There is no separate package for
pyray). You can use either or both:
### If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API
Use [the C API](https://electronstudio.github.io/raylib-python-cffi/raylib.html).
Use [the raylib module](https://electronstudio.github.io/raylib-python-cffi/raylib.html).
### If you prefer a slightly more Pythonistic API and don't mind it might be slightly slower
### If you prefer a more Pythonistic API
Use [the Python API](https://electronstudio.github.io/raylib-python-cffi/pyray.html).
Use [the pyray module](https://electronstudio.github.io/raylib-python-cffi/pyray.html).
# Running in a web browser

View file

@ -56,7 +56,6 @@ Example program:
init_window(800, 450, "Raylib texture test")
...
(You don't need to use the PyRay() class anymore.)
`See all examples here <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_

View file

@ -596,8 +596,6 @@
</li>
<li><a href="pyray.html#pyray.codepoint_to_utf8">codepoint_to_utf8() (in module pyray)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="raylib.html#raylib.CodepointToUTF8">CodepointToUTF8() (in module raylib)</a>
</li>
<li><a href="pyray.html#pyray.Color">Color (class in pyray)</a>
@ -606,6 +604,8 @@
<li><a href="raylib.html#raylib.Color">(in module raylib)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pyray.html#pyray.MaterialMap.color">color (pyray.MaterialMap attribute)</a>
</li>
<li><a href="pyray.html#pyray.color_alpha">color_alpha() (in module pyray)</a>
@ -695,6 +695,14 @@
<li><a href="pyray.html#pyray.compress_data">compress_data() (in module pyray)</a>
</li>
<li><a href="raylib.html#raylib.CompressData">CompressData() (in module raylib)</a>
</li>
<li><a href="pyray.html#pyray.compute_crc32">compute_crc32() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.compute_md5">compute_md5() (in module pyray)</a>
</li>
<li><a href="raylib.html#raylib.ComputeCRC32">ComputeCRC32() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.ComputeMD5">ComputeMD5() (in module raylib)</a>
</li>
<li><a href="pyray.html#pyray.ConfigFlags">ConfigFlags (class in pyray)</a>
@ -5024,7 +5032,7 @@
</li>
<li><a href="pyray.html#pyray.is_audio_stream_processed">is_audio_stream_processed() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_audio_stream_ready">is_audio_stream_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_audio_stream_valid">is_audio_stream_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_cursor_hidden">is_cursor_hidden() (in module pyray)</a>
</li>
@ -5036,7 +5044,7 @@
</li>
<li><a href="pyray.html#pyray.is_file_name_valid">is_file_name_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_font_ready">is_font_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_font_valid">is_font_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_gamepad_available">is_gamepad_available() (in module pyray)</a>
</li>
@ -5050,7 +5058,7 @@
</li>
<li><a href="pyray.html#pyray.is_gesture_detected">is_gesture_detected() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_image_ready">is_image_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_image_valid">is_image_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_key_down">is_key_down() (in module pyray)</a>
</li>
@ -5062,11 +5070,11 @@
</li>
<li><a href="pyray.html#pyray.is_key_up">is_key_up() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_material_ready">is_material_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_material_valid">is_material_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_model_animation_valid">is_model_animation_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_model_ready">is_model_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_model_valid">is_model_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_mouse_button_down">is_mouse_button_down() (in module pyray)</a>
</li>
@ -5075,24 +5083,24 @@
<li><a href="pyray.html#pyray.is_mouse_button_released">is_mouse_button_released() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_mouse_button_up">is_mouse_button_up() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_music_ready">is_music_ready() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_music_stream_playing">is_music_stream_playing() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_music_valid">is_music_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_path_file">is_path_file() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_render_texture_ready">is_render_texture_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_render_texture_valid">is_render_texture_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_shader_ready">is_shader_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_shader_valid">is_shader_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_sound_playing">is_sound_playing() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_sound_ready">is_sound_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_sound_valid">is_sound_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_texture_ready">is_texture_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_texture_valid">is_texture_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_wave_ready">is_wave_ready() (in module pyray)</a>
<li><a href="pyray.html#pyray.is_wave_valid">is_wave_valid() (in module pyray)</a>
</li>
<li><a href="pyray.html#pyray.is_window_focused">is_window_focused() (in module pyray)</a>
</li>
@ -5116,7 +5124,7 @@
</li>
<li><a href="raylib.html#raylib.IsAudioStreamProcessed">IsAudioStreamProcessed() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsAudioStreamReady">IsAudioStreamReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsAudioStreamValid">IsAudioStreamValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsCursorHidden">IsCursorHidden() (in module raylib)</a>
</li>
@ -5128,7 +5136,7 @@
</li>
<li><a href="raylib.html#raylib.IsFileNameValid">IsFileNameValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsFontReady">IsFontReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsFontValid">IsFontValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsGamepadAvailable">IsGamepadAvailable() (in module raylib)</a>
</li>
@ -5144,7 +5152,7 @@
</li>
<li><a href="pyray.html#pyray.PhysicsBodyData.isGrounded">isGrounded (pyray.PhysicsBodyData attribute)</a>
</li>
<li><a href="raylib.html#raylib.IsImageReady">IsImageReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsImageValid">IsImageValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsKeyDown">IsKeyDown() (in module raylib)</a>
</li>
@ -5156,11 +5164,11 @@
</li>
<li><a href="raylib.html#raylib.IsKeyUp">IsKeyUp() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMaterialReady">IsMaterialReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsMaterialValid">IsMaterialValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsModelAnimationValid">IsModelAnimationValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsModelReady">IsModelReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsModelValid">IsModelValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMouseButtonDown">IsMouseButtonDown() (in module raylib)</a>
</li>
@ -5169,24 +5177,24 @@
<li><a href="raylib.html#raylib.IsMouseButtonReleased">IsMouseButtonReleased() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMouseButtonUp">IsMouseButtonUp() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMusicReady">IsMusicReady() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMusicStreamPlaying">IsMusicStreamPlaying() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsMusicValid">IsMusicValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsPathFile">IsPathFile() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsRenderTextureReady">IsRenderTextureReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsRenderTextureValid">IsRenderTextureValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsShaderReady">IsShaderReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsShaderValid">IsShaderValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsSoundPlaying">IsSoundPlaying() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsSoundReady">IsSoundReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsSoundValid">IsSoundValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsTextureReady">IsTextureReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsTextureValid">IsTextureValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsWaveReady">IsWaveReady() (in module raylib)</a>
<li><a href="raylib.html#raylib.IsWaveValid">IsWaveValid() (in module raylib)</a>
</li>
<li><a href="raylib.html#raylib.IsWindowFocused">IsWindowFocused() (in module raylib)</a>
</li>

Binary file not shown.

View file

@ -1227,6 +1227,8 @@
<li class="toctree-l3"><a class="reference internal" href="#pyray.color_to_hsv"><code class="docutils literal notranslate"><span class="pre">color_to_hsv()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.color_to_int"><code class="docutils literal notranslate"><span class="pre">color_to_int()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.compress_data"><code class="docutils literal notranslate"><span class="pre">compress_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.compute_crc32"><code class="docutils literal notranslate"><span class="pre">compute_crc32()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.compute_md5"><code class="docutils literal notranslate"><span class="pre">compute_md5()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.create_physics_body_circle"><code class="docutils literal notranslate"><span class="pre">create_physics_body_circle()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.create_physics_body_polygon"><code class="docutils literal notranslate"><span class="pre">create_physics_body_polygon()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.create_physics_body_rectangle"><code class="docutils literal notranslate"><span class="pre">create_physics_body_rectangle()</span></code></a></li>
@ -1720,41 +1722,41 @@
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_audio_device_ready"><code class="docutils literal notranslate"><span class="pre">is_audio_device_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_audio_stream_playing"><code class="docutils literal notranslate"><span class="pre">is_audio_stream_playing()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_audio_stream_processed"><code class="docutils literal notranslate"><span class="pre">is_audio_stream_processed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_audio_stream_ready"><code class="docutils literal notranslate"><span class="pre">is_audio_stream_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_audio_stream_valid"><code class="docutils literal notranslate"><span class="pre">is_audio_stream_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_cursor_hidden"><code class="docutils literal notranslate"><span class="pre">is_cursor_hidden()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_cursor_on_screen"><code class="docutils literal notranslate"><span class="pre">is_cursor_on_screen()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_file_dropped"><code class="docutils literal notranslate"><span class="pre">is_file_dropped()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_file_extension"><code class="docutils literal notranslate"><span class="pre">is_file_extension()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_file_name_valid"><code class="docutils literal notranslate"><span class="pre">is_file_name_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_font_ready"><code class="docutils literal notranslate"><span class="pre">is_font_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_font_valid"><code class="docutils literal notranslate"><span class="pre">is_font_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gamepad_available"><code class="docutils literal notranslate"><span class="pre">is_gamepad_available()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gamepad_button_down"><code class="docutils literal notranslate"><span class="pre">is_gamepad_button_down()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gamepad_button_pressed"><code class="docutils literal notranslate"><span class="pre">is_gamepad_button_pressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gamepad_button_released"><code class="docutils literal notranslate"><span class="pre">is_gamepad_button_released()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gamepad_button_up"><code class="docutils literal notranslate"><span class="pre">is_gamepad_button_up()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_gesture_detected"><code class="docutils literal notranslate"><span class="pre">is_gesture_detected()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_image_ready"><code class="docutils literal notranslate"><span class="pre">is_image_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_image_valid"><code class="docutils literal notranslate"><span class="pre">is_image_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_key_down"><code class="docutils literal notranslate"><span class="pre">is_key_down()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_key_pressed"><code class="docutils literal notranslate"><span class="pre">is_key_pressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_key_pressed_repeat"><code class="docutils literal notranslate"><span class="pre">is_key_pressed_repeat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_key_released"><code class="docutils literal notranslate"><span class="pre">is_key_released()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_key_up"><code class="docutils literal notranslate"><span class="pre">is_key_up()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_material_ready"><code class="docutils literal notranslate"><span class="pre">is_material_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_material_valid"><code class="docutils literal notranslate"><span class="pre">is_material_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_model_animation_valid"><code class="docutils literal notranslate"><span class="pre">is_model_animation_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_model_ready"><code class="docutils literal notranslate"><span class="pre">is_model_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_model_valid"><code class="docutils literal notranslate"><span class="pre">is_model_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_mouse_button_down"><code class="docutils literal notranslate"><span class="pre">is_mouse_button_down()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_mouse_button_pressed"><code class="docutils literal notranslate"><span class="pre">is_mouse_button_pressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_mouse_button_released"><code class="docutils literal notranslate"><span class="pre">is_mouse_button_released()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_mouse_button_up"><code class="docutils literal notranslate"><span class="pre">is_mouse_button_up()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_music_ready"><code class="docutils literal notranslate"><span class="pre">is_music_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_music_stream_playing"><code class="docutils literal notranslate"><span class="pre">is_music_stream_playing()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_music_valid"><code class="docutils literal notranslate"><span class="pre">is_music_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_path_file"><code class="docutils literal notranslate"><span class="pre">is_path_file()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_render_texture_ready"><code class="docutils literal notranslate"><span class="pre">is_render_texture_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_shader_ready"><code class="docutils literal notranslate"><span class="pre">is_shader_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_render_texture_valid"><code class="docutils literal notranslate"><span class="pre">is_render_texture_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_shader_valid"><code class="docutils literal notranslate"><span class="pre">is_shader_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_sound_playing"><code class="docutils literal notranslate"><span class="pre">is_sound_playing()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_sound_ready"><code class="docutils literal notranslate"><span class="pre">is_sound_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_texture_ready"><code class="docutils literal notranslate"><span class="pre">is_texture_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_wave_ready"><code class="docutils literal notranslate"><span class="pre">is_wave_ready()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_sound_valid"><code class="docutils literal notranslate"><span class="pre">is_sound_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_texture_valid"><code class="docutils literal notranslate"><span class="pre">is_texture_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_wave_valid"><code class="docutils literal notranslate"><span class="pre">is_wave_valid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_window_focused"><code class="docutils literal notranslate"><span class="pre">is_window_focused()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_window_fullscreen"><code class="docutils literal notranslate"><span class="pre">is_window_fullscreen()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#pyray.is_window_hidden"><code class="docutils literal notranslate"><span class="pre">is_window_hidden()</span></code></a></li>
@ -2369,7 +2371,6 @@
<span class="o">...</span>
</pre></div>
</div>
<p>(You dont need to use the PyRay() class anymore.)</p>
</div>
<p><a class="reference external" href="https://github.com/electronstudio/raylib-python-cffi/tree/master/examples">See all examples here</a></p>
</section>
@ -7524,6 +7525,18 @@
<dd><p>Compress data (DEFLATE algorithm), memory must be MemFree()</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.compute_crc32">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">compute_crc32</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataSize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">int</span></span></span><a class="headerlink" href="#pyray.compute_crc32" title="Link to this definition"></a></dt>
<dd><p>Compute CRC32 hash code</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.compute_md5">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">compute_md5</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataSize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#pyray.compute_md5" title="Link to this definition"></a></dt>
<dd><p>Compute MD5 hash code, returns static int[4] (16 bytes)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.create_physics_body_circle">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">create_physics_body_circle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pos</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Vector2" title="pyray.Vector2"><span class="pre">Vector2</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">density</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#pyray.create_physics_body_circle" title="Link to this definition"></a></dt>
@ -10336,9 +10349,9 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_audio_stream_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_audio_stream_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.AudioStream" title="pyray.AudioStream"><span class="pre">AudioStream</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_audio_stream_ready" title="Link to this definition"></a></dt>
<dd><p>Checks if an audio stream is ready</p>
<dt class="sig sig-object py" id="pyray.is_audio_stream_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_audio_stream_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.AudioStream" title="pyray.AudioStream"><span class="pre">AudioStream</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_audio_stream_valid" title="Link to this definition"></a></dt>
<dd><p>Checks if an audio stream is valid (buffers initialized)</p>
</dd></dl>
<dl class="py function">
@ -10372,9 +10385,9 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_font_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_font_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">font</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Font" title="pyray.Font"><span class="pre">Font</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_font_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a font is ready</p>
<dt class="sig sig-object py" id="pyray.is_font_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_font_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">font</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Font" title="pyray.Font"><span class="pre">Font</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_font_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a font is valid (font data loaded, WARNING: GPU texture not checked)</p>
</dd></dl>
<dl class="py function">
@ -10414,9 +10427,9 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_image_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_image_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Image" title="pyray.Image"><span class="pre">Image</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_image_ready" title="Link to this definition"></a></dt>
<dd><p>Check if an image is ready</p>
<dt class="sig sig-object py" id="pyray.is_image_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_image_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Image" title="pyray.Image"><span class="pre">Image</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_image_valid" title="Link to this definition"></a></dt>
<dd><p>Check if an image is valid (data and parameters)</p>
</dd></dl>
<dl class="py function">
@ -10450,9 +10463,9 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_material_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_material_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">material</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Material" title="pyray.Material"><span class="pre">Material</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_material_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a material is ready</p>
<dt class="sig sig-object py" id="pyray.is_material_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_material_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">material</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Material" title="pyray.Material"><span class="pre">Material</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_material_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a material is valid (shader assigned, map textures loaded in GPU)</p>
</dd></dl>
<dl class="py function">
@ -10462,9 +10475,9 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_model_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_model_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Model" title="pyray.Model"><span class="pre">Model</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_model_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a model is ready</p>
<dt class="sig sig-object py" id="pyray.is_model_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_model_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Model" title="pyray.Model"><span class="pre">Model</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_model_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a model is valid (loaded in GPU, VAO/VBOs)</p>
</dd></dl>
<dl class="py function">
@ -10491,18 +10504,18 @@
<dd><p>Check if a mouse button is NOT being pressed</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_music_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_music_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_music_ready" title="Link to this definition"></a></dt>
<dd><p>Checks if a music stream is ready</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_music_stream_playing">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_music_stream_playing</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_music_stream_playing" title="Link to this definition"></a></dt>
<dd><p>Check if music is playing</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_music_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_music_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_music_valid" title="Link to this definition"></a></dt>
<dd><p>Checks if a music stream is valid (context and buffers initialized)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_path_file">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_path_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_path_file" title="Link to this definition"></a></dt>
@ -10510,15 +10523,15 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_render_texture_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_render_texture_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.RenderTexture" title="pyray.RenderTexture"><span class="pre">RenderTexture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_render_texture_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a render texture is ready</p>
<dt class="sig sig-object py" id="pyray.is_render_texture_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_render_texture_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.RenderTexture" title="pyray.RenderTexture"><span class="pre">RenderTexture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_render_texture_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a render texture is valid (loaded in GPU)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_shader_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_shader_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shader</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Shader" title="pyray.Shader"><span class="pre">Shader</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_shader_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a shader is ready</p>
<dt class="sig sig-object py" id="pyray.is_shader_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_shader_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shader</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Shader" title="pyray.Shader"><span class="pre">Shader</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_shader_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a shader is valid (loaded on GPU)</p>
</dd></dl>
<dl class="py function">
@ -10528,21 +10541,21 @@
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_sound_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_sound_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sound</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Sound" title="pyray.Sound"><span class="pre">Sound</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_sound_ready" title="Link to this definition"></a></dt>
<dd><p>Checks if a sound is ready</p>
<dt class="sig sig-object py" id="pyray.is_sound_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_sound_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sound</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Sound" title="pyray.Sound"><span class="pre">Sound</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_sound_valid" title="Link to this definition"></a></dt>
<dd><p>Checks if a sound is valid (data loaded and buffers initialized)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_texture_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_texture_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">texture</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Texture" title="pyray.Texture"><span class="pre">Texture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_texture_ready" title="Link to this definition"></a></dt>
<dd><p>Check if a texture is ready</p>
<dt class="sig sig-object py" id="pyray.is_texture_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_texture_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">texture</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Texture" title="pyray.Texture"><span class="pre">Texture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_texture_valid" title="Link to this definition"></a></dt>
<dd><p>Check if a texture is valid (loaded in GPU)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pyray.is_wave_ready">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_wave_ready</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wave</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Wave" title="pyray.Wave"><span class="pre">Wave</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_wave_ready" title="Link to this definition"></a></dt>
<dd><p>Checks if wave data is ready</p>
<dt class="sig sig-object py" id="pyray.is_wave_valid">
<span class="sig-prename descclassname"><span class="pre">pyray.</span></span><span class="sig-name descname"><span class="pre">is_wave_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wave</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyray.Wave" title="pyray.Wave"><span class="pre">Wave</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#pyray.is_wave_valid" title="Link to this definition"></a></dt>
<dd><p>Checks if wave data is valid (data loaded and parameters)</p>
</dd></dl>
<dl class="py function">

View file

@ -163,6 +163,8 @@
<li class="toctree-l3"><a class="reference internal" href="#raylib.ColorToHSV"><code class="docutils literal notranslate"><span class="pre">ColorToHSV()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.ColorToInt"><code class="docutils literal notranslate"><span class="pre">ColorToInt()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.CompressData"><code class="docutils literal notranslate"><span class="pre">CompressData()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.ComputeCRC32"><code class="docutils literal notranslate"><span class="pre">ComputeCRC32()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.ComputeMD5"><code class="docutils literal notranslate"><span class="pre">ComputeMD5()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.ConfigFlags"><code class="docutils literal notranslate"><span class="pre">ConfigFlags</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.CreatePhysicsBodyCircle"><code class="docutils literal notranslate"><span class="pre">CreatePhysicsBodyCircle()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.CreatePhysicsBodyPolygon"><code class="docutils literal notranslate"><span class="pre">CreatePhysicsBodyPolygon()</span></code></a></li>
@ -894,41 +896,41 @@
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsAudioDeviceReady"><code class="docutils literal notranslate"><span class="pre">IsAudioDeviceReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsAudioStreamPlaying"><code class="docutils literal notranslate"><span class="pre">IsAudioStreamPlaying()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsAudioStreamProcessed"><code class="docutils literal notranslate"><span class="pre">IsAudioStreamProcessed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsAudioStreamReady"><code class="docutils literal notranslate"><span class="pre">IsAudioStreamReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsAudioStreamValid"><code class="docutils literal notranslate"><span class="pre">IsAudioStreamValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsCursorHidden"><code class="docutils literal notranslate"><span class="pre">IsCursorHidden()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsCursorOnScreen"><code class="docutils literal notranslate"><span class="pre">IsCursorOnScreen()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsFileDropped"><code class="docutils literal notranslate"><span class="pre">IsFileDropped()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsFileExtension"><code class="docutils literal notranslate"><span class="pre">IsFileExtension()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsFileNameValid"><code class="docutils literal notranslate"><span class="pre">IsFileNameValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsFontReady"><code class="docutils literal notranslate"><span class="pre">IsFontReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsFontValid"><code class="docutils literal notranslate"><span class="pre">IsFontValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGamepadAvailable"><code class="docutils literal notranslate"><span class="pre">IsGamepadAvailable()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGamepadButtonDown"><code class="docutils literal notranslate"><span class="pre">IsGamepadButtonDown()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGamepadButtonPressed"><code class="docutils literal notranslate"><span class="pre">IsGamepadButtonPressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGamepadButtonReleased"><code class="docutils literal notranslate"><span class="pre">IsGamepadButtonReleased()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGamepadButtonUp"><code class="docutils literal notranslate"><span class="pre">IsGamepadButtonUp()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsGestureDetected"><code class="docutils literal notranslate"><span class="pre">IsGestureDetected()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsImageReady"><code class="docutils literal notranslate"><span class="pre">IsImageReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsImageValid"><code class="docutils literal notranslate"><span class="pre">IsImageValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsKeyDown"><code class="docutils literal notranslate"><span class="pre">IsKeyDown()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsKeyPressed"><code class="docutils literal notranslate"><span class="pre">IsKeyPressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsKeyPressedRepeat"><code class="docutils literal notranslate"><span class="pre">IsKeyPressedRepeat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsKeyReleased"><code class="docutils literal notranslate"><span class="pre">IsKeyReleased()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsKeyUp"><code class="docutils literal notranslate"><span class="pre">IsKeyUp()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMaterialReady"><code class="docutils literal notranslate"><span class="pre">IsMaterialReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMaterialValid"><code class="docutils literal notranslate"><span class="pre">IsMaterialValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsModelAnimationValid"><code class="docutils literal notranslate"><span class="pre">IsModelAnimationValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsModelReady"><code class="docutils literal notranslate"><span class="pre">IsModelReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsModelValid"><code class="docutils literal notranslate"><span class="pre">IsModelValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMouseButtonDown"><code class="docutils literal notranslate"><span class="pre">IsMouseButtonDown()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMouseButtonPressed"><code class="docutils literal notranslate"><span class="pre">IsMouseButtonPressed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMouseButtonReleased"><code class="docutils literal notranslate"><span class="pre">IsMouseButtonReleased()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMouseButtonUp"><code class="docutils literal notranslate"><span class="pre">IsMouseButtonUp()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMusicReady"><code class="docutils literal notranslate"><span class="pre">IsMusicReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMusicStreamPlaying"><code class="docutils literal notranslate"><span class="pre">IsMusicStreamPlaying()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsMusicValid"><code class="docutils literal notranslate"><span class="pre">IsMusicValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsPathFile"><code class="docutils literal notranslate"><span class="pre">IsPathFile()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsRenderTextureReady"><code class="docutils literal notranslate"><span class="pre">IsRenderTextureReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsShaderReady"><code class="docutils literal notranslate"><span class="pre">IsShaderReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsRenderTextureValid"><code class="docutils literal notranslate"><span class="pre">IsRenderTextureValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsShaderValid"><code class="docutils literal notranslate"><span class="pre">IsShaderValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsSoundPlaying"><code class="docutils literal notranslate"><span class="pre">IsSoundPlaying()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsSoundReady"><code class="docutils literal notranslate"><span class="pre">IsSoundReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsTextureReady"><code class="docutils literal notranslate"><span class="pre">IsTextureReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsWaveReady"><code class="docutils literal notranslate"><span class="pre">IsWaveReady()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsSoundValid"><code class="docutils literal notranslate"><span class="pre">IsSoundValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsTextureValid"><code class="docutils literal notranslate"><span class="pre">IsTextureValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsWaveValid"><code class="docutils literal notranslate"><span class="pre">IsWaveValid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsWindowFocused"><code class="docutils literal notranslate"><span class="pre">IsWindowFocused()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsWindowFullscreen"><code class="docutils literal notranslate"><span class="pre">IsWindowFullscreen()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#raylib.IsWindowHidden"><code class="docutils literal notranslate"><span class="pre">IsWindowHidden()</span></code></a></li>
@ -2667,6 +2669,18 @@ are very, very similar to the C originals.</p>
<dd><p>Compress data (DEFLATE algorithm), memory must be MemFree()</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.ComputeCRC32">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">ComputeCRC32</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataSize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">int</span></span></span><a class="headerlink" href="#raylib.ComputeCRC32" title="Link to this definition"></a></dt>
<dd><p>Compute CRC32 hash code</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.ComputeMD5">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">ComputeMD5</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataSize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#raylib.ComputeMD5" title="Link to this definition"></a></dt>
<dd><p>Compute MD5 hash code, returns static int[4] (16 bytes)</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="raylib.ConfigFlags">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">ConfigFlags</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><a class="headerlink" href="#raylib.ConfigFlags" title="Link to this definition"></a></dt>
@ -6687,9 +6701,9 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsAudioStreamReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsAudioStreamReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.AudioStream" title="pyray.AudioStream"><span class="pre">AudioStream</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsAudioStreamReady" title="Link to this definition"></a></dt>
<dd><p>Checks if an audio stream is ready</p>
<dt class="sig sig-object py" id="raylib.IsAudioStreamValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsAudioStreamValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stream</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.AudioStream" title="pyray.AudioStream"><span class="pre">AudioStream</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsAudioStreamValid" title="Link to this definition"></a></dt>
<dd><p>Checks if an audio stream is valid (buffers initialized)</p>
</dd></dl>
<dl class="py function">
@ -6723,9 +6737,9 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsFontReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsFontReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">font</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Font" title="pyray.Font"><span class="pre">Font</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsFontReady" title="Link to this definition"></a></dt>
<dd><p>Check if a font is ready</p>
<dt class="sig sig-object py" id="raylib.IsFontValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsFontValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">font</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Font" title="pyray.Font"><span class="pre">Font</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsFontValid" title="Link to this definition"></a></dt>
<dd><p>Check if a font is valid (font data loaded, WARNING: GPU texture not checked)</p>
</dd></dl>
<dl class="py function">
@ -6765,9 +6779,9 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsImageReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsImageReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Image" title="pyray.Image"><span class="pre">Image</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsImageReady" title="Link to this definition"></a></dt>
<dd><p>Check if an image is ready</p>
<dt class="sig sig-object py" id="raylib.IsImageValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsImageValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Image" title="pyray.Image"><span class="pre">Image</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsImageValid" title="Link to this definition"></a></dt>
<dd><p>Check if an image is valid (data and parameters)</p>
</dd></dl>
<dl class="py function">
@ -6801,9 +6815,9 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsMaterialReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsMaterialReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">material</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Material" title="pyray.Material"><span class="pre">Material</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsMaterialReady" title="Link to this definition"></a></dt>
<dd><p>Check if a material is ready</p>
<dt class="sig sig-object py" id="raylib.IsMaterialValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsMaterialValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">material</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Material" title="pyray.Material"><span class="pre">Material</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsMaterialValid" title="Link to this definition"></a></dt>
<dd><p>Check if a material is valid (shader assigned, map textures loaded in GPU)</p>
</dd></dl>
<dl class="py function">
@ -6813,9 +6827,9 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsModelReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsModelReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Model" title="pyray.Model"><span class="pre">Model</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsModelReady" title="Link to this definition"></a></dt>
<dd><p>Check if a model is ready</p>
<dt class="sig sig-object py" id="raylib.IsModelValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsModelValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Model" title="pyray.Model"><span class="pre">Model</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsModelValid" title="Link to this definition"></a></dt>
<dd><p>Check if a model is valid (loaded in GPU, VAO/VBOs)</p>
</dd></dl>
<dl class="py function">
@ -6842,18 +6856,18 @@ are very, very similar to the C originals.</p>
<dd><p>Check if a mouse button is NOT being pressed</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsMusicReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsMusicReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsMusicReady" title="Link to this definition"></a></dt>
<dd><p>Checks if a music stream is ready</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsMusicStreamPlaying">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsMusicStreamPlaying</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsMusicStreamPlaying" title="Link to this definition"></a></dt>
<dd><p>Check if music is playing</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsMusicValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsMusicValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">music</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Music" title="pyray.Music"><span class="pre">Music</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsMusicValid" title="Link to this definition"></a></dt>
<dd><p>Checks if a music stream is valid (context and buffers initialized)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsPathFile">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsPathFile</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsPathFile" title="Link to this definition"></a></dt>
@ -6861,15 +6875,15 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsRenderTextureReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsRenderTextureReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.RenderTexture" title="pyray.RenderTexture"><span class="pre">RenderTexture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsRenderTextureReady" title="Link to this definition"></a></dt>
<dd><p>Check if a render texture is ready</p>
<dt class="sig sig-object py" id="raylib.IsRenderTextureValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsRenderTextureValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.RenderTexture" title="pyray.RenderTexture"><span class="pre">RenderTexture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsRenderTextureValid" title="Link to this definition"></a></dt>
<dd><p>Check if a render texture is valid (loaded in GPU)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsShaderReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsShaderReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shader</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Shader" title="pyray.Shader"><span class="pre">Shader</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsShaderReady" title="Link to this definition"></a></dt>
<dd><p>Check if a shader is ready</p>
<dt class="sig sig-object py" id="raylib.IsShaderValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsShaderValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shader</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Shader" title="pyray.Shader"><span class="pre">Shader</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsShaderValid" title="Link to this definition"></a></dt>
<dd><p>Check if a shader is valid (loaded on GPU)</p>
</dd></dl>
<dl class="py function">
@ -6879,21 +6893,21 @@ are very, very similar to the C originals.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsSoundReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsSoundReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sound</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Sound" title="pyray.Sound"><span class="pre">Sound</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsSoundReady" title="Link to this definition"></a></dt>
<dd><p>Checks if a sound is ready</p>
<dt class="sig sig-object py" id="raylib.IsSoundValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsSoundValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sound</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Sound" title="pyray.Sound"><span class="pre">Sound</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsSoundValid" title="Link to this definition"></a></dt>
<dd><p>Checks if a sound is valid (data loaded and buffers initialized)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsTextureReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsTextureReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">texture</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Texture" title="pyray.Texture"><span class="pre">Texture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsTextureReady" title="Link to this definition"></a></dt>
<dd><p>Check if a texture is ready</p>
<dt class="sig sig-object py" id="raylib.IsTextureValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsTextureValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">texture</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Texture" title="pyray.Texture"><span class="pre">Texture</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsTextureValid" title="Link to this definition"></a></dt>
<dd><p>Check if a texture is valid (loaded in GPU)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="raylib.IsWaveReady">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsWaveReady</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wave</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Wave" title="pyray.Wave"><span class="pre">Wave</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsWaveReady" title="Link to this definition"></a></dt>
<dd><p>Checks if wave data is ready</p>
<dt class="sig sig-object py" id="raylib.IsWaveValid">
<span class="sig-prename descclassname"><span class="pre">raylib.</span></span><span class="sig-name descname"><span class="pre">IsWaveValid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wave</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pyray.html#pyray.Wave" title="pyray.Wave"><span class="pre">Wave</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#raylib.IsWaveValid" title="Link to this definition"></a></dt>
<dd><p>Checks if wave data is valid (data loaded and parameters)</p>
</dd></dl>
<dl class="py function">

File diff suppressed because one or more lines are too long