From 71c1ae31007891ecfd59236ba8564bc4b5deb1e4 Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 15 Apr 2005 00:53:56 +0000 Subject: Initial import --- wrapper/.cvsignore | 3 +++ wrapper/makefile | 33 +++++++++++++++++++++++++ wrapper/mingwms.cpp | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ wrapper/mingwms.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 171 insertions(+) create mode 100644 wrapper/.cvsignore create mode 100644 wrapper/makefile create mode 100644 wrapper/mingwms.cpp create mode 100644 wrapper/mingwms.h (limited to 'wrapper') diff --git a/wrapper/.cvsignore b/wrapper/.cvsignore new file mode 100644 index 0000000..9af734a --- /dev/null +++ b/wrapper/.cvsignore @@ -0,0 +1,3 @@ +mingwms.lib +mingwms.exp +mingwms.dll \ No newline at end of file diff --git a/wrapper/makefile b/wrapper/makefile new file mode 100644 index 0000000..fb0d73a --- /dev/null +++ b/wrapper/makefile @@ -0,0 +1,33 @@ +# MSPlugins - This makefile makes a DLL that allows MINGW Milkshape plugins +# to be written. +# +# Copyright (C) 2005 Ian Cowburn (ianc@noddybox.demon.co.uk) +# +# 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 the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# ------------------------------------------------------------------------- +# +# $Id: makefile,v 1.1 2005-04-15 00:53:56 ianc Exp $ +# + +!INCLUDE ../make.conf + +mingwms.dll: mingwms.cpp mingwms.h + cl /LD /I$(MILKSHAPE) /DBUILDDLL mingwms.cpp + +clean: + del mingwms.dll mingwms.exp mingwms.lib mingwms.obj + +# END OF FILE diff --git a/wrapper/mingwms.cpp b/wrapper/mingwms.cpp new file mode 100644 index 0000000..e0d9458 --- /dev/null +++ b/wrapper/mingwms.cpp @@ -0,0 +1,70 @@ +// MSPlugins - MINGW Milkshape wrapper +// +// Copyright (C) 2005 Ian Cowburn (ianc@noddybox.demon.co.uk) +// +// 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 the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ------------------------------------------------------------------------- +// +static const char rcs_id[]="$Id$"; + +#include +#include "mingwms.h" + +class MingwPlugin : public cMsPlugIn +{ +public: + MingwPlugin(int type, const char * (*GetName)(), int (*Exectute)(msModel*)) + { + m_type=type; + m_getname=GetName; + m_execute=Exectute; + } + + int GetType() + { + return m_type; + } + + const char *GetTitle() + { + return m_getname(); + } + + int Execute(msModel *p) + { + return m_execute(p); + } + +private: + int m_type; + const char * (*m_getname)(); + int (*m_execute)(msModel*); +}; + +extern "C" +{ + +SPEC void *CreateMINGWPlugin (int tool_type, + const char * (*GetName)(), + int (*Exectute)(msModel*)) +{ + return static_cast(new MingwPlugin(tool_type,GetName,Exectute)); +} + +} + + +// END OF FILE diff --git a/wrapper/mingwms.h b/wrapper/mingwms.h new file mode 100644 index 0000000..1df87d7 --- /dev/null +++ b/wrapper/mingwms.h @@ -0,0 +1,65 @@ +// MSPlugins - MINGW Milkshape wrapper +// +// Copyright (C) 2005 Ian Cowburn (ianc@noddybox.demon.co.uk) +// +// 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 the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ------------------------------------------------------------------------- +// +#ifndef MINGWMS_H + +#define MINGWMS_H "$Id$" + +#ifdef BUILDDLL +#define SPEC __declspec(dllexport) +#else +#define SPEC __declspec(dllimport) +#endif + +// Handy #define for defining your plugin +// +#define PLUGIN_SPEC extern "C" __declspec(dllexport) + +extern "C" +{ + +// These are the tool types +// +#define MS_TYPE_IMPORT 1 +#define MS_TYPE_EXPORT 2 +#define MS_TYPE_TOOL 3 +#define MS_TYPE_EDIT 4 +#define MS_TYPE_VERTEX 5 +#define MS_TYPE_FACE 6 +#define MS_TYPE_ANIMATE 7 + +// Forward definition of the Milkshape model struct. +// +struct msModel; + +// Call this interface to create a Milkshape compatible cMsPlugIn class. +// +SPEC void *CreateMINGWPlugin + (int tool_type, // One of MS_TYPE_xx above. + const char * (*GetName)(), // Returns the plugin's name. + int (*Exectute)(msModel*)); // Runs the tool. + + +} + +#endif // MINGWMS_H + + +// END OF FILE -- cgit v1.2.3