mirror of
https://github.com/raylib-zig/raylib-zig.git
synced 2025-12-06 06:13:08 +00:00
Update raylib/raygui to latest master (#231)
This commit is contained in:
parent
dfe22275cf
commit
e072ff119b
@ -4,12 +4,12 @@
|
|||||||
.fingerprint = 0xc4cfa8c610114f28,
|
.fingerprint = 0xc4cfa8c610114f28,
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
.raylib = .{
|
.raylib = .{
|
||||||
.url = "git+https://github.com/raysan5/raylib?ref=master#61a026f7ef54f17428ee6fdf079b0d2e7bdbca73",
|
.url = "git+https://github.com/raysan5/raylib?ref=master#f5c96302d5623950dccdca31f8dd66d6d633dbd1",
|
||||||
.hash = "raylib-5.5.0-whq8uGZGzQDi3_L7tJzgEINoZN-HwmOs0zkkc2g7ysIZ",
|
.hash = "raylib-5.5.0-whq8uFV0zQA9NXxhpYFZk_yHW6xzg5eKGmOtMJ2DOTdU",
|
||||||
},
|
},
|
||||||
.raygui = .{
|
.raygui = .{
|
||||||
.url = "git+https://github.com/raysan5/raygui#9a95871701a5fc63bea35eab73fef6414e048b73",
|
.url = "git+https://github.com/raysan5/raygui#1536ae35c7b42d863135f4181fd2a225e531f68b",
|
||||||
.hash = "N-V-__8AAPZ7UgBpukXNy27vajQpyiPrEZpV6jOLzI6-Otc_",
|
.hash = "N-V-__8AAEp9UgBJ2n1eks3_3YZk3GCO1XOENazWaCO7ggM2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.minimum_zig_version = "0.14.0",
|
.minimum_zig_version = "0.14.0",
|
||||||
|
|||||||
@ -45,6 +45,7 @@ pub extern "c" fn GuiValueBox(bounds: rl.Rectangle, text: [*c]const u8, value: [
|
|||||||
pub extern "c" fn GuiValueBoxFloat(bounds: rl.Rectangle, text: [*c]const u8, textValue: [*c]u8, value: [*c]f32, editMode: bool) c_int;
|
pub extern "c" fn GuiValueBoxFloat(bounds: rl.Rectangle, text: [*c]const u8, textValue: [*c]u8, value: [*c]f32, editMode: bool) c_int;
|
||||||
pub extern "c" fn GuiTextBox(bounds: rl.Rectangle, text: [*c]u8, textSize: c_int, editMode: bool) c_int;
|
pub extern "c" fn GuiTextBox(bounds: rl.Rectangle, text: [*c]u8, textSize: c_int, editMode: bool) c_int;
|
||||||
pub extern "c" fn GuiSlider(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
pub extern "c" fn GuiSlider(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
||||||
|
pub extern "c" fn GuiSliderPro(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32, sliderWidth: c_int) c_int;
|
||||||
pub extern "c" fn GuiSliderBar(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
pub extern "c" fn GuiSliderBar(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
||||||
pub extern "c" fn GuiProgressBar(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
pub extern "c" fn GuiProgressBar(bounds: rl.Rectangle, textLeft: [*c]const u8, textRight: [*c]const u8, value: [*c]f32, minValue: f32, maxValue: f32) c_int;
|
||||||
pub extern "c" fn GuiStatusBar(bounds: rl.Rectangle, text: [*c]const u8) c_int;
|
pub extern "c" fn GuiStatusBar(bounds: rl.Rectangle, text: [*c]const u8) c_int;
|
||||||
|
|||||||
52
lib/raygui.h
vendored
52
lib/raygui.h
vendored
@ -160,6 +160,8 @@
|
|||||||
* REVIEWED: GuiIconText(), increase buffer size and reviewed padding
|
* REVIEWED: GuiIconText(), increase buffer size and reviewed padding
|
||||||
* REVIEWED: GuiDrawText(), improved wrap mode drawing
|
* REVIEWED: GuiDrawText(), improved wrap mode drawing
|
||||||
* REVIEWED: GuiScrollBar(), minor tweaks
|
* REVIEWED: GuiScrollBar(), minor tweaks
|
||||||
|
* REVIEWED: GuiProgressBar(), improved borders computing
|
||||||
|
* REVIEWED: GuiTextBox(), multiple improvements: autocursor and more
|
||||||
* REVIEWED: Functions descriptions, removed wrong return value reference
|
* REVIEWED: Functions descriptions, removed wrong return value reference
|
||||||
* REDESIGNED: GuiColorPanel(), improved HSV <-> RGBA convertion
|
* REDESIGNED: GuiColorPanel(), improved HSV <-> RGBA convertion
|
||||||
*
|
*
|
||||||
@ -752,6 +754,7 @@ RAYGUIAPI int GuiValueBoxFloat(Rectangle bounds, const char *text, char *textVal
|
|||||||
RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
|
RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
|
||||||
|
|
||||||
RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control
|
RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control
|
||||||
|
RAYGUIAPI int GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth); // Slider control with extended parameters
|
||||||
RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control
|
RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control
|
||||||
RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control
|
RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control
|
||||||
RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
|
RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
|
||||||
@ -1723,8 +1726,8 @@ int GuiPanel(Rectangle bounds, const char *text)
|
|||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar
|
if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar
|
||||||
|
|
||||||
GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED: (int)LINE_COLOR)),
|
GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR)),
|
||||||
GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BASE_COLOR_DISABLED : BACKGROUND_COLOR)));
|
GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BASE_COLOR_DISABLED : (int)BACKGROUND_COLOR)));
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -2501,7 +2504,7 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE);
|
int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE);
|
||||||
|
|
||||||
Rectangle textBounds = GetTextBounds(TEXTBOX, bounds);
|
Rectangle textBounds = GetTextBounds(TEXTBOX, bounds);
|
||||||
int textLength = (int)strlen(text); // Get current text length
|
int textLength = (text != NULL)? (int)strlen(text) : 0; // Get current text length
|
||||||
int thisCursorIndex = textBoxCursorIndex;
|
int thisCursorIndex = textBoxCursorIndex;
|
||||||
if (thisCursorIndex > textLength) thisCursorIndex = textLength;
|
if (thisCursorIndex > textLength) thisCursorIndex = textLength;
|
||||||
int textWidth = GetTextWidth(text) - GetTextWidth(text + thisCursorIndex);
|
int textWidth = GetTextWidth(text) - GetTextWidth(text + thisCursorIndex);
|
||||||
@ -2545,10 +2548,8 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
// GLOBAL: Auto-cursor movement logic
|
// GLOBAL: Auto-cursor movement logic
|
||||||
// NOTE: Keystrokes are handled repeatedly when button is held down for some time
|
// NOTE: Keystrokes are handled repeatedly when button is held down for some time
|
||||||
if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_UP) || IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_BACKSPACE) || IsKeyDown(KEY_DELETE)) autoCursorCounter++;
|
if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_UP) || IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_BACKSPACE) || IsKeyDown(KEY_DELETE)) autoCursorCounter++;
|
||||||
else
|
else autoCursorCounter = 0;
|
||||||
{
|
|
||||||
autoCursorCounter = 0;
|
|
||||||
}
|
|
||||||
bool autoCursorShouldTrigger = (autoCursorCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) && ((autoCursorCounter % RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0);
|
bool autoCursorShouldTrigger = (autoCursorCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) && ((autoCursorCounter % RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0);
|
||||||
|
|
||||||
state = STATE_PRESSED;
|
state = STATE_PRESSED;
|
||||||
@ -2686,8 +2687,8 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
while (offset > 0)
|
while (offset > 0)
|
||||||
{
|
{
|
||||||
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
||||||
if (!isspace(prevCodepoint & 0xFF))
|
if (!isspace(prevCodepoint & 0xFF)) break;
|
||||||
break;
|
|
||||||
offset -= prevCodepointSize;
|
offset -= prevCodepointSize;
|
||||||
accCodepointSize += prevCodepointSize;
|
accCodepointSize += prevCodepointSize;
|
||||||
}
|
}
|
||||||
@ -2697,8 +2698,8 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
while (offset > 0)
|
while (offset > 0)
|
||||||
{
|
{
|
||||||
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
||||||
if ((puctuation && !ispunct(prevCodepoint & 0xFF)) || (!puctuation && (isspace(prevCodepoint & 0xFF) || ispunct(prevCodepoint & 0xFF))))
|
if ((puctuation && !ispunct(prevCodepoint & 0xFF)) || (!puctuation && (isspace(prevCodepoint & 0xFF) || ispunct(prevCodepoint & 0xFF)))) break;
|
||||||
break;
|
|
||||||
offset -= prevCodepointSize;
|
offset -= prevCodepointSize;
|
||||||
accCodepointSize += prevCodepointSize;
|
accCodepointSize += prevCodepointSize;
|
||||||
}
|
}
|
||||||
@ -2735,19 +2736,20 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
while (offset > 0)
|
while (offset > 0)
|
||||||
{
|
{
|
||||||
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
||||||
if (!isspace(prevCodepoint & 0xFF))
|
if (!isspace(prevCodepoint & 0xFF)) break;
|
||||||
break;
|
|
||||||
offset -= prevCodepointSize;
|
offset -= prevCodepointSize;
|
||||||
accCodepointSize += prevCodepointSize;
|
accCodepointSize += prevCodepointSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace)
|
// Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace)
|
||||||
// Not using isalnum() since it only works on ASCII characters
|
// Not using isalnum() since it only works on ASCII characters
|
||||||
bool puctuation = ispunct(prevCodepoint & 0xFF);
|
bool puctuation = ispunct(prevCodepoint & 0xFF);
|
||||||
while (offset > 0)
|
while (offset > 0)
|
||||||
{
|
{
|
||||||
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize);
|
||||||
if ((puctuation && !ispunct(prevCodepoint & 0xFF)) || (!puctuation && (isspace(prevCodepoint & 0xFF) || ispunct(prevCodepoint & 0xFF))))
|
if ((puctuation && !ispunct(prevCodepoint & 0xFF)) || (!puctuation && (isspace(prevCodepoint & 0xFF) || ispunct(prevCodepoint & 0xFF)))) break;
|
||||||
break;
|
|
||||||
offset -= prevCodepointSize;
|
offset -= prevCodepointSize;
|
||||||
accCodepointSize += prevCodepointSize;
|
accCodepointSize += prevCodepointSize;
|
||||||
}
|
}
|
||||||
@ -2767,23 +2769,25 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
|
|||||||
int accCodepointSize = 0;
|
int accCodepointSize = 0;
|
||||||
int nextCodepointSize;
|
int nextCodepointSize;
|
||||||
int nextCodepoint;
|
int nextCodepoint;
|
||||||
|
|
||||||
// Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace)
|
// Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace)
|
||||||
// Not using isalnum() since it only works on ASCII characters
|
// Not using isalnum() since it only works on ASCII characters
|
||||||
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
||||||
bool puctuation = ispunct(nextCodepoint & 0xFF);
|
bool puctuation = ispunct(nextCodepoint & 0xFF);
|
||||||
while (offset < textLength)
|
while (offset < textLength)
|
||||||
{
|
{
|
||||||
if ((puctuation && !ispunct(nextCodepoint & 0xFF)) || (!puctuation && (isspace(nextCodepoint & 0xFF) || ispunct(nextCodepoint & 0xFF))))
|
if ((puctuation && !ispunct(nextCodepoint & 0xFF)) || (!puctuation && (isspace(nextCodepoint & 0xFF) || ispunct(nextCodepoint & 0xFF)))) break;
|
||||||
break;
|
|
||||||
offset += nextCodepointSize;
|
offset += nextCodepointSize;
|
||||||
accCodepointSize += nextCodepointSize;
|
accCodepointSize += nextCodepointSize;
|
||||||
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check whitespace to skip (ASCII only)
|
// Check whitespace to skip (ASCII only)
|
||||||
while (offset < textLength)
|
while (offset < textLength)
|
||||||
{
|
{
|
||||||
if (!isspace(nextCodepoint & 0xFF))
|
if (!isspace(nextCodepoint & 0xFF)) break;
|
||||||
break;
|
|
||||||
offset += nextCodepointSize;
|
offset += nextCodepointSize;
|
||||||
accCodepointSize += nextCodepointSize;
|
accCodepointSize += nextCodepointSize;
|
||||||
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize);
|
||||||
@ -3371,7 +3375,7 @@ int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight
|
|||||||
if (value == NULL) value = &temp;
|
if (value == NULL) value = &temp;
|
||||||
|
|
||||||
// Progress bar
|
// Progress bar
|
||||||
Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING),
|
Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH),
|
||||||
bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0,
|
bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0,
|
||||||
bounds.height - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) -1 };
|
bounds.height - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) -1 };
|
||||||
|
|
||||||
@ -3380,7 +3384,7 @@ int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight
|
|||||||
if (*value > maxValue) *value = maxValue;
|
if (*value > maxValue) *value = maxValue;
|
||||||
|
|
||||||
// WARNING: Working with floats could lead to rounding issues
|
// WARNING: Working with floats could lead to rounding issues
|
||||||
if ((state != STATE_DISABLED)) progress.width = ((float)*value / (maxValue - minValue)) * (bounds.width - 2 * GuiGetStyle(PROGRESSBAR, BORDER_WIDTH));
|
if ((state != STATE_DISABLED)) progress.width = ((float)*value/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH));
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw control
|
// Draw control
|
||||||
@ -3408,8 +3412,8 @@ int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight
|
|||||||
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y + bounds.height - 1, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
|
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y + bounds.height - 1, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
|
||||||
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
|
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw slider internal progress bar (depends on state)
|
// Draw slider internal progress bar (depends on state)
|
||||||
progress.width -= 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING);
|
|
||||||
GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)));
|
GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4568,7 +4572,7 @@ char **GuiLoadIcons(const char *fileName, bool loadIconsName)
|
|||||||
|
|
||||||
// Load icons from memory
|
// Load icons from memory
|
||||||
// WARNING: Binary files only
|
// WARNING: Binary files only
|
||||||
char **GuiLoadIconsFromMemory(const unsigned char *fileData, size_t dataSize, bool loadIconsName)
|
char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName)
|
||||||
{
|
{
|
||||||
unsigned char *fileDataPtr = (unsigned char *)fileData;
|
unsigned char *fileDataPtr = (unsigned char *)fileData;
|
||||||
char **guiIconsName = NULL;
|
char **guiIconsName = NULL;
|
||||||
@ -4999,7 +5003,7 @@ static const char *GetTextIcon(const char *text, int *iconId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get text divided into lines (by line-breaks '\n')
|
// Get text divided into lines (by line-breaks '\n')
|
||||||
const char **GetTextLines(const char *text, int *count)
|
static const char **GetTextLines(const char *text, int *count)
|
||||||
{
|
{
|
||||||
#define RAYGUI_MAX_TEXT_LINES 128
|
#define RAYGUI_MAX_TEXT_LINES 128
|
||||||
|
|
||||||
|
|||||||
@ -674,6 +674,11 @@ pub fn guiSlider(bounds: Rectangle, textLeft: [:0]const u8, textRight: [:0]const
|
|||||||
return @as(i32, cdef.GuiSlider(bounds, @as([*c]const u8, @ptrCast(textLeft)), @as([*c]const u8, @ptrCast(textRight)), @as([*c]f32, @ptrCast(value)), minValue, maxValue));
|
return @as(i32, cdef.GuiSlider(bounds, @as([*c]const u8, @ptrCast(textLeft)), @as([*c]const u8, @ptrCast(textRight)), @as([*c]f32, @ptrCast(value)), minValue, maxValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Slider control with extended parameters
|
||||||
|
pub fn guiSliderPro(bounds: Rectangle, textLeft: [:0]const u8, textRight: [:0]const u8, value: *f32, minValue: f32, maxValue: f32, sliderWidth: i32) i32 {
|
||||||
|
return @as(i32, cdef.GuiSliderPro(bounds, @as([*c]const u8, @ptrCast(textLeft)), @as([*c]const u8, @ptrCast(textRight)), @as([*c]f32, @ptrCast(value)), minValue, maxValue, @as(c_int, sliderWidth)));
|
||||||
|
}
|
||||||
|
|
||||||
/// Slider Bar control
|
/// Slider Bar control
|
||||||
pub fn guiSliderBar(bounds: Rectangle, textLeft: [:0]const u8, textRight: [:0]const u8, value: *f32, minValue: f32, maxValue: f32) i32 {
|
pub fn guiSliderBar(bounds: Rectangle, textLeft: [:0]const u8, textRight: [:0]const u8, value: *f32, minValue: f32, maxValue: f32) i32 {
|
||||||
return @as(i32, cdef.GuiSliderBar(bounds, @as([*c]const u8, @ptrCast(textLeft)), @as([*c]const u8, @ptrCast(textRight)), @as([*c]f32, @ptrCast(value)), minValue, maxValue));
|
return @as(i32, cdef.GuiSliderBar(bounds, @as([*c]const u8, @ptrCast(textLeft)), @as([*c]const u8, @ptrCast(textRight)), @as([*c]f32, @ptrCast(value)), minValue, maxValue));
|
||||||
|
|||||||
20
lib/rlgl.h
vendored
20
lib/rlgl.h
vendored
@ -56,8 +56,8 @@
|
|||||||
*
|
*
|
||||||
* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack
|
* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack
|
||||||
* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported
|
* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported
|
||||||
* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance
|
* #define RL_CULL_DISTANCE_NEAR 0.001 // Default projection matrix near cull distance
|
||||||
* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance
|
* #define RL_CULL_DISTANCE_FAR 10000.0 // Default projection matrix far cull distance
|
||||||
*
|
*
|
||||||
* When loading a shader, the following vertex attributes and uniform
|
* When loading a shader, the following vertex attributes and uniform
|
||||||
* location names are tried to be set automatically:
|
* location names are tried to be set automatically:
|
||||||
@ -234,10 +234,10 @@
|
|||||||
|
|
||||||
// Projection matrix culling
|
// Projection matrix culling
|
||||||
#ifndef RL_CULL_DISTANCE_NEAR
|
#ifndef RL_CULL_DISTANCE_NEAR
|
||||||
#define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance
|
#define RL_CULL_DISTANCE_NEAR 0.001 // Default near cull distance
|
||||||
#endif
|
#endif
|
||||||
#ifndef RL_CULL_DISTANCE_FAR
|
#ifndef RL_CULL_DISTANCE_FAR
|
||||||
#define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance
|
#define RL_CULL_DISTANCE_FAR 10000.0 // Default far cull distance
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Texture parameters (equivalent to OpenGL defines)
|
// Texture parameters (equivalent to OpenGL defines)
|
||||||
@ -1459,9 +1459,6 @@ void rlBegin(int mode)
|
|||||||
// NOTE: In all three cases, vertex are accumulated over default internal vertex buffer
|
// NOTE: In all three cases, vertex are accumulated over default internal vertex buffer
|
||||||
if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode)
|
if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode)
|
||||||
{
|
{
|
||||||
// Get current binded texture to preserve it between draw modes change (QUADS <--> TRIANGLES)
|
|
||||||
int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId;
|
|
||||||
|
|
||||||
if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0)
|
if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0)
|
||||||
{
|
{
|
||||||
// Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4,
|
// Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4,
|
||||||
@ -1484,16 +1481,13 @@ void rlBegin(int mode)
|
|||||||
|
|
||||||
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode;
|
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode;
|
||||||
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0;
|
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0;
|
||||||
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; // Preserve active texture
|
RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finish vertex providing
|
// Finish vertex providing
|
||||||
void rlEnd(void)
|
void rlEnd(void)
|
||||||
{
|
{
|
||||||
// Reset texture to default
|
|
||||||
rlSetTexture(RLGL.State.defaultTextureId);
|
|
||||||
|
|
||||||
// NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values,
|
// NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values,
|
||||||
// as well as depth buffer bit-depth (16bit or 24bit or 32bit)
|
// as well as depth buffer bit-depth (16bit or 24bit or 32bit)
|
||||||
// Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits)
|
// Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits)
|
||||||
@ -3694,8 +3688,8 @@ unsigned char *rlReadScreenPixels(int width, int height)
|
|||||||
{
|
{
|
||||||
for (int x = 0; x < (width*4); x += 4)
|
for (int x = 0; x < (width*4); x += 4)
|
||||||
{
|
{
|
||||||
size_t s = ((height - 1) - y)*width*4 + x;
|
unsigned int s = ((height - 1) - y)*width*4 + x;
|
||||||
size_t e = y*width*4 + x;
|
unsigned int e = y*width*4 + x;
|
||||||
|
|
||||||
unsigned char r = imgData[s];
|
unsigned char r = imgData[s];
|
||||||
unsigned char g = imgData[s+1];
|
unsigned char g = imgData[s+1];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user