mirror of
https://github.com/glfw/glfw.git
synced 2024-11-26 03:52:01 +00:00
Replaced ad-hoc argument processing with getopt.
This commit is contained in:
parent
3f9117ef85
commit
457403586d
@ -41,7 +41,7 @@ else()
|
|||||||
add_executable(boing WIN32 boing.c)
|
add_executable(boing WIN32 boing.c)
|
||||||
add_executable(gears WIN32 gears.c)
|
add_executable(gears WIN32 gears.c)
|
||||||
add_executable(heightmap WIN32 heightmap.c ${GETOPT})
|
add_executable(heightmap WIN32 heightmap.c ${GETOPT})
|
||||||
add_executable(particles WIN32 particles.c ${TINYCTHREAD})
|
add_executable(particles WIN32 particles.c ${TINYCTHREAD} ${GETOPT})
|
||||||
add_executable(simple WIN32 simple.c)
|
add_executable(simple WIN32 simple.c)
|
||||||
add_executable(splitview WIN32 splitview.c)
|
add_executable(splitview WIN32 splitview.c)
|
||||||
add_executable(wave WIN32 wave.c)
|
add_executable(wave WIN32 wave.c)
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
|
|
||||||
#include <tinycthread.h>
|
#include <tinycthread.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
|
||||||
// Define tokens for GL_EXT_separate_specular_color if not already defined
|
// Define tokens for GL_EXT_separate_specular_color if not already defined
|
||||||
#ifndef GL_EXT_separate_specular_color
|
#ifndef GL_EXT_separate_specular_color
|
||||||
@ -238,6 +239,24 @@ const GLfloat floor_shininess = 18.f;
|
|||||||
const GLfloat fog_color[4] = { 0.1f, 0.1f, 0.1f, 1.f };
|
const GLfloat fog_color[4] = { 0.1f, 0.1f, 0.1f, 1.f };
|
||||||
|
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// Print usage information
|
||||||
|
//========================================================================
|
||||||
|
|
||||||
|
static void usage(void)
|
||||||
|
{
|
||||||
|
printf("Usage: particles [-hbs]\n");
|
||||||
|
printf("Options:\n");
|
||||||
|
printf(" -b Benchmark (run program for 60 seconds)\n");
|
||||||
|
printf(" -s Run program as single thread (default is to use two threads)\n");
|
||||||
|
printf(" -h Display this help\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("Program runtime controls:\n");
|
||||||
|
printf(" W Toggle wireframe mode\n");
|
||||||
|
printf(" Esc Exit program\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
//========================================================================
|
||||||
// Initialize a new particle
|
// Initialize a new particle
|
||||||
//========================================================================
|
//========================================================================
|
||||||
@ -940,7 +959,7 @@ static int physics_thread_main(void* arg)
|
|||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
int i, frames, benchmark;
|
int i, ch, frames, benchmark;
|
||||||
double t0, t;
|
double t0, t;
|
||||||
thrd_t physics_thread = 0;
|
thrd_t physics_thread = 0;
|
||||||
GLFWwindow* window;
|
GLFWwindow* window;
|
||||||
@ -949,38 +968,19 @@ int main(int argc, char** argv)
|
|||||||
multithreading = 1;
|
multithreading = 1;
|
||||||
benchmark = 0;
|
benchmark = 0;
|
||||||
|
|
||||||
for (i = 1; i < argc; i++)
|
while ((ch = getopt(argc, argv, "bhs")) != -1)
|
||||||
{
|
{
|
||||||
// Use benchmarking?
|
switch (ch)
|
||||||
if (strcmp(argv[i], "-b") == 0)
|
|
||||||
benchmark = 1;
|
|
||||||
|
|
||||||
// Force multithreading off?
|
|
||||||
else if (strcmp(argv[i], "-s") == 0)
|
|
||||||
multithreading = 0;
|
|
||||||
|
|
||||||
// With a Finder launch on Mac OS X we get a bogus -psn_0_46268417
|
|
||||||
// kind of argument (actual numbers vary). Ignore it.
|
|
||||||
else if (strncmp(argv[i], "-psn_", 5) == 0)
|
|
||||||
;
|
|
||||||
|
|
||||||
// Usage
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (strcmp(argv[i], "-?") != 0)
|
case 'b':
|
||||||
printf("Unknonwn option %s\n\n", argv[i]);
|
benchmark = 1;
|
||||||
|
break;
|
||||||
printf("Usage: %s [options]\n", argv[0]);
|
case 'h':
|
||||||
printf("\n");
|
usage();
|
||||||
printf("Options:\n");
|
exit(EXIT_SUCCESS);
|
||||||
printf(" -b Benchmark (run program for 60 s)\n");
|
case 's':
|
||||||
printf(" -s Run program as single thread (default is to use two threads)\n");
|
multithreading = 0;
|
||||||
printf(" -? Display this text\n");
|
break;
|
||||||
printf("\n");
|
|
||||||
printf("Program runtime controls:\n");
|
|
||||||
printf(" w Toggle wireframe mode\n");
|
|
||||||
printf(" ESC Exit program\n");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user