revision 1129:7b16bbd6209c
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 1129:7b16bbd6209c |
parent | 1128:180abbb2a1f3 |
child | 1130:5f56fc931112 |
author | nkeynes |
date | Fri Sep 17 20:05:34 2010 +1000 (13 years ago) |
Add undocumented option --gl-info to dump out the GL identification and extension list
![]() | src/main.c | view | annotate | diff | log | |
![]() | src/pvr2/glutil.c | view | annotate | diff | log |
1.1 --- a/src/main.c Fri Sep 17 20:04:02 2010 +10001.2 +++ b/src/main.c Fri Sep 17 20:05:34 2010 +10001.3 @@ -24,23 +24,26 @@1.4 #include "lxdream.h"1.5 #include "lxpaths.h"1.6 #include "gettext.h"1.7 -#include "mem.h"1.8 +#include "dream.h"1.9 #include "dreamcast.h"1.10 -#include "dream.h"1.11 #include "display.h"1.12 #include "gui.h"1.13 #include "gdlist.h"1.14 +#include "hotkeys.h"1.15 +#include "loader.h"1.16 +#include "mem.h"1.17 +#include "plugin.h"1.18 +#include "serial.h"1.19 #include "syscall.h"1.20 -#include "loader.h"1.21 #include "aica/audio.h"1.22 +#include "aica/armdasm.h"1.23 #include "gdrom/gdrom.h"1.24 #include "maple/maple.h"1.25 +#include "pvr2/glutil.h"1.26 #include "sh4/sh4.h"1.27 -#include "aica/armdasm.h"1.28 #include "vmu/vmulist.h"1.29 -#include "serial.h"1.30 -#include "hotkeys.h"1.31 -#include "plugin.h"1.32 +1.33 +#define GL_INFO_OPT 11.35 char *option_list = "a:A:bc:e:dfg:G:hHl:m:npt:T:uvV:xX?";1.36 struct option longopts[] = {1.37 @@ -52,7 +55,8 @@1.38 { "execute", required_argument, NULL, 'e' },1.39 { "fullscreen", no_argument, NULL, 'f' },1.40 { "gdb-sh4", required_argument, NULL, 'g' },1.41 - { "gdb-arm", required_argument, NULL, 'G' },1.42 + { "gdb-arm", required_argument, NULL, 'G' },1.43 + { "gl-info", no_argument, NULL, GL_INFO_OPT },1.44 { "help", no_argument, NULL, 'h' },1.45 { "headless", no_argument, NULL, 'H' },1.46 { "log", required_argument, NULL,'l' },1.47 @@ -127,6 +131,7 @@1.48 int opt;1.49 double t;1.50 gboolean display_ok, have_disc = FALSE, have_save = FALSE, have_exec = FALSE;1.51 + gboolean print_glinfo = FALSE;1.52 uint32_t time_secs, time_nanos;1.53 const char *exec_name = NULL;1.55 @@ -214,6 +219,9 @@1.56 case 'X': /* Shadow translator */1.57 sh4_core = SH4_SHADOW;1.58 break;1.59 + case GL_INFO_OPT:1.60 + print_glinfo = TRUE;1.61 + break;1.62 }1.63 }1.65 @@ -236,6 +244,23 @@1.66 exit(0);1.67 }1.69 + if( print_glinfo ) {1.70 + gui_init(FALSE, FALSE);1.71 + display_driver_t display_driver = get_display_driver_by_name(display_driver_name);1.72 + if( display_driver == NULL ) {1.73 + ERROR( "Video driver '%s' not found, aborting.", display_driver_name );1.74 + exit(2);1.75 + } else if( display_set_driver( display_driver ) == FALSE ) {1.76 + ERROR( "Video driver '%s' failed to initialize (could not connect to display?)",1.77 + display_driver->name );1.78 + exit(2);1.79 + }1.80 + glPrintInfo(stdout);1.81 + exit(0);1.82 +1.83 + }1.84 +1.85 +1.86 iso_init();1.87 gdrom_list_init();1.88 vmulist_init();
2.1 --- a/src/pvr2/glutil.c Fri Sep 17 20:04:02 2010 +10002.2 +++ b/src/pvr2/glutil.c Fri Sep 17 20:05:34 2010 +10002.3 @@ -17,6 +17,7 @@2.4 */2.6 #include <string.h>2.7 +#include <stdlib.h>2.8 #include <glib/gstrfuncs.h>2.9 #include "pvr2/glutil.h"2.11 @@ -78,11 +79,22 @@2.12 return FALSE;2.13 }2.15 +int compare_charp( const void *a, const void *b )2.16 +{2.17 + const char **ca = (const char **)a;2.18 + const char **cb = (const char **)b;2.19 + return strcmp(*ca, *cb);2.20 +}2.21 +2.22 void glPrintInfo( FILE *out )2.23 {2.24 const gchar *extensions = (const gchar *)glGetString(GL_EXTENSIONS);2.25 gchar **ext_split = g_strsplit(extensions, " ", 0);2.26 - unsigned int i;2.27 + unsigned int i, count;2.28 +2.29 + for( count = 0; ext_split[count] != NULL; count++ );2.30 +2.31 + qsort(ext_split, count, sizeof(gchar *), compare_charp);2.33 fprintf( out, "GL Vendor: %s\n", glGetString(GL_VENDOR) );2.34 fprintf( out, "GL Renderer: %s\n", glGetString(GL_RENDERER) );
.