diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-06-01 04:32:44 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-06-01 04:32:44 +0000 |
| commit | 81c68de8b937f9f80f3066d3e0907cc3e394f5ab (patch) | |
| tree | 829408208c260c652eafa9c590168ec4ef21f270 /plugins | |
| parent | 15a247741a63d78340d2296ca178715bda2dd21b (diff) | |
| download | pcsxr-81c68de8b937f9f80f3066d3e0907cc3e394f5ab.tar.gz | |
added configure utility for P.E.Op.S OpenGL plugin
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@23612 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/dfcdrom/interface.c | 28 | ||||
| -rw-r--r-- | plugins/peopsxgl/Makefile.am | 7 | ||||
| -rw-r--r-- | plugins/peopsxgl/Makefile.in | 157 | ||||
| -rw-r--r-- | plugins/peopsxgl/cfg.c | 16 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/callbacks.c | 50 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/callbacks.h | 24 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/interface.c | 898 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/interface.h | 6 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/main.c | 547 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/support.c | 155 | ||||
| -rw-r--r-- | plugins/peopsxgl/gpucfg/support.h | 38 |
11 files changed, 1877 insertions, 49 deletions
diff --git a/plugins/dfcdrom/interface.c b/plugins/dfcdrom/interface.c index bfb24cee..af82de1f 100644 --- a/plugins/dfcdrom/interface.c +++ b/plugins/dfcdrom/interface.c @@ -21,6 +21,13 @@ #include "interface.h" #include "support.h" +#ifdef ENABLE_NLS +#include <libintl.h> +#define _(x) gettext(x) +#else +#define _(x) (x) +#endif + #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) @@ -69,7 +76,7 @@ create_cfg_dialog (void) cfg_dialog = gtk_dialog_new (); gtk_container_set_border_width (GTK_CONTAINER (cfg_dialog), 5); - gtk_window_set_title (GTK_WINDOW (cfg_dialog), "CDR configuration"); + gtk_window_set_title (GTK_WINDOW (cfg_dialog), _("CDR configuration")); gtk_window_set_position (GTK_WINDOW (cfg_dialog), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (cfg_dialog), TRUE); gtk_dialog_set_has_separator (GTK_DIALOG (cfg_dialog), FALSE); @@ -94,10 +101,10 @@ create_cfg_dialog (void) cddev_entry = GTK_COMBO (cddev_combo)->entry; gtk_widget_show (cddev_entry); - gtk_tooltips_set_tip (tooltips, cddev_entry, "Choose yor CD-ROM device or type its path if it's not listed", NULL); + gtk_tooltips_set_tip (tooltips, cddev_entry, _("Choose yor CD-ROM device or type its path if it's not listed"), NULL); gtk_entry_set_activates_default (GTK_ENTRY (cddev_entry), TRUE); - cdr_label = gtk_label_new ("Select CD-ROM device"); + cdr_label = gtk_label_new (_("Select CD-ROM device")); gtk_widget_show (cdr_label); gtk_frame_set_label_widget (GTK_FRAME (frame1), cdr_label); gtk_label_set_justify (GTK_LABEL (cdr_label), GTK_JUSTIFY_LEFT); @@ -115,7 +122,7 @@ create_cfg_dialog (void) gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5); - readmode_label = gtk_label_new ("Select read mode:"); + readmode_label = gtk_label_new (_("Select read mode:")); gtk_widget_show (readmode_label); gtk_box_pack_start (GTK_BOX (hbox1), readmode_label, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (readmode_label), GTK_JUSTIFY_LEFT); @@ -128,11 +135,11 @@ create_cfg_dialog (void) menu1 = gtk_menu_new (); - normal = gtk_menu_item_new_with_mnemonic ("Normal (No Cache)"); + normal = gtk_menu_item_new_with_mnemonic (_("Normal (No Cache)")); gtk_widget_show (normal); gtk_container_add (GTK_CONTAINER (menu1), normal); - threaded = gtk_menu_item_new_with_mnemonic ("Threaded - Faster (With Cache)"); + threaded = gtk_menu_item_new_with_mnemonic (_("Threaded - Faster (With Cache)")); gtk_widget_show (threaded); gtk_container_add (GTK_CONTAINER (menu1), threaded); @@ -147,7 +154,7 @@ create_cfg_dialog (void) gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); - label4 = gtk_label_new ("Cache Size (Def. 64): "); + label4 = gtk_label_new (_("Cache Size (Def. 64): ")); gtk_widget_show (label4); gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT); @@ -168,7 +175,7 @@ create_cfg_dialog (void) gtk_box_pack_start (GTK_BOX (vbox2), hbox3, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox3), 5); - label5 = gtk_label_new ("Cdrom Speed (Def. 0 = MAX): "); + label5 = gtk_label_new (_("Cdrom Speed (Def. 0 = MAX): ")); gtk_widget_show (label5); gtk_box_pack_start (GTK_BOX (hbox3), label5, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT); @@ -184,12 +191,12 @@ create_cfg_dialog (void) gtk_widget_show (cfg_hseparator); gtk_box_pack_start (GTK_BOX (vbox2), cfg_hseparator, TRUE, TRUE, 0); - subQ_button = gtk_check_button_new_with_mnemonic ("Enable Subchannel read"); + subQ_button = gtk_check_button_new_with_mnemonic (_("Enable Subchannel read")); gtk_widget_show (subQ_button); gtk_box_pack_start (GTK_BOX (vbox2), subQ_button, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (subQ_button), 10); - options_label = gtk_label_new ("Options"); + options_label = gtk_label_new (_("Options")); gtk_widget_show (options_label); gtk_frame_set_label_widget (GTK_FRAME (frame2), options_label); gtk_label_set_justify (GTK_LABEL (options_label), GTK_JUSTIFY_LEFT); @@ -224,7 +231,6 @@ create_cfg_dialog (void) atko = gtk_widget_get_accessible (cfg_hseparator); atk_object_set_name (atko, "hseparator"); - /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, cfg_dialog, "cfg_dialog"); GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, dialog_vbox1, "dialog_vbox1"); diff --git a/plugins/peopsxgl/Makefile.am b/plugins/peopsxgl/Makefile.am index f1d9cb88..d88dc94b 100644 --- a/plugins/peopsxgl/Makefile.am +++ b/plugins/peopsxgl/Makefile.am @@ -14,9 +14,10 @@ libpeopsxgl_la_SOURCES = cfg.c draw.c fps.c gpu.c key.c menu.c \ libpeopsxgl_la_LDFLAGS = -module -avoid-version \ -L/usr/X11R6/lib64 -L/usr/X11R6/lib -lX11 -lXxf86vm -lGL -lm -#bin_PROGRAMS = cfgpeopsxgl -#cfgpeopsxgl_SOURCES = gpucfg-0.1df/main.c -#cfgpeopsxgl_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) +bin_PROGRAMS = cfgpeopsxgl +cfgpeopsxgl_SOURCES = gpucfg/main.c gpucfg/callbacks.c gpucfg/interface.c \ + gpucfg/support.c +cfgpeopsxgl_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) #glade_DATA = gpucfg-0.1df/peopsxgl.glade2 #gladedir = $(datadir)/psemu/ diff --git a/plugins/peopsxgl/Makefile.in b/plugins/peopsxgl/Makefile.in index 46cef695..bbf55254 100644 --- a/plugins/peopsxgl/Makefile.in +++ b/plugins/peopsxgl/Makefile.in @@ -14,6 +14,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -33,6 +34,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +bin_PROGRAMS = cfgpeopsxgl$(EXEEXT) subdir = plugins/peopsxgl DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -48,7 +50,7 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libpeopsxgl_la_LIBADD = @@ -58,6 +60,13 @@ libpeopsxgl_la_OBJECTS = $(am_libpeopsxgl_la_OBJECTS) libpeopsxgl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libpeopsxgl_la_LDFLAGS) $(LDFLAGS) -o $@ +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) +am_cfgpeopsxgl_OBJECTS = main.$(OBJEXT) callbacks.$(OBJEXT) \ + interface.$(OBJEXT) support.$(OBJEXT) +cfgpeopsxgl_OBJECTS = $(am_cfgpeopsxgl_OBJECTS) +am__DEPENDENCIES_1 = +cfgpeopsxgl_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -70,8 +79,8 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -SOURCES = $(libpeopsxgl_la_SOURCES) -DIST_SOURCES = $(libpeopsxgl_la_SOURCES) +SOURCES = $(libpeopsxgl_la_SOURCES) $(cfgpeopsxgl_SOURCES) +DIST_SOURCES = $(libpeopsxgl_la_SOURCES) $(cfgpeopsxgl_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -234,6 +243,10 @@ libpeopsxgl_la_SOURCES = cfg.c draw.c fps.c gpu.c key.c menu.c \ libpeopsxgl_la_LDFLAGS = -module -avoid-version \ -L/usr/X11R6/lib64 -L/usr/X11R6/lib -lX11 -lXxf86vm -lGL -lm +cfgpeopsxgl_SOURCES = gpucfg/main.c gpucfg/callbacks.c gpucfg/interface.c \ + gpucfg/support.c + +cfgpeopsxgl_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) all: all-am .SUFFIXES: @@ -296,6 +309,37 @@ clean-libLTLIBRARIES: done libpeopsxgl.la: $(libpeopsxgl_la_OBJECTS) $(libpeopsxgl_la_DEPENDENCIES) $(libpeopsxgl_la_LINK) -rpath $(libdir) $(libpeopsxgl_la_OBJECTS) $(libpeopsxgl_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +cfgpeopsxgl$(EXEEXT): $(cfgpeopsxgl_OBJECTS) $(cfgpeopsxgl_DEPENDENCIES) + @rm -f cfgpeopsxgl$(EXEEXT) + $(LINK) $(cfgpeopsxgl_OBJECTS) $(cfgpeopsxgl_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -303,14 +347,18 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/draw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soft.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/support.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Plo@am__quote@ .c.o: @@ -334,6 +382,62 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +main.o: gpucfg/main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT main.o -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.o `test -f 'gpucfg/main.c' || echo '$(srcdir)/'`gpucfg/main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/main.c' object='main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o main.o `test -f 'gpucfg/main.c' || echo '$(srcdir)/'`gpucfg/main.c + +main.obj: gpucfg/main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT main.obj -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.obj `if test -f 'gpucfg/main.c'; then $(CYGPATH_W) 'gpucfg/main.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/main.c' object='main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o main.obj `if test -f 'gpucfg/main.c'; then $(CYGPATH_W) 'gpucfg/main.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/main.c'; fi` + +callbacks.o: gpucfg/callbacks.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT callbacks.o -MD -MP -MF $(DEPDIR)/callbacks.Tpo -c -o callbacks.o `test -f 'gpucfg/callbacks.c' || echo '$(srcdir)/'`gpucfg/callbacks.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/callbacks.Tpo $(DEPDIR)/callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/callbacks.c' object='callbacks.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o callbacks.o `test -f 'gpucfg/callbacks.c' || echo '$(srcdir)/'`gpucfg/callbacks.c + +callbacks.obj: gpucfg/callbacks.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT callbacks.obj -MD -MP -MF $(DEPDIR)/callbacks.Tpo -c -o callbacks.obj `if test -f 'gpucfg/callbacks.c'; then $(CYGPATH_W) 'gpucfg/callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/callbacks.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/callbacks.Tpo $(DEPDIR)/callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/callbacks.c' object='callbacks.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o callbacks.obj `if test -f 'gpucfg/callbacks.c'; then $(CYGPATH_W) 'gpucfg/callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/callbacks.c'; fi` + +interface.o: gpucfg/interface.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interface.o -MD -MP -MF $(DEPDIR)/interface.Tpo -c -o interface.o `test -f 'gpucfg/interface.c' || echo '$(srcdir)/'`gpucfg/interface.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/interface.Tpo $(DEPDIR)/interface.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/interface.c' object='interface.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interface.o `test -f 'gpucfg/interface.c' || echo '$(srcdir)/'`gpucfg/interface.c + +interface.obj: gpucfg/interface.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interface.obj -MD -MP -MF $(DEPDIR)/interface.Tpo -c -o interface.obj `if test -f 'gpucfg/interface.c'; then $(CYGPATH_W) 'gpucfg/interface.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/interface.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/interface.Tpo $(DEPDIR)/interface.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/interface.c' object='interface.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interface.obj `if test -f 'gpucfg/interface.c'; then $(CYGPATH_W) 'gpucfg/interface.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/interface.c'; fi` + +support.o: gpucfg/support.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT support.o -MD -MP -MF $(DEPDIR)/support.Tpo -c -o support.o `test -f 'gpucfg/support.c' || echo '$(srcdir)/'`gpucfg/support.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/support.Tpo $(DEPDIR)/support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/support.c' object='support.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o support.o `test -f 'gpucfg/support.c' || echo '$(srcdir)/'`gpucfg/support.c + +support.obj: gpucfg/support.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT support.obj -MD -MP -MF $(DEPDIR)/support.Tpo -c -o support.obj `if test -f 'gpucfg/support.c'; then $(CYGPATH_W) 'gpucfg/support.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/support.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/support.Tpo $(DEPDIR)/support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpucfg/support.c' object='support.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o support.obj `if test -f 'gpucfg/support.c'; then $(CYGPATH_W) 'gpucfg/support.c'; else $(CYGPATH_W) '$(srcdir)/gpucfg/support.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -415,9 +519,11 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile $(LTLIBRARIES) +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) +install-binPROGRAMS: install-libLTLIBRARIES + installdirs: - for dir in "$(DESTDIR)$(libdir)"; do \ + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -446,8 +552,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -469,7 +575,7 @@ install-data-am: install-dvi: install-dvi-am -install-exec-am: install-libLTLIBRARIES +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am @@ -501,28 +607,25 @@ ps: ps-am ps-am: -uninstall-am: uninstall-libLTLIBRARIES +uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES - - -#bin_PROGRAMS = cfgpeopsxgl -#cfgpeopsxgl_SOURCES = gpucfg-0.1df/main.c -#cfgpeopsxgl_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libLTLIBRARIES clean-libtool ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS uninstall-libLTLIBRARIES + #glade_DATA = gpucfg-0.1df/peopsxgl.glade2 #gladedir = $(datadir)/psemu/ diff --git a/plugins/peopsxgl/cfg.c b/plugins/peopsxgl/cfg.c index 7753045a..e734373b 100644 --- a/plugins/peopsxgl/cfg.c +++ b/plugins/peopsxgl/cfg.c @@ -28,22 +28,22 @@ #include "stdafx.h"
#include "externals.h"
-#include "cfg.h" +#include "cfg.h"
-char *pConfigFile = NULL; +char *pConfigFile = NULL;
void ReadConfigFile()
{
- FILE *in = NULL; + FILE *in = NULL;
int len;
char *pB, *p, t[256];
- - if (pConfigFile != NULL) +
+ if (pConfigFile != NULL)
in = fopen(pConfigFile, "rb");
- else - in = fopen("cfg/peopsxgl.cfg", "rb"); + else
+ in = fopen("gpuPeopsMesaGL.cfg", "rb");
- if (in == NULL) return; + if (in == NULL) return;
pB=(char *)malloc(32767); // buffer for reading config (32k)
memset(pB, 0, 32767);
diff --git a/plugins/peopsxgl/gpucfg/callbacks.c b/plugins/peopsxgl/gpucfg/callbacks.c new file mode 100644 index 00000000..1f438180 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/callbacks.c @@ -0,0 +1,50 @@ +#include "config.h"
+
+#include <gtk/gtk.h>
+
+#include "callbacks.h"
+#include "interface.h"
+#include "support.h"
+#include <stdio.h>
+
+void SaveConfig(void);
+
+void
+on_btnSave_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ SaveConfig();
+ exit(0);
+}
+
+
+void
+on_CfgWnd_destroy (GtkObject *object,
+ gpointer user_data)
+{
+ exit(0);
+}
+
+
+void
+on_btnCancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ exit(0);
+}
+
+
+void
+on_AboutWnd_destroy (GtkObject *object,
+ gpointer user_data)
+{
+ exit(0);
+}
+
+
+void
+on_bntAClose_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ exit(0);
+}
diff --git a/plugins/peopsxgl/gpucfg/callbacks.h b/plugins/peopsxgl/gpucfg/callbacks.h new file mode 100644 index 00000000..f607b910 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/callbacks.h @@ -0,0 +1,24 @@ +#include <gtk/gtk.h>
+
+
+void
+on_btnSave_clicked (GtkButton *button,
+ gpointer user_data);
+
+
+
+void
+on_CfgWnd_destroy (GtkObject *object,
+ gpointer user_data);
+
+void
+on_btnCancel_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_AboutWnd_destroy (GtkObject *object,
+ gpointer user_data);
+
+void
+on_bntAClose_clicked (GtkButton *button,
+ gpointer user_data);
diff --git a/plugins/peopsxgl/gpucfg/interface.c b/plugins/peopsxgl/gpucfg/interface.c new file mode 100644 index 00000000..70140e75 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/interface.c @@ -0,0 +1,898 @@ +#include "config.h" + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> + +#include <gdk/gdkkeysyms.h> +#include <gtk/gtk.h> + +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +#ifdef ENABLE_NLS +#include <libintl.h> +#define _(x) gettext(x) +#else +#define _(x) (x) +#endif + +GtkWidget* +create_CfgWnd (void) +{ + GtkWidget *CfgWnd; + GtkWidget *fixed1; + GtkWidget *btnSave; + GtkWidget *frmTextures; + GtkWidget *fixed3; + GtkWidget *edtMaxTex; + GtkWidget *label5; + GtkWidget *cmbQuality; + GList *cmbQuality_items = NULL; + GtkWidget *combo_entry2; + GtkWidget *label7; + GtkWidget *cmbFilter; + GList *cmbFilter_items = NULL; + GtkWidget *combo_entry3; + GtkWidget *label6; + GtkWidget *label23; + GtkWidget *cmbHiresTex; + GList *cmbHiresTex_items = NULL; + GtkWidget *combo_entry7; + GtkWidget *frmWindow; + GtkWidget *fixed2; + GtkWidget *edtXSize; + GtkWidget *edtYSize; + GtkWidget *label2; + GtkWidget *label3; + GtkWidget *chkKeepRatio; + GtkWidget *chkFullScreen; + GtkWidget *chkDither; + GtkWidget *btnCancel; + GtkWidget *frmFPS; + GtkWidget *fixed4; + GtkWidget *edtFPSlim; + GtkWidget *label8; + GSList *fixed4_group = NULL; + GtkWidget *rdbLimMan; + GtkWidget *chkShowFPS; + GtkWidget *chkFPSLimit; + GtkWidget *rdbLimAuto; + GtkWidget *chkFPSSkip; + GtkWidget *frmCompat; + GtkWidget *fixed5; + GtkWidget *chkABlend; + GtkWidget *label10; + GtkWidget *label9; + GtkWidget *label22; + GtkWidget *chkOpaque; + GtkWidget *chkMaskBit; + GtkWidget *cmbOffscreen; + GList *cmbOffscreen_items = NULL; + GtkWidget *combo_entry4; + GtkWidget *cmbFrameTex; + GList *cmbFrameTex_items = NULL; + GtkWidget *combo_entry5; + GtkWidget *cmbFrameAcc; + GList *cmbFrameAcc_items = NULL; + GtkWidget *combo_entry6; + GtkWidget *frmFixes; + GtkWidget *fixed7; + GtkWidget *chkFix3; + GtkWidget *chkFix4; + GtkWidget *chkFix5; + GtkWidget *chkGameFixes; + GtkWidget *chkFix2; + GtkWidget *chkFix1; + GtkWidget *chkFix7; + GtkWidget *chkFix0; + GtkWidget *chkFix6; + GtkWidget *chkFix8; + GtkWidget *chkFix9; + GtkWidget *chkFix10; + GtkWidget *chkFix11; + GtkWidget *chkFix12; + GtkWidget *chkFix13; + GtkWidget *chkFix14; + GtkWidget *chkFix15; + GtkWidget *chkFix17; + GtkWidget *chkFix16; + GtkWidget *frmMisc; + GtkWidget *fixed6; + GtkWidget *edtScanBlend; + GtkWidget *chkScanlines; + GtkWidget *label11; + GtkWidget *chkBlur; + GtkWidget *chkExtensions; + GtkWidget *chkAntiA; + GtkWidget *chkLinemode; + GtkWidget *chkFastMdec; + GtkWidget *chk15bitMdec; + + CfgWnd = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_object_set_data (GTK_OBJECT (CfgWnd), "CfgWnd", CfgWnd); + gtk_container_set_border_width (GTK_CONTAINER (CfgWnd), 8); + gtk_window_set_title (GTK_WINDOW (CfgWnd), "P.E.Op.S. MesaGL PSX GPU configuration..."); + gtk_window_set_position (GTK_WINDOW (CfgWnd), GTK_WIN_POS_CENTER); + gtk_window_set_modal (GTK_WINDOW (CfgWnd), TRUE); + gtk_window_set_policy (GTK_WINDOW (CfgWnd), FALSE, FALSE, FALSE); + + fixed1 = gtk_fixed_new (); + gtk_widget_ref (fixed1); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed1", fixed1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed1); + gtk_container_add (GTK_CONTAINER (CfgWnd), fixed1); + + btnSave = gtk_button_new_with_label ("OK"); + gtk_widget_ref (btnSave); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "btnSave", btnSave, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (btnSave); + gtk_fixed_put (GTK_FIXED (fixed1), btnSave, 104, 512); + gtk_widget_set_usize (btnSave, 160, 24); + + frmTextures = gtk_frame_new ("Textures"); + gtk_widget_ref (frmTextures); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmTextures", frmTextures, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmTextures); + gtk_fixed_put (GTK_FIXED (fixed1), frmTextures, 312, 0); + gtk_widget_set_usize (frmTextures, 360, 136); + + fixed3 = gtk_fixed_new (); + gtk_widget_ref (fixed3); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed3", fixed3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed3); + gtk_container_add (GTK_CONTAINER (frmTextures), fixed3); + + edtMaxTex = gtk_entry_new (); + gtk_widget_ref (edtMaxTex); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtMaxTex", edtMaxTex, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (edtMaxTex); + gtk_fixed_put (GTK_FIXED (fixed3), edtMaxTex, 248, 80); + gtk_widget_set_usize (edtMaxTex, 96, 24); + + label5 = gtk_label_new ("Quality:"); + gtk_widget_ref (label5); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label5", label5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label5); + gtk_fixed_put (GTK_FIXED (fixed3), label5, 8, 0); + gtk_widget_set_usize (label5, 64, 24); + + cmbQuality = gtk_combo_new (); + gtk_widget_ref (cmbQuality); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbQuality", cmbQuality, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbQuality); + gtk_fixed_put (GTK_FIXED (fixed3), cmbQuality, 80, 0); + gtk_widget_set_usize (cmbQuality, 264, 24); + gtk_combo_set_value_in_list (GTK_COMBO (cmbQuality), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbQuality), TRUE); + cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) "0: don't care - Use driver's default textures"); + cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) "1: 4444 - Fast, but less colorful"); + cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) "2: 5551 - Nice colors, bad transparency"); + cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) "3: 8888 - Best colors, more ram needed"); + cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) "4: BGR8888 - Faster on some cards"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbQuality), cmbQuality_items); + g_list_free (cmbQuality_items); + + combo_entry2 = GTK_COMBO (cmbQuality)->entry; + gtk_widget_ref (combo_entry2); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry2", combo_entry2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry2); + gtk_entry_set_text (GTK_ENTRY (combo_entry2), "0: don't care - Use driver's default textures"); + + label7 = gtk_label_new ("VRam size in MBytes (0..1024, 0=auto):"); + gtk_widget_ref (label7); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label7", label7, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label7); + gtk_fixed_put (GTK_FIXED (fixed3), label7, 8, 80); + gtk_widget_set_usize (label7, 240, 24); + + cmbFilter = gtk_combo_new (); + gtk_widget_ref (cmbFilter); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFilter", cmbFilter, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbFilter); + gtk_fixed_put (GTK_FIXED (fixed3), cmbFilter, 80, 24); + gtk_widget_set_usize (cmbFilter, 264, 24); + gtk_combo_set_value_in_list (GTK_COMBO (cmbFilter), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFilter), TRUE); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "0: None"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "1: Standard - Glitches will happen"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "2: Extended - No black borders"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "3: Standard without sprites - unfiltered 2D"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "4: Extended without sprites - unfiltered 2D"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "5: Standard + smoothed sprites"); + cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) "6: Extended + smoothed sprites"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbFilter), cmbFilter_items); + g_list_free (cmbFilter_items); + + combo_entry3 = GTK_COMBO (cmbFilter)->entry; + gtk_widget_ref (combo_entry3); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry3", combo_entry3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry3); + gtk_entry_set_text (GTK_ENTRY (combo_entry3), "0: None"); + + label6 = gtk_label_new ("Filtering:"); + gtk_widget_ref (label6); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label6", label6, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label6); + gtk_fixed_put (GTK_FIXED (fixed3), label6, 8, 24); + gtk_widget_set_usize (label6, 64, 24); + + label23 = gtk_label_new ("HiRes Tex:"); + gtk_widget_ref (label23); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label23", label23, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label23); + gtk_fixed_put (GTK_FIXED (fixed3), label23, 8, 48); + gtk_widget_set_usize (label23, 64, 24); + + cmbHiresTex = gtk_combo_new (); + gtk_widget_ref (cmbHiresTex); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbHiresTex", cmbHiresTex, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbHiresTex); + gtk_fixed_put (GTK_FIXED (fixed3), cmbHiresTex, 80, 48); + gtk_widget_set_usize (cmbHiresTex, 264, 22); + gtk_combo_set_value_in_list (GTK_COMBO (cmbHiresTex), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbHiresTex), TRUE); + cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) "0: None (standard)"); + cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) "1: 2xSaI (much vram needed)"); + cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) "2: Scaled (needs tex filtering)"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbHiresTex), cmbHiresTex_items); + g_list_free (cmbHiresTex_items); + + combo_entry7 = GTK_COMBO (cmbHiresTex)->entry; + gtk_widget_ref (combo_entry7); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry7", combo_entry7, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry7); + gtk_entry_set_text (GTK_ENTRY (combo_entry7), "0: None (standard)"); + + frmWindow = gtk_frame_new ("Window options"); + gtk_widget_ref (frmWindow); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmWindow", frmWindow, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmWindow); + gtk_fixed_put (GTK_FIXED (fixed1), frmWindow, 0, 0); + gtk_widget_set_usize (frmWindow, 304, 136); + + fixed2 = gtk_fixed_new (); + gtk_widget_ref (fixed2); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed2", fixed2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed2); + gtk_container_add (GTK_CONTAINER (frmWindow), fixed2); + + edtXSize = gtk_entry_new_with_max_length (5); + gtk_widget_ref (edtXSize); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtXSize", edtXSize, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (edtXSize); + gtk_fixed_put (GTK_FIXED (fixed2), edtXSize, 56, 0); + gtk_widget_set_usize (edtXSize, 72, 24); + + edtYSize = gtk_entry_new (); + gtk_widget_ref (edtYSize); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtYSize", edtYSize, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (edtYSize); + gtk_fixed_put (GTK_FIXED (fixed2), edtYSize, 56, 32); + gtk_widget_set_usize (edtYSize, 72, 24); + + label2 = gtk_label_new ("Width:"); + gtk_widget_ref (label2); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label2", label2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label2); + gtk_fixed_put (GTK_FIXED (fixed2), label2, 8, 0); + gtk_widget_set_usize (label2, 48, 24); + gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_RIGHT); + + label3 = gtk_label_new ("Height:"); + gtk_widget_ref (label3); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label3", label3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label3); + gtk_fixed_put (GTK_FIXED (fixed2), label3, 8, 32); + gtk_widget_set_usize (label3, 48, 24); + gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_RIGHT); + + chkKeepRatio = gtk_check_button_new_with_label ("Keep psx aspect ratio"); + gtk_widget_ref (chkKeepRatio); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkKeepRatio", chkKeepRatio, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkKeepRatio); + gtk_fixed_put (GTK_FIXED (fixed2), chkKeepRatio, 8, 88); + gtk_widget_set_usize (chkKeepRatio, 280, 24); + + chkFullScreen = gtk_check_button_new_with_label ("Fullscreen"); + gtk_widget_ref (chkFullScreen); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFullScreen", chkFullScreen, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFullScreen); + gtk_fixed_put (GTK_FIXED (fixed2), chkFullScreen, 176, 0); + gtk_widget_set_usize (chkFullScreen, 85, 24); + + chkDither = gtk_check_button_new_with_label ("Dithering"); + gtk_widget_ref (chkDither); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkDither", chkDither, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkDither); + gtk_fixed_put (GTK_FIXED (fixed2), chkDither, 8, 64); + gtk_widget_set_usize (chkDither, 280, 24); + + btnCancel = gtk_button_new_with_label ("Cancel"); + gtk_widget_ref (btnCancel); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "btnCancel", btnCancel, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (btnCancel); + gtk_fixed_put (GTK_FIXED (fixed1), btnCancel, 400, 512); + gtk_widget_set_usize (btnCancel, 160, 24); + + frmFPS = gtk_frame_new ("Framerate"); + gtk_widget_ref (frmFPS); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmFPS", frmFPS, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmFPS); + gtk_fixed_put (GTK_FIXED (fixed1), frmFPS, 0, 136); + gtk_widget_set_usize (frmFPS, 304, 176); + + fixed4 = gtk_fixed_new (); + gtk_widget_ref (fixed4); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed4", fixed4, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed4); + gtk_container_add (GTK_CONTAINER (frmFPS), fixed4); + + edtFPSlim = gtk_entry_new (); + gtk_widget_ref (edtFPSlim); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtFPSlim", edtFPSlim, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (edtFPSlim); + gtk_fixed_put (GTK_FIXED (fixed4), edtFPSlim, 160, 104); + gtk_widget_set_usize (edtFPSlim, 72, 24); + + label8 = gtk_label_new ("FPS"); + gtk_widget_ref (label8); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label8", label8, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label8); + gtk_fixed_put (GTK_FIXED (fixed4), label8, 240, 104); + gtk_widget_set_usize (label8, 40, 24); + + rdbLimMan = gtk_radio_button_new_with_label (fixed4_group, "FPS limit manual"); + fixed4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rdbLimMan)); + gtk_widget_ref (rdbLimMan); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "rdbLimMan", rdbLimMan, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (rdbLimMan); + gtk_fixed_put (GTK_FIXED (fixed4), rdbLimMan, 32, 104); + gtk_widget_set_usize (rdbLimMan, 120, 24); + + chkShowFPS = gtk_check_button_new_with_label ("Show FPS display on startup"); + gtk_widget_ref (chkShowFPS); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkShowFPS", chkShowFPS, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkShowFPS); + gtk_fixed_put (GTK_FIXED (fixed4), chkShowFPS, 8, 0); + gtk_widget_set_usize (chkShowFPS, 280, 24); + + chkFPSLimit = gtk_check_button_new_with_label ("Use FPS limit"); + gtk_widget_ref (chkFPSLimit); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFPSLimit", chkFPSLimit, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFPSLimit); + gtk_fixed_put (GTK_FIXED (fixed4), chkFPSLimit, 8, 24); + gtk_widget_set_usize (chkFPSLimit, 280, 24); + + rdbLimAuto = gtk_radio_button_new_with_label (fixed4_group, "FPS limit auto-detection"); + fixed4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rdbLimAuto)); + gtk_widget_ref (rdbLimAuto); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "rdbLimAuto", rdbLimAuto, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (rdbLimAuto); + gtk_fixed_put (GTK_FIXED (fixed4), rdbLimAuto, 32, 80); + gtk_widget_set_usize (rdbLimAuto, 160, 24); + + chkFPSSkip = gtk_check_button_new_with_label ("Use Frame skipping"); + gtk_widget_ref (chkFPSSkip); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFPSSkip", chkFPSSkip, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFPSSkip); + gtk_fixed_put (GTK_FIXED (fixed4), chkFPSSkip, 8, 48); + gtk_widget_set_usize (chkFPSSkip, 280, 24); + + frmCompat = gtk_frame_new ("Compatibility"); + gtk_widget_ref (frmCompat); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmCompat", frmCompat, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmCompat); + gtk_fixed_put (GTK_FIXED (fixed1), frmCompat, 312, 136); + gtk_widget_set_usize (frmCompat, 360, 176); + + fixed5 = gtk_fixed_new (); + gtk_widget_ref (fixed5); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed5", fixed5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed5); + gtk_container_add (GTK_CONTAINER (frmCompat), fixed5); + + chkABlend = gtk_check_button_new_with_label ("Advanced blending (Accurate psx color emulation)"); + gtk_widget_ref (chkABlend); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkABlend", chkABlend, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkABlend); + gtk_fixed_put (GTK_FIXED (fixed5), chkABlend, 8, 128); + gtk_widget_set_usize (chkABlend, 336, 24); + + label10 = gtk_label_new ("Framebuffer textures:"); + gtk_widget_ref (label10); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label10", label10, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label10); + gtk_fixed_put (GTK_FIXED (fixed5), label10, 0, 24); + gtk_widget_set_usize (label10, 136, 24); + + label9 = gtk_label_new ("Offscreen Drawing:"); + gtk_widget_ref (label9); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label9", label9, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label9); + gtk_fixed_put (GTK_FIXED (fixed5), label9, 0, 0); + gtk_widget_set_usize (label9, 136, 24); + + label22 = gtk_label_new ("Framebuffer access:"); + gtk_widget_ref (label22); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label22", label22, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label22); + gtk_fixed_put (GTK_FIXED (fixed5), label22, 0, 48); + gtk_widget_set_usize (label22, 136, 24); + + chkOpaque = gtk_check_button_new_with_label ("Alpha Multipass (correct opaque texture areas)"); + gtk_widget_ref (chkOpaque); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkOpaque", chkOpaque, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkOpaque); + gtk_fixed_put (GTK_FIXED (fixed5), chkOpaque, 8, 104); + gtk_widget_set_usize (chkOpaque, 336, 24); + + chkMaskBit = gtk_check_button_new_with_label ("Mask bit detection (needed by a few games, zbuffer)"); + gtk_widget_ref (chkMaskBit); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkMaskBit", chkMaskBit, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkMaskBit); + gtk_fixed_put (GTK_FIXED (fixed5), chkMaskBit, 8, 80); + gtk_widget_set_usize (chkMaskBit, 336, 24); + + cmbOffscreen = gtk_combo_new (); + gtk_widget_ref (cmbOffscreen); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbOffscreen", cmbOffscreen, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbOffscreen); + gtk_fixed_put (GTK_FIXED (fixed5), cmbOffscreen, 136, 0); + gtk_widget_set_usize (cmbOffscreen, 208, 24); + gtk_combo_set_value_in_list (GTK_COMBO (cmbOffscreen), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbOffscreen), TRUE); + cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) "0: None - Fastest, most glitches"); + cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) "1: Minimum - Missing screens"); + cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) "2: Standard - OK for most games"); + cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) "3: Enhanced - Shows more stuff"); + cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) "4: Extended - Causing garbage"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbOffscreen), cmbOffscreen_items); + g_list_free (cmbOffscreen_items); + + combo_entry4 = GTK_COMBO (cmbOffscreen)->entry; + gtk_widget_ref (combo_entry4); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry4", combo_entry4, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry4); + gtk_entry_set_text (GTK_ENTRY (combo_entry4), "0: None - Fastest, most glitches"); + + cmbFrameTex = gtk_combo_new (); + gtk_widget_ref (cmbFrameTex); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFrameTex", cmbFrameTex, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbFrameTex); + gtk_fixed_put (GTK_FIXED (fixed5), cmbFrameTex, 136, 24); + gtk_widget_set_usize (cmbFrameTex, 208, 24); + gtk_combo_set_value_in_list (GTK_COMBO (cmbFrameTex), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFrameTex), TRUE); + cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) "0: Emulated vram - Needs FVP"); + cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) "1: Black - Fast, no effects"); + cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) "2: Gfx card buffer - Can be slow"); + cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) "3: Gfx card & soft - slow"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbFrameTex), cmbFrameTex_items); + g_list_free (cmbFrameTex_items); + + combo_entry5 = GTK_COMBO (cmbFrameTex)->entry; + gtk_widget_ref (combo_entry5); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry5", combo_entry5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry5); + gtk_entry_set_text (GTK_ENTRY (combo_entry5), "0: Emulated vram - Needs FVP"); + + cmbFrameAcc = gtk_combo_new (); + gtk_widget_ref (cmbFrameAcc); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFrameAcc", cmbFrameAcc, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cmbFrameAcc); + gtk_fixed_put (GTK_FIXED (fixed5), cmbFrameAcc, 136, 48); + gtk_widget_set_usize (cmbFrameAcc, 208, 22); + gtk_combo_set_value_in_list (GTK_COMBO (cmbFrameAcc), TRUE, FALSE); + gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFrameAcc), TRUE); + cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) "0: Emulated vram - ok most times"); + cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) "1: Gfx card buffer reads"); + cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) "2: Gfx card buffer moves"); + cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) "3: Gfx buffer reads & moves"); + cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) "4: Full Software (FVP)"); + gtk_combo_set_popdown_strings (GTK_COMBO (cmbFrameAcc), cmbFrameAcc_items); + g_list_free (cmbFrameAcc_items); + + combo_entry6 = GTK_COMBO (cmbFrameAcc)->entry; + gtk_widget_ref (combo_entry6); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry6", combo_entry6, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (combo_entry6); + gtk_entry_set_text (GTK_ENTRY (combo_entry6), "0: Emulated vram - ok most times"); + + frmFixes = gtk_frame_new ("Special game fixes"); + gtk_widget_ref (frmFixes); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmFixes", frmFixes, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmFixes); + gtk_fixed_put (GTK_FIXED (fixed1), frmFixes, 312, 312); + gtk_widget_set_usize (frmFixes, 360, 192); + + fixed7 = gtk_fixed_new (); + gtk_widget_ref (fixed7); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed7", fixed7, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed7); + gtk_container_add (GTK_CONTAINER (frmFixes), fixed7); + + chkFix3 = gtk_check_button_new_with_label ("08: Swap front detection"); + gtk_widget_ref (chkFix3); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix3", chkFix3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix3); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix3, 8, 72); + gtk_widget_set_usize (chkFix3, 176, 16); + + chkFix4 = gtk_check_button_new_with_label ("10: Disable coord check"); + gtk_widget_ref (chkFix4); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix4", chkFix4, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix4); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix4, 8, 88); + gtk_widget_set_usize (chkFix4, 176, 16); + + chkFix5 = gtk_check_button_new_with_label ("20: No blue glitches (LoD)"); + gtk_widget_ref (chkFix5); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix5", chkFix5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix5); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix5, 8, 104); + gtk_widget_set_usize (chkFix5, 176, 16); + + chkGameFixes = gtk_check_button_new_with_label ("Use game fixes"); + gtk_widget_ref (chkGameFixes); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkGameFixes", chkGameFixes, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkGameFixes); + gtk_fixed_put (GTK_FIXED (fixed7), chkGameFixes, 8, 0); + gtk_widget_set_usize (chkGameFixes, 336, 24); + + chkFix2 = gtk_check_button_new_with_label ("04: Black brightness (Lunar)"); + gtk_widget_ref (chkFix2); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix2", chkFix2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix2); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix2, 8, 56); + gtk_widget_set_usize (chkFix2, 176, 16); + + chkFix1 = gtk_check_button_new_with_label ("02: Direct FB updates"); + gtk_widget_ref (chkFix1); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix1", chkFix1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix1); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix1, 8, 40); + gtk_widget_set_usize (chkFix1, 176, 16); + + chkFix7 = gtk_check_button_new_with_label ("80: PC fps calculation"); + gtk_widget_ref (chkFix7); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix7", chkFix7, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix7); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix7, 8, 136); + gtk_widget_set_usize (chkFix7, 168, 16); + + chkFix0 = gtk_check_button_new_with_label ("01: Battle cursor (FF7)"); + gtk_widget_ref (chkFix0); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix0", chkFix0, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix0); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix0, 8, 24); + gtk_widget_set_usize (chkFix0, 176, 16); + + chkFix6 = gtk_check_button_new_with_label ("40: Soft FB access"); + gtk_widget_ref (chkFix6); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix6", chkFix6, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix6); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix6, 8, 120); + gtk_widget_set_usize (chkFix6, 176, 16); + + chkFix8 = gtk_check_button_new_with_label ("100: Old frame skipping"); + gtk_widget_ref (chkFix8); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix8", chkFix8, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix8); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix8, 8, 152); + gtk_widget_set_usize (chkFix8, 168, 16); + + chkFix9 = gtk_check_button_new_with_label ("200: Yellow rect (FF9)"); + gtk_widget_ref (chkFix9); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix9", chkFix9, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix9); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix9, 184, 24); + gtk_widget_set_usize (chkFix9, 168, 16); + + chkFix10 = gtk_check_button_new_with_label ("400: No subtr. blending"); + gtk_widget_ref (chkFix10); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix10", chkFix10, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix10); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix10, 184, 40); + gtk_widget_set_usize (chkFix10, 168, 16); + + chkFix11 = gtk_check_button_new_with_label ("800: Lazy upload (DW7)"); + gtk_widget_ref (chkFix11); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix11", chkFix11, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix11); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix11, 184, 56); + gtk_widget_set_usize (chkFix11, 168, 16); + + chkFix12 = gtk_check_button_new_with_label ("1000: Odd/even hack"); + gtk_widget_ref (chkFix12); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix12", chkFix12, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix12); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix12, 184, 72); + gtk_widget_set_usize (chkFix12, 168, 16); + + chkFix13 = gtk_check_button_new_with_label ("2000: Adjust screen width"); + gtk_widget_ref (chkFix13); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix13", chkFix13, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix13); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix13, 184, 88); + gtk_widget_set_usize (chkFix13, 168, 16); + + chkFix14 = gtk_check_button_new_with_label ("4000: Old texture filtering"); + gtk_widget_ref (chkFix14); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix14", chkFix14, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix14); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix14, 184, 104); + gtk_widget_set_usize (chkFix14, 168, 16); + + chkFix15 = gtk_check_button_new_with_label ("8000: Additional uploads"); + gtk_widget_ref (chkFix15); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix15", chkFix15, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix15); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix15, 184, 120); + gtk_widget_set_usize (chkFix15, 168, 16); + + chkFix17 = gtk_check_button_new_with_label ("20000: fake 'gpu busy'"); + gtk_widget_ref (chkFix17); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix17", chkFix17, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix17); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix17, 184, 152); + gtk_widget_set_usize (chkFix17, 168, 16); + + chkFix16 = gtk_check_button_new_with_label ("10000: unused"); + gtk_widget_ref (chkFix16); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix16", chkFix16, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFix16); + gtk_fixed_put (GTK_FIXED (fixed7), chkFix16, 184, 136); + gtk_widget_set_usize (chkFix16, 168, 16); + + frmMisc = gtk_frame_new ("Misc"); + gtk_widget_ref (frmMisc); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmMisc", frmMisc, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (frmMisc); + gtk_fixed_put (GTK_FIXED (fixed1), frmMisc, 0, 312); + gtk_widget_set_usize (frmMisc, 304, 192); + + fixed6 = gtk_fixed_new (); + gtk_widget_ref (fixed6); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed6", fixed6, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed6); + gtk_container_add (GTK_CONTAINER (frmMisc), fixed6); + + edtScanBlend = gtk_entry_new (); + gtk_widget_ref (edtScanBlend); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtScanBlend", edtScanBlend, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (edtScanBlend); + gtk_fixed_put (GTK_FIXED (fixed6), edtScanBlend, 232, 0); + gtk_widget_set_usize (edtScanBlend, 54, 22); + + chkScanlines = gtk_check_button_new_with_label ("Scanlines"); + gtk_widget_ref (chkScanlines); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkScanlines", chkScanlines, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkScanlines); + gtk_fixed_put (GTK_FIXED (fixed6), chkScanlines, 8, 0); + gtk_widget_set_usize (chkScanlines, 80, 24); + + label11 = gtk_label_new ("Blending (0..255,-1=dot):"); + gtk_widget_ref (label11); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label11", label11, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label11); + gtk_fixed_put (GTK_FIXED (fixed6), label11, 88, 0); + gtk_widget_set_usize (label11, 144, 24); + + chkBlur = gtk_check_button_new_with_label ("Screen smoothing (can be slow or unsupported)"); + gtk_widget_ref (chkBlur); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkBlur", chkBlur, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkBlur); + gtk_fixed_put (GTK_FIXED (fixed6), chkBlur, 8, 112); + gtk_widget_set_usize (chkBlur, 288, 16); + + chkExtensions = gtk_check_button_new_with_label ("Use OpenGL extensions (recommended)"); + gtk_widget_ref (chkExtensions); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkExtensions", chkExtensions, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkExtensions); + gtk_fixed_put (GTK_FIXED (fixed6), chkExtensions, 8, 96); + gtk_widget_set_usize (chkExtensions, 272, 16); + + chkAntiA = gtk_check_button_new_with_label ("Polygon anti-aliasing (slow with most cards)"); + gtk_widget_ref (chkAntiA); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkAntiA", chkAntiA, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkAntiA); + gtk_fixed_put (GTK_FIXED (fixed6), chkAntiA, 8, 80); + gtk_widget_set_usize (chkAntiA, 272, 16); + + chkLinemode = gtk_check_button_new_with_label ("Line mode (polygons will not get filled)"); + gtk_widget_ref (chkLinemode); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkLinemode", chkLinemode, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkLinemode); + gtk_fixed_put (GTK_FIXED (fixed6), chkLinemode, 8, 64); + gtk_widget_set_usize (chkLinemode, 272, 16); + + chkFastMdec = gtk_check_button_new_with_label ("Unfiltered MDECs (small movie speedup)"); + gtk_widget_ref (chkFastMdec); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFastMdec", chkFastMdec, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chkFastMdec); + gtk_fixed_put (GTK_FIXED (fixed6), chkFastMdec, 8, 32); + gtk_widget_set_usize (chkFastMdec, 272, 16); + + chk15bitMdec = gtk_check_button_new_with_label ("Force 15 bit framebuffer updates (faster movies)"); + gtk_widget_ref (chk15bitMdec); + gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chk15bitMdec", chk15bitMdec, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (chk15bitMdec); + gtk_fixed_put (GTK_FIXED (fixed6), chk15bitMdec, 8, 48); + gtk_widget_set_usize (chk15bitMdec, 288, 16); + + gtk_signal_connect (GTK_OBJECT (CfgWnd), "destroy", + GTK_SIGNAL_FUNC (on_CfgWnd_destroy), + NULL); + gtk_signal_connect (GTK_OBJECT (btnSave), "clicked", + GTK_SIGNAL_FUNC (on_btnSave_clicked), + NULL); + gtk_signal_connect (GTK_OBJECT (btnCancel), "clicked", + GTK_SIGNAL_FUNC (on_btnCancel_clicked), + NULL); + + return CfgWnd; +} + +GtkWidget* +create_AboutWnd (void) +{ + GtkWidget *AboutWnd; + GtkWidget *fixed8; + GtkWidget *bntAClose; + GtkWidget *label13; + GtkWidget *label15; + GtkWidget *label21; + GtkWidget *label19; + + AboutWnd = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_object_set_data (GTK_OBJECT (AboutWnd), "AboutWnd", AboutWnd); + gtk_container_set_border_width (GTK_CONTAINER (AboutWnd), 12); + gtk_window_set_title (GTK_WINDOW (AboutWnd), "About"); + gtk_window_set_position (GTK_WINDOW (AboutWnd), GTK_WIN_POS_CENTER); + gtk_window_set_modal (GTK_WINDOW (AboutWnd), TRUE); + gtk_window_set_policy (GTK_WINDOW (AboutWnd), FALSE, FALSE, FALSE); + + fixed8 = gtk_fixed_new (); + gtk_widget_ref (fixed8); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "fixed8", fixed8, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (fixed8); + gtk_container_add (GTK_CONTAINER (AboutWnd), fixed8); + + bntAClose = gtk_button_new_with_label ("OK"); + gtk_widget_ref (bntAClose); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "bntAClose", bntAClose, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (bntAClose); + gtk_fixed_put (GTK_FIXED (fixed8), bntAClose, 136, 184); + gtk_widget_set_uposition (bntAClose, 136, 184); + gtk_widget_set_usize (bntAClose, 88, 24); + + label13 = gtk_label_new ("Adapted from P.E.Op.S OpenGL GPU by Pete Bernert"); + gtk_widget_ref (label13); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label13", label13, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label13); + gtk_fixed_put (GTK_FIXED (fixed8), label13, 0, 8); + gtk_widget_set_uposition (label13, 0, 8); + gtk_widget_set_usize (label13, 360, 16); + + label15 = gtk_label_new ("Homepage: http://www.pbernert.com"); + gtk_widget_ref (label15); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label15", label15, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label15); + gtk_fixed_put (GTK_FIXED (fixed8), label15, 0, 40); + gtk_widget_set_uposition (label15, 0, 40); + gtk_widget_set_usize (label15, 360, 16); + + label21 = gtk_label_new ("Compile date: " __DATE__); + gtk_widget_ref (label21); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label21", label21, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label21); + gtk_fixed_put (GTK_FIXED (fixed8), label21, 0, 136); + gtk_widget_set_uposition (label21, 0, 136); + gtk_widget_set_usize (label21, 360, 16); + + label19 = gtk_label_new ("Version: 1.78"); + gtk_widget_ref (label19); + gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label19", label19, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label19); + gtk_fixed_put (GTK_FIXED (fixed8), label19, 0, 104); + gtk_widget_set_uposition (label19, 0, 104); + gtk_widget_set_usize (label19, 360, 16); + + gtk_signal_connect (GTK_OBJECT (AboutWnd), "destroy", + GTK_SIGNAL_FUNC (on_AboutWnd_destroy), + NULL); + gtk_signal_connect (GTK_OBJECT (bntAClose), "clicked", + GTK_SIGNAL_FUNC (on_bntAClose_clicked), + NULL); + + return AboutWnd; +} diff --git a/plugins/peopsxgl/gpucfg/interface.h b/plugins/peopsxgl/gpucfg/interface.h new file mode 100644 index 00000000..4f507ae6 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/interface.h @@ -0,0 +1,6 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +GtkWidget* create_CfgWnd (void); +GtkWidget* create_AboutWnd (void); diff --git a/plugins/peopsxgl/gpucfg/main.c b/plugins/peopsxgl/gpucfg/main.c new file mode 100644 index 00000000..74860b2f --- /dev/null +++ b/plugins/peopsxgl/gpucfg/main.c @@ -0,0 +1,547 @@ +#include "config.h" + +#include <gtk/gtk.h> + +#include "interface.h" +#include "support.h" +#include <unistd.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ENABLE_NLS +#include <libintl.h> +#endif + +#define SETCHECK(winame) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON ((GtkWidget*) gtk_object_get_data (GTK_OBJECT (CfgWnd),winame)), TRUE) +#define SETEDIT(winame,sz) gtk_entry_set_text(GTK_ENTRY((GtkWidget*) gtk_object_get_data (GTK_OBJECT (CfgWnd),winame)), sz) +#define SETEDITVAL(winame,v) sprintf(t,"%d",v);gtk_entry_set_text(GTK_ENTRY((GtkWidget*) gtk_object_get_data (GTK_OBJECT (CfgWnd),winame)), t) +#define SETLIST(winame,v) gtk_list_select_item(GTK_LIST(GTK_COMBO((GtkWidget*) gtk_object_get_data (GTK_OBJECT (CfgWnd),winame))->list),v) + +static GtkWidget * wndMain=0; + +int main (int argc, char *argv[]) +{ + GtkWidget *CfgWnd; + FILE *in;char t[256];int len,val; + char * pB, * p; + + if(argc!=2) return 0; + if(strcmp(argv[1],"CFG")!=0 && strcmp(argv[1],"ABOUT")!=0) + return 0; + +#ifdef ENABLE_NLS + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + gtk_set_locale (); + gtk_init (&argc, &argv); + + if (strcmp(argv[1],"ABOUT") == 0) + { + CfgWnd = create_AboutWnd (); + gtk_widget_show (CfgWnd); + gtk_main (); + return 0; + } + + CfgWnd = create_CfgWnd (); + wndMain = CfgWnd; + + in = fopen("gpuPeopsMesaGL.cfg","rb"); + if(in) + { + pB=(char *)malloc(32767); + memset(pB,0,32767); + len = fread(pB, 1, 32767, in); + fclose(in); + } + else pB=0; + + val=640; + if(pB) + { + strcpy(t,"\nResX");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<10) val=10; + } + SETEDITVAL("edtXSize",val); + + val=480; + if(pB) + { + strcpy(t,"\nResY");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<10) val=10; + } + SETEDITVAL("edtYSize",val); + + val=0; + if(pB) + { + strcpy(t,"\nKeepRatio");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkKeepRatio"); + + val=0; + if(pB) + { + strcpy(t,"\nVRamSize");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1024) val=1024; + } + SETEDITVAL("edtMaxTex",val); + + val=0; + if(pB) + { + strcpy(t,"\n15bitMdec");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chk15bitMdec"); + + val=0; + if(pB) + { + strcpy(t,"\nHiResTextures");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>2) val=2; + } + SETLIST("cmbHiresTex",val); + + val=0; + if(pB) + { + strcpy(t,"\nFullScreen");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkFullScreen"); + + val=0; + if(pB) + { + strcpy(t,"\nScanLines");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkScanlines"); + + val=0; + if(pB) + { + strcpy(t,"\nScanLinesBlend");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<-1) val=-1; + if(val>255) val=255; + } + SETEDITVAL("edtScanBlend",val); + + val=1; + if(pB) + { + strcpy(t,"\nFrameTextures");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>3) val=3; + } + SETLIST("cmbFrameTex",val); + + val=0; + if(pB) + { + strcpy(t,"\nFrameAccess");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>4) val=4; + } + SETLIST("cmbFrameAcc",val); + + val=0; + if(pB) + { + strcpy(t,"\nTexFilter");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>6) val=6; + } + SETLIST("cmbFilter",val); + + val=0; + if(pB) + { + strcpy(t,"\nAdvancedBlend");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkABlend"); + + val=0; + if(pB) + { + strcpy(t,"\nDithering");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkDither"); + + val=0; + if(pB) + { + strcpy(t,"\nLineMode");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkLinemode"); + + val=0; + if(pB) + { + strcpy(t,"\nShowFPS");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkShowFPS"); + + val=0; + if(pB) + { + strcpy(t,"\nUseFrameLimit");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkFPSLimit"); + + val=0; + if(pB) + { + strcpy(t,"\nUseFrameSkip");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkFPSSkip"); + + val=2; + if(pB) + { + strcpy(t,"\nFPSDetection");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len)+1; + if(val<1) val=1; + if(val>2) val=2; + } + if(val==2) SETCHECK("rdbLimAuto"); + if(val==1) SETCHECK("rdbLimMan"); + + val=200; + if(pB) + { + strcpy(t,"\nFrameRate");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1000) val=1000; + } + SETEDITVAL("edtFPSlim",val); + + val=2; + if(pB) + { + strcpy(t,"\nOffscreenDrawing");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>4) val=4; + } + SETLIST("cmbOffscreen",val); + + val=1; + if(pB) + { + strcpy(t,"\nOpaquePass");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkOpaque"); + + val=0; + if(pB) + { + strcpy(t,"\nAntiAlias");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkAntiA"); + + val=0; + if(pB) + { + strcpy(t,"\nTexQuality");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>4) val=4; + } + SETLIST("cmbQuality",val); + + val=0; + if(pB) + { + strcpy(t,"\nMaskDetect");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkMaskBit"); + + val=1; + if(pB) + { + strcpy(t,"\nFastMdec");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkFastMdec"); + + val=1; + if(pB) + { + strcpy(t,"\nOGLExtensions");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkExtensions"); + + val=0; + if(pB) + { + strcpy(t,"\nScreenSmoothing");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkBlur"); + + val=0; + if(pB) + { + strcpy(t,"\nUseFixes");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + if(val<0) val=0; + if(val>1) val=1; + } + if(val) SETCHECK("chkGameFixes"); + + val=0; + if(pB) + { + strcpy(t,"\nCfgFixes");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;} + if(p) val=atoi(p+len); + } + + for(len=0;len<18;len++) + { + if(val & (1<<len)) + { + sprintf(t,"chkFix%d",len); + SETCHECK(t); + } + } + + if(pB) free(pB); + + gtk_widget_show (CfgWnd); + gtk_main (); + return 0; +} + +//////////////////////////////////////////////////////////////////////////////////////////////// + +void SetCfgVal(char * pB,char * pE,int val) +{ + char * p, *ps, *pC;char t[32]; + + sprintf(t,"%d",val); + + p=strstr(pB,pE); + if(p) + { + p=strstr(p,"="); + if(!p) return; + p++; + while(*p && *p!='\n' && *p!='-' && (*p<'0' || *p>'9')) p++; + if(*p==0 || *p=='\n') return; + ps=p; + while((*p>='0' && *p<='9') || *p=='-') p++; + pC=(char *)malloc(32767); + strcpy(pC,p); + strcpy(ps,t); + strcat(pB,pC); + free(pC); + } + else + { + strcat(pB,pE); + strcat(pB," = "); + strcat(pB,t); + strcat(pB,"\n"); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////// + +#define GETEDITVAL(winame) atoi(gtk_entry_get_text(GTK_ENTRY((GtkWidget*) gtk_object_get_data (GTK_OBJECT (wndMain),winame)))) +#define GETCHECK(winame) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON ((GtkWidget*) gtk_object_get_data (GTK_OBJECT (wndMain),winame)))?1:0 +#define GETLIST(winame) atoi(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO((GtkWidget*) gtk_object_get_data (GTK_OBJECT (wndMain),winame))->entry))) + +void SaveConfig(void) +{ + FILE *in;int len,val;char * pB;char t[16]; + + pB=(char *)malloc(32767); + memset(pB,0,32767); + + in = fopen("gpuPeopsMesaGL.cfg","rb"); + if(in) + { + len = fread(pB, 1, 32767, in); + fclose(in); + } + + /////////////////////////////////////////////////////////////////////////////// + + val=GETEDITVAL("edtXSize"); + if(val<10) val=10; + SetCfgVal(pB,"\nResX",val); + + val=GETEDITVAL("edtYSize"); + if(val<10) val=10; + SetCfgVal(pB,"\nResY",val); + + val=GETCHECK("chkKeepRatio"); + SetCfgVal(pB,"\nKeepRatio",val); + + val=GETEDITVAL("edtMaxTex"); + if(val<0) val=0; + if(val>1024) val=1024; + SetCfgVal(pB,"\nVRamSize",val); + + val=GETCHECK("chk15bitMdec"); + SetCfgVal(pB,"\n15bitMdec",val); + + val=GETLIST("cmbHiresTex"); + SetCfgVal(pB,"\nHiResTextures",val); + + val=GETCHECK("chkFullScreen"); + SetCfgVal(pB,"\nFullScreen",val); + + val=GETCHECK("chkScanlines"); + SetCfgVal(pB,"\nScanLines",val); + + val=GETEDITVAL("edtScanBlend"); + if(val<-1) val=-1; + if(val>255) val=255; + SetCfgVal(pB,"\nScanLinesBlend",val); + + val=GETLIST("cmbFrameTex"); + SetCfgVal(pB,"\nFrameTextures",val); + + val=GETLIST("cmbFrameAcc"); + SetCfgVal(pB,"\nFrameAccess",val); + + val=GETLIST("cmbFilter"); + SetCfgVal(pB,"\nTexFilter",val); + + val=GETCHECK("chkABlend"); + SetCfgVal(pB,"\nAdvancedBlend",val); + + val=GETCHECK("chkDither"); + SetCfgVal(pB,"\nDithering",val); + + val=GETCHECK("chkLinemode"); + SetCfgVal(pB,"\nLineMode",val); + + val=GETCHECK("chkShowFPS"); + SetCfgVal(pB,"\nShowFPS",val); + + val=GETCHECK("chkFPSLimit"); + SetCfgVal(pB,"\nUseFrameLimit",val); + + val=GETCHECK("chkFPSSkip"); + SetCfgVal(pB,"\nUseFrameSkip",val); + + val=GETCHECK("rdbLimAuto"); + if(val) val=1; else val=0; + SetCfgVal(pB,"\nFPSDetection",val); + + val=GETEDITVAL("edtFPSlim"); + if(val<0) val=0; + if(val>1000) val=1000; + SetCfgVal(pB,"\nFrameRate",val); + + val=GETLIST("cmbOffscreen"); + SetCfgVal(pB,"\nOffscreenDrawing",val); + + val=GETCHECK("chkOpaque"); + SetCfgVal(pB,"\nOpaquePass",val); + + val=GETCHECK("chkAntiA"); + SetCfgVal(pB,"\nAntiAlias",val); + + val=GETLIST("cmbQuality"); + SetCfgVal(pB,"\nTexQuality",val); + + val=GETCHECK("chkMaskBit"); + SetCfgVal(pB,"\nMaskDetect",val); + + val=GETCHECK("chkFastMdec"); + SetCfgVal(pB,"\nFastMdec",val); + + val=GETCHECK("chkExtensions"); + SetCfgVal(pB,"\nOGLExtensions",val); + + val=GETCHECK("chkBlur"); + SetCfgVal(pB,"\nScreenSmoothing",val); + + val=GETCHECK("chkGameFixes"); + SetCfgVal(pB,"\nUseFixes",val); + + val=0; + for(len=0;len<18;len++) + { + sprintf(t,"chkFix%d",len); + if(GETCHECK(t)) val|=(1<<len); + } + SetCfgVal(pB,"\nCfgFixes",val); + + /////////////////////////////////////////////////////////////////////////////// + + if((in=fopen("gpuPeopsMesaGL.cfg","wb"))!=NULL) + { + fwrite(pB,strlen(pB),1,in); + fclose(in); + } + + free(pB); +} + + + diff --git a/plugins/peopsxgl/gpucfg/support.c b/plugins/peopsxgl/gpucfg/support.c new file mode 100644 index 00000000..042b0168 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/support.c @@ -0,0 +1,155 @@ +#include "config.h" + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> + +#include <gtk/gtk.h> + +#include "support.h" + +/* This is an internally used function to check if a pixmap file exists. */ +static gchar* check_file_exists (const gchar *directory, + const gchar *filename); + +/* This is an internally used function to create pixmaps. */ +static GtkWidget* create_dummy_pixmap (GtkWidget *widget); + +GtkWidget* +lookup_widget (GtkWidget *widget, + const gchar *widget_name) +{ + GtkWidget *parent, *found_widget; + + for (;;) + { + if (GTK_IS_MENU (widget)) + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + parent = widget->parent; + if (parent == NULL) + break; + widget = parent; + } + + found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), + widget_name); + if (!found_widget) + g_warning ("Widget not found: %s", widget_name); + return found_widget; +} + +/* This is a dummy pixmap we use when a pixmap can't be found. */ +static char *dummy_pixmap_xpm[] = { +/* columns rows colors chars-per-pixel */ +"1 1 1 1", +" c None", +/* pixels */ +" " +}; + +/* This is an internally used function to create pixmaps. */ +static GtkWidget* +create_dummy_pixmap (GtkWidget *widget) +{ + GdkColormap *colormap; + GdkPixmap *gdkpixmap; + GdkBitmap *mask; + GtkWidget *pixmap; + + colormap = gtk_widget_get_colormap (widget); + gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, + NULL, dummy_pixmap_xpm); + if (gdkpixmap == NULL) + g_error ("Couldn't create replacement pixmap."); + pixmap = gtk_pixmap_new (gdkpixmap, mask); + gdk_pixmap_unref (gdkpixmap); + gdk_bitmap_unref (mask); + return pixmap; +} + +static GList *pixmaps_directories = NULL; + +/* Use this function to set the directory containing installed pixmaps. */ +void +add_pixmap_directory (const gchar *directory) +{ + pixmaps_directories = g_list_prepend (pixmaps_directories, + g_strdup (directory)); +} + +/* This is an internally used function to create pixmaps. */ +GtkWidget* +create_pixmap (GtkWidget *widget, + const gchar *filename) +{ + gchar *found_filename = NULL; + GdkColormap *colormap; + GdkPixmap *gdkpixmap; + GdkBitmap *mask; + GtkWidget *pixmap; + GList *elem; + + if (!filename || !filename[0]) + return create_dummy_pixmap (widget); + + /* We first try any pixmaps directories set by the application. */ + elem = pixmaps_directories; + while (elem) + { + found_filename = check_file_exists ((gchar*)elem->data, filename); + if (found_filename) + break; + elem = elem->next; + } + + /* If we haven't found the pixmap, try the source directory. */ + if (!found_filename) + { + found_filename = check_file_exists ("../pixmaps", filename); + } + + if (!found_filename) + { + g_warning ("Couldn't find pixmap file: %s", filename); + return create_dummy_pixmap (widget); + } + + colormap = gtk_widget_get_colormap (widget); + gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, + NULL, found_filename); + if (gdkpixmap == NULL) + { + g_warning ("Error loading pixmap file: %s", found_filename); + g_free (found_filename); + return create_dummy_pixmap (widget); + } + g_free (found_filename); + pixmap = gtk_pixmap_new (gdkpixmap, mask); + gdk_pixmap_unref (gdkpixmap); + gdk_bitmap_unref (mask); + return pixmap; +} + +/* This is an internally used function to check if a pixmap file exists. */ +gchar* +check_file_exists (const gchar *directory, + const gchar *filename) +{ + gchar *full_filename; + struct stat s; + gint status; + + full_filename = (gchar*) g_malloc (strlen (directory) + 1 + + strlen (filename) + 1); + strcpy (full_filename, directory); + strcat (full_filename, G_DIR_SEPARATOR_S); + strcat (full_filename, filename); + + status = stat (full_filename, &s); + if (status == 0 && S_ISREG (s.st_mode)) + return full_filename; + g_free (full_filename); + return NULL; +} diff --git a/plugins/peopsxgl/gpucfg/support.h b/plugins/peopsxgl/gpucfg/support.h new file mode 100644 index 00000000..aee31f93 --- /dev/null +++ b/plugins/peopsxgl/gpucfg/support.h @@ -0,0 +1,38 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <gtk/gtk.h> + +/* + * Public Functions. + */ + +/* + * This function returns a widget in a component created by Glade. + * Call it with the toplevel widget in the component (i.e. a window/dialog), + * or alternatively any widget in the component, and the name of the widget + * you want returned. + */ +GtkWidget* lookup_widget (GtkWidget *widget, + const gchar *widget_name); + +/* get_widget() is deprecated. Use lookup_widget instead. */ +#define get_widget lookup_widget + +/* Use this function to set the directory containing installed pixmaps. */ +void add_pixmap_directory (const gchar *directory); + + +/* + * Private Functions. + */ + +/* This is used to create the pixmaps in the interface. */ +GtkWidget* create_pixmap (GtkWidget *widget, + const gchar *filename); + |
