Author: cjcollier
Date: 2006-06-18 18:57:00 -0400 (Sun, 18 Jun 2006)
New Revision: 61828

Added:
   trunk/gtkglarea-sharp/examples/MdlLoader/
   trunk/gtkglarea-sharp/examples/MdlLoader/Engine.cs
   trunk/gtkglarea-sharp/examples/MdlLoader/GladeExample.cs
   trunk/gtkglarea-sharp/examples/MdlLoader/Makefile
   trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.am
   trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.in
   trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.cs
   trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.mdp
   trunk/gtkglarea-sharp/examples/MdlLoader/README
   trunk/gtkglarea-sharp/examples/MdlLoader/mdl.c
   trunk/gtkglarea-sharp/examples/MdlLoader/mdl.h
Log:
- Created a working tree.  It doesn't actually do anything yet, but
it's the building blocks of a working set of code



Added: trunk/gtkglarea-sharp/examples/MdlLoader/Engine.cs
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/Engine.cs  2006-06-18 19:05:51 UTC 
(rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/Engine.cs  2006-06-18 22:57:00 UTC 
(rev 61828)
@@ -0,0 +1,22 @@
+using GtkGL;
+
+namespace GladeExample {
+    using System;
+    
+    public class Engine {
+               public static int Main (string[] args)
+               {
+                       Gtk.Application.Init ();
+
+                       GtkGL.GladeExample ge = new GtkGL.GladeExample ();
+
+                       // Show the GL widget window
+                       ge.window.Show();
+                       ge.glw.Show();
+                       
+                       Gtk.Application.Run ();
+                       
+                       return 0;
+               }
+    }   
+}

Added: trunk/gtkglarea-sharp/examples/MdlLoader/GladeExample.cs
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/GladeExample.cs    2006-06-18 
19:05:51 UTC (rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/GladeExample.cs    2006-06-18 
22:57:00 UTC (rev 61828)
@@ -0,0 +1,44 @@
+// project created on 11/25/2005 at 10:32 PM
+using System;
+using Gtk;
+using Glade;
+using GtkGL;
+
+namespace GtkGL
+{
+       public class GladeExample
+       {
+               public GLWidget glw;
+               public Gtk.Window window;
+
+               public GladeExample () 
+               {
+                       Glade.XML gxml = new Glade.XML (null, "glwidget.glade", 
"glwidget", null);
+
+                       // Connect the Signals defined in Glade
+                       gxml.Autoconnect (this);
+                       
+                       // Create a new glw widget and request a size
+                       glw = new GLWidget ();
+
+                       // Create a new Vertical Box that the glw can live in
+                       VBox vb = (Gtk.VBox)gxml["vbox1"];
+                                               
+                       // Pack the glw widget into the VBox
+                       vb.PackStart (glw);
+                       
+                       window = (Gtk.Window)gxml["glwidget"];
+               }
+               
+               private void OnQuit (object o, System.EventArgs e){
+                       Application.Quit();
+               }
+
+               private void OnWindowDeleteEvent (object sender, 
DeleteEventArgs a) 
+               {
+                       Application.Quit ();
+                       a.RetVal = true;
+               }
+       }
+
+}
\ No newline at end of file

Added: trunk/gtkglarea-sharp/examples/MdlLoader/Makefile
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/Makefile   2006-06-18 19:05:51 UTC 
(rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/Makefile   2006-06-18 22:57:00 UTC 
(rev 61828)
@@ -0,0 +1,359 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# examples/MdlLoader/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+srcdir = .
+top_srcdir = ../..
+
+pkgdatadir = $(datadir)/gtkglarea-sharp
+pkglibdir = $(libdir)/gtkglarea-sharp
+pkgincludedir = $(includedir)/gtkglarea-sharp
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+target_triplet = i686-pc-linux-gnu
+subdir = examples/MdlLoader
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing 
--run aclocal-1.9
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing 
--run tar
+API_VERSION = 0.0.3.0
+AUTOCONF = ${SHELL} 
/home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing --run autoconf
+AUTOHEADER = ${SHELL} 
/home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing --run autoheader
+AUTOMAKE = ${SHELL} 
/home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing --run automake-1.9
+AWK = gawk
+BASE_DEPENDENCIES_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include 
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+BASE_DEPENDENCIES_LIBS = -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 
-latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender 
-lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+BUILD_GTK_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include 
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+BUILD_GTK_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm 
-lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr 
-lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl 
-lglib-2.0  
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPPFLAGS = 
+CSC = /home/cjcollier/opt/bin/mcs
+CYGPATH_W = echo
+DEFS = -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" 
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"gtkglarea-sharp\" 
-DVERSION=\"0.0.16\" 
+DEPDIR = .deps
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+ENABLE_MONODOC_FALSE = #
+ENABLE_MONODOC_TRUE = 
+EXEEXT = 
+GACUTIL = /home/cjcollier/opt/bin/gacutil
+GACUTIL_FLAGS = /package gtkglarea-sharp /gacdir $(DESTDIR)$(prefix)/lib
+GAPI_CFLAGS =  
+GAPI_LIBS =  
+GTK_SHARP_CFLAGS = 
-I:/home/cjcollier/opt/lib/pkgconfig/../../share/gapi-2.0/pango-api.xml 
-I:/home/cjcollier/opt/lib/pkgconfig/../../share/gapi-2.0/atk-api.xml 
-I:/home/cjcollier/opt/lib/pkgconfig/../../share/gapi-2.0/gdk-api.xml 
-I:/home/cjcollier/opt/lib/pkgconfig/../../share/gapi-2.0/gtk-api.xml  
+GTK_SHARP_LIBS = 
-r:/home/cjcollier/opt/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/pango-sharp.dll
 
-r:/home/cjcollier/opt/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:/home/cjcollier/opt/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:/home/cjcollier/opt/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:/home/cjcollier/opt/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/glib-sharp.dll
  
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS = 
+LD_LIBRARY_PATH = :/home/cjcollier/opt/lib
+LIBOBJS = 
+LIBS = 
+LIB_PREFIX = .so
+LIB_SUFFIX = 
+LTLIBOBJS = 
+MAINT = 
+MAINTAINER_MODE_FALSE = #
+MAINTAINER_MODE_TRUE = 
+MAKEINFO = ${SHELL} 
/home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/missing --run makeinfo
+MCS = /home/cjcollier/opt/bin/mcs
+MONO = /home/cjcollier/opt/bin/mono
+MONODOC = /home/cjcollier/opt/bin/monodoc
+MONODOC_DEPENDENCY_CFLAGS =  
+MONODOC_DEPENDENCY_LIBS = /r:/home/cjcollier/opt/lib/mono/monodoc/monodoc.dll  
+MONODOC_REQUIRED_VERSION = 1.0
+MONO_DEPENDENCY_CFLAGS = -D_REENTRANT -pthread 
-I/home/cjcollier/opt/lib/pkgconfig/../../include -I/usr/include/glib-2.0 
-I/usr/lib/glib-2.0/include  
+MONO_DEPENDENCY_LIBS = -Wl,--export-dynamic -pthread 
-L/home/cjcollier/opt/lib/pkgconfig/../../lib -lmono -lpthread -lm 
-lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0  
+OBJEXT = o
+PACKAGE = gtkglarea-sharp
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = 
+PACKAGE_STRING = 
+PACKAGE_TARNAME = 
+PACKAGE_VERSION = 
+PATH = 
/home/cjcollier/bin:/home/cjcollier/opt/bin:/home/cjcollier/bitkeeper:/opt/sdb/programs/bin:/opt/j2sdk1.4.2_08/bin:/home/cjcollier/opt/bitkeeper:/home/cjcollier/opt/sbin:/opt/j2sdk1.4.2_10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+RANLIB = ranlib
+RUNTIME = /home/cjcollier/opt/bin/mono
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = 
+TAO_DEPENDENCIES_CFLAGS =  
+TAO_DEPENDENCIES_LIBS = -r:/home/cjcollier/opt/lib/mono/tao/Tao.OpenGl.dll 
-r:/home/cjcollier/opt/lib/mono/tao/Tao.OpenGl.ExtensionLoader.dll  
+VERSION = 0.0.16
+WINBUILD_FALSE = 
+WINBUILD_TRUE = #
+ac_ct_CC = gcc
+ac_ct_RANLIB = ranlib
+ac_ct_STRIP = 
+ac_pt_PKG_CONFIG = 
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias = 
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${prefix}/share
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias = 
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+includedir = ${prefix}/include
+infodir = ${prefix}/info
+install_sh = /home/cjcollier/src.offline/svn/gtkglarea-sharp.mdl/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localstatedir = ${prefix}/var
+mandir = ${prefix}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+prefix = /home/cjcollier/opt
+program_transform_name = s,x,x,
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target = i686-pc-linux-gnu
+target_alias = 
+target_cpu = i686
+target_os = linux-gnu
+target_vendor = pc
+EXAMPLE_NAME = MdlLoader
+SOURCE_FILES = \
+       $(EXAMPLE_NAME).cs \
+       Engine.cs \
+       GladeExample.cs
+
+CLEANFILES = \
+       $(EXAMPLE_NAME).exe \
+       $(EXAMPLE_NAME).exe.mdb \
+       $(EXAMPLE_NAME).pidb
+
+EXTRA_DIST = \
+       $(SOURCE_FILES)
+
+MCS_ARGS = \
+       -debug \
+       -lib:../..//gtkglarea \
+       -r:gtkglarea-sharp.dll \
+       -pkg:gtk-sharp-2.0 \
+       -pkg:glade-sharp-2.0 \
+       -lib:$(srcdir)/../util \
+       -r:gtkglarea-sharp-util.dll \
+       -resource:$(srcdir)/../resources/glwidget.glade
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  
examples/MdlLoader/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  examples/MdlLoader/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
$(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
$(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+           $(top_srcdir)/*) file=`echo "$$file" | sed 
"s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkdir_p) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am
+
+
+all: \
+       $(EXAMPLE_NAME).exe
+
+run: MdlLoader.exe
+       MONO_PATH="$(top_srcdir)/examples/util" \
+       mono $(EXAMPLE_NAME).exe
+
+$(EXAMPLE_NAME).exe: $(SOURCE_FILES)
+       mcs \
+               $(MCS_ARGS) \
+               $(SOURCE_FILES) \
+               -out:$(EXAMPLE_NAME).exe
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:


Property changes on: trunk/gtkglarea-sharp/examples/MdlLoader/Makefile
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.am
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.am        2006-06-18 
19:05:51 UTC (rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.am        2006-06-18 
22:57:00 UTC (rev 61828)
@@ -0,0 +1,38 @@
+EXAMPLE_NAME=MdlLoader
+
+SOURCE_FILES = \
+       $(EXAMPLE_NAME).cs \
+       Engine.cs \
+       GladeExample.cs
+
+CLEANFILES = \
+       $(EXAMPLE_NAME).exe \
+       $(EXAMPLE_NAME).exe.mdb \
+       $(EXAMPLE_NAME).pidb
+
+all: \
+       $(EXAMPLE_NAME).exe
+
+run: MdlLoader.exe
+       MONO_PATH="$(top_srcdir)/examples/util" \
+       mono $(EXAMPLE_NAME).exe
+
+
+EXTRA_DIST = \
+       $(SOURCE_FILES)
+
+MCS_ARGS = \
+       -debug \
+       -lib:@top_builddir@/gtkglarea \
+       -r:gtkglarea-sharp.dll \
+       -pkg:gtk-sharp-2.0 \
+       -pkg:glade-sharp-2.0 \
+       -lib:$(srcdir)/../util \
+       -r:gtkglarea-sharp-util.dll \
+       -resource:$(srcdir)/../resources/glwidget.glade
+
+$(EXAMPLE_NAME).exe: $(SOURCE_FILES)
+       mcs \
+               $(MCS_ARGS) \
+               $(SOURCE_FILES) \
+               -out:$(EXAMPLE_NAME).exe

Added: trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.in
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.in        2006-06-18 
19:05:51 UTC (rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/Makefile.in        2006-06-18 
22:57:00 UTC (rev 61828)
@@ -0,0 +1,359 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
[EMAIL PROTECTED]@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = examples/MdlLoader
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+API_VERSION = @API_VERSION@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASE_DEPENDENCIES_CFLAGS = @BASE_DEPENDENCIES_CFLAGS@
+BASE_DEPENDENCIES_LIBS = @BASE_DEPENDENCIES_LIBS@
+BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
+BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+CSC = @CSC@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ENABLE_MONODOC_FALSE = @ENABLE_MONODOC_FALSE@
+ENABLE_MONODOC_TRUE = @ENABLE_MONODOC_TRUE@
+EXEEXT = @EXEEXT@
+GACUTIL = @GACUTIL@
+GACUTIL_FLAGS = @GACUTIL_FLAGS@
+GAPI_CFLAGS = @GAPI_CFLAGS@
+GAPI_LIBS = @GAPI_LIBS@
+GTK_SHARP_CFLAGS = @GTK_SHARP_CFLAGS@
+GTK_SHARP_LIBS = @GTK_SHARP_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LD_LIBRARY_PATH = @LD_LIBRARY_PATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIB_PREFIX = @LIB_PREFIX@
+LIB_SUFFIX = @LIB_SUFFIX@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MCS = @MCS@
+MONO = @MONO@
+MONODOC = @MONODOC@
+MONODOC_DEPENDENCY_CFLAGS = @MONODOC_DEPENDENCY_CFLAGS@
+MONODOC_DEPENDENCY_LIBS = @MONODOC_DEPENDENCY_LIBS@
+MONODOC_REQUIRED_VERSION = @MONODOC_REQUIRED_VERSION@
+MONO_DEPENDENCY_CFLAGS = @MONO_DEPENDENCY_CFLAGS@
+MONO_DEPENDENCY_LIBS = @MONO_DEPENDENCY_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH = @PATH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+RUNTIME = @RUNTIME@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAO_DEPENDENCIES_CFLAGS = @TAO_DEPENDENCIES_CFLAGS@
+TAO_DEPENDENCIES_LIBS = @TAO_DEPENDENCIES_LIBS@
+VERSION = @VERSION@
+WINBUILD_FALSE = @WINBUILD_FALSE@
+WINBUILD_TRUE = @WINBUILD_TRUE@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+EXAMPLE_NAME = MdlLoader
+SOURCE_FILES = \
+       $(EXAMPLE_NAME).cs \
+       Engine.cs \
+       GladeExample.cs
+
+CLEANFILES = \
+       $(EXAMPLE_NAME).exe \
+       $(EXAMPLE_NAME).exe.mdb \
+       $(EXAMPLE_NAME).pidb
+
+EXTRA_DIST = \
+       $(SOURCE_FILES)
+
+MCS_ARGS = \
+       -debug \
+       -lib:@top_builddir@/gtkglarea \
+       -r:gtkglarea-sharp.dll \
+       -pkg:gtk-sharp-2.0 \
+       -pkg:glade-sharp-2.0 \
+       -lib:$(srcdir)/../util \
+       -r:gtkglarea-sharp-util.dll \
+       -resource:$(srcdir)/../resources/glwidget.glade
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  
$(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  
examples/MdlLoader/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  examples/MdlLoader/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
$(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
$(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+           $(top_srcdir)/*) file=`echo "$$file" | sed 
"s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkdir_p) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am
+
+
+all: \
+       $(EXAMPLE_NAME).exe
+
+run: MdlLoader.exe
+       MONO_PATH="$(top_srcdir)/examples/util" \
+       mono $(EXAMPLE_NAME).exe
+
+$(EXAMPLE_NAME).exe: $(SOURCE_FILES)
+       mcs \
+               $(MCS_ARGS) \
+               $(SOURCE_FILES) \
+               -out:$(EXAMPLE_NAME).exe
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.cs
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.cs       2006-06-18 
19:05:51 UTC (rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.cs       2006-06-18 
22:57:00 UTC (rev 61828)
@@ -0,0 +1,109 @@
+// created on 11/26/2005 at 3:33 PM
+namespace Mdl {
+       enum synctype_t {
+               ST_SYNC = 0,
+               ST_RAND
+       };
+       
+       enum aliasframetype_t {
+               ALIAS_SINGLE = 0,
+               ALIAS_GROUP
+       };
+       
+       enum aliasskintype_t {
+               ALIAS_SKIN_SINGLE = 0,
+               ALIAS_SKIN_GROUP
+       };
+       
+       
+       
+       struct mdl_t {
+               int         ident;
+        int         version;
+        float[]     scale;
+        float[]     scale_origin;
+        float       boundingradius;
+        float[]     eyeposition;
+        int         num_texgroups;
+        int         texwidth;
+        int         texheight;
+        int         numverts;
+        int         numtris;
+        int         numframes;
+        synctype_t  synctype;
+        int         flags;
+        float       size;
+       };
+       
+       struct stvert_t {
+        int         onseam;
+        int         s;
+        int         t;
+       };
+
+       struct dtriangle_t {
+        int         facesfront;
+        int[]       vertindex;
+       };
+       
+       struct trivertx_t {
+        short[]                v;
+        short       lightnormalindex;
+       };
+
+       struct daliasframe_t {
+        trivertx_t  bboxmin;                            // lightnormal isn't 
used
+        trivertx_t  bboxmax;                            // lightnormal isn't 
used
+        char[]      name;                           // frame name from grabbing
+       };
+       
+       struct daliasgroup_t {
+        int         numposes;
+        trivertx_t  bboxmin;                            // lightnormal isn't 
used
+        trivertx_t  bboxmax;                            // lightnormal isn't 
used
+       };
+       
+       struct daliasframetype_t {
+        aliasframetype_t type;
+       };
+
+       struct tex_struct {
+               int[] pixel;  //Pixel data
+       };
+
+       struct texgroup_struct {
+               aliasskintype_t type;
+
+               long                    numtextures; // number of pictures in 
group
+               float[]                 interval;   // intervals for each 
picture
+               tex_struct[]    texture;    // texture data
+       };
+
+       struct pose_struct {
+               string       name;
+               trivertx_t[] vertex;
+       };
+
+       struct frame_struct {
+               aliasframetype_t  type;
+               int               numposes;
+               float[]           interval;
+               pose_struct[]     pose;
+       };
+
+       struct mdl_struct {
+               mdl_t             header;
+
+               texgroup_struct[] texgroup;
+               stvert_t[]        stvert_data;
+               dtriangle_t[]     triangle_data;
+               frame_struct[]    frame;
+       };
+
+       class MdlLoader {
+               const int DT_FACES_FRONT = 0x0010;
+               
+               
+               
+       }
+}
\ No newline at end of file

Added: trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.mdp
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.mdp      2006-06-18 
19:05:51 UTC (rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/MdlLoader.mdp      2006-06-18 
22:57:00 UTC (rev 61828)
@@ -0,0 +1,44 @@
+<Project name="MdlLoader" fileversion="2.0" language="C#" 
clr-version="Net_1_1" ctype="DotNetProject">
+  <Configurations active="Debug">
+    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+      <Output directory="./bin/Debug" assembly="MdlLoader" />
+      <Build debugmode="True" target="Exe" />
+      <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" 
clr-version="Net_1_1" />
+      <CodeGeneration compiler="Csc" warninglevel="4" optimize="True" 
unsafecodeallowed="False" generateoverflowchecks="True" 
generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+    <Configuration name="Release" ctype="DotNetProjectConfiguration">
+      <Output directory="./bin/Release" assembly="MdlLoader" />
+      <Build debugmode="False" target="Exe" />
+      <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" 
clr-version="Net_1_1" />
+      <CodeGeneration compiler="Csc" warninglevel="4" optimize="True" 
unsafecodeallowed="False" generateoverflowchecks="True" 
generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+  </Configurations>
+  <DeploymentInformation strategy="File">
+    <excludeFiles />
+  </DeploymentInformation>
+  <Contents>
+    <File name="./gtk-gui/gui.stetic" subtype="Code" 
buildaction="EmbedAsResource" />
+    <File name="./gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
+    <File name="./gtk-gui/objects.xml" subtype="Code" 
buildaction="EmbedAsResource" />
+    <File name="./MdlLoader.cs" subtype="Code" buildaction="Compile" />
+    <File name="./Engine.cs" subtype="Code" buildaction="Compile" />
+    <File name="./GladeExample.cs" subtype="Code" buildaction="Compile" />
+  </Contents>
+  <References>
+    <ProjectReference type="Gac" localcopy="True" refto="System, 
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+    <ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="gdk-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="glib-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="glade-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="pango-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="Tao.OpenGl, 
Version=0.0.0.0, Culture=neutral, PublicKeyToken=1ca010269a4501ef" />
+    <ProjectReference type="Gac" localcopy="True" refto="Tao.OpenGl.Glu, 
Version=1.5.0.3, Culture=neutral, PublicKeyToken=3661ea75021374b5" />
+    <ProjectReference type="Gac" localcopy="True" refto="gtkglarea-sharp, 
Version=0.0.3.0, Culture=neutral, PublicKeyToken=7df758c0fb49fe62" />
+  </References>
+  <GtkDesignInfo>
+    <ExportedWidgets>
+      <Widget>MdlLoader.GLWidget</Widget>
+      <Widget>MdlLoader.foo</Widget>
+    </ExportedWidgets>
+  </GtkDesignInfo>
+</Project>
\ No newline at end of file

Added: trunk/gtkglarea-sharp/examples/MdlLoader/README
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/README     2006-06-18 19:05:51 UTC 
(rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/README     2006-06-18 22:57:00 UTC 
(rev 61828)
@@ -0,0 +1,2 @@
+This example will, when finished, read a .mdl data file from disk and
+display it in a GtkGLArea widget.  It's not done yet :)

Added: trunk/gtkglarea-sharp/examples/MdlLoader/mdl.c
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/mdl.c      2006-06-18 19:05:51 UTC 
(rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/mdl.c      2006-06-18 22:57:00 UTC 
(rev 61828)
@@ -0,0 +1,177 @@
+/*
+       Copyright (C) 2001 C.J. Collier ([EMAIL PROTECTED])
+
+       This program is free software; you can redistribute it and/or
+       modify it under the terms of the GNU General Public License
+       as published by the Free Software Foundation; either version 2
+       of the License, or (at your option) any later version.
+
+       This program is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+       See the GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with this program; if not, write to:
+       
+               Free Software Foundation, Inc.
+               59 Temple Place - Suite 330
+               Boston, MA  02111-1307, USA
+
+*/
+
+#include "mdl.h"
+
+extern int errno;
+
+mdl_struct *
+load_mdl(const char *filename)
+{
+  mdl_struct *mdl;
+  FILE *f;
+  int texgroup_num, tex_num, frame_num, pose_num;
+  daliasframetype_t frametype;
+  daliasgroup_t group_data;
+  daliasframe_t frame_data;
+  
+
+  if( (f = fopen(filename, "r")) == NULL){
+    printf("Open failure: %s\n", strerror(errno));
+    return NULL;
+  }
+
+  mdl = malloc(sizeof(mdl_struct));
+
+  //load the header
+  fread( &(mdl->header), sizeof(mdl_t), 1, f);
+
+  //allocate memory for our textures
+  mdl->texgroup = malloc(sizeof(texgroup_struct) * mdl->header.num_texgroups);
+
+  for(texgroup_num = 0; texgroup_num < mdl->header.num_texgroups; 
texgroup_num++){
+
+    //read data into texgroup->type
+    fread( &mdl->texgroup->type, sizeof(aliasskintype_t), 1, f);
+
+    //read texture(s)
+    if(mdl->texgroup->type == ALIAS_SKIN_SINGLE){
+      //if type is ALIAS_SKIN_SINGLE, set number of textures to 1
+      mdl->texgroup[texgroup_num].numtextures = 1;
+      //and interval[0] to 0
+      mdl->texgroup[texgroup_num].interval = malloc(sizeof(float));
+      mdl->texgroup[texgroup_num].interval[0] = 0.0;
+    }else{
+      //read data into tex->numtextures
+      fread( &mdl->texgroup[texgroup_num].numtextures, sizeof(long), 1, f);
+
+      //read interval data
+      mdl->texgroup[texgroup_num].interval =
+       malloc(sizeof(float) * mdl->texgroup[texgroup_num].numtextures);
+      fread( mdl->texgroup[texgroup_num].interval,
+            sizeof(float),
+            mdl->texgroup[texgroup_num].numtextures,
+            f);
+    }    
+    
+    //allocate space for the texture data...
+    mdl->texgroup[texgroup_num].texture =
+      malloc(sizeof(tex_struct) * mdl->texgroup[texgroup_num].numtextures);
+
+    for(tex_num = 0;
+       tex_num < mdl->texgroup[texgroup_num].numtextures;
+       tex_num++
+       ){
+      //allocate space for the pixel data
+      mdl->texgroup[texgroup_num].texture[tex_num].pixel =
+       malloc(sizeof(guint8) *
+              mdl->header.texwidth * mdl->header.texheight);
+
+      //read the pixel data
+      fread(mdl->texgroup[texgroup_num].texture[tex_num].pixel,
+           sizeof(guint8),
+           mdl->header.texwidth * mdl->header.texheight,
+           f
+           );
+    }
+    
+  
+  }
+
+  //read the texture vertices
+  mdl->stvert_data = malloc(sizeof(stvert_t) * mdl->header.numverts);
+  fread( mdl->stvert_data, sizeof(stvert_t), mdl->header.numverts, f);
+
+  //read the triangle indices
+  mdl->triangle_data = malloc(sizeof(dtriangle_t) * mdl->header.numtris);
+  fread( mdl->triangle_data, sizeof(dtriangle_t), mdl->header.numtris, f);
+
+  //allocate enough memory for our frames
+  mdl->frame = malloc(sizeof(frame_struct) * mdl->header.numframes);
+
+  for(frame_num = 0; frame_num < mdl->header.numframes; frame_num++){
+    //read the frame type data
+    fread( &frametype, sizeof(daliasframetype_t), 1, f);
+
+    if((mdl->frame[frame_num].type = frametype.type) == ALIAS_SINGLE){
+      //no group data for single-frame meshes
+      //we want to use the same data structure, though so set numposes
+      mdl->frame[frame_num].numposes = 1;
+
+      //no interval data for single-frame meshes - set to zero
+      mdl->frame[frame_num].interval = malloc(sizeof(float));
+      mdl->frame[frame_num].interval[0] = 0.0;
+    }else{
+      //read group data for multi-frame meshes
+      fread( &group_data, sizeof(daliasgroup_t), 1, f);
+
+      //we only need the number of poses.
+      mdl->frame[frame_num].numposes = group_data.numposes;
+
+      //read interval data
+      mdl->frame[frame_num].interval =
+       malloc(sizeof(float) * mdl->frame[frame_num].numposes);
+      fread(&(mdl->frame[frame_num].interval),
+           sizeof(float),
+           mdl->frame[frame_num].numposes,
+           f);
+    }
+
+    //allocate enough memory for our poses
+    mdl->frame[frame_num].pose = malloc(sizeof(pose_struct) * 
mdl->frame[frame_num].numposes);    
+    
+    //read frame(s)
+    for(pose_num = 0; pose_num < mdl->frame[frame_num].numposes; pose_num++){
+
+      //read frame data from disk
+      fread( &frame_data, sizeof(daliasframe_t), 1, f);
+      //copy the name of the pose to our struct
+      strncpy( &mdl->frame[frame_num].pose[pose_num].name[0], 
&frame_data.name[0], 16);
+      /*
+      printf("(load_mdl.c) phrase: %i, pose: %i, name: %s\n",
+            frame_num,
+            pose_num,
+            mdl->frame[frame_num].pose[pose_num].name);
+      */
+      //read vertex data
+      mdl->frame[frame_num].pose[pose_num].vertex = malloc(sizeof(trivertx_t) 
* mdl->header.numverts);
+      fread( mdl->frame[frame_num].pose[pose_num].vertex, sizeof(trivertx_t), 
mdl->header.numverts, f);
+    }
+  }
+
+  return mdl;
+}
+
+/*
+
+int
+main(int argc, char *argv[])
+{
+  mdl_struct *mdl = load_mdl("/home/cjcollier/tmp/quake/progs/armor.mdl");
+
+  printf("number of frames: %i\n", mdl->header.numframes);
+  printf("Number of poses in first frame: %i\n", mdl->frame[0].numposes);
+  return 1;
+}
+
+*/


Property changes on: trunk/gtkglarea-sharp/examples/MdlLoader/mdl.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gtkglarea-sharp/examples/MdlLoader/mdl.h
===================================================================
--- trunk/gtkglarea-sharp/examples/MdlLoader/mdl.h      2006-06-18 19:05:51 UTC 
(rev 61827)
+++ trunk/gtkglarea-sharp/examples/MdlLoader/mdl.h      2006-06-18 22:57:00 UTC 
(rev 61828)
@@ -0,0 +1,131 @@
+/*
+       Copyright (C) 2001 C.J. Collier ([EMAIL PROTECTED])
+
+       This program is free software; you can redistribute it and/or
+       modify it under the terms of the GNU General Public License
+       as published by the Free Software Foundation; either version 2
+       of the License, or (at your option) any later version.
+
+       This program is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+       See the GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with this program; if not, write to:
+       
+               Free Software Foundation, Inc.
+               59 Temple Place - Suite 330
+               Boston, MA  02111-1307, USA
+
+*/
+
+#ifndef _LOAD_MDL_H_
+#define _LOAD_MDL_H_
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+
+typedef enum { ALIAS_SINGLE = 0, ALIAS_GROUP } aliasframetype_t;
+
+typedef enum { ALIAS_SKIN_SINGLE = 0, ALIAS_SKIN_GROUP } aliasskintype_t;
+
+typedef enum { ST_SYNC = 0, ST_RAND } synctype_t;
+
+typedef unsigned char Uint8;
+
+typedef struct {
+       int         ident;
+       int         version;
+       float       scale[3];
+       float       scale_origin[3];
+       float       boundingradius;
+       float       eyeposition[3];
+       int         num_texgroups;
+       int         texwidth;
+       int         texheight;
+       int         numverts; 
+       int         numtris;
+       int         numframes;
+       synctype_t  synctype;
+       int         flags;
+       float       size;
+} mdl_t;
+
+typedef struct {
+       int         onseam;
+       int         s;
+       int         t;
+} stvert_t;
+
+typedef struct dtriangle_s {
+       int         facesfront;
+       int         vertindex[3];
+} dtriangle_t;
+
+#define DT_FACES_FRONT                         0x0010
+
+// This mirrors trivert_t in trilib.h, is present so Quake knows how to
+// load this data
+
+typedef struct {
+       Uint8       v[3];
+       Uint8       lightnormalindex;
+} trivertx_t;
+
+typedef struct {
+       trivertx_t  bboxmin;                            // lightnormal isn't 
used
+       trivertx_t  bboxmax;                            // lightnormal isn't 
used
+       char        name[16];                           // frame name from 
grabbing
+} daliasframe_t;
+
+typedef struct {
+       int         numposes;
+       trivertx_t  bboxmin;                            // lightnormal isn't 
used
+       trivertx_t  bboxmax;                            // lightnormal isn't 
used
+} daliasgroup_t;
+
+typedef struct {
+       aliasframetype_t type;
+} daliasframetype_t;
+
+typedef struct {
+  guint8 *pixel;  //Pixel data
+} tex_struct;
+
+typedef struct {
+  aliasskintype_t type;
+
+  long        numtextures; // number of pictures in group
+  float       *interval;   // intervals for each picture
+  tex_struct  *texture;    // texture data
+} texgroup_struct;
+
+typedef struct {
+  char       name[16];
+  trivertx_t *vertex;  
+} pose_struct;
+
+typedef struct {
+  aliasframetype_t  type;
+  int               numposes;
+  float             *interval;
+  pose_struct       *pose;
+} frame_struct;
+
+typedef struct {
+  mdl_t             header;
+
+  texgroup_struct   *texgroup;
+  stvert_t          *stvert_data;
+  dtriangle_t       *triangle_data;
+  frame_struct      *frame;
+} mdl_struct;
+
+mdl_struct *
+load_mdl(const char *filename);
+
+#endif /* _LOAD_MDL_H_ */


Property changes on: trunk/gtkglarea-sharp/examples/MdlLoader/mdl.h
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to