summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-06-01 04:32:44 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-06-01 04:32:44 +0000
commit81c68de8b937f9f80f3066d3e0907cc3e394f5ab (patch)
tree829408208c260c652eafa9c590168ec4ef21f270 /plugins
parent15a247741a63d78340d2296ca178715bda2dd21b (diff)
downloadpcsxr-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.c28
-rw-r--r--plugins/peopsxgl/Makefile.am7
-rw-r--r--plugins/peopsxgl/Makefile.in157
-rw-r--r--plugins/peopsxgl/cfg.c16
-rw-r--r--plugins/peopsxgl/gpucfg/callbacks.c50
-rw-r--r--plugins/peopsxgl/gpucfg/callbacks.h24
-rw-r--r--plugins/peopsxgl/gpucfg/interface.c898
-rw-r--r--plugins/peopsxgl/gpucfg/interface.h6
-rw-r--r--plugins/peopsxgl/gpucfg/main.c547
-rw-r--r--plugins/peopsxgl/gpucfg/support.c155
-rw-r--r--plugins/peopsxgl/gpucfg/support.h38
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);
+