goat3d

changeset 5:fca2ea844875

added rudimentary visual studio project
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 19 Aug 2013 05:18:08 +0300
parents d96c11a7f809
children 0a49bdf1af6f
files exporters/maxgoat/maxgoat.vcxproj exporters/maxgoat/maxgoat.vcxproj.filters exporters/maxgoat/src/maxgoat.cc goat3d.sln goat3d.vcxproj goat3d.vcxproj.filters
diffstat 6 files changed, 672 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/exporters/maxgoat/maxgoat.vcxproj	Mon Aug 19 05:18:08 2013 +0300
     1.3 @@ -0,0 +1,155 @@
     1.4 +<?xml version="1.0" encoding="utf-8"?>
     1.5 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     1.6 +  <ItemGroup Label="ProjectConfigurations">
     1.7 +    <ProjectConfiguration Include="Debug|Win32">
     1.8 +      <Configuration>Debug</Configuration>
     1.9 +      <Platform>Win32</Platform>
    1.10 +    </ProjectConfiguration>
    1.11 +    <ProjectConfiguration Include="Debug|x64">
    1.12 +      <Configuration>Debug</Configuration>
    1.13 +      <Platform>x64</Platform>
    1.14 +    </ProjectConfiguration>
    1.15 +    <ProjectConfiguration Include="Release|Win32">
    1.16 +      <Configuration>Release</Configuration>
    1.17 +      <Platform>Win32</Platform>
    1.18 +    </ProjectConfiguration>
    1.19 +    <ProjectConfiguration Include="Release|x64">
    1.20 +      <Configuration>Release</Configuration>
    1.21 +      <Platform>x64</Platform>
    1.22 +    </ProjectConfiguration>
    1.23 +  </ItemGroup>
    1.24 +  <PropertyGroup Label="Globals">
    1.25 +    <ProjectGuid>{5BDDFFC1-7900-45D2-92F5-525361057554}</ProjectGuid>
    1.26 +    <Keyword>Win32Proj</Keyword>
    1.27 +    <RootNamespace>maxgoat</RootNamespace>
    1.28 +  </PropertyGroup>
    1.29 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    1.30 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    1.31 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
    1.32 +    <UseDebugLibraries>true</UseDebugLibraries>
    1.33 +    <PlatformToolset>v110</PlatformToolset>
    1.34 +    <CharacterSet>Unicode</CharacterSet>
    1.35 +  </PropertyGroup>
    1.36 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    1.37 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
    1.38 +    <UseDebugLibraries>true</UseDebugLibraries>
    1.39 +    <PlatformToolset>v110</PlatformToolset>
    1.40 +    <CharacterSet>Unicode</CharacterSet>
    1.41 +  </PropertyGroup>
    1.42 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    1.43 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
    1.44 +    <UseDebugLibraries>false</UseDebugLibraries>
    1.45 +    <PlatformToolset>v110</PlatformToolset>
    1.46 +    <WholeProgramOptimization>true</WholeProgramOptimization>
    1.47 +    <CharacterSet>Unicode</CharacterSet>
    1.48 +  </PropertyGroup>
    1.49 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    1.50 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
    1.51 +    <UseDebugLibraries>false</UseDebugLibraries>
    1.52 +    <PlatformToolset>v110</PlatformToolset>
    1.53 +    <WholeProgramOptimization>true</WholeProgramOptimization>
    1.54 +    <CharacterSet>Unicode</CharacterSet>
    1.55 +  </PropertyGroup>
    1.56 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    1.57 +  <ImportGroup Label="ExtensionSettings">
    1.58 +  </ImportGroup>
    1.59 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    1.60 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    1.61 +  </ImportGroup>
    1.62 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    1.63 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    1.64 +  </ImportGroup>
    1.65 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    1.66 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    1.67 +  </ImportGroup>
    1.68 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    1.69 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    1.70 +  </ImportGroup>
    1.71 +  <PropertyGroup Label="UserMacros" />
    1.72 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    1.73 +    <LinkIncremental>true</LinkIncremental>
    1.74 +  </PropertyGroup>
    1.75 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    1.76 +    <LinkIncremental>true</LinkIncremental>
    1.77 +  </PropertyGroup>
    1.78 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    1.79 +    <LinkIncremental>false</LinkIncremental>
    1.80 +  </PropertyGroup>
    1.81 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    1.82 +    <LinkIncremental>false</LinkIncremental>
    1.83 +  </PropertyGroup>
    1.84 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    1.85 +    <ClCompile>
    1.86 +      <PrecompiledHeader>
    1.87 +      </PrecompiledHeader>
    1.88 +      <WarningLevel>Level3</WarningLevel>
    1.89 +      <Optimization>Disabled</Optimization>
    1.90 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MAXGOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    1.91 +    </ClCompile>
    1.92 +    <Link>
    1.93 +      <SubSystem>Windows</SubSystem>
    1.94 +      <GenerateDebugInformation>true</GenerateDebugInformation>
    1.95 +    </Link>
    1.96 +  </ItemDefinitionGroup>
    1.97 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    1.98 +    <ClCompile>
    1.99 +      <PrecompiledHeader>
   1.100 +      </PrecompiledHeader>
   1.101 +      <WarningLevel>Level3</WarningLevel>
   1.102 +      <Optimization>Disabled</Optimization>
   1.103 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MAXGOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.104 +      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
   1.105 +    </ClCompile>
   1.106 +    <Link>
   1.107 +      <SubSystem>Windows</SubSystem>
   1.108 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   1.109 +    </Link>
   1.110 +    <PostBuildEvent>
   1.111 +      <Command>copy /Y "$(TargetPath)" "$(ADSK_3DSMAX_x64_2014)plugins\$(ProjectName).dle"</Command>
   1.112 +    </PostBuildEvent>
   1.113 +  </ItemDefinitionGroup>
   1.114 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   1.115 +    <ClCompile>
   1.116 +      <WarningLevel>Level3</WarningLevel>
   1.117 +      <PrecompiledHeader>
   1.118 +      </PrecompiledHeader>
   1.119 +      <Optimization>MaxSpeed</Optimization>
   1.120 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   1.121 +      <IntrinsicFunctions>true</IntrinsicFunctions>
   1.122 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MAXGOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.123 +    </ClCompile>
   1.124 +    <Link>
   1.125 +      <SubSystem>Windows</SubSystem>
   1.126 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   1.127 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   1.128 +      <OptimizeReferences>true</OptimizeReferences>
   1.129 +    </Link>
   1.130 +  </ItemDefinitionGroup>
   1.131 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   1.132 +    <ClCompile>
   1.133 +      <WarningLevel>Level3</WarningLevel>
   1.134 +      <PrecompiledHeader>
   1.135 +      </PrecompiledHeader>
   1.136 +      <Optimization>MaxSpeed</Optimization>
   1.137 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   1.138 +      <IntrinsicFunctions>true</IntrinsicFunctions>
   1.139 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MAXGOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.140 +      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
   1.141 +    </ClCompile>
   1.142 +    <Link>
   1.143 +      <SubSystem>Windows</SubSystem>
   1.144 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   1.145 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   1.146 +      <OptimizeReferences>true</OptimizeReferences>
   1.147 +    </Link>
   1.148 +    <PostBuildEvent>
   1.149 +      <Command>copy /Y "$(TargetPath)" "$(ADSK_3DSMAX_x64_2014)plugins\$(ProjectName).dle"</Command>
   1.150 +    </PostBuildEvent>
   1.151 +  </ItemDefinitionGroup>
   1.152 +  <ItemGroup>
   1.153 +    <ClCompile Include="src\maxgoat.cc" />
   1.154 +  </ItemGroup>
   1.155 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   1.156 +  <ImportGroup Label="ExtensionTargets">
   1.157 +  </ImportGroup>
   1.158 +</Project>
   1.159 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/exporters/maxgoat/maxgoat.vcxproj.filters	Mon Aug 19 05:18:08 2013 +0300
     2.3 @@ -0,0 +1,14 @@
     2.4 +<?xml version="1.0" encoding="utf-8"?>
     2.5 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     2.6 +  <ItemGroup>
     2.7 +    <Filter Include="src">
     2.8 +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
     2.9 +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
    2.10 +    </Filter>
    2.11 +  </ItemGroup>
    2.12 +  <ItemGroup>
    2.13 +    <ClCompile Include="src\maxgoat.cc">
    2.14 +      <Filter>src</Filter>
    2.15 +    </ClCompile>
    2.16 +  </ItemGroup>
    2.17 +</Project>
    2.18 \ No newline at end of file
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/exporters/maxgoat/src/maxgoat.cc	Mon Aug 19 05:18:08 2013 +0300
     3.3 @@ -0,0 +1,253 @@
     3.4 +#include <stdio.h>
     3.5 +#include <string.h>
     3.6 +#include <errno.h>
     3.7 +#include <windows.h>
     3.8 +#include <shlobj.h>
     3.9 +#include "max.h"
    3.10 +#include "impexp.h"		// SceneExport
    3.11 +#include "iparamb2.h"	// ClassDesc2
    3.12 +#include "plugapi.h"
    3.13 +#include "IGame.h"
    3.14 +#include "IGameExport.h"
    3.15 +#include "IConversionmanager.h"
    3.16 +
    3.17 +
    3.18 +#pragma comment (lib, "core.lib")
    3.19 +#pragma comment (lib, "geom.lib")
    3.20 +#pragma comment (lib, "gfx.lib")
    3.21 +#pragma comment (lib, "mesh.lib")
    3.22 +#pragma comment (lib, "maxutil.lib")
    3.23 +#pragma comment (lib, "maxscrpt.lib")
    3.24 +#pragma comment (lib, "paramblk2.lib")
    3.25 +#pragma comment (lib, "msxml2.lib")
    3.26 +#pragma comment (lib, "igame.lib")
    3.27 +#pragma comment (lib, "comctl32.lib")
    3.28 +
    3.29 +
    3.30 +static FILE *logfile;
    3.31 +static HINSTANCE hinst;
    3.32 +
    3.33 +class GoatExporter : public SceneExport {
    3.34 +public:
    3.35 +	IGameScene *igame;
    3.36 +
    3.37 +	int ExtCount();
    3.38 +	const TCHAR *Ext(int n);
    3.39 +	const TCHAR *LongDesc();
    3.40 +	const TCHAR *ShortDesc();
    3.41 +	const TCHAR *AuthorName();
    3.42 +	const TCHAR *CopyrightMessage();
    3.43 +	const TCHAR *OtherMessage1();
    3.44 +	const TCHAR *OtherMessage2();
    3.45 +	unsigned int Version();
    3.46 +	void ShowAbout(HWND win);
    3.47 +
    3.48 +	int DoExport(const MCHAR *name, ExpInterface *eiface, Interface *iface, BOOL silent = FALSE, DWORD opt = 0);
    3.49 +
    3.50 +	bool export_materials(FILE *fp);
    3.51 +};
    3.52 +
    3.53 +
    3.54 +int GoatExporter::ExtCount()
    3.55 +{
    3.56 +	return 1;
    3.57 +}
    3.58 +
    3.59 +const TCHAR *GoatExporter::Ext(int n)
    3.60 +{
    3.61 +	return L"txt";
    3.62 +}
    3.63 +
    3.64 +const TCHAR *GoatExporter::LongDesc()
    3.65 +{
    3.66 +	return L"Goat3D scene file";
    3.67 +}
    3.68 +
    3.69 +const TCHAR *GoatExporter::ShortDesc()
    3.70 +{
    3.71 +	return L"Goat3D";
    3.72 +}
    3.73 +
    3.74 +const TCHAR *GoatExporter::AuthorName()
    3.75 +{
    3.76 +	return L"John Tsiombikas";
    3.77 +}
    3.78 +
    3.79 +const TCHAR *GoatExporter::CopyrightMessage()
    3.80 +{
    3.81 +	return L"Copyright 2013 (C) John Tsiombikas - GNU General Public License v3, see COPYING for details.";
    3.82 +}
    3.83 +
    3.84 +const TCHAR *GoatExporter::OtherMessage1()
    3.85 +{
    3.86 +	return L"other1";
    3.87 +}
    3.88 +
    3.89 +const TCHAR *GoatExporter::OtherMessage2()
    3.90 +{
    3.91 +	return L"other2";
    3.92 +}
    3.93 +
    3.94 +unsigned int GoatExporter::Version()
    3.95 +{
    3.96 +	return 10;
    3.97 +}
    3.98 +
    3.99 +void GoatExporter::ShowAbout(HWND win)
   3.100 +{
   3.101 +	MessageBoxA(win, "Goat3D exporter plugin", "About this plugin", 0);
   3.102 +}
   3.103 +
   3.104 +int GoatExporter::DoExport(const MCHAR *name, ExpInterface *eiface, Interface *iface,
   3.105 +		BOOL non_interactive, DWORD opt)
   3.106 +{
   3.107 +	char fname[512];
   3.108 +	wcstombs(fname, name, sizeof fname - 1);
   3.109 +
   3.110 +	FILE *fp = fopen(fname, "wb");
   3.111 +	if(!fp) {
   3.112 +		fprintf(logfile, "failed to open %s for writting: %s", fname, strerror(errno));
   3.113 +		return IMPEXP_FAIL;
   3.114 +	}
   3.115 +
   3.116 +	if(!(igame = GetIGameInterface())) {
   3.117 +		fprintf(logfile, "failed to get the igame interface\n");
   3.118 +		fclose(fp);
   3.119 +		return IMPEXP_FAIL;
   3.120 +	}
   3.121 +	IGameConversionManager *cm = GetConversionManager();
   3.122 +	cm->SetCoordSystem(IGameConversionManager::IGAME_OGL);
   3.123 +	igame->InitialiseIGame();
   3.124 +	igame->SetStaticFrame(0);
   3.125 +
   3.126 +	export_materials(fp);
   3.127 +
   3.128 +	fclose(fp);
   3.129 +
   3.130 +	return IMPEXP_SUCCESS;
   3.131 +}
   3.132 +
   3.133 +bool GoatExporter::export_materials(FILE *fp)
   3.134 +{
   3.135 +	IGameProperty *prop;
   3.136 +
   3.137 +	int num_mtl = igame->GetRootMaterialCount();
   3.138 +	fprintf(fp, "number of materials: %d\n", num_mtl);
   3.139 +
   3.140 +	for(int i=0; i<num_mtl; i++) {
   3.141 +		IGameMaterial *mtl = igame->GetRootMaterial(i);
   3.142 +		if(mtl) {
   3.143 +			Point3 diffuse(1, 1, 1);
   3.144 +			Point3 specular(0, 0, 0);
   3.145 +			float shin = 1.0, sstr = 1.0;
   3.146 +			char name[512] = "unnamed";
   3.147 +
   3.148 +			const MCHAR *wname = mtl->GetMaterialName();
   3.149 +			if(wname) {
   3.150 +				wcstombs(name, wname, sizeof name - 1);
   3.151 +			}
   3.152 +
   3.153 +			if((prop = mtl->GetDiffuseData())) {
   3.154 +				prop->GetPropertyValue(diffuse);
   3.155 +			}
   3.156 +			if((prop = mtl->GetSpecularData())) {
   3.157 +				prop->GetPropertyValue(specular);
   3.158 +			}
   3.159 +			if((prop = mtl->GetSpecularLevelData())) {
   3.160 +				prop->GetPropertyValue(sstr);
   3.161 +			}
   3.162 +			if((prop = mtl->GetGlossinessData())) {
   3.163 +				prop->GetPropertyValue(shin);
   3.164 +			}
   3.165 +
   3.166 +			fprintf(fp, "Material %d (%s):\n", i, name);
   3.167 +			fprintf(fp, "  diffuse: %f %f %f\n", diffuse[0], diffuse[1], diffuse[2]);
   3.168 +			fprintf(fp, "  specular: %f %f %f\n", specular[0] * sstr, specular[1] * sstr, specular[2] * sstr);
   3.169 +			fprintf(fp, "  shininess: %f\n", shin * 100.0);
   3.170 +
   3.171 +			for(int j=0; j<mtl->GetNumberOfTextureMaps(); j++) {
   3.172 +				IGameTextureMap *tex = mtl->GetIGameTextureMap(j);
   3.173 +				const MCHAR *wfname = tex->GetBitmapFileName();
   3.174 +				if(wfname) {
   3.175 +					char fname[512];
   3.176 +					wcstombs(fname, wfname, sizeof fname - 1);
   3.177 +					fprintf(fp, "  texture%d: %s\n", j, fname);
   3.178 +				}
   3.179 +			}
   3.180 +		}
   3.181 +	}
   3.182 +
   3.183 +	return true;
   3.184 +}
   3.185 +
   3.186 +// ------------------------------------------
   3.187 +
   3.188 +class GoatClassDesc : public ClassDesc2 {
   3.189 +public:
   3.190 +	int IsPublic() { return TRUE; }
   3.191 +	void *Create(BOOL loading = FALSE) { return new GoatExporter; }
   3.192 +	const TCHAR *ClassName() { return L"GoatExporter"; }
   3.193 +	SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
   3.194 +	Class_ID ClassID() { return Class_ID(0x77050f0d, 0x7d4c5ab5); }
   3.195 +	const TCHAR *Category() { return L"Mutant Stargoat"; }
   3.196 +
   3.197 +	const TCHAR *InternalName() { return L"GoatExporter"; }
   3.198 +	HINSTANCE HInstance() { return hinst; }
   3.199 +};
   3.200 +
   3.201 +static GoatClassDesc class_desc;
   3.202 +
   3.203 +BOOL WINAPI DllMain(HINSTANCE inst_handle, ULONG reason, void *reserved)
   3.204 +{
   3.205 +	if(reason == DLL_PROCESS_ATTACH) {
   3.206 +		hinst = inst_handle;
   3.207 +		DisableThreadLibraryCalls(hinst);
   3.208 +	}
   3.209 +	return TRUE;
   3.210 +}
   3.211 +
   3.212 +extern "C" {
   3.213 +
   3.214 +__declspec(dllexport) const TCHAR *LibDescription()
   3.215 +{
   3.216 +	return L"test exporter";
   3.217 +}
   3.218 +
   3.219 +__declspec(dllexport) int LibNumberClasses()
   3.220 +{
   3.221 +	return 1;
   3.222 +}
   3.223 +
   3.224 +__declspec(dllexport) ClassDesc *LibClassDesc(int i)
   3.225 +{
   3.226 +	return i == 0 ? &class_desc : 0;
   3.227 +}
   3.228 +
   3.229 +__declspec(dllexport) ULONG LibVersion()
   3.230 +{
   3.231 +	return Get3DSMAXVersion();
   3.232 +}
   3.233 +
   3.234 +__declspec(dllexport) int LibInitialize()
   3.235 +{
   3.236 +	static char path[1024];
   3.237 +
   3.238 +	SHGetFolderPathA(0, CSIDL_PERSONAL, 0, 0, path);
   3.239 +	strcat(path, "/testexp.log");
   3.240 +
   3.241 +	if((logfile = fopen(path, "w"))) {
   3.242 +		setvbuf(logfile, 0, _IONBF, 0);
   3.243 +	}
   3.244 +	return TRUE;
   3.245 +}
   3.246 +
   3.247 +__declspec(dllexport) int LibShutdown()
   3.248 +{
   3.249 +	if(logfile) {
   3.250 +		fclose(logfile);
   3.251 +		logfile = 0;
   3.252 +	}
   3.253 +	return TRUE;
   3.254 +}
   3.255 +
   3.256 +}	// extern "C"
   3.257 \ No newline at end of file
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/goat3d.sln	Mon Aug 19 05:18:08 2013 +0300
     4.3 @@ -0,0 +1,36 @@
     4.4 +
     4.5 +Microsoft Visual Studio Solution File, Format Version 12.00
     4.6 +# Visual Studio 2012
     4.7 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "goat3d", "goat3d.vcxproj", "{86BF319B-9222-4805-918D-DC1B9F77BCEF}"
     4.8 +EndProject
     4.9 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maxgoat", "exporters\maxgoat\maxgoat.vcxproj", "{5BDDFFC1-7900-45D2-92F5-525361057554}"
    4.10 +EndProject
    4.11 +Global
    4.12 +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
    4.13 +		Debug|Win32 = Debug|Win32
    4.14 +		Debug|x64 = Debug|x64
    4.15 +		Release|Win32 = Release|Win32
    4.16 +		Release|x64 = Release|x64
    4.17 +	EndGlobalSection
    4.18 +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
    4.19 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.ActiveCfg = Debug|Win32
    4.20 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.Build.0 = Debug|Win32
    4.21 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.ActiveCfg = Debug|x64
    4.22 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.Build.0 = Debug|x64
    4.23 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.ActiveCfg = Release|Win32
    4.24 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.Build.0 = Release|Win32
    4.25 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.ActiveCfg = Release|x64
    4.26 +		{86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.Build.0 = Release|x64
    4.27 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.ActiveCfg = Debug|Win32
    4.28 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.Build.0 = Debug|Win32
    4.29 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.ActiveCfg = Debug|x64
    4.30 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.Build.0 = Debug|x64
    4.31 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.ActiveCfg = Release|Win32
    4.32 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.Build.0 = Release|Win32
    4.33 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.ActiveCfg = Release|x64
    4.34 +		{5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.Build.0 = Release|x64
    4.35 +	EndGlobalSection
    4.36 +	GlobalSection(SolutionProperties) = preSolution
    4.37 +		HideSolutionNode = FALSE
    4.38 +	EndGlobalSection
    4.39 +EndGlobal
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/goat3d.vcxproj	Mon Aug 19 05:18:08 2013 +0300
     5.3 @@ -0,0 +1,156 @@
     5.4 +<?xml version="1.0" encoding="utf-8"?>
     5.5 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     5.6 +  <ItemGroup Label="ProjectConfigurations">
     5.7 +    <ProjectConfiguration Include="Debug|Win32">
     5.8 +      <Configuration>Debug</Configuration>
     5.9 +      <Platform>Win32</Platform>
    5.10 +    </ProjectConfiguration>
    5.11 +    <ProjectConfiguration Include="Debug|x64">
    5.12 +      <Configuration>Debug</Configuration>
    5.13 +      <Platform>x64</Platform>
    5.14 +    </ProjectConfiguration>
    5.15 +    <ProjectConfiguration Include="Release|Win32">
    5.16 +      <Configuration>Release</Configuration>
    5.17 +      <Platform>Win32</Platform>
    5.18 +    </ProjectConfiguration>
    5.19 +    <ProjectConfiguration Include="Release|x64">
    5.20 +      <Configuration>Release</Configuration>
    5.21 +      <Platform>x64</Platform>
    5.22 +    </ProjectConfiguration>
    5.23 +  </ItemGroup>
    5.24 +  <ItemGroup>
    5.25 +    <ClInclude Include="src\camera.h" />
    5.26 +    <ClInclude Include="src\chunk.h" />
    5.27 +    <ClInclude Include="src\goat3d.h" />
    5.28 +    <ClInclude Include="src\goat3d_impl.h" />
    5.29 +    <ClInclude Include="src\light.h" />
    5.30 +    <ClInclude Include="src\material.h" />
    5.31 +    <ClInclude Include="src\mesh.h" />
    5.32 +    <ClInclude Include="src\object.h" />
    5.33 +    <ClInclude Include="src\opengl.h" />
    5.34 +    <ClInclude Include="src\xform_node.h" />
    5.35 +  </ItemGroup>
    5.36 +  <ItemGroup>
    5.37 +    <ClCompile Include="src\goat3d.cc" />
    5.38 +    <ClCompile Include="src\mesh.cc" />
    5.39 +    <ClCompile Include="src\object.cc" />
    5.40 +    <ClCompile Include="src\opengl.cc" />
    5.41 +    <ClCompile Include="src\xform_node.cc" />
    5.42 +  </ItemGroup>
    5.43 +  <PropertyGroup Label="Globals">
    5.44 +    <ProjectGuid>{86BF319B-9222-4805-918D-DC1B9F77BCEF}</ProjectGuid>
    5.45 +    <Keyword>Win32Proj</Keyword>
    5.46 +    <RootNamespace>goat3d</RootNamespace>
    5.47 +  </PropertyGroup>
    5.48 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    5.49 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    5.50 +    <ConfigurationType>StaticLibrary</ConfigurationType>
    5.51 +    <UseDebugLibraries>true</UseDebugLibraries>
    5.52 +    <PlatformToolset>v110</PlatformToolset>
    5.53 +    <CharacterSet>Unicode</CharacterSet>
    5.54 +  </PropertyGroup>
    5.55 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    5.56 +    <ConfigurationType>StaticLibrary</ConfigurationType>
    5.57 +    <UseDebugLibraries>true</UseDebugLibraries>
    5.58 +    <PlatformToolset>v110</PlatformToolset>
    5.59 +    <CharacterSet>Unicode</CharacterSet>
    5.60 +  </PropertyGroup>
    5.61 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    5.62 +    <ConfigurationType>StaticLibrary</ConfigurationType>
    5.63 +    <UseDebugLibraries>false</UseDebugLibraries>
    5.64 +    <PlatformToolset>v110</PlatformToolset>
    5.65 +    <WholeProgramOptimization>true</WholeProgramOptimization>
    5.66 +    <CharacterSet>Unicode</CharacterSet>
    5.67 +  </PropertyGroup>
    5.68 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    5.69 +    <ConfigurationType>StaticLibrary</ConfigurationType>
    5.70 +    <UseDebugLibraries>false</UseDebugLibraries>
    5.71 +    <PlatformToolset>v110</PlatformToolset>
    5.72 +    <WholeProgramOptimization>true</WholeProgramOptimization>
    5.73 +    <CharacterSet>Unicode</CharacterSet>
    5.74 +  </PropertyGroup>
    5.75 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    5.76 +  <ImportGroup Label="ExtensionSettings">
    5.77 +  </ImportGroup>
    5.78 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    5.79 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.80 +  </ImportGroup>
    5.81 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    5.82 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.83 +  </ImportGroup>
    5.84 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    5.85 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.86 +  </ImportGroup>
    5.87 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    5.88 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.89 +  </ImportGroup>
    5.90 +  <PropertyGroup Label="UserMacros" />
    5.91 +  <PropertyGroup />
    5.92 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    5.93 +    <ClCompile>
    5.94 +      <PrecompiledHeader>
    5.95 +      </PrecompiledHeader>
    5.96 +      <WarningLevel>Level3</WarningLevel>
    5.97 +      <Optimization>Disabled</Optimization>
    5.98 +      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    5.99 +      <DisableSpecificWarnings>4244</DisableSpecificWarnings>
   5.100 +    </ClCompile>
   5.101 +    <Link>
   5.102 +      <SubSystem>Windows</SubSystem>
   5.103 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.104 +    </Link>
   5.105 +  </ItemDefinitionGroup>
   5.106 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   5.107 +    <ClCompile>
   5.108 +      <PrecompiledHeader>
   5.109 +      </PrecompiledHeader>
   5.110 +      <WarningLevel>Level3</WarningLevel>
   5.111 +      <Optimization>Disabled</Optimization>
   5.112 +      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.113 +      <DisableSpecificWarnings>4244</DisableSpecificWarnings>
   5.114 +    </ClCompile>
   5.115 +    <Link>
   5.116 +      <SubSystem>Windows</SubSystem>
   5.117 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.118 +    </Link>
   5.119 +  </ItemDefinitionGroup>
   5.120 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   5.121 +    <ClCompile>
   5.122 +      <WarningLevel>Level3</WarningLevel>
   5.123 +      <PrecompiledHeader>
   5.124 +      </PrecompiledHeader>
   5.125 +      <Optimization>MaxSpeed</Optimization>
   5.126 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.127 +      <IntrinsicFunctions>true</IntrinsicFunctions>
   5.128 +      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.129 +      <DisableSpecificWarnings>4244</DisableSpecificWarnings>
   5.130 +    </ClCompile>
   5.131 +    <Link>
   5.132 +      <SubSystem>Windows</SubSystem>
   5.133 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.134 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.135 +      <OptimizeReferences>true</OptimizeReferences>
   5.136 +    </Link>
   5.137 +  </ItemDefinitionGroup>
   5.138 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   5.139 +    <ClCompile>
   5.140 +      <WarningLevel>Level3</WarningLevel>
   5.141 +      <PrecompiledHeader>
   5.142 +      </PrecompiledHeader>
   5.143 +      <Optimization>MaxSpeed</Optimization>
   5.144 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.145 +      <IntrinsicFunctions>true</IntrinsicFunctions>
   5.146 +      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.147 +      <DisableSpecificWarnings>4244</DisableSpecificWarnings>
   5.148 +    </ClCompile>
   5.149 +    <Link>
   5.150 +      <SubSystem>Windows</SubSystem>
   5.151 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.152 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.153 +      <OptimizeReferences>true</OptimizeReferences>
   5.154 +    </Link>
   5.155 +  </ItemDefinitionGroup>
   5.156 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   5.157 +  <ImportGroup Label="ExtensionTargets">
   5.158 +  </ImportGroup>
   5.159 +</Project>
   5.160 \ No newline at end of file
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/goat3d.vcxproj.filters	Mon Aug 19 05:18:08 2013 +0300
     6.3 @@ -0,0 +1,58 @@
     6.4 +<?xml version="1.0" encoding="utf-8"?>
     6.5 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     6.6 +  <ItemGroup>
     6.7 +    <Filter Include="src">
     6.8 +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
     6.9 +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
    6.10 +    </Filter>
    6.11 +  </ItemGroup>
    6.12 +  <ItemGroup>
    6.13 +    <ClInclude Include="src\camera.h">
    6.14 +      <Filter>src</Filter>
    6.15 +    </ClInclude>
    6.16 +    <ClInclude Include="src\chunk.h">
    6.17 +      <Filter>src</Filter>
    6.18 +    </ClInclude>
    6.19 +    <ClInclude Include="src\goat3d.h">
    6.20 +      <Filter>src</Filter>
    6.21 +    </ClInclude>
    6.22 +    <ClInclude Include="src\goat3d_impl.h">
    6.23 +      <Filter>src</Filter>
    6.24 +    </ClInclude>
    6.25 +    <ClInclude Include="src\light.h">
    6.26 +      <Filter>src</Filter>
    6.27 +    </ClInclude>
    6.28 +    <ClInclude Include="src\material.h">
    6.29 +      <Filter>src</Filter>
    6.30 +    </ClInclude>
    6.31 +    <ClInclude Include="src\mesh.h">
    6.32 +      <Filter>src</Filter>
    6.33 +    </ClInclude>
    6.34 +    <ClInclude Include="src\object.h">
    6.35 +      <Filter>src</Filter>
    6.36 +    </ClInclude>
    6.37 +    <ClInclude Include="src\opengl.h">
    6.38 +      <Filter>src</Filter>
    6.39 +    </ClInclude>
    6.40 +    <ClInclude Include="src\xform_node.h">
    6.41 +      <Filter>src</Filter>
    6.42 +    </ClInclude>
    6.43 +  </ItemGroup>
    6.44 +  <ItemGroup>
    6.45 +    <ClCompile Include="src\goat3d.cc">
    6.46 +      <Filter>src</Filter>
    6.47 +    </ClCompile>
    6.48 +    <ClCompile Include="src\mesh.cc">
    6.49 +      <Filter>src</Filter>
    6.50 +    </ClCompile>
    6.51 +    <ClCompile Include="src\object.cc">
    6.52 +      <Filter>src</Filter>
    6.53 +    </ClCompile>
    6.54 +    <ClCompile Include="src\opengl.cc">
    6.55 +      <Filter>src</Filter>
    6.56 +    </ClCompile>
    6.57 +    <ClCompile Include="src\xform_node.cc">
    6.58 +      <Filter>src</Filter>
    6.59 +    </ClCompile>
    6.60 +  </ItemGroup>
    6.61 +</Project>
    6.62 \ No newline at end of file