mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 04:54:35 +00:00
Fixed joysticks test segfault.
This commit is contained in:
parent
6c12ffc902
commit
cc4c7167fd
@ -35,6 +35,7 @@ guide in the GLFW documentation.
|
|||||||
documentation is built
|
documentation is built
|
||||||
- Renamed configuration header to `glfw_config.h` to avoid conflicts
|
- Renamed configuration header to `glfw_config.h` to avoid conflicts
|
||||||
- Bugfix: The `glfw3.pc` file did not respect the `LIB_SUFFIX` CMake option
|
- Bugfix: The `glfw3.pc` file did not respect the `LIB_SUFFIX` CMake option
|
||||||
|
- Bugfix: The `joysticks` test would segfault if a controller had no axes
|
||||||
- [Win32] Bugfix: Removed joystick axis value negation left over from GLFW 2
|
- [Win32] Bugfix: Removed joystick axis value negation left over from GLFW 2
|
||||||
- [Win32] Bugfix: Restoring windows using the Win+D hot key did not trigger the
|
- [Win32] Bugfix: Restoring windows using the Win+D hot key did not trigger the
|
||||||
focus callback
|
focus callback
|
||||||
|
@ -64,43 +64,47 @@ static void framebuffer_size_callback(GLFWwindow* window, int width, int height)
|
|||||||
static void draw_joystick(Joystick* j, int x, int y, int width, int height)
|
static void draw_joystick(Joystick* j, int x, int y, int width, int height)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int axis_width, axis_height;
|
const int axis_height = 3 * height / 4;
|
||||||
int button_width, button_height;
|
const int button_height = height / 4;
|
||||||
|
|
||||||
axis_width = width / j->axis_count;
|
if (j->axis_count)
|
||||||
axis_height = 3 * height / 4;
|
|
||||||
|
|
||||||
button_width = width / j->button_count;
|
|
||||||
button_height = height / 4;
|
|
||||||
|
|
||||||
for (i = 0; i < j->axis_count; i++)
|
|
||||||
{
|
{
|
||||||
float value = j->axes[i] / 2.f + 0.5f;
|
const int axis_width = width / j->axis_count;
|
||||||
|
|
||||||
glColor3f(0.3f, 0.3f, 0.3f);
|
for (i = 0; i < j->axis_count; i++)
|
||||||
glRecti(x + i * axis_width,
|
{
|
||||||
y,
|
float value = j->axes[i] / 2.f + 0.5f;
|
||||||
x + (i + 1) * axis_width,
|
|
||||||
y + axis_height);
|
|
||||||
|
|
||||||
glColor3f(1.f, 1.f, 1.f);
|
glColor3f(0.3f, 0.3f, 0.3f);
|
||||||
glRecti(x + i * axis_width,
|
glRecti(x + i * axis_width,
|
||||||
y + (int) (value * (axis_height - 5)),
|
y,
|
||||||
x + (i + 1) * axis_width,
|
x + (i + 1) * axis_width,
|
||||||
y + 5 + (int) (value * (axis_height - 5)));
|
y + axis_height);
|
||||||
|
|
||||||
|
glColor3f(1.f, 1.f, 1.f);
|
||||||
|
glRecti(x + i * axis_width,
|
||||||
|
y + (int) (value * (axis_height - 5)),
|
||||||
|
x + (i + 1) * axis_width,
|
||||||
|
y + 5 + (int) (value * (axis_height - 5)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < j->button_count; i++)
|
if (j->button_count)
|
||||||
{
|
{
|
||||||
if (j->buttons[i])
|
const int button_width = width / j->button_count;
|
||||||
glColor3f(1.f, 1.f, 1.f);
|
|
||||||
else
|
|
||||||
glColor3f(0.3f, 0.3f, 0.3f);
|
|
||||||
|
|
||||||
glRecti(x + i * button_width,
|
for (i = 0; i < j->button_count; i++)
|
||||||
y + axis_height,
|
{
|
||||||
x + (i + 1) * button_width,
|
if (j->buttons[i])
|
||||||
y + axis_height + button_height);
|
glColor3f(1.f, 1.f, 1.f);
|
||||||
|
else
|
||||||
|
glColor3f(0.3f, 0.3f, 0.3f);
|
||||||
|
|
||||||
|
glRecti(x + i * button_width,
|
||||||
|
y + axis_height,
|
||||||
|
x + (i + 1) * button_width,
|
||||||
|
y + axis_height + button_height);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user