diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json
index e95a14eac..9d85c3135 100644
--- a/parser/output/raylib_api.json
+++ b/parser/output/raylib_api.json
@@ -8529,7 +8529,7 @@
},
{
"name": "UpdateTexture",
- "description": "Update GPU texture with new data",
+ "description": "Update GPU texture with new data (pixels should be able to fill texture)",
"returnType": "void",
"params": [
{
@@ -8544,7 +8544,7 @@
},
{
"name": "UpdateTextureRec",
- "description": "Update GPU texture rectangle with new data",
+ "description": "Update GPU texture rectangle with new data (pixels and rec should fit in texture)",
"returnType": "void",
"params": [
{
@@ -11511,7 +11511,7 @@
},
{
"name": "UpdateSound",
- "description": "Update sound buffer with new data",
+ "description": "Update sound buffer with new data (data and frame count should fit in sound)",
"returnType": "void",
"params": [
{
diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua
index a7a2ff688..985a62c8b 100644
--- a/parser/output/raylib_api.lua
+++ b/parser/output/raylib_api.lua
@@ -6264,7 +6264,7 @@ return {
},
{
name = "UpdateTexture",
- description = "Update GPU texture with new data",
+ description = "Update GPU texture with new data (pixels should be able to fill texture)",
returnType = "void",
params = {
{type = "Texture2D", name = "texture"},
@@ -6273,7 +6273,7 @@ return {
},
{
name = "UpdateTextureRec",
- description = "Update GPU texture rectangle with new data",
+ description = "Update GPU texture rectangle with new data (pixels and rec should fit in texture)",
returnType = "void",
params = {
{type = "Texture2D", name = "texture"},
@@ -7872,7 +7872,7 @@ return {
},
{
name = "UpdateSound",
- description = "Update sound buffer with new data",
+ description = "Update sound buffer with new data (data and frame count should fit in sound)",
returnType = "void",
params = {
{type = "Sound", name = "sound"},
diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt
index e9a8a1315..2f9268cbf 100644
--- a/parser/output/raylib_api.txt
+++ b/parser/output/raylib_api.txt
@@ -3271,13 +3271,13 @@ Function 364: UnloadRenderTexture() (1 input parameters)
Function 365: UpdateTexture() (2 input parameters)
Name: UpdateTexture
Return type: void
- Description: Update GPU texture with new data
+ Description: Update GPU texture with new data (pixels should be able to fill texture)
Param[1]: texture (type: Texture2D)
Param[2]: pixels (type: const void *)
Function 366: UpdateTextureRec() (3 input parameters)
Name: UpdateTextureRec
Return type: void
- Description: Update GPU texture rectangle with new data
+ Description: Update GPU texture rectangle with new data (pixels and rec should fit in texture)
Param[1]: texture (type: Texture2D)
Param[2]: rec (type: Rectangle)
Param[3]: pixels (type: const void *)
@@ -4399,7 +4399,7 @@ Function 530: IsSoundValid() (1 input parameters)
Function 531: UpdateSound() (3 input parameters)
Name: UpdateSound
Return type: void
- Description: Update sound buffer with new data
+ Description: Update sound buffer with new data (data and frame count should fit in sound)
Param[1]: sound (type: Sound)
Param[2]: data (type: const void *)
Param[3]: sampleCount (type: int)
diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml
index 9f4cfaa86..8125824e7 100644
--- a/parser/output/raylib_api.xml
+++ b/parser/output/raylib_api.xml
@@ -2150,11 +2150,11 @@
-
+
-
+
@@ -2940,7 +2940,7 @@
-
+
diff --git a/src/raudio.c b/src/raudio.c
index a9e47b0ec..368a8c18a 100644
--- a/src/raudio.c
+++ b/src/raudio.c
@@ -1037,6 +1037,8 @@ void UnloadSoundAlias(Sound alias)
}
// Update sound buffer with new data
+// NOTE 1: data format must match sound.stream.sampleSize
+// NOTE 2: frameCount must not exceed sound.frameCount
void UpdateSound(Sound sound, const void *data, int frameCount)
{
if (sound.stream.buffer != NULL)
diff --git a/src/raylib.h b/src/raylib.h
index f42ab4053..0ea0df316 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -1424,8 +1424,8 @@ RLAPI bool IsTextureValid(Texture2D texture);
RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM)
RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU)
RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM)
-RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data
-RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data
+RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data (pixels should be able to fill texture)
+RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data (pixels and rec should fit in texture)
// Texture configuration functions
RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture
@@ -1646,7 +1646,7 @@ RLAPI Sound LoadSound(const char *fileName); // Load so
RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data
RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data
RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized)
-RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data
+RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data (data and frame count should fit in sound)
RLAPI void UnloadWave(Wave wave); // Unload wave data
RLAPI void UnloadSound(Sound sound); // Unload sound
RLAPI void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data)
diff --git a/src/rtextures.c b/src/rtextures.c
index ac06d6d80..87aa900a3 100644
--- a/src/rtextures.c
+++ b/src/rtextures.c
@@ -4338,14 +4338,17 @@ void UnloadRenderTexture(RenderTexture2D target)
}
// Update GPU texture with new data
-// NOTE: pixels data must match texture.format
+// NOTE 1: pixels data must match texture.format
+// NOTE 2: pixels data must contain at least as many pixels as texture
void UpdateTexture(Texture2D texture, const void *pixels)
{
rlUpdateTexture(texture.id, 0, 0, texture.width, texture.height, texture.format, pixels);
}
// Update GPU texture rectangle with new data
-// NOTE: pixels data must match texture.format
+// NOTE 1: pixels data must match texture.format
+// NOTE 2: pixels data must contain as many pixels as rec contains
+// NOTE 3: rec must fit completely within texture's width and height
void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels)
{
rlUpdateTexture(texture.id, (int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, texture.format, pixels);