aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/examples/09.Meshviewer
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/irrlicht-1.8/examples/09.Meshviewer')
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/9.Meshviewer.rc168
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Makefile76
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/MeshViewer.dev118
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer.vcproj326
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc10.vcxproj460
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc11.vcxproj468
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc8.vcproj462
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc9.vcproj460
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/main.cpp2084
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/resource.h32
-rw-r--r--libraries/irrlicht-1.8/examples/09.Meshviewer/tutorial.html364
11 files changed, 2509 insertions, 2509 deletions
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/9.Meshviewer.rc b/libraries/irrlicht-1.8/examples/09.Meshviewer/9.Meshviewer.rc
index 3208583..d1e6126 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/9.Meshviewer.rc
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/9.Meshviewer.rc
@@ -1,84 +1,84 @@
1// Microsoft Visual C++ generated resource script. 1// Microsoft Visual C++ generated resource script.
2// 2//
3#include "resource.h" 3#include "resource.h"
4 4
5#define APSTUDIO_READONLY_SYMBOLS 5#define APSTUDIO_READONLY_SYMBOLS
6///////////////////////////////////////////////////////////////////////////// 6/////////////////////////////////////////////////////////////////////////////
7// 7//
8// Generated from the TEXTINCLUDE 2 resource. 8// Generated from the TEXTINCLUDE 2 resource.
9// 9//
10#include "afxres.h" 10#include "afxres.h"
11 11
12///////////////////////////////////////////////////////////////////////////// 12/////////////////////////////////////////////////////////////////////////////
13#undef APSTUDIO_READONLY_SYMBOLS 13#undef APSTUDIO_READONLY_SYMBOLS
14 14
15///////////////////////////////////////////////////////////////////////////// 15/////////////////////////////////////////////////////////////////////////////
16// English (U.S.) resources 16// English (U.S.) resources
17 17
18#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 18#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
19#ifdef _WIN32 19#ifdef _WIN32
20LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 20LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
21#pragma code_page(1252) 21#pragma code_page(1252)
22#endif //_WIN32 22#endif //_WIN32
23 23
24#ifdef APSTUDIO_INVOKED 24#ifdef APSTUDIO_INVOKED
25///////////////////////////////////////////////////////////////////////////// 25/////////////////////////////////////////////////////////////////////////////
26// 26//
27// TEXTINCLUDE 27// TEXTINCLUDE
28// 28//
29 29
301 TEXTINCLUDE 301 TEXTINCLUDE
31BEGIN 31BEGIN
32 "resource.h\0" 32 "resource.h\0"
33END 33END
34 34
352 TEXTINCLUDE 352 TEXTINCLUDE
36BEGIN 36BEGIN
37 "#include ""afxres.h""\r\n" 37 "#include ""afxres.h""\r\n"
38 "\0" 38 "\0"
39END 39END
40 40
413 TEXTINCLUDE 413 TEXTINCLUDE
42BEGIN 42BEGIN
43 "\r\n" 43 "\r\n"
44 "\0" 44 "\0"
45END 45END
46 46
47#endif // APSTUDIO_INVOKED 47#endif // APSTUDIO_INVOKED
48 48
49#endif // English (U.S.) resources 49#endif // English (U.S.) resources
50///////////////////////////////////////////////////////////////////////////// 50/////////////////////////////////////////////////////////////////////////////
51 51
52 52
53///////////////////////////////////////////////////////////////////////////// 53/////////////////////////////////////////////////////////////////////////////
54// German (Austria) resources 54// German (Austria) resources
55 55
56#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEA) 56#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEA)
57#ifdef _WIN32 57#ifdef _WIN32
58LANGUAGE LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN 58LANGUAGE LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN
59#pragma code_page(1252) 59#pragma code_page(1252)
60#endif //_WIN32 60#endif //_WIN32
61 61
62///////////////////////////////////////////////////////////////////////////// 62/////////////////////////////////////////////////////////////////////////////
63// 63//
64// Icon 64// Icon
65// 65//
66 66
67// Icon with lowest ID value placed first to ensure application icon 67// Icon with lowest ID value placed first to ensure application icon
68// remains consistent on all systems. 68// remains consistent on all systems.
69IDI_ICON1 ICON "icon.ico" 69IDI_ICON1 ICON "icon.ico"
70#endif // German (Austria) resources 70#endif // German (Austria) resources
71///////////////////////////////////////////////////////////////////////////// 71/////////////////////////////////////////////////////////////////////////////
72 72
73 73
74 74
75#ifndef APSTUDIO_INVOKED 75#ifndef APSTUDIO_INVOKED
76///////////////////////////////////////////////////////////////////////////// 76/////////////////////////////////////////////////////////////////////////////
77// 77//
78// Generated from the TEXTINCLUDE 3 resource. 78// Generated from the TEXTINCLUDE 3 resource.
79// 79//
80 80
81 81
82///////////////////////////////////////////////////////////////////////////// 82/////////////////////////////////////////////////////////////////////////////
83#endif // not APSTUDIO_INVOKED 83#endif // not APSTUDIO_INVOKED
84 84
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Makefile b/libraries/irrlicht-1.8/examples/09.Meshviewer/Makefile
index 99fe9d0..0d38522 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Makefile
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Makefile
@@ -1,38 +1,38 @@
1# Makefile for Irrlicht Examples 1# Makefile for Irrlicht Examples
2# It's usually sufficient to change just the target name and source file list 2# It's usually sufficient to change just the target name and source file list
3# and be sure that CXX is set to a valid compiler 3# and be sure that CXX is set to a valid compiler
4Target = 09.Meshviewer 4Target = 09.Meshviewer
5Sources = main.cpp 5Sources = main.cpp
6 6
7# general compiler settings 7# general compiler settings
8CPPFLAGS = -I../../include -I/usr/X11R6/include 8CPPFLAGS = -I../../include -I/usr/X11R6/include
9CXXFLAGS = -O3 -ffast-math 9CXXFLAGS = -O3 -ffast-math
10#CXXFLAGS = -g -Wall 10#CXXFLAGS = -g -Wall
11 11
12#default target is Linux 12#default target is Linux
13all: all_linux 13all: all_linux
14 14
15ifeq ($(HOSTTYPE), x86_64) 15ifeq ($(HOSTTYPE), x86_64)
16LIBSELECT=64 16LIBSELECT=64
17endif 17endif
18 18
19# target specific settings 19# target specific settings
20all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXcursor 20all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXcursor
21all_linux clean_linux: SYSTEM=Linux 21all_linux clean_linux: SYSTEM=Linux
22all_win32: LDFLAGS = -L../../lib/Win32-gcc -lIrrlicht -lopengl32 -lm 22all_win32: LDFLAGS = -L../../lib/Win32-gcc -lIrrlicht -lopengl32 -lm
23all_win32 clean_win32: SYSTEM=Win32-gcc 23all_win32 clean_win32: SYSTEM=Win32-gcc
24all_win32 clean_win32: SUF=.exe 24all_win32 clean_win32: SUF=.exe
25# name of the binary - only valid for targets which set SYSTEM 25# name of the binary - only valid for targets which set SYSTEM
26DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF) 26DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF)
27 27
28all_linux all_win32: 28all_linux all_win32:
29 $(warning Building...) 29 $(warning Building...)
30 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS) 30 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS)
31 31
32clean: clean_linux clean_win32 32clean: clean_linux clean_win32
33 $(warning Cleaning...) 33 $(warning Cleaning...)
34 34
35clean_linux clean_win32: 35clean_linux clean_win32:
36 @$(RM) $(DESTPATH) 36 @$(RM) $(DESTPATH)
37 37
38.PHONY: all all_win32 clean clean_linux clean_win32 38.PHONY: all all_win32 clean clean_linux clean_win32
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/MeshViewer.dev b/libraries/irrlicht-1.8/examples/09.Meshviewer/MeshViewer.dev
index 47416a1..191859a 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/MeshViewer.dev
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/MeshViewer.dev
@@ -1,59 +1,59 @@
1[Project] 1[Project]
2FileName=example.dev 2FileName=example.dev
3Name=Irrlicht Example 09 Mesh Viewer 3Name=Irrlicht Example 09 Mesh Viewer
4UnitCount=1 4UnitCount=1
5Type=1 5Type=1
6Ver=1 6Ver=1
7ObjFiles= 7ObjFiles=
8Includes=..\..\include 8Includes=..\..\include
9Libs= 9Libs=
10PrivateResource= 10PrivateResource=
11ResourceIncludes= 11ResourceIncludes=
12MakeIncludes= 12MakeIncludes=
13Compiler= 13Compiler=
14CppCompiler= 14CppCompiler=
15Linker=../../lib/Win32-gcc/libIrrlicht.a_@@_ 15Linker=../../lib/Win32-gcc/libIrrlicht.a_@@_
16IsCpp=1 16IsCpp=1
17Icon= 17Icon=
18ExeOutput=../../bin/Win32-gcc 18ExeOutput=../../bin/Win32-gcc
19ObjectOutput=obj 19ObjectOutput=obj
20OverrideOutput=1 20OverrideOutput=1
21OverrideOutputName=09.MeshViewer.exe 21OverrideOutputName=09.MeshViewer.exe
22HostApplication= 22HostApplication=
23Folders= 23Folders=
24CommandLine= 24CommandLine=
25IncludeVersionInfo=0 25IncludeVersionInfo=0
26SupportXPThemes=0 26SupportXPThemes=0
27CompilerSet=0 27CompilerSet=0
28CompilerSettings=0000000000000000000000 28CompilerSettings=0000000000000000000000
29UseCustomMakefile=0 29UseCustomMakefile=0
30CustomMakefile= 30CustomMakefile=
31 31
32[Unit1] 32[Unit1]
33FileName=main.cpp 33FileName=main.cpp
34CompileCpp=1 34CompileCpp=1
35Folder=Projekt1 35Folder=Projekt1
36Compile=1 36Compile=1
37Link=1 37Link=1
38Priority=1000 38Priority=1000
39OverrideBuildCmd=0 39OverrideBuildCmd=0
40BuildCmd= 40BuildCmd=
41 41
42[VersionInfo] 42[VersionInfo]
43Major=0 43Major=0
44Minor=1 44Minor=1
45Release=1 45Release=1
46Build=1 46Build=1
47LanguageID=1033 47LanguageID=1033
48CharsetID=1252 48CharsetID=1252
49CompanyName= 49CompanyName=
50FileVersion= 50FileVersion=
51FileDescription=Irrlicht Engine example compiled using DevCpp and gcc 51FileDescription=Irrlicht Engine example compiled using DevCpp and gcc
52InternalName= 52InternalName=
53LegalCopyright= 53LegalCopyright=
54LegalTrademarks= 54LegalTrademarks=
55OriginalFilename= 55OriginalFilename=
56ProductName= 56ProductName=
57ProductVersion= 57ProductVersion=
58AutoIncBuildNr=0 58AutoIncBuildNr=0
59 59
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer.vcproj b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer.vcproj
index 4077b86..468807a 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer.vcproj
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer.vcproj
@@ -1,163 +1,163 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="7.10" 4 Version="7.10"
5 Name="09.MeshViewer" 5 Name="09.MeshViewer"
6 ProjectGUID="{EF198BF9-7446-443D-961E-E617E1BD3AFB}" 6 ProjectGUID="{EF198BF9-7446-443D-961E-E617E1BD3AFB}"
7 SccProjectName="" 7 SccProjectName=""
8 SccLocalPath=""> 8 SccLocalPath="">
9 <Platforms> 9 <Platforms>
10 <Platform 10 <Platform
11 Name="Win32"/> 11 Name="Win32"/>
12 </Platforms> 12 </Platforms>
13 <Configurations> 13 <Configurations>
14 <Configuration 14 <Configuration
15 Name="Release|Win32" 15 Name="Release|Win32"
16 OutputDirectory=".\Release" 16 OutputDirectory=".\Release"
17 IntermediateDirectory=".\Release" 17 IntermediateDirectory=".\Release"
18 ConfigurationType="1" 18 ConfigurationType="1"
19 UseOfMFC="0" 19 UseOfMFC="0"
20 ATLMinimizesCRunTimeLibraryUsage="FALSE" 20 ATLMinimizesCRunTimeLibraryUsage="FALSE"
21 CharacterSet="2"> 21 CharacterSet="2">
22 <Tool 22 <Tool
23 Name="VCCLCompilerTool" 23 Name="VCCLCompilerTool"
24 Optimization="2" 24 Optimization="2"
25 InlineFunctionExpansion="1" 25 InlineFunctionExpansion="1"
26 AdditionalIncludeDirectories="..\..\include" 26 AdditionalIncludeDirectories="..\..\include"
27 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" 27 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
28 StringPooling="TRUE" 28 StringPooling="TRUE"
29 RuntimeLibrary="4" 29 RuntimeLibrary="4"
30 EnableFunctionLevelLinking="TRUE" 30 EnableFunctionLevelLinking="TRUE"
31 UsePrecompiledHeader="2" 31 UsePrecompiledHeader="2"
32 PrecompiledHeaderFile=".\Release/Meshviewer.pch" 32 PrecompiledHeaderFile=".\Release/Meshviewer.pch"
33 AssemblerListingLocation=".\Release/" 33 AssemblerListingLocation=".\Release/"
34 ObjectFile=".\Release/" 34 ObjectFile=".\Release/"
35 ProgramDataBaseFileName=".\Release/" 35 ProgramDataBaseFileName=".\Release/"
36 WarningLevel="3" 36 WarningLevel="3"
37 SuppressStartupBanner="TRUE" 37 SuppressStartupBanner="TRUE"
38 CompileAs="0"/> 38 CompileAs="0"/>
39 <Tool 39 <Tool
40 Name="VCCustomBuildTool"/> 40 Name="VCCustomBuildTool"/>
41 <Tool 41 <Tool
42 Name="VCLinkerTool" 42 Name="VCLinkerTool"
43 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 43 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
44 LinkIncremental="0" 44 LinkIncremental="0"
45 SuppressStartupBanner="TRUE" 45 SuppressStartupBanner="TRUE"
46 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 46 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
47 ProgramDatabaseFile=".\Release/MeshViewer.pdb" 47 ProgramDatabaseFile=".\Release/MeshViewer.pdb"
48 SubSystem="1" 48 SubSystem="1"
49 TargetMachine="1"/> 49 TargetMachine="1"/>
50 <Tool 50 <Tool
51 Name="VCMIDLTool" 51 Name="VCMIDLTool"
52 TypeLibraryName=".\Release/Meshviewer.tlb" 52 TypeLibraryName=".\Release/Meshviewer.tlb"
53 HeaderFileName=""/> 53 HeaderFileName=""/>
54 <Tool 54 <Tool
55 Name="VCPostBuildEventTool"/> 55 Name="VCPostBuildEventTool"/>
56 <Tool 56 <Tool
57 Name="VCPreBuildEventTool"/> 57 Name="VCPreBuildEventTool"/>
58 <Tool 58 <Tool
59 Name="VCPreLinkEventTool"/> 59 Name="VCPreLinkEventTool"/>
60 <Tool 60 <Tool
61 Name="VCResourceCompilerTool" 61 Name="VCResourceCompilerTool"
62 PreprocessorDefinitions="NDEBUG" 62 PreprocessorDefinitions="NDEBUG"
63 Culture="3079"/> 63 Culture="3079"/>
64 <Tool 64 <Tool
65 Name="VCWebServiceProxyGeneratorTool"/> 65 Name="VCWebServiceProxyGeneratorTool"/>
66 <Tool 66 <Tool
67 Name="VCXMLDataGeneratorTool"/> 67 Name="VCXMLDataGeneratorTool"/>
68 <Tool 68 <Tool
69 Name="VCWebDeploymentTool"/> 69 Name="VCWebDeploymentTool"/>
70 <Tool 70 <Tool
71 Name="VCManagedWrapperGeneratorTool"/> 71 Name="VCManagedWrapperGeneratorTool"/>
72 <Tool 72 <Tool
73 Name="VCAuxiliaryManagedWrapperGeneratorTool"/> 73 Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
74 </Configuration> 74 </Configuration>
75 <Configuration 75 <Configuration
76 Name="Debug|Win32" 76 Name="Debug|Win32"
77 OutputDirectory=".\Debug" 77 OutputDirectory=".\Debug"
78 IntermediateDirectory=".\Debug" 78 IntermediateDirectory=".\Debug"
79 ConfigurationType="1" 79 ConfigurationType="1"
80 UseOfMFC="0" 80 UseOfMFC="0"
81 ATLMinimizesCRunTimeLibraryUsage="FALSE" 81 ATLMinimizesCRunTimeLibraryUsage="FALSE"
82 CharacterSet="2"> 82 CharacterSet="2">
83 <Tool 83 <Tool
84 Name="VCCLCompilerTool" 84 Name="VCCLCompilerTool"
85 Optimization="0" 85 Optimization="0"
86 AdditionalIncludeDirectories="..\..\include" 86 AdditionalIncludeDirectories="..\..\include"
87 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" 87 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
88 BasicRuntimeChecks="3" 88 BasicRuntimeChecks="3"
89 RuntimeLibrary="5" 89 RuntimeLibrary="5"
90 UsePrecompiledHeader="2" 90 UsePrecompiledHeader="2"
91 PrecompiledHeaderFile=".\Debug/Meshviewer.pch" 91 PrecompiledHeaderFile=".\Debug/Meshviewer.pch"
92 AssemblerListingLocation=".\Debug/" 92 AssemblerListingLocation=".\Debug/"
93 ObjectFile=".\Debug/" 93 ObjectFile=".\Debug/"
94 ProgramDataBaseFileName=".\Debug/" 94 ProgramDataBaseFileName=".\Debug/"
95 WarningLevel="3" 95 WarningLevel="3"
96 SuppressStartupBanner="TRUE" 96 SuppressStartupBanner="TRUE"
97 DebugInformationFormat="4" 97 DebugInformationFormat="4"
98 CompileAs="0"/> 98 CompileAs="0"/>
99 <Tool 99 <Tool
100 Name="VCCustomBuildTool"/> 100 Name="VCCustomBuildTool"/>
101 <Tool 101 <Tool
102 Name="VCLinkerTool" 102 Name="VCLinkerTool"
103 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 103 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
104 LinkIncremental="0" 104 LinkIncremental="0"
105 SuppressStartupBanner="TRUE" 105 SuppressStartupBanner="TRUE"
106 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 106 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
107 GenerateDebugInformation="TRUE" 107 GenerateDebugInformation="TRUE"
108 ProgramDatabaseFile=".\Debug/MeshViewer.pdb" 108 ProgramDatabaseFile=".\Debug/MeshViewer.pdb"
109 SubSystem="1" 109 SubSystem="1"
110 TargetMachine="1"/> 110 TargetMachine="1"/>
111 <Tool 111 <Tool
112 Name="VCMIDLTool" 112 Name="VCMIDLTool"
113 TypeLibraryName=".\Debug/Meshviewer.tlb" 113 TypeLibraryName=".\Debug/Meshviewer.tlb"
114 HeaderFileName=""/> 114 HeaderFileName=""/>
115 <Tool 115 <Tool
116 Name="VCPostBuildEventTool"/> 116 Name="VCPostBuildEventTool"/>
117 <Tool 117 <Tool
118 Name="VCPreBuildEventTool"/> 118 Name="VCPreBuildEventTool"/>
119 <Tool 119 <Tool
120 Name="VCPreLinkEventTool"/> 120 Name="VCPreLinkEventTool"/>
121 <Tool 121 <Tool
122 Name="VCResourceCompilerTool" 122 Name="VCResourceCompilerTool"
123 PreprocessorDefinitions="_DEBUG" 123 PreprocessorDefinitions="_DEBUG"
124 Culture="3079"/> 124 Culture="3079"/>
125 <Tool 125 <Tool
126 Name="VCWebServiceProxyGeneratorTool"/> 126 Name="VCWebServiceProxyGeneratorTool"/>
127 <Tool 127 <Tool
128 Name="VCXMLDataGeneratorTool"/> 128 Name="VCXMLDataGeneratorTool"/>
129 <Tool 129 <Tool
130 Name="VCWebDeploymentTool"/> 130 Name="VCWebDeploymentTool"/>
131 <Tool 131 <Tool
132 Name="VCManagedWrapperGeneratorTool"/> 132 Name="VCManagedWrapperGeneratorTool"/>
133 <Tool 133 <Tool
134 Name="VCAuxiliaryManagedWrapperGeneratorTool"/> 134 Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
135 </Configuration> 135 </Configuration>
136 </Configurations> 136 </Configurations>
137 <References> 137 <References>
138 </References> 138 </References>
139 <Files> 139 <Files>
140 <File 140 <File
141 RelativePath="main.cpp"> 141 RelativePath="main.cpp">
142 <FileConfiguration 142 <FileConfiguration
143 Name="Release|Win32"> 143 Name="Release|Win32">
144 <Tool 144 <Tool
145 Name="VCCLCompilerTool" 145 Name="VCCLCompilerTool"
146 Optimization="2" 146 Optimization="2"
147 AdditionalIncludeDirectories="" 147 AdditionalIncludeDirectories=""
148 PreprocessorDefinitions=""/> 148 PreprocessorDefinitions=""/>
149 </FileConfiguration> 149 </FileConfiguration>
150 <FileConfiguration 150 <FileConfiguration
151 Name="Debug|Win32"> 151 Name="Debug|Win32">
152 <Tool 152 <Tool
153 Name="VCCLCompilerTool" 153 Name="VCCLCompilerTool"
154 Optimization="0" 154 Optimization="0"
155 AdditionalIncludeDirectories="" 155 AdditionalIncludeDirectories=""
156 PreprocessorDefinitions="" 156 PreprocessorDefinitions=""
157 BasicRuntimeChecks="3"/> 157 BasicRuntimeChecks="3"/>
158 </FileConfiguration> 158 </FileConfiguration>
159 </File> 159 </File>
160 </Files> 160 </Files>
161 <Globals> 161 <Globals>
162 </Globals> 162 </Globals>
163</VisualStudioProject> 163</VisualStudioProject>
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc10.vcxproj b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc10.vcxproj
index c9e9e97..6f1614f 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc10.vcxproj
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc10.vcxproj
@@ -1,231 +1,231 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup Label="ProjectConfigurations"> 3 <ItemGroup Label="ProjectConfigurations">
4 <ProjectConfiguration Include="Debug|Win32"> 4 <ProjectConfiguration Include="Debug|Win32">
5 <Configuration>Debug</Configuration> 5 <Configuration>Debug</Configuration>
6 <Platform>Win32</Platform> 6 <Platform>Win32</Platform>
7 </ProjectConfiguration> 7 </ProjectConfiguration>
8 <ProjectConfiguration Include="Debug|x64"> 8 <ProjectConfiguration Include="Debug|x64">
9 <Configuration>Debug</Configuration> 9 <Configuration>Debug</Configuration>
10 <Platform>x64</Platform> 10 <Platform>x64</Platform>
11 </ProjectConfiguration> 11 </ProjectConfiguration>
12 <ProjectConfiguration Include="Release|Win32"> 12 <ProjectConfiguration Include="Release|Win32">
13 <Configuration>Release</Configuration> 13 <Configuration>Release</Configuration>
14 <Platform>Win32</Platform> 14 <Platform>Win32</Platform>
15 </ProjectConfiguration> 15 </ProjectConfiguration>
16 <ProjectConfiguration Include="Release|x64"> 16 <ProjectConfiguration Include="Release|x64">
17 <Configuration>Release</Configuration> 17 <Configuration>Release</Configuration>
18 <Platform>x64</Platform> 18 <Platform>x64</Platform>
19 </ProjectConfiguration> 19 </ProjectConfiguration>
20 </ItemGroup> 20 </ItemGroup>
21 <PropertyGroup Label="Globals"> 21 <PropertyGroup Label="Globals">
22 <ProjectName>09.Meshviewer</ProjectName> 22 <ProjectName>09.Meshviewer</ProjectName>
23 <ProjectGuid>{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}</ProjectGuid> 23 <ProjectGuid>{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}</ProjectGuid>
24 <RootNamespace>Meshviewer</RootNamespace> 24 <RootNamespace>Meshviewer</RootNamespace>
25 </PropertyGroup> 25 </PropertyGroup>
26 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 26 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 27 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
28 <ConfigurationType>Application</ConfigurationType> 28 <ConfigurationType>Application</ConfigurationType>
29 <UseOfMfc>false</UseOfMfc> 29 <UseOfMfc>false</UseOfMfc>
30 <CharacterSet>MultiByte</CharacterSet> 30 <CharacterSet>MultiByte</CharacterSet>
31 </PropertyGroup> 31 </PropertyGroup>
32 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> 32 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
33 <ConfigurationType>Application</ConfigurationType> 33 <ConfigurationType>Application</ConfigurationType>
34 <UseOfMfc>false</UseOfMfc> 34 <UseOfMfc>false</UseOfMfc>
35 <CharacterSet>MultiByte</CharacterSet> 35 <CharacterSet>MultiByte</CharacterSet>
36 </PropertyGroup> 36 </PropertyGroup>
37 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> 37 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
38 <ConfigurationType>Application</ConfigurationType> 38 <ConfigurationType>Application</ConfigurationType>
39 <UseOfMfc>false</UseOfMfc> 39 <UseOfMfc>false</UseOfMfc>
40 <CharacterSet>MultiByte</CharacterSet> 40 <CharacterSet>MultiByte</CharacterSet>
41 </PropertyGroup> 41 </PropertyGroup>
42 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> 42 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
43 <ConfigurationType>Application</ConfigurationType> 43 <ConfigurationType>Application</ConfigurationType>
44 <UseOfMfc>false</UseOfMfc> 44 <UseOfMfc>false</UseOfMfc>
45 <CharacterSet>MultiByte</CharacterSet> 45 <CharacterSet>MultiByte</CharacterSet>
46 </PropertyGroup> 46 </PropertyGroup>
47 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 47 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
48 <ImportGroup Label="ExtensionSettings"> 48 <ImportGroup Label="ExtensionSettings">
49 </ImportGroup> 49 </ImportGroup>
50 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> 50 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
51 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 51 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
52 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 52 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
53 </ImportGroup> 53 </ImportGroup>
54 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> 54 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
55 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 55 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
56 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 56 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
57 </ImportGroup> 57 </ImportGroup>
58 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> 58 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
59 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 59 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 60 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
61 </ImportGroup> 61 </ImportGroup>
62 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> 62 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 64 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
65 </ImportGroup> 65 </ImportGroup>
66 <PropertyGroup Label="UserMacros" /> 66 <PropertyGroup Label="UserMacros" />
67 <PropertyGroup> 67 <PropertyGroup>
68 <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> 68 <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
69 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\Win32-VisualStudio\</OutDir> 69 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\Win32-VisualStudio\</OutDir>
70 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\bin\Win64-VisualStudio\</OutDir> 70 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\bin\Win64-VisualStudio\</OutDir>
71 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 71 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
72 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 72 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
73 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\Win32-VisualStudio\</OutDir> 73 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\Win32-VisualStudio\</OutDir>
74 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\bin\Win64-VisualStudio\</OutDir> 74 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\bin\Win64-VisualStudio\</OutDir>
75 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 75 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
76 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 76 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
77 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> 77 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
78 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet> 78 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
79 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 79 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
80 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 80 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
81 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 81 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
82 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 82 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
83 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> 83 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
84 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> 84 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
85 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 85 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
86 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 86 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
87 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 87 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
88 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 88 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
89 </PropertyGroup> 89 </PropertyGroup>
90 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 90 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
91 <Midl> 91 <Midl>
92 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName> 92 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName>
93 <HeaderFileName> 93 <HeaderFileName>
94 </HeaderFileName> 94 </HeaderFileName>
95 </Midl> 95 </Midl>
96 <ClCompile> 96 <ClCompile>
97 <Optimization>MaxSpeed</Optimization> 97 <Optimization>MaxSpeed</Optimization>
98 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> 98 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
99 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 99 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
100 <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 100 <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
101 <StringPooling>true</StringPooling> 101 <StringPooling>true</StringPooling>
102 <RuntimeLibrary>MultiThreaded</RuntimeLibrary> 102 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
103 <FunctionLevelLinking>true</FunctionLevelLinking> 103 <FunctionLevelLinking>true</FunctionLevelLinking>
104 <PrecompiledHeader> 104 <PrecompiledHeader>
105 </PrecompiledHeader> 105 </PrecompiledHeader>
106 <WarningLevel>Level3</WarningLevel> 106 <WarningLevel>Level3</WarningLevel>
107 </ClCompile> 107 </ClCompile>
108 <ResourceCompile> 108 <ResourceCompile>
109 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 109 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110 <Culture>0x0c07</Culture> 110 <Culture>0x0c07</Culture>
111 </ResourceCompile> 111 </ResourceCompile>
112 <Link> 112 <Link>
113 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile> 113 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile>
114 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 114 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
115 <SubSystem>Console</SubSystem> 115 <SubSystem>Console</SubSystem>
116 <DataExecutionPrevention> 116 <DataExecutionPrevention>
117 </DataExecutionPrevention> 117 </DataExecutionPrevention>
118 </Link> 118 </Link>
119 </ItemDefinitionGroup> 119 </ItemDefinitionGroup>
120 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> 120 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
121 <Midl> 121 <Midl>
122 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName> 122 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName>
123 <HeaderFileName> 123 <HeaderFileName>
124 </HeaderFileName> 124 </HeaderFileName>
125 </Midl> 125 </Midl>
126 <ClCompile> 126 <ClCompile>
127 <Optimization>MaxSpeed</Optimization> 127 <Optimization>MaxSpeed</Optimization>
128 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> 128 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
129 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 129 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
130 <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 130 <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
131 <StringPooling>true</StringPooling> 131 <StringPooling>true</StringPooling>
132 <RuntimeLibrary>MultiThreaded</RuntimeLibrary> 132 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
133 <FunctionLevelLinking>true</FunctionLevelLinking> 133 <FunctionLevelLinking>true</FunctionLevelLinking>
134 <PrecompiledHeader> 134 <PrecompiledHeader>
135 </PrecompiledHeader> 135 </PrecompiledHeader>
136 <WarningLevel>Level3</WarningLevel> 136 <WarningLevel>Level3</WarningLevel>
137 </ClCompile> 137 </ClCompile>
138 <ResourceCompile> 138 <ResourceCompile>
139 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 139 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
140 <Culture>0x0c07</Culture> 140 <Culture>0x0c07</Culture>
141 </ResourceCompile> 141 </ResourceCompile>
142 <Link> 142 <Link>
143 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile> 143 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile>
144 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 144 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
145 <SubSystem>Console</SubSystem> 145 <SubSystem>Console</SubSystem>
146 <DataExecutionPrevention> 146 <DataExecutionPrevention>
147 </DataExecutionPrevention> 147 </DataExecutionPrevention>
148 </Link> 148 </Link>
149 </ItemDefinitionGroup> 149 </ItemDefinitionGroup>
150 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 150 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
151 <Midl> 151 <Midl>
152 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName> 152 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName>
153 <HeaderFileName> 153 <HeaderFileName>
154 </HeaderFileName> 154 </HeaderFileName>
155 </Midl> 155 </Midl>
156 <ClCompile> 156 <ClCompile>
157 <Optimization>Disabled</Optimization> 157 <Optimization>Disabled</Optimization>
158 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 158 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
159 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 159 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
160 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> 160 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
161 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> 161 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
162 <PrecompiledHeader> 162 <PrecompiledHeader>
163 </PrecompiledHeader> 163 </PrecompiledHeader>
164 <WarningLevel>Level3</WarningLevel> 164 <WarningLevel>Level3</WarningLevel>
165 <DebugInformationFormat>EditAndContinue</DebugInformationFormat> 165 <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
166 </ClCompile> 166 </ClCompile>
167 <ResourceCompile> 167 <ResourceCompile>
168 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 168 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
169 <Culture>0x0c07</Culture> 169 <Culture>0x0c07</Culture>
170 </ResourceCompile> 170 </ResourceCompile>
171 <Link> 171 <Link>
172 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile> 172 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile>
173 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 173 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
174 <GenerateDebugInformation>true</GenerateDebugInformation> 174 <GenerateDebugInformation>true</GenerateDebugInformation>
175 <SubSystem>Console</SubSystem> 175 <SubSystem>Console</SubSystem>
176 <DataExecutionPrevention> 176 <DataExecutionPrevention>
177 </DataExecutionPrevention> 177 </DataExecutionPrevention>
178 </Link> 178 </Link>
179 </ItemDefinitionGroup> 179 </ItemDefinitionGroup>
180 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> 180 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
181 <Midl> 181 <Midl>
182 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName> 182 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName>
183 <HeaderFileName> 183 <HeaderFileName>
184 </HeaderFileName> 184 </HeaderFileName>
185 </Midl> 185 </Midl>
186 <ClCompile> 186 <ClCompile>
187 <Optimization>Disabled</Optimization> 187 <Optimization>Disabled</Optimization>
188 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 188 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
189 <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 189 <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
190 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> 190 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
191 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> 191 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
192 <PrecompiledHeader> 192 <PrecompiledHeader>
193 </PrecompiledHeader> 193 </PrecompiledHeader>
194 <WarningLevel>Level3</WarningLevel> 194 <WarningLevel>Level3</WarningLevel>
195 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> 195 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
196 </ClCompile> 196 </ClCompile>
197 <ResourceCompile> 197 <ResourceCompile>
198 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 198 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
199 <Culture>0x0c07</Culture> 199 <Culture>0x0c07</Culture>
200 </ResourceCompile> 200 </ResourceCompile>
201 <Link> 201 <Link>
202 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile> 202 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile>
203 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 203 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
204 <GenerateDebugInformation>true</GenerateDebugInformation> 204 <GenerateDebugInformation>true</GenerateDebugInformation>
205 <SubSystem>Console</SubSystem> 205 <SubSystem>Console</SubSystem>
206 <DataExecutionPrevention> 206 <DataExecutionPrevention>
207 </DataExecutionPrevention> 207 </DataExecutionPrevention>
208 </Link> 208 </Link>
209 </ItemDefinitionGroup> 209 </ItemDefinitionGroup>
210 <ItemGroup> 210 <ItemGroup>
211 <ClCompile Include="main.cpp"> 211 <ClCompile Include="main.cpp">
212 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization> 212 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
213 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization> 213 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
214 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 214 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
215 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 215 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
216 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 216 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
217 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 217 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
218 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks> 218 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
219 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks> 219 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
220 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization> 220 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
221 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization> 221 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
222 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 222 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
223 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 223 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
224 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 224 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
225 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 225 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
226 </ClCompile> 226 </ClCompile>
227 </ItemGroup> 227 </ItemGroup>
228 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 228 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
229 <ImportGroup Label="ExtensionTargets"> 229 <ImportGroup Label="ExtensionTargets">
230 </ImportGroup> 230 </ImportGroup>
231</Project> \ No newline at end of file 231</Project> \ No newline at end of file
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc11.vcxproj b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc11.vcxproj
index 24ffe1e..9cd80e6 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc11.vcxproj
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc11.vcxproj
@@ -1,235 +1,235 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup Label="ProjectConfigurations"> 3 <ItemGroup Label="ProjectConfigurations">
4 <ProjectConfiguration Include="Debug|Win32"> 4 <ProjectConfiguration Include="Debug|Win32">
5 <Configuration>Debug</Configuration> 5 <Configuration>Debug</Configuration>
6 <Platform>Win32</Platform> 6 <Platform>Win32</Platform>
7 </ProjectConfiguration> 7 </ProjectConfiguration>
8 <ProjectConfiguration Include="Debug|x64"> 8 <ProjectConfiguration Include="Debug|x64">
9 <Configuration>Debug</Configuration> 9 <Configuration>Debug</Configuration>
10 <Platform>x64</Platform> 10 <Platform>x64</Platform>
11 </ProjectConfiguration> 11 </ProjectConfiguration>
12 <ProjectConfiguration Include="Release|Win32"> 12 <ProjectConfiguration Include="Release|Win32">
13 <Configuration>Release</Configuration> 13 <Configuration>Release</Configuration>
14 <Platform>Win32</Platform> 14 <Platform>Win32</Platform>
15 </ProjectConfiguration> 15 </ProjectConfiguration>
16 <ProjectConfiguration Include="Release|x64"> 16 <ProjectConfiguration Include="Release|x64">
17 <Configuration>Release</Configuration> 17 <Configuration>Release</Configuration>
18 <Platform>x64</Platform> 18 <Platform>x64</Platform>
19 </ProjectConfiguration> 19 </ProjectConfiguration>
20 </ItemGroup> 20 </ItemGroup>
21 <PropertyGroup Label="Globals"> 21 <PropertyGroup Label="Globals">
22 <ProjectName>09.Meshviewer</ProjectName> 22 <ProjectName>09.Meshviewer</ProjectName>
23 <ProjectGuid>{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}</ProjectGuid> 23 <ProjectGuid>{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}</ProjectGuid>
24 <RootNamespace>Meshviewer</RootNamespace> 24 <RootNamespace>Meshviewer</RootNamespace>
25 </PropertyGroup> 25 </PropertyGroup>
26 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 26 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 27 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
28 <ConfigurationType>Application</ConfigurationType> 28 <ConfigurationType>Application</ConfigurationType>
29 <UseOfMfc>false</UseOfMfc> 29 <UseOfMfc>false</UseOfMfc>
30 <CharacterSet>MultiByte</CharacterSet> 30 <CharacterSet>MultiByte</CharacterSet>
31 <PlatformToolset>v110</PlatformToolset> 31 <PlatformToolset>v110</PlatformToolset>
32 </PropertyGroup> 32 </PropertyGroup>
33 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> 33 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
34 <ConfigurationType>Application</ConfigurationType> 34 <ConfigurationType>Application</ConfigurationType>
35 <UseOfMfc>false</UseOfMfc> 35 <UseOfMfc>false</UseOfMfc>
36 <CharacterSet>MultiByte</CharacterSet> 36 <CharacterSet>MultiByte</CharacterSet>
37 <PlatformToolset>v110</PlatformToolset> 37 <PlatformToolset>v110</PlatformToolset>
38 </PropertyGroup> 38 </PropertyGroup>
39 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> 39 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
40 <ConfigurationType>Application</ConfigurationType> 40 <ConfigurationType>Application</ConfigurationType>
41 <UseOfMfc>false</UseOfMfc> 41 <UseOfMfc>false</UseOfMfc>
42 <CharacterSet>MultiByte</CharacterSet> 42 <CharacterSet>MultiByte</CharacterSet>
43 <PlatformToolset>v110</PlatformToolset> 43 <PlatformToolset>v110</PlatformToolset>
44 </PropertyGroup> 44 </PropertyGroup>
45 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> 45 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
46 <ConfigurationType>Application</ConfigurationType> 46 <ConfigurationType>Application</ConfigurationType>
47 <UseOfMfc>false</UseOfMfc> 47 <UseOfMfc>false</UseOfMfc>
48 <CharacterSet>MultiByte</CharacterSet> 48 <CharacterSet>MultiByte</CharacterSet>
49 <PlatformToolset>v110</PlatformToolset> 49 <PlatformToolset>v110</PlatformToolset>
50 </PropertyGroup> 50 </PropertyGroup>
51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
52 <ImportGroup Label="ExtensionSettings"> 52 <ImportGroup Label="ExtensionSettings">
53 </ImportGroup> 53 </ImportGroup>
54 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> 54 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
55 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 55 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
56 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 56 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
57 </ImportGroup> 57 </ImportGroup>
58 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> 58 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
59 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 59 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 60 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
61 </ImportGroup> 61 </ImportGroup>
62 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> 62 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 64 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
65 </ImportGroup> 65 </ImportGroup>
66 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> 66 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
67 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 67 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> 68 <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
69 </ImportGroup> 69 </ImportGroup>
70 <PropertyGroup Label="UserMacros" /> 70 <PropertyGroup Label="UserMacros" />
71 <PropertyGroup> 71 <PropertyGroup>
72 <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> 72 <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
73 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\Win32-VisualStudio\</OutDir> 73 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\Win32-VisualStudio\</OutDir>
74 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\bin\Win64-VisualStudio\</OutDir> 74 <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\bin\Win64-VisualStudio\</OutDir>
75 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 75 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
76 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 76 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
77 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\Win32-VisualStudio\</OutDir> 77 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\Win32-VisualStudio\</OutDir>
78 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\bin\Win64-VisualStudio\</OutDir> 78 <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\bin\Win64-VisualStudio\</OutDir>
79 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 79 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
80 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 80 <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
81 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> 81 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
82 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet> 82 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
83 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 83 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
84 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 84 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
85 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> 85 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
86 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> 86 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
87 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> 87 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
88 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> 88 <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
89 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 89 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
90 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 90 <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
91 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> 91 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
92 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> 92 <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
93 </PropertyGroup> 93 </PropertyGroup>
94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
95 <Midl> 95 <Midl>
96 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName> 96 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName>
97 <HeaderFileName> 97 <HeaderFileName>
98 </HeaderFileName> 98 </HeaderFileName>
99 </Midl> 99 </Midl>
100 <ClCompile> 100 <ClCompile>
101 <Optimization>MaxSpeed</Optimization> 101 <Optimization>MaxSpeed</Optimization>
102 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> 102 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
103 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 103 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
104 <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 104 <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
105 <StringPooling>true</StringPooling> 105 <StringPooling>true</StringPooling>
106 <RuntimeLibrary>MultiThreaded</RuntimeLibrary> 106 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
107 <FunctionLevelLinking>true</FunctionLevelLinking> 107 <FunctionLevelLinking>true</FunctionLevelLinking>
108 <PrecompiledHeader> 108 <PrecompiledHeader>
109 </PrecompiledHeader> 109 </PrecompiledHeader>
110 <WarningLevel>Level3</WarningLevel> 110 <WarningLevel>Level3</WarningLevel>
111 </ClCompile> 111 </ClCompile>
112 <ResourceCompile> 112 <ResourceCompile>
113 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 113 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
114 <Culture>0x0c07</Culture> 114 <Culture>0x0c07</Culture>
115 </ResourceCompile> 115 </ResourceCompile>
116 <Link> 116 <Link>
117 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile> 117 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile>
118 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 118 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
119 <SubSystem>Console</SubSystem> 119 <SubSystem>Console</SubSystem>
120 <DataExecutionPrevention> 120 <DataExecutionPrevention>
121 </DataExecutionPrevention> 121 </DataExecutionPrevention>
122 </Link> 122 </Link>
123 </ItemDefinitionGroup> 123 </ItemDefinitionGroup>
124 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> 124 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
125 <Midl> 125 <Midl>
126 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName> 126 <TypeLibraryName>.\Release/Meshviewer.tlb</TypeLibraryName>
127 <HeaderFileName> 127 <HeaderFileName>
128 </HeaderFileName> 128 </HeaderFileName>
129 </Midl> 129 </Midl>
130 <ClCompile> 130 <ClCompile>
131 <Optimization>MaxSpeed</Optimization> 131 <Optimization>MaxSpeed</Optimization>
132 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> 132 <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
133 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 133 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
134 <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 134 <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
135 <StringPooling>true</StringPooling> 135 <StringPooling>true</StringPooling>
136 <RuntimeLibrary>MultiThreaded</RuntimeLibrary> 136 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
137 <FunctionLevelLinking>true</FunctionLevelLinking> 137 <FunctionLevelLinking>true</FunctionLevelLinking>
138 <PrecompiledHeader> 138 <PrecompiledHeader>
139 </PrecompiledHeader> 139 </PrecompiledHeader>
140 <WarningLevel>Level3</WarningLevel> 140 <WarningLevel>Level3</WarningLevel>
141 </ClCompile> 141 </ClCompile>
142 <ResourceCompile> 142 <ResourceCompile>
143 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 143 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144 <Culture>0x0c07</Culture> 144 <Culture>0x0c07</Culture>
145 </ResourceCompile> 145 </ResourceCompile>
146 <Link> 146 <Link>
147 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile> 147 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile>
148 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 148 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
149 <SubSystem>Console</SubSystem> 149 <SubSystem>Console</SubSystem>
150 <DataExecutionPrevention> 150 <DataExecutionPrevention>
151 </DataExecutionPrevention> 151 </DataExecutionPrevention>
152 </Link> 152 </Link>
153 </ItemDefinitionGroup> 153 </ItemDefinitionGroup>
154 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 154 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
155 <Midl> 155 <Midl>
156 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName> 156 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName>
157 <HeaderFileName> 157 <HeaderFileName>
158 </HeaderFileName> 158 </HeaderFileName>
159 </Midl> 159 </Midl>
160 <ClCompile> 160 <ClCompile>
161 <Optimization>Disabled</Optimization> 161 <Optimization>Disabled</Optimization>
162 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 162 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
163 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 163 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
164 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> 164 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
165 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> 165 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
166 <PrecompiledHeader> 166 <PrecompiledHeader>
167 </PrecompiledHeader> 167 </PrecompiledHeader>
168 <WarningLevel>Level3</WarningLevel> 168 <WarningLevel>Level3</WarningLevel>
169 <DebugInformationFormat>EditAndContinue</DebugInformationFormat> 169 <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
170 </ClCompile> 170 </ClCompile>
171 <ResourceCompile> 171 <ResourceCompile>
172 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 172 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
173 <Culture>0x0c07</Culture> 173 <Culture>0x0c07</Culture>
174 </ResourceCompile> 174 </ResourceCompile>
175 <Link> 175 <Link>
176 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile> 176 <OutputFile>..\..\bin\Win32-VisualStudio\09.MeshViewer.exe</OutputFile>
177 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 177 <AdditionalLibraryDirectories>..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
178 <GenerateDebugInformation>true</GenerateDebugInformation> 178 <GenerateDebugInformation>true</GenerateDebugInformation>
179 <SubSystem>Console</SubSystem> 179 <SubSystem>Console</SubSystem>
180 <DataExecutionPrevention> 180 <DataExecutionPrevention>
181 </DataExecutionPrevention> 181 </DataExecutionPrevention>
182 </Link> 182 </Link>
183 </ItemDefinitionGroup> 183 </ItemDefinitionGroup>
184 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> 184 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
185 <Midl> 185 <Midl>
186 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName> 186 <TypeLibraryName>.\Debug/Meshviewer.tlb</TypeLibraryName>
187 <HeaderFileName> 187 <HeaderFileName>
188 </HeaderFileName> 188 </HeaderFileName>
189 </Midl> 189 </Midl>
190 <ClCompile> 190 <ClCompile>
191 <Optimization>Disabled</Optimization> 191 <Optimization>Disabled</Optimization>
192 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 192 <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
193 <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> 193 <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
194 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> 194 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
195 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> 195 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
196 <PrecompiledHeader> 196 <PrecompiledHeader>
197 </PrecompiledHeader> 197 </PrecompiledHeader>
198 <WarningLevel>Level3</WarningLevel> 198 <WarningLevel>Level3</WarningLevel>
199 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> 199 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
200 </ClCompile> 200 </ClCompile>
201 <ResourceCompile> 201 <ResourceCompile>
202 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> 202 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
203 <Culture>0x0c07</Culture> 203 <Culture>0x0c07</Culture>
204 </ResourceCompile> 204 </ResourceCompile>
205 <Link> 205 <Link>
206 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile> 206 <OutputFile>..\..\bin\Win64-VisualStudio\09.MeshViewer.exe</OutputFile>
207 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 207 <AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
208 <GenerateDebugInformation>true</GenerateDebugInformation> 208 <GenerateDebugInformation>true</GenerateDebugInformation>
209 <SubSystem>Console</SubSystem> 209 <SubSystem>Console</SubSystem>
210 <DataExecutionPrevention> 210 <DataExecutionPrevention>
211 </DataExecutionPrevention> 211 </DataExecutionPrevention>
212 </Link> 212 </Link>
213 </ItemDefinitionGroup> 213 </ItemDefinitionGroup>
214 <ItemGroup> 214 <ItemGroup>
215 <ClCompile Include="main.cpp"> 215 <ClCompile Include="main.cpp">
216 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization> 216 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
217 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization> 217 <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
218 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 218 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
219 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 219 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
220 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 220 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
221 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 221 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
222 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks> 222 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
223 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks> 223 <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
224 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization> 224 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
225 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization> 225 <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
226 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 226 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
227 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 227 <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
228 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 228 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
229 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> 229 <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
230 </ClCompile> 230 </ClCompile>
231 </ItemGroup> 231 </ItemGroup>
232 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 232 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
233 <ImportGroup Label="ExtensionTargets"> 233 <ImportGroup Label="ExtensionTargets">
234 </ImportGroup> 234 </ImportGroup>
235</Project> \ No newline at end of file 235</Project> \ No newline at end of file
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc8.vcproj b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc8.vcproj
index 0346771..1069365 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc8.vcproj
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc8.vcproj
@@ -1,231 +1,231 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="8.00" 4 Version="8.00"
5 Name="09.Meshviewer_vc8" 5 Name="09.Meshviewer_vc8"
6 ProjectGUID="{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}" 6 ProjectGUID="{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}"
7 RootNamespace="Meshviewer_vc8" 7 RootNamespace="Meshviewer_vc8"
8 > 8 >
9 <Platforms> 9 <Platforms>
10 <Platform 10 <Platform
11 Name="Win32" 11 Name="Win32"
12 /> 12 />
13 </Platforms> 13 </Platforms>
14 <ToolFiles> 14 <ToolFiles>
15 </ToolFiles> 15 </ToolFiles>
16 <Configurations> 16 <Configurations>
17 <Configuration 17 <Configuration
18 Name="Release|Win32" 18 Name="Release|Win32"
19 OutputDirectory=".\Release" 19 OutputDirectory=".\Release"
20 IntermediateDirectory=".\Release" 20 IntermediateDirectory=".\Release"
21 ConfigurationType="1" 21 ConfigurationType="1"
22 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 22 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
23 UseOfMFC="0" 23 UseOfMFC="0"
24 ATLMinimizesCRunTimeLibraryUsage="false" 24 ATLMinimizesCRunTimeLibraryUsage="false"
25 CharacterSet="2" 25 CharacterSet="2"
26 > 26 >
27 <Tool 27 <Tool
28 Name="VCPreBuildEventTool" 28 Name="VCPreBuildEventTool"
29 /> 29 />
30 <Tool 30 <Tool
31 Name="VCCustomBuildTool" 31 Name="VCCustomBuildTool"
32 /> 32 />
33 <Tool 33 <Tool
34 Name="VCXMLDataGeneratorTool" 34 Name="VCXMLDataGeneratorTool"
35 /> 35 />
36 <Tool 36 <Tool
37 Name="VCWebServiceProxyGeneratorTool" 37 Name="VCWebServiceProxyGeneratorTool"
38 /> 38 />
39 <Tool 39 <Tool
40 Name="VCMIDLTool" 40 Name="VCMIDLTool"
41 TypeLibraryName=".\Release/Meshviewer.tlb" 41 TypeLibraryName=".\Release/Meshviewer.tlb"
42 HeaderFileName="" 42 HeaderFileName=""
43 /> 43 />
44 <Tool 44 <Tool
45 Name="VCCLCompilerTool" 45 Name="VCCLCompilerTool"
46 Optimization="2" 46 Optimization="2"
47 InlineFunctionExpansion="1" 47 InlineFunctionExpansion="1"
48 AdditionalIncludeDirectories="..\..\include" 48 AdditionalIncludeDirectories="..\..\include"
49 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" 49 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
50 StringPooling="true" 50 StringPooling="true"
51 RuntimeLibrary="0" 51 RuntimeLibrary="0"
52 EnableFunctionLevelLinking="true" 52 EnableFunctionLevelLinking="true"
53 UsePrecompiledHeader="0" 53 UsePrecompiledHeader="0"
54 PrecompiledHeaderFile=".\Release/Meshviewer.pch" 54 PrecompiledHeaderFile=".\Release/Meshviewer.pch"
55 AssemblerListingLocation=".\Release/" 55 AssemblerListingLocation=".\Release/"
56 ObjectFile=".\Release/" 56 ObjectFile=".\Release/"
57 ProgramDataBaseFileName=".\Release/" 57 ProgramDataBaseFileName=".\Release/"
58 WarningLevel="3" 58 WarningLevel="3"
59 SuppressStartupBanner="true" 59 SuppressStartupBanner="true"
60 CompileAs="0" 60 CompileAs="0"
61 /> 61 />
62 <Tool 62 <Tool
63 Name="VCManagedResourceCompilerTool" 63 Name="VCManagedResourceCompilerTool"
64 /> 64 />
65 <Tool 65 <Tool
66 Name="VCResourceCompilerTool" 66 Name="VCResourceCompilerTool"
67 PreprocessorDefinitions="NDEBUG" 67 PreprocessorDefinitions="NDEBUG"
68 Culture="3079" 68 Culture="3079"
69 /> 69 />
70 <Tool 70 <Tool
71 Name="VCPreLinkEventTool" 71 Name="VCPreLinkEventTool"
72 /> 72 />
73 <Tool 73 <Tool
74 Name="VCLinkerTool" 74 Name="VCLinkerTool"
75 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 75 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
76 LinkIncremental="0" 76 LinkIncremental="0"
77 SuppressStartupBanner="true" 77 SuppressStartupBanner="true"
78 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 78 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
79 ProgramDatabaseFile=".\Release/MeshViewer.pdb" 79 ProgramDatabaseFile=".\Release/MeshViewer.pdb"
80 SubSystem="1" 80 SubSystem="1"
81 TargetMachine="1" 81 TargetMachine="1"
82 /> 82 />
83 <Tool 83 <Tool
84 Name="VCALinkTool" 84 Name="VCALinkTool"
85 /> 85 />
86 <Tool 86 <Tool
87 Name="VCManifestTool" 87 Name="VCManifestTool"
88 /> 88 />
89 <Tool 89 <Tool
90 Name="VCXDCMakeTool" 90 Name="VCXDCMakeTool"
91 /> 91 />
92 <Tool 92 <Tool
93 Name="VCBscMakeTool" 93 Name="VCBscMakeTool"
94 /> 94 />
95 <Tool 95 <Tool
96 Name="VCFxCopTool" 96 Name="VCFxCopTool"
97 /> 97 />
98 <Tool 98 <Tool
99 Name="VCAppVerifierTool" 99 Name="VCAppVerifierTool"
100 /> 100 />
101 <Tool 101 <Tool
102 Name="VCWebDeploymentTool" 102 Name="VCWebDeploymentTool"
103 /> 103 />
104 <Tool 104 <Tool
105 Name="VCPostBuildEventTool" 105 Name="VCPostBuildEventTool"
106 /> 106 />
107 </Configuration> 107 </Configuration>
108 <Configuration 108 <Configuration
109 Name="Debug|Win32" 109 Name="Debug|Win32"
110 OutputDirectory=".\Debug" 110 OutputDirectory=".\Debug"
111 IntermediateDirectory=".\Debug" 111 IntermediateDirectory=".\Debug"
112 ConfigurationType="1" 112 ConfigurationType="1"
113 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 113 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
114 UseOfMFC="0" 114 UseOfMFC="0"
115 ATLMinimizesCRunTimeLibraryUsage="false" 115 ATLMinimizesCRunTimeLibraryUsage="false"
116 CharacterSet="2" 116 CharacterSet="2"
117 > 117 >
118 <Tool 118 <Tool
119 Name="VCPreBuildEventTool" 119 Name="VCPreBuildEventTool"
120 /> 120 />
121 <Tool 121 <Tool
122 Name="VCCustomBuildTool" 122 Name="VCCustomBuildTool"
123 /> 123 />
124 <Tool 124 <Tool
125 Name="VCXMLDataGeneratorTool" 125 Name="VCXMLDataGeneratorTool"
126 /> 126 />
127 <Tool 127 <Tool
128 Name="VCWebServiceProxyGeneratorTool" 128 Name="VCWebServiceProxyGeneratorTool"
129 /> 129 />
130 <Tool 130 <Tool
131 Name="VCMIDLTool" 131 Name="VCMIDLTool"
132 TypeLibraryName=".\Debug/Meshviewer.tlb" 132 TypeLibraryName=".\Debug/Meshviewer.tlb"
133 HeaderFileName="" 133 HeaderFileName=""
134 /> 134 />
135 <Tool 135 <Tool
136 Name="VCCLCompilerTool" 136 Name="VCCLCompilerTool"
137 Optimization="0" 137 Optimization="0"
138 AdditionalIncludeDirectories="..\..\include" 138 AdditionalIncludeDirectories="..\..\include"
139 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" 139 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
140 BasicRuntimeChecks="3" 140 BasicRuntimeChecks="3"
141 RuntimeLibrary="1" 141 RuntimeLibrary="1"
142 UsePrecompiledHeader="0" 142 UsePrecompiledHeader="0"
143 PrecompiledHeaderFile=".\Debug/Meshviewer.pch" 143 PrecompiledHeaderFile=".\Debug/Meshviewer.pch"
144 AssemblerListingLocation=".\Debug/" 144 AssemblerListingLocation=".\Debug/"
145 ObjectFile=".\Debug/" 145 ObjectFile=".\Debug/"
146 ProgramDataBaseFileName=".\Debug/" 146 ProgramDataBaseFileName=".\Debug/"
147 WarningLevel="3" 147 WarningLevel="3"
148 SuppressStartupBanner="true" 148 SuppressStartupBanner="true"
149 DebugInformationFormat="4" 149 DebugInformationFormat="4"
150 CompileAs="0" 150 CompileAs="0"
151 /> 151 />
152 <Tool 152 <Tool
153 Name="VCManagedResourceCompilerTool" 153 Name="VCManagedResourceCompilerTool"
154 /> 154 />
155 <Tool 155 <Tool
156 Name="VCResourceCompilerTool" 156 Name="VCResourceCompilerTool"
157 PreprocessorDefinitions="_DEBUG" 157 PreprocessorDefinitions="_DEBUG"
158 Culture="3079" 158 Culture="3079"
159 /> 159 />
160 <Tool 160 <Tool
161 Name="VCPreLinkEventTool" 161 Name="VCPreLinkEventTool"
162 /> 162 />
163 <Tool 163 <Tool
164 Name="VCLinkerTool" 164 Name="VCLinkerTool"
165 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 165 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
166 LinkIncremental="0" 166 LinkIncremental="0"
167 SuppressStartupBanner="true" 167 SuppressStartupBanner="true"
168 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 168 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
169 GenerateDebugInformation="true" 169 GenerateDebugInformation="true"
170 ProgramDatabaseFile=".\Debug/MeshViewer.pdb" 170 ProgramDatabaseFile=".\Debug/MeshViewer.pdb"
171 SubSystem="1" 171 SubSystem="1"
172 TargetMachine="1" 172 TargetMachine="1"
173 /> 173 />
174 <Tool 174 <Tool
175 Name="VCALinkTool" 175 Name="VCALinkTool"
176 /> 176 />
177 <Tool 177 <Tool
178 Name="VCManifestTool" 178 Name="VCManifestTool"
179 /> 179 />
180 <Tool 180 <Tool
181 Name="VCXDCMakeTool" 181 Name="VCXDCMakeTool"
182 /> 182 />
183 <Tool 183 <Tool
184 Name="VCBscMakeTool" 184 Name="VCBscMakeTool"
185 /> 185 />
186 <Tool 186 <Tool
187 Name="VCFxCopTool" 187 Name="VCFxCopTool"
188 /> 188 />
189 <Tool 189 <Tool
190 Name="VCAppVerifierTool" 190 Name="VCAppVerifierTool"
191 /> 191 />
192 <Tool 192 <Tool
193 Name="VCWebDeploymentTool" 193 Name="VCWebDeploymentTool"
194 /> 194 />
195 <Tool 195 <Tool
196 Name="VCPostBuildEventTool" 196 Name="VCPostBuildEventTool"
197 /> 197 />
198 </Configuration> 198 </Configuration>
199 </Configurations> 199 </Configurations>
200 <References> 200 <References>
201 </References> 201 </References>
202 <Files> 202 <Files>
203 <File 203 <File
204 RelativePath="main.cpp" 204 RelativePath="main.cpp"
205 > 205 >
206 <FileConfiguration 206 <FileConfiguration
207 Name="Release|Win32" 207 Name="Release|Win32"
208 > 208 >
209 <Tool 209 <Tool
210 Name="VCCLCompilerTool" 210 Name="VCCLCompilerTool"
211 Optimization="2" 211 Optimization="2"
212 AdditionalIncludeDirectories="" 212 AdditionalIncludeDirectories=""
213 PreprocessorDefinitions="" 213 PreprocessorDefinitions=""
214 /> 214 />
215 </FileConfiguration> 215 </FileConfiguration>
216 <FileConfiguration 216 <FileConfiguration
217 Name="Debug|Win32" 217 Name="Debug|Win32"
218 > 218 >
219 <Tool 219 <Tool
220 Name="VCCLCompilerTool" 220 Name="VCCLCompilerTool"
221 Optimization="0" 221 Optimization="0"
222 AdditionalIncludeDirectories="" 222 AdditionalIncludeDirectories=""
223 PreprocessorDefinitions="" 223 PreprocessorDefinitions=""
224 BasicRuntimeChecks="3" 224 BasicRuntimeChecks="3"
225 /> 225 />
226 </FileConfiguration> 226 </FileConfiguration>
227 </File> 227 </File>
228 </Files> 228 </Files>
229 <Globals> 229 <Globals>
230 </Globals> 230 </Globals>
231</VisualStudioProject> 231</VisualStudioProject>
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc9.vcproj b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc9.vcproj
index f6a8038..09474ec 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc9.vcproj
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/Meshviewer_vc9.vcproj
@@ -1,230 +1,230 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="9,00" 4 Version="9,00"
5 Name="09.Meshviewer_vc9" 5 Name="09.Meshviewer_vc9"
6 ProjectGUID="{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}" 6 ProjectGUID="{2AE24484-22FC-481B-9A40-7CD0DA5C8E06}"
7 RootNamespace="Meshviewer_vc9" 7 RootNamespace="Meshviewer_vc9"
8 TargetFrameworkVersion="131072" 8 TargetFrameworkVersion="131072"
9 > 9 >
10 <Platforms> 10 <Platforms>
11 <Platform 11 <Platform
12 Name="Win32" 12 Name="Win32"
13 /> 13 />
14 </Platforms> 14 </Platforms>
15 <ToolFiles> 15 <ToolFiles>
16 </ToolFiles> 16 </ToolFiles>
17 <Configurations> 17 <Configurations>
18 <Configuration 18 <Configuration
19 Name="Release|Win32" 19 Name="Release|Win32"
20 OutputDirectory=".\Release" 20 OutputDirectory=".\Release"
21 IntermediateDirectory=".\Release" 21 IntermediateDirectory=".\Release"
22 ConfigurationType="1" 22 ConfigurationType="1"
23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
24 UseOfMFC="0" 24 UseOfMFC="0"
25 ATLMinimizesCRunTimeLibraryUsage="false" 25 ATLMinimizesCRunTimeLibraryUsage="false"
26 CharacterSet="2" 26 CharacterSet="2"
27 > 27 >
28 <Tool 28 <Tool
29 Name="VCPreBuildEventTool" 29 Name="VCPreBuildEventTool"
30 /> 30 />
31 <Tool 31 <Tool
32 Name="VCCustomBuildTool" 32 Name="VCCustomBuildTool"
33 /> 33 />
34 <Tool 34 <Tool
35 Name="VCXMLDataGeneratorTool" 35 Name="VCXMLDataGeneratorTool"
36 /> 36 />
37 <Tool 37 <Tool
38 Name="VCWebServiceProxyGeneratorTool" 38 Name="VCWebServiceProxyGeneratorTool"
39 /> 39 />
40 <Tool 40 <Tool
41 Name="VCMIDLTool" 41 Name="VCMIDLTool"
42 TypeLibraryName=".\Release/Meshviewer.tlb" 42 TypeLibraryName=".\Release/Meshviewer.tlb"
43 HeaderFileName="" 43 HeaderFileName=""
44 /> 44 />
45 <Tool 45 <Tool
46 Name="VCCLCompilerTool" 46 Name="VCCLCompilerTool"
47 Optimization="2" 47 Optimization="2"
48 InlineFunctionExpansion="1" 48 InlineFunctionExpansion="1"
49 AdditionalIncludeDirectories="..\..\include" 49 AdditionalIncludeDirectories="..\..\include"
50 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" 50 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
51 StringPooling="true" 51 StringPooling="true"
52 RuntimeLibrary="0" 52 RuntimeLibrary="0"
53 EnableFunctionLevelLinking="true" 53 EnableFunctionLevelLinking="true"
54 UsePrecompiledHeader="0" 54 UsePrecompiledHeader="0"
55 PrecompiledHeaderFile=".\Release/Meshviewer.pch" 55 PrecompiledHeaderFile=".\Release/Meshviewer.pch"
56 AssemblerListingLocation=".\Release/" 56 AssemblerListingLocation=".\Release/"
57 ObjectFile=".\Release/" 57 ObjectFile=".\Release/"
58 ProgramDataBaseFileName=".\Release/" 58 ProgramDataBaseFileName=".\Release/"
59 WarningLevel="3" 59 WarningLevel="3"
60 SuppressStartupBanner="true" 60 SuppressStartupBanner="true"
61 CompileAs="0" 61 CompileAs="0"
62 /> 62 />
63 <Tool 63 <Tool
64 Name="VCManagedResourceCompilerTool" 64 Name="VCManagedResourceCompilerTool"
65 /> 65 />
66 <Tool 66 <Tool
67 Name="VCResourceCompilerTool" 67 Name="VCResourceCompilerTool"
68 PreprocessorDefinitions="NDEBUG" 68 PreprocessorDefinitions="NDEBUG"
69 Culture="3079" 69 Culture="3079"
70 /> 70 />
71 <Tool 71 <Tool
72 Name="VCPreLinkEventTool" 72 Name="VCPreLinkEventTool"
73 /> 73 />
74 <Tool 74 <Tool
75 Name="VCLinkerTool" 75 Name="VCLinkerTool"
76 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 76 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
77 LinkIncremental="0" 77 LinkIncremental="0"
78 SuppressStartupBanner="true" 78 SuppressStartupBanner="true"
79 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 79 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
80 ProgramDatabaseFile=".\Release/MeshViewer.pdb" 80 ProgramDatabaseFile=".\Release/MeshViewer.pdb"
81 SubSystem="1" 81 SubSystem="1"
82 RandomizedBaseAddress="1" 82 RandomizedBaseAddress="1"
83 DataExecutionPrevention="0" 83 DataExecutionPrevention="0"
84 TargetMachine="1" 84 TargetMachine="1"
85 /> 85 />
86 <Tool 86 <Tool
87 Name="VCALinkTool" 87 Name="VCALinkTool"
88 /> 88 />
89 <Tool 89 <Tool
90 Name="VCManifestTool" 90 Name="VCManifestTool"
91 /> 91 />
92 <Tool 92 <Tool
93 Name="VCXDCMakeTool" 93 Name="VCXDCMakeTool"
94 /> 94 />
95 <Tool 95 <Tool
96 Name="VCBscMakeTool" 96 Name="VCBscMakeTool"
97 /> 97 />
98 <Tool 98 <Tool
99 Name="VCFxCopTool" 99 Name="VCFxCopTool"
100 /> 100 />
101 <Tool 101 <Tool
102 Name="VCAppVerifierTool" 102 Name="VCAppVerifierTool"
103 /> 103 />
104 <Tool 104 <Tool
105 Name="VCPostBuildEventTool" 105 Name="VCPostBuildEventTool"
106 /> 106 />
107 </Configuration> 107 </Configuration>
108 <Configuration 108 <Configuration
109 Name="Debug|Win32" 109 Name="Debug|Win32"
110 OutputDirectory=".\Debug" 110 OutputDirectory=".\Debug"
111 IntermediateDirectory=".\Debug" 111 IntermediateDirectory=".\Debug"
112 ConfigurationType="1" 112 ConfigurationType="1"
113 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 113 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
114 UseOfMFC="0" 114 UseOfMFC="0"
115 ATLMinimizesCRunTimeLibraryUsage="false" 115 ATLMinimizesCRunTimeLibraryUsage="false"
116 CharacterSet="2" 116 CharacterSet="2"
117 > 117 >
118 <Tool 118 <Tool
119 Name="VCPreBuildEventTool" 119 Name="VCPreBuildEventTool"
120 /> 120 />
121 <Tool 121 <Tool
122 Name="VCCustomBuildTool" 122 Name="VCCustomBuildTool"
123 /> 123 />
124 <Tool 124 <Tool
125 Name="VCXMLDataGeneratorTool" 125 Name="VCXMLDataGeneratorTool"
126 /> 126 />
127 <Tool 127 <Tool
128 Name="VCWebServiceProxyGeneratorTool" 128 Name="VCWebServiceProxyGeneratorTool"
129 /> 129 />
130 <Tool 130 <Tool
131 Name="VCMIDLTool" 131 Name="VCMIDLTool"
132 TypeLibraryName=".\Debug/Meshviewer.tlb" 132 TypeLibraryName=".\Debug/Meshviewer.tlb"
133 HeaderFileName="" 133 HeaderFileName=""
134 /> 134 />
135 <Tool 135 <Tool
136 Name="VCCLCompilerTool" 136 Name="VCCLCompilerTool"
137 Optimization="0" 137 Optimization="0"
138 AdditionalIncludeDirectories="..\..\include" 138 AdditionalIncludeDirectories="..\..\include"
139 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" 139 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
140 BasicRuntimeChecks="3" 140 BasicRuntimeChecks="3"
141 RuntimeLibrary="1" 141 RuntimeLibrary="1"
142 UsePrecompiledHeader="0" 142 UsePrecompiledHeader="0"
143 PrecompiledHeaderFile=".\Debug/Meshviewer.pch" 143 PrecompiledHeaderFile=".\Debug/Meshviewer.pch"
144 AssemblerListingLocation=".\Debug/" 144 AssemblerListingLocation=".\Debug/"
145 ObjectFile=".\Debug/" 145 ObjectFile=".\Debug/"
146 ProgramDataBaseFileName=".\Debug/" 146 ProgramDataBaseFileName=".\Debug/"
147 WarningLevel="3" 147 WarningLevel="3"
148 SuppressStartupBanner="true" 148 SuppressStartupBanner="true"
149 DebugInformationFormat="4" 149 DebugInformationFormat="4"
150 CompileAs="0" 150 CompileAs="0"
151 /> 151 />
152 <Tool 152 <Tool
153 Name="VCManagedResourceCompilerTool" 153 Name="VCManagedResourceCompilerTool"
154 /> 154 />
155 <Tool 155 <Tool
156 Name="VCResourceCompilerTool" 156 Name="VCResourceCompilerTool"
157 PreprocessorDefinitions="_DEBUG" 157 PreprocessorDefinitions="_DEBUG"
158 Culture="3079" 158 Culture="3079"
159 /> 159 />
160 <Tool 160 <Tool
161 Name="VCPreLinkEventTool" 161 Name="VCPreLinkEventTool"
162 /> 162 />
163 <Tool 163 <Tool
164 Name="VCLinkerTool" 164 Name="VCLinkerTool"
165 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe" 165 OutputFile="..\..\bin\Win32-VisualStudio\09.MeshViewer.exe"
166 LinkIncremental="0" 166 LinkIncremental="0"
167 SuppressStartupBanner="true" 167 SuppressStartupBanner="true"
168 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio" 168 AdditionalLibraryDirectories="..\..\lib\Win32-visualstudio"
169 GenerateDebugInformation="true" 169 GenerateDebugInformation="true"
170 ProgramDatabaseFile=".\Debug/MeshViewer.pdb" 170 ProgramDatabaseFile=".\Debug/MeshViewer.pdb"
171 SubSystem="1" 171 SubSystem="1"
172 RandomizedBaseAddress="1" 172 RandomizedBaseAddress="1"
173 DataExecutionPrevention="0" 173 DataExecutionPrevention="0"
174 TargetMachine="1" 174 TargetMachine="1"
175 /> 175 />
176 <Tool 176 <Tool
177 Name="VCALinkTool" 177 Name="VCALinkTool"
178 /> 178 />
179 <Tool 179 <Tool
180 Name="VCManifestTool" 180 Name="VCManifestTool"
181 /> 181 />
182 <Tool 182 <Tool
183 Name="VCXDCMakeTool" 183 Name="VCXDCMakeTool"
184 /> 184 />
185 <Tool 185 <Tool
186 Name="VCBscMakeTool" 186 Name="VCBscMakeTool"
187 /> 187 />
188 <Tool 188 <Tool
189 Name="VCFxCopTool" 189 Name="VCFxCopTool"
190 /> 190 />
191 <Tool 191 <Tool
192 Name="VCAppVerifierTool" 192 Name="VCAppVerifierTool"
193 /> 193 />
194 <Tool 194 <Tool
195 Name="VCPostBuildEventTool" 195 Name="VCPostBuildEventTool"
196 /> 196 />
197 </Configuration> 197 </Configuration>
198 </Configurations> 198 </Configurations>
199 <References> 199 <References>
200 </References> 200 </References>
201 <Files> 201 <Files>
202 <File 202 <File
203 RelativePath="main.cpp" 203 RelativePath="main.cpp"
204 > 204 >
205 <FileConfiguration 205 <FileConfiguration
206 Name="Release|Win32" 206 Name="Release|Win32"
207 > 207 >
208 <Tool 208 <Tool
209 Name="VCCLCompilerTool" 209 Name="VCCLCompilerTool"
210 Optimization="2" 210 Optimization="2"
211 AdditionalIncludeDirectories="" 211 AdditionalIncludeDirectories=""
212 PreprocessorDefinitions="" 212 PreprocessorDefinitions=""
213 /> 213 />
214 </FileConfiguration> 214 </FileConfiguration>
215 <FileConfiguration 215 <FileConfiguration
216 Name="Debug|Win32" 216 Name="Debug|Win32"
217 > 217 >
218 <Tool 218 <Tool
219 Name="VCCLCompilerTool" 219 Name="VCCLCompilerTool"
220 Optimization="0" 220 Optimization="0"
221 AdditionalIncludeDirectories="" 221 AdditionalIncludeDirectories=""
222 PreprocessorDefinitions="" 222 PreprocessorDefinitions=""
223 BasicRuntimeChecks="3" 223 BasicRuntimeChecks="3"
224 /> 224 />
225 </FileConfiguration> 225 </FileConfiguration>
226 </File> 226 </File>
227 </Files> 227 </Files>
228 <Globals> 228 <Globals>
229 </Globals> 229 </Globals>
230</VisualStudioProject> 230</VisualStudioProject>
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/main.cpp b/libraries/irrlicht-1.8/examples/09.Meshviewer/main.cpp
index b9dc550..60592d4 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/main.cpp
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/main.cpp
@@ -1,1042 +1,1042 @@
1/** Example 009 Mesh Viewer 1/** Example 009 Mesh Viewer
2 2
3This tutorial show how to create a more complex application with the engine. 3This tutorial show how to create a more complex application with the engine.
4We construct a simple mesh viewer using the user interface API and the 4We construct a simple mesh viewer using the user interface API and the
5scene management of Irrlicht. The tutorial show how to create and use Buttons, 5scene management of Irrlicht. The tutorial show how to create and use Buttons,
6Windows, Toolbars, Menus, ComboBoxes, Tabcontrols, Editboxes, Images, 6Windows, Toolbars, Menus, ComboBoxes, Tabcontrols, Editboxes, Images,
7MessageBoxes, SkyBoxes, and how to parse XML files with the integrated XML 7MessageBoxes, SkyBoxes, and how to parse XML files with the integrated XML
8reader of the engine. 8reader of the engine.
9 9
10We start like in most other tutorials: Include all necessary header files, add 10We start like in most other tutorials: Include all necessary header files, add
11a comment to let the engine be linked with the right .lib file in Visual 11a comment to let the engine be linked with the right .lib file in Visual
12Studio, and declare some global variables. We also add two 'using namespace' 12Studio, and declare some global variables. We also add two 'using namespace'
13statements, so we do not need to write the whole names of all classes. In this 13statements, so we do not need to write the whole names of all classes. In this
14tutorial, we use a lot stuff from the gui namespace. 14tutorial, we use a lot stuff from the gui namespace.
15*/ 15*/
16#include <irrlicht.h> 16#include <irrlicht.h>
17#include "driverChoice.h" 17#include "driverChoice.h"
18 18
19using namespace irr; 19using namespace irr;
20using namespace gui; 20using namespace gui;
21 21
22#ifdef _MSC_VER 22#ifdef _MSC_VER
23#pragma comment(lib, "Irrlicht.lib") 23#pragma comment(lib, "Irrlicht.lib")
24#endif 24#endif
25 25
26 26
27/* 27/*
28Some global variables used later on 28Some global variables used later on
29*/ 29*/
30IrrlichtDevice *Device = 0; 30IrrlichtDevice *Device = 0;
31core::stringc StartUpModelFile; 31core::stringc StartUpModelFile;
32core::stringw MessageText; 32core::stringw MessageText;
33core::stringw Caption; 33core::stringw Caption;
34scene::ISceneNode* Model = 0; 34scene::ISceneNode* Model = 0;
35scene::ISceneNode* SkyBox = 0; 35scene::ISceneNode* SkyBox = 0;
36bool Octree=false; 36bool Octree=false;
37bool UseLight=false; 37bool UseLight=false;
38 38
39scene::ICameraSceneNode* Camera[2] = {0, 0}; 39scene::ICameraSceneNode* Camera[2] = {0, 0};
40 40
41// Values used to identify individual GUI elements 41// Values used to identify individual GUI elements
42enum 42enum
43{ 43{
44 GUI_ID_DIALOG_ROOT_WINDOW = 0x10000, 44 GUI_ID_DIALOG_ROOT_WINDOW = 0x10000,
45 45
46 GUI_ID_X_SCALE, 46 GUI_ID_X_SCALE,
47 GUI_ID_Y_SCALE, 47 GUI_ID_Y_SCALE,
48 GUI_ID_Z_SCALE, 48 GUI_ID_Z_SCALE,
49 49
50 GUI_ID_OPEN_MODEL, 50 GUI_ID_OPEN_MODEL,
51 GUI_ID_SET_MODEL_ARCHIVE, 51 GUI_ID_SET_MODEL_ARCHIVE,
52 GUI_ID_LOAD_AS_OCTREE, 52 GUI_ID_LOAD_AS_OCTREE,
53 53
54 GUI_ID_SKY_BOX_VISIBLE, 54 GUI_ID_SKY_BOX_VISIBLE,
55 GUI_ID_TOGGLE_DEBUG_INFO, 55 GUI_ID_TOGGLE_DEBUG_INFO,
56 56
57 GUI_ID_DEBUG_OFF, 57 GUI_ID_DEBUG_OFF,
58 GUI_ID_DEBUG_BOUNDING_BOX, 58 GUI_ID_DEBUG_BOUNDING_BOX,
59 GUI_ID_DEBUG_NORMALS, 59 GUI_ID_DEBUG_NORMALS,
60 GUI_ID_DEBUG_SKELETON, 60 GUI_ID_DEBUG_SKELETON,
61 GUI_ID_DEBUG_WIRE_OVERLAY, 61 GUI_ID_DEBUG_WIRE_OVERLAY,
62 GUI_ID_DEBUG_HALF_TRANSPARENT, 62 GUI_ID_DEBUG_HALF_TRANSPARENT,
63 GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES, 63 GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES,
64 GUI_ID_DEBUG_ALL, 64 GUI_ID_DEBUG_ALL,
65 65
66 GUI_ID_MODEL_MATERIAL_SOLID, 66 GUI_ID_MODEL_MATERIAL_SOLID,
67 GUI_ID_MODEL_MATERIAL_TRANSPARENT, 67 GUI_ID_MODEL_MATERIAL_TRANSPARENT,
68 GUI_ID_MODEL_MATERIAL_REFLECTION, 68 GUI_ID_MODEL_MATERIAL_REFLECTION,
69 69
70 GUI_ID_CAMERA_MAYA, 70 GUI_ID_CAMERA_MAYA,
71 GUI_ID_CAMERA_FIRST_PERSON, 71 GUI_ID_CAMERA_FIRST_PERSON,
72 72
73 GUI_ID_POSITION_TEXT, 73 GUI_ID_POSITION_TEXT,
74 74
75 GUI_ID_ABOUT, 75 GUI_ID_ABOUT,
76 GUI_ID_QUIT, 76 GUI_ID_QUIT,
77 77
78 GUI_ID_TEXTUREFILTER, 78 GUI_ID_TEXTUREFILTER,
79 GUI_ID_SKIN_TRANSPARENCY, 79 GUI_ID_SKIN_TRANSPARENCY,
80 GUI_ID_SKIN_ANIMATION_FPS, 80 GUI_ID_SKIN_ANIMATION_FPS,
81 81
82 GUI_ID_BUTTON_SET_SCALE, 82 GUI_ID_BUTTON_SET_SCALE,
83 GUI_ID_BUTTON_SCALE_MUL10, 83 GUI_ID_BUTTON_SCALE_MUL10,
84 GUI_ID_BUTTON_SCALE_DIV10, 84 GUI_ID_BUTTON_SCALE_DIV10,
85 GUI_ID_BUTTON_OPEN_MODEL, 85 GUI_ID_BUTTON_OPEN_MODEL,
86 GUI_ID_BUTTON_SHOW_ABOUT, 86 GUI_ID_BUTTON_SHOW_ABOUT,
87 GUI_ID_BUTTON_SHOW_TOOLBOX, 87 GUI_ID_BUTTON_SHOW_TOOLBOX,
88 GUI_ID_BUTTON_SELECT_ARCHIVE, 88 GUI_ID_BUTTON_SELECT_ARCHIVE,
89 89
90 GUI_ID_ANIMATION_INFO, 90 GUI_ID_ANIMATION_INFO,
91 91
92 // And some magic numbers 92 // And some magic numbers
93 MAX_FRAMERATE = 80, 93 MAX_FRAMERATE = 80,
94 DEFAULT_FRAMERATE = 30 94 DEFAULT_FRAMERATE = 30
95}; 95};
96 96
97 97
98/* 98/*
99Toggle between various cameras 99Toggle between various cameras
100*/ 100*/
101void setActiveCamera(scene::ICameraSceneNode* newActive) 101void setActiveCamera(scene::ICameraSceneNode* newActive)
102{ 102{
103 if (0 == Device) 103 if (0 == Device)
104 return; 104 return;
105 105
106 scene::ICameraSceneNode * active = Device->getSceneManager()->getActiveCamera(); 106 scene::ICameraSceneNode * active = Device->getSceneManager()->getActiveCamera();
107 active->setInputReceiverEnabled(false); 107 active->setInputReceiverEnabled(false);
108 108
109 newActive->setInputReceiverEnabled(true); 109 newActive->setInputReceiverEnabled(true);
110 Device->getSceneManager()->setActiveCamera(newActive); 110 Device->getSceneManager()->setActiveCamera(newActive);
111} 111}
112 112
113/* 113/*
114 Set the skin transparency by changing the alpha values of all skin-colors 114 Set the skin transparency by changing the alpha values of all skin-colors
115*/ 115*/
116void setSkinTransparency(s32 alpha, irr::gui::IGUISkin * skin) 116void setSkinTransparency(s32 alpha, irr::gui::IGUISkin * skin)
117{ 117{
118 for (s32 i=0; i<irr::gui::EGDC_COUNT ; ++i) 118 for (s32 i=0; i<irr::gui::EGDC_COUNT ; ++i)
119 { 119 {
120 video::SColor col = skin->getColor((EGUI_DEFAULT_COLOR)i); 120 video::SColor col = skin->getColor((EGUI_DEFAULT_COLOR)i);
121 col.setAlpha(alpha); 121 col.setAlpha(alpha);
122 skin->setColor((EGUI_DEFAULT_COLOR)i, col); 122 skin->setColor((EGUI_DEFAULT_COLOR)i, col);
123 } 123 }
124} 124}
125 125
126/* 126/*
127 Update the display of the model scaling 127 Update the display of the model scaling
128*/ 128*/
129void updateScaleInfo(scene::ISceneNode* model) 129void updateScaleInfo(scene::ISceneNode* model)
130{ 130{
131 IGUIElement* toolboxWnd = Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true); 131 IGUIElement* toolboxWnd = Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true);
132 if (!toolboxWnd) 132 if (!toolboxWnd)
133 return; 133 return;
134 if (!model) 134 if (!model)
135 { 135 {
136 toolboxWnd->getElementFromId(GUI_ID_X_SCALE, true)->setText( L"-" ); 136 toolboxWnd->getElementFromId(GUI_ID_X_SCALE, true)->setText( L"-" );
137 toolboxWnd->getElementFromId(GUI_ID_Y_SCALE, true)->setText( L"-" ); 137 toolboxWnd->getElementFromId(GUI_ID_Y_SCALE, true)->setText( L"-" );
138 toolboxWnd->getElementFromId(GUI_ID_Z_SCALE, true)->setText( L"-" ); 138 toolboxWnd->getElementFromId(GUI_ID_Z_SCALE, true)->setText( L"-" );
139 } 139 }
140 else 140 else
141 { 141 {
142 core::vector3df scale = model->getScale(); 142 core::vector3df scale = model->getScale();
143 toolboxWnd->getElementFromId(GUI_ID_X_SCALE, true)->setText( core::stringw(scale.X).c_str() ); 143 toolboxWnd->getElementFromId(GUI_ID_X_SCALE, true)->setText( core::stringw(scale.X).c_str() );
144 toolboxWnd->getElementFromId(GUI_ID_Y_SCALE, true)->setText( core::stringw(scale.Y).c_str() ); 144 toolboxWnd->getElementFromId(GUI_ID_Y_SCALE, true)->setText( core::stringw(scale.Y).c_str() );
145 toolboxWnd->getElementFromId(GUI_ID_Z_SCALE, true)->setText( core::stringw(scale.Z).c_str() ); 145 toolboxWnd->getElementFromId(GUI_ID_Z_SCALE, true)->setText( core::stringw(scale.Z).c_str() );
146 } 146 }
147} 147}
148 148
149/* 149/*
150Function showAboutText() displays a messagebox with a caption and 150Function showAboutText() displays a messagebox with a caption and
151a message text. The texts will be stored in the MessageText and Caption 151a message text. The texts will be stored in the MessageText and Caption
152variables at startup. 152variables at startup.
153*/ 153*/
154void showAboutText() 154void showAboutText()
155{ 155{
156 // create modal message box with the text 156 // create modal message box with the text
157 // loaded from the xml file. 157 // loaded from the xml file.
158 Device->getGUIEnvironment()->addMessageBox( 158 Device->getGUIEnvironment()->addMessageBox(
159 Caption.c_str(), MessageText.c_str()); 159 Caption.c_str(), MessageText.c_str());
160} 160}
161 161
162 162
163/* 163/*
164Function loadModel() loads a model and displays it using an 164Function loadModel() loads a model and displays it using an
165addAnimatedMeshSceneNode and the scene manager. Nothing difficult. It also 165addAnimatedMeshSceneNode and the scene manager. Nothing difficult. It also
166displays a short message box, if the model could not be loaded. 166displays a short message box, if the model could not be loaded.
167*/ 167*/
168void loadModel(const c8* fn) 168void loadModel(const c8* fn)
169{ 169{
170 // modify the name if it a .pk3 file 170 // modify the name if it a .pk3 file
171 171
172 io::path filename(fn); 172 io::path filename(fn);
173 173
174 io::path extension; 174 io::path extension;
175 core::getFileNameExtension(extension, filename); 175 core::getFileNameExtension(extension, filename);
176 extension.make_lower(); 176 extension.make_lower();
177 177
178 // if a texture is loaded apply it to the current model.. 178 // if a texture is loaded apply it to the current model..
179 if (extension == ".jpg" || extension == ".pcx" || 179 if (extension == ".jpg" || extension == ".pcx" ||
180 extension == ".png" || extension == ".ppm" || 180 extension == ".png" || extension == ".ppm" ||
181 extension == ".pgm" || extension == ".pbm" || 181 extension == ".pgm" || extension == ".pbm" ||
182 extension == ".psd" || extension == ".tga" || 182 extension == ".psd" || extension == ".tga" ||
183 extension == ".bmp" || extension == ".wal" || 183 extension == ".bmp" || extension == ".wal" ||
184 extension == ".rgb" || extension == ".rgba") 184 extension == ".rgb" || extension == ".rgba")
185 { 185 {
186 video::ITexture * texture = 186 video::ITexture * texture =
187 Device->getVideoDriver()->getTexture( filename ); 187 Device->getVideoDriver()->getTexture( filename );
188 if ( texture && Model ) 188 if ( texture && Model )
189 { 189 {
190 // always reload texture 190 // always reload texture
191 Device->getVideoDriver()->removeTexture(texture); 191 Device->getVideoDriver()->removeTexture(texture);
192 texture = Device->getVideoDriver()->getTexture( filename ); 192 texture = Device->getVideoDriver()->getTexture( filename );
193 193
194 Model->setMaterialTexture(0, texture); 194 Model->setMaterialTexture(0, texture);
195 } 195 }
196 return; 196 return;
197 } 197 }
198 // if a archive is loaded add it to the FileArchive.. 198 // if a archive is loaded add it to the FileArchive..
199 else if (extension == ".pk3" || extension == ".zip" || extension == ".pak" || extension == ".npk") 199 else if (extension == ".pk3" || extension == ".zip" || extension == ".pak" || extension == ".npk")
200 { 200 {
201 Device->getFileSystem()->addFileArchive(filename.c_str()); 201 Device->getFileSystem()->addFileArchive(filename.c_str());
202 return; 202 return;
203 } 203 }
204 204
205 // load a model into the engine 205 // load a model into the engine
206 206
207 if (Model) 207 if (Model)
208 Model->remove(); 208 Model->remove();
209 209
210 Model = 0; 210 Model = 0;
211 211
212 if (extension==".irr") 212 if (extension==".irr")
213 { 213 {
214 core::array<scene::ISceneNode*> outNodes; 214 core::array<scene::ISceneNode*> outNodes;
215 Device->getSceneManager()->loadScene(filename); 215 Device->getSceneManager()->loadScene(filename);
216 Device->getSceneManager()->getSceneNodesFromType(scene::ESNT_ANIMATED_MESH, outNodes); 216 Device->getSceneManager()->getSceneNodesFromType(scene::ESNT_ANIMATED_MESH, outNodes);
217 if (outNodes.size()) 217 if (outNodes.size())
218 Model = outNodes[0]; 218 Model = outNodes[0];
219 return; 219 return;
220 } 220 }
221 221
222 scene::IAnimatedMesh* m = Device->getSceneManager()->getMesh( filename.c_str() ); 222 scene::IAnimatedMesh* m = Device->getSceneManager()->getMesh( filename.c_str() );
223 223
224 if (!m) 224 if (!m)
225 { 225 {
226 // model could not be loaded 226 // model could not be loaded
227 227
228 if (StartUpModelFile != filename) 228 if (StartUpModelFile != filename)
229 Device->getGUIEnvironment()->addMessageBox( 229 Device->getGUIEnvironment()->addMessageBox(
230 Caption.c_str(), L"The model could not be loaded. " \ 230 Caption.c_str(), L"The model could not be loaded. " \
231 L"Maybe it is not a supported file format."); 231 L"Maybe it is not a supported file format.");
232 return; 232 return;
233 } 233 }
234 234
235 // set default material properties 235 // set default material properties
236 236
237 if (Octree) 237 if (Octree)
238 Model = Device->getSceneManager()->addOctreeSceneNode(m->getMesh(0)); 238 Model = Device->getSceneManager()->addOctreeSceneNode(m->getMesh(0));
239 else 239 else
240 { 240 {
241 scene::IAnimatedMeshSceneNode* animModel = Device->getSceneManager()->addAnimatedMeshSceneNode(m); 241 scene::IAnimatedMeshSceneNode* animModel = Device->getSceneManager()->addAnimatedMeshSceneNode(m);
242 animModel->setAnimationSpeed(30); 242 animModel->setAnimationSpeed(30);
243 Model = animModel; 243 Model = animModel;
244 } 244 }
245 Model->setMaterialFlag(video::EMF_LIGHTING, UseLight); 245 Model->setMaterialFlag(video::EMF_LIGHTING, UseLight);
246 Model->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, UseLight); 246 Model->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, UseLight);
247// Model->setMaterialFlag(video::EMF_BACK_FACE_CULLING, false); 247// Model->setMaterialFlag(video::EMF_BACK_FACE_CULLING, false);
248 Model->setDebugDataVisible(scene::EDS_OFF); 248 Model->setDebugDataVisible(scene::EDS_OFF);
249 249
250 // we need to uncheck the menu entries. would be cool to fake a menu event, but 250 // we need to uncheck the menu entries. would be cool to fake a menu event, but
251 // that's not so simple. so we do it brute force 251 // that's not so simple. so we do it brute force
252 gui::IGUIContextMenu* menu = (gui::IGUIContextMenu*)Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_TOGGLE_DEBUG_INFO, true); 252 gui::IGUIContextMenu* menu = (gui::IGUIContextMenu*)Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_TOGGLE_DEBUG_INFO, true);
253 if (menu) 253 if (menu)
254 for(int item = 1; item < 6; ++item) 254 for(int item = 1; item < 6; ++item)
255 menu->setItemChecked(item, false); 255 menu->setItemChecked(item, false);
256 updateScaleInfo(Model); 256 updateScaleInfo(Model);
257} 257}
258 258
259 259
260/* 260/*
261Function createToolBox() creates a toolbox window. In this simple mesh 261Function createToolBox() creates a toolbox window. In this simple mesh
262viewer, this toolbox only contains a tab control with three edit boxes for 262viewer, this toolbox only contains a tab control with three edit boxes for
263changing the scale of the displayed model. 263changing the scale of the displayed model.
264*/ 264*/
265void createToolBox() 265void createToolBox()
266{ 266{
267 // remove tool box if already there 267 // remove tool box if already there
268 IGUIEnvironment* env = Device->getGUIEnvironment(); 268 IGUIEnvironment* env = Device->getGUIEnvironment();
269 IGUIElement* root = env->getRootGUIElement(); 269 IGUIElement* root = env->getRootGUIElement();
270 IGUIElement* e = root->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true); 270 IGUIElement* e = root->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true);
271 if (e) 271 if (e)
272 e->remove(); 272 e->remove();
273 273
274 // create the toolbox window 274 // create the toolbox window
275 IGUIWindow* wnd = env->addWindow(core::rect<s32>(600,45,800,480), 275 IGUIWindow* wnd = env->addWindow(core::rect<s32>(600,45,800,480),
276 false, L"Toolset", 0, GUI_ID_DIALOG_ROOT_WINDOW); 276 false, L"Toolset", 0, GUI_ID_DIALOG_ROOT_WINDOW);
277 277
278 // create tab control and tabs 278 // create tab control and tabs
279 IGUITabControl* tab = env->addTabControl( 279 IGUITabControl* tab = env->addTabControl(
280 core::rect<s32>(2,20,800-602,480-7), wnd, true, true); 280 core::rect<s32>(2,20,800-602,480-7), wnd, true, true);
281 281
282 IGUITab* t1 = tab->addTab(L"Config"); 282 IGUITab* t1 = tab->addTab(L"Config");
283 283
284 // add some edit boxes and a button to tab one 284 // add some edit boxes and a button to tab one
285 env->addStaticText(L"Scale:", 285 env->addStaticText(L"Scale:",
286 core::rect<s32>(10,20,60,45), false, false, t1); 286 core::rect<s32>(10,20,60,45), false, false, t1);
287 env->addStaticText(L"X:", core::rect<s32>(22,48,40,66), false, false, t1); 287 env->addStaticText(L"X:", core::rect<s32>(22,48,40,66), false, false, t1);
288 env->addEditBox(L"1.0", core::rect<s32>(40,46,130,66), true, t1, GUI_ID_X_SCALE); 288 env->addEditBox(L"1.0", core::rect<s32>(40,46,130,66), true, t1, GUI_ID_X_SCALE);
289 env->addStaticText(L"Y:", core::rect<s32>(22,82,40,96), false, false, t1); 289 env->addStaticText(L"Y:", core::rect<s32>(22,82,40,96), false, false, t1);
290 env->addEditBox(L"1.0", core::rect<s32>(40,76,130,96), true, t1, GUI_ID_Y_SCALE); 290 env->addEditBox(L"1.0", core::rect<s32>(40,76,130,96), true, t1, GUI_ID_Y_SCALE);
291 env->addStaticText(L"Z:", core::rect<s32>(22,108,40,126), false, false, t1); 291 env->addStaticText(L"Z:", core::rect<s32>(22,108,40,126), false, false, t1);
292 env->addEditBox(L"1.0", core::rect<s32>(40,106,130,126), true, t1, GUI_ID_Z_SCALE); 292 env->addEditBox(L"1.0", core::rect<s32>(40,106,130,126), true, t1, GUI_ID_Z_SCALE);
293 293
294 env->addButton(core::rect<s32>(10,134,85,165), t1, GUI_ID_BUTTON_SET_SCALE, L"Set"); 294 env->addButton(core::rect<s32>(10,134,85,165), t1, GUI_ID_BUTTON_SET_SCALE, L"Set");
295 295
296 // quick scale buttons 296 // quick scale buttons
297 env->addButton(core::rect<s32>(65,20,95,40), t1, GUI_ID_BUTTON_SCALE_MUL10, L"* 10"); 297 env->addButton(core::rect<s32>(65,20,95,40), t1, GUI_ID_BUTTON_SCALE_MUL10, L"* 10");
298 env->addButton(core::rect<s32>(100,20,130,40), t1, GUI_ID_BUTTON_SCALE_DIV10, L"* 0.1"); 298 env->addButton(core::rect<s32>(100,20,130,40), t1, GUI_ID_BUTTON_SCALE_DIV10, L"* 0.1");
299 299
300 updateScaleInfo(Model); 300 updateScaleInfo(Model);
301 301
302 // add transparency control 302 // add transparency control
303 env->addStaticText(L"GUI Transparency Control:", 303 env->addStaticText(L"GUI Transparency Control:",
304 core::rect<s32>(10,200,150,225), true, false, t1); 304 core::rect<s32>(10,200,150,225), true, false, t1);
305 IGUIScrollBar* scrollbar = env->addScrollBar(true, 305 IGUIScrollBar* scrollbar = env->addScrollBar(true,
306 core::rect<s32>(10,225,150,240), t1, GUI_ID_SKIN_TRANSPARENCY); 306 core::rect<s32>(10,225,150,240), t1, GUI_ID_SKIN_TRANSPARENCY);
307 scrollbar->setMax(255); 307 scrollbar->setMax(255);
308 scrollbar->setPos(255); 308 scrollbar->setPos(255);
309 309
310 // add framerate control 310 // add framerate control
311 env->addStaticText(L":", core::rect<s32>(10,240,150,265), true, false, t1); 311 env->addStaticText(L":", core::rect<s32>(10,240,150,265), true, false, t1);
312 env->addStaticText(L"Framerate:", 312 env->addStaticText(L"Framerate:",
313 core::rect<s32>(12,240,75,265), false, false, t1); 313 core::rect<s32>(12,240,75,265), false, false, t1);
314 // current frame info 314 // current frame info
315 env->addStaticText(L"", core::rect<s32>(75,240,200,265), false, false, t1, 315 env->addStaticText(L"", core::rect<s32>(75,240,200,265), false, false, t1,
316 GUI_ID_ANIMATION_INFO); 316 GUI_ID_ANIMATION_INFO);
317 scrollbar = env->addScrollBar(true, 317 scrollbar = env->addScrollBar(true,
318 core::rect<s32>(10,265,150,280), t1, GUI_ID_SKIN_ANIMATION_FPS); 318 core::rect<s32>(10,265,150,280), t1, GUI_ID_SKIN_ANIMATION_FPS);
319 scrollbar->setMax(MAX_FRAMERATE); 319 scrollbar->setMax(MAX_FRAMERATE);
320 scrollbar->setMin(-MAX_FRAMERATE); 320 scrollbar->setMin(-MAX_FRAMERATE);
321 scrollbar->setPos(DEFAULT_FRAMERATE); 321 scrollbar->setPos(DEFAULT_FRAMERATE);
322 scrollbar->setSmallStep(1); 322 scrollbar->setSmallStep(1);
323} 323}
324 324
325/* 325/*
326Function updateToolBox() is called each frame to update dynamic information in 326Function updateToolBox() is called each frame to update dynamic information in
327the toolbox. 327the toolbox.
328*/ 328*/
329void updateToolBox() 329void updateToolBox()
330{ 330{
331 IGUIEnvironment* env = Device->getGUIEnvironment(); 331 IGUIEnvironment* env = Device->getGUIEnvironment();
332 IGUIElement* root = env->getRootGUIElement(); 332 IGUIElement* root = env->getRootGUIElement();
333 IGUIElement* dlg = root->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true); 333 IGUIElement* dlg = root->getElementFromId(GUI_ID_DIALOG_ROOT_WINDOW, true);
334 if (!dlg ) 334 if (!dlg )
335 return; 335 return;
336 336
337 // update the info we have about the animation of the model 337 // update the info we have about the animation of the model
338 IGUIStaticText * aniInfo = (IGUIStaticText *)(dlg->getElementFromId(GUI_ID_ANIMATION_INFO, true)); 338 IGUIStaticText * aniInfo = (IGUIStaticText *)(dlg->getElementFromId(GUI_ID_ANIMATION_INFO, true));
339 if (aniInfo) 339 if (aniInfo)
340 { 340 {
341 if ( Model && scene::ESNT_ANIMATED_MESH == Model->getType() ) 341 if ( Model && scene::ESNT_ANIMATED_MESH == Model->getType() )
342 { 342 {
343 scene::IAnimatedMeshSceneNode* animatedModel = (scene::IAnimatedMeshSceneNode*)Model; 343 scene::IAnimatedMeshSceneNode* animatedModel = (scene::IAnimatedMeshSceneNode*)Model;
344 344
345 core::stringw str( (s32)core::round_(animatedModel->getAnimationSpeed()) ); 345 core::stringw str( (s32)core::round_(animatedModel->getAnimationSpeed()) );
346 str += L" Frame: "; 346 str += L" Frame: ";
347 str += core::stringw((s32)animatedModel->getFrameNr()); 347 str += core::stringw((s32)animatedModel->getFrameNr());
348 aniInfo->setText(str.c_str()); 348 aniInfo->setText(str.c_str());
349 } 349 }
350 else 350 else
351 aniInfo->setText(L""); 351 aniInfo->setText(L"");
352 } 352 }
353} 353}
354 354
355void onKillFocus() 355void onKillFocus()
356{ 356{
357 // Avoid that the FPS-camera continues moving when the user presses alt-tab while 357 // Avoid that the FPS-camera continues moving when the user presses alt-tab while
358 // moving the camera. 358 // moving the camera.
359 const core::list<scene::ISceneNodeAnimator*>& animators = Camera[1]->getAnimators(); 359 const core::list<scene::ISceneNodeAnimator*>& animators = Camera[1]->getAnimators();
360 core::list<irr::scene::ISceneNodeAnimator*>::ConstIterator iter = animators.begin(); 360 core::list<irr::scene::ISceneNodeAnimator*>::ConstIterator iter = animators.begin();
361 while ( iter != animators.end() ) 361 while ( iter != animators.end() )
362 { 362 {
363 if ( (*iter)->getType() == scene::ESNAT_CAMERA_FPS ) 363 if ( (*iter)->getType() == scene::ESNAT_CAMERA_FPS )
364 { 364 {
365 // we send a key-down event for all keys used by this animator 365 // we send a key-down event for all keys used by this animator
366 scene::ISceneNodeAnimatorCameraFPS * fpsAnimator = static_cast<scene::ISceneNodeAnimatorCameraFPS*>(*iter); 366 scene::ISceneNodeAnimatorCameraFPS * fpsAnimator = static_cast<scene::ISceneNodeAnimatorCameraFPS*>(*iter);
367 const core::array<SKeyMap>& keyMap = fpsAnimator->getKeyMap(); 367 const core::array<SKeyMap>& keyMap = fpsAnimator->getKeyMap();
368 for ( irr::u32 i=0; i< keyMap.size(); ++i ) 368 for ( irr::u32 i=0; i< keyMap.size(); ++i )
369 { 369 {
370 irr::SEvent event; 370 irr::SEvent event;
371 event.EventType = EET_KEY_INPUT_EVENT; 371 event.EventType = EET_KEY_INPUT_EVENT;
372 event.KeyInput.Key = keyMap[i].KeyCode; 372 event.KeyInput.Key = keyMap[i].KeyCode;
373 event.KeyInput.PressedDown = false; 373 event.KeyInput.PressedDown = false;
374 fpsAnimator->OnEvent(event); 374 fpsAnimator->OnEvent(event);
375 } 375 }
376 } 376 }
377 ++iter; 377 ++iter;
378 } 378 }
379} 379}
380 380
381/* 381/*
382Function hasModalDialog() checks if we currently have a modal dialog open. 382Function hasModalDialog() checks if we currently have a modal dialog open.
383*/ 383*/
384bool hasModalDialog() 384bool hasModalDialog()
385{ 385{
386 if ( !Device ) 386 if ( !Device )
387 return false; 387 return false;
388 IGUIEnvironment* env = Device->getGUIEnvironment(); 388 IGUIEnvironment* env = Device->getGUIEnvironment();
389 IGUIElement * focused = env->getFocus(); 389 IGUIElement * focused = env->getFocus();
390 while ( focused ) 390 while ( focused )
391 { 391 {
392 if ( focused->isVisible() && focused->hasType(EGUIET_MODAL_SCREEN) ) 392 if ( focused->isVisible() && focused->hasType(EGUIET_MODAL_SCREEN) )
393 return true; 393 return true;
394 focused = focused->getParent(); 394 focused = focused->getParent();
395 } 395 }
396 return false; 396 return false;
397} 397}
398 398
399/* 399/*
400To get all the events sent by the GUI Elements, we need to create an event 400To get all the events sent by the GUI Elements, we need to create an event
401receiver. This one is really simple. If an event occurs, it checks the id of 401receiver. This one is really simple. If an event occurs, it checks the id of
402the caller and the event type, and starts an action based on these values. For 402the caller and the event type, and starts an action based on these values. For
403example, if a menu item with id GUI_ID_OPEN_MODEL was selected, it opens a file-open-dialog. 403example, if a menu item with id GUI_ID_OPEN_MODEL was selected, it opens a file-open-dialog.
404*/ 404*/
405class MyEventReceiver : public IEventReceiver 405class MyEventReceiver : public IEventReceiver
406{ 406{
407public: 407public:
408 virtual bool OnEvent(const SEvent& event) 408 virtual bool OnEvent(const SEvent& event)
409 { 409 {
410 // Escape swaps Camera Input 410 // Escape swaps Camera Input
411 if (event.EventType == EET_KEY_INPUT_EVENT && 411 if (event.EventType == EET_KEY_INPUT_EVENT &&
412 event.KeyInput.PressedDown == false) 412 event.KeyInput.PressedDown == false)
413 { 413 {
414 if ( OnKeyUp(event.KeyInput.Key) ) 414 if ( OnKeyUp(event.KeyInput.Key) )
415 return true; 415 return true;
416 } 416 }
417 417
418 if (event.EventType == EET_GUI_EVENT) 418 if (event.EventType == EET_GUI_EVENT)
419 { 419 {
420 s32 id = event.GUIEvent.Caller->getID(); 420 s32 id = event.GUIEvent.Caller->getID();
421 IGUIEnvironment* env = Device->getGUIEnvironment(); 421 IGUIEnvironment* env = Device->getGUIEnvironment();
422 422
423 switch(event.GUIEvent.EventType) 423 switch(event.GUIEvent.EventType)
424 { 424 {
425 case EGET_MENU_ITEM_SELECTED: 425 case EGET_MENU_ITEM_SELECTED:
426 // a menu item was clicked 426 // a menu item was clicked
427 OnMenuItemSelected( (IGUIContextMenu*)event.GUIEvent.Caller ); 427 OnMenuItemSelected( (IGUIContextMenu*)event.GUIEvent.Caller );
428 break; 428 break;
429 429
430 case EGET_FILE_SELECTED: 430 case EGET_FILE_SELECTED:
431 { 431 {
432 // load the model file, selected in the file open dialog 432 // load the model file, selected in the file open dialog
433 IGUIFileOpenDialog* dialog = 433 IGUIFileOpenDialog* dialog =
434 (IGUIFileOpenDialog*)event.GUIEvent.Caller; 434 (IGUIFileOpenDialog*)event.GUIEvent.Caller;
435 loadModel(core::stringc(dialog->getFileName()).c_str()); 435 loadModel(core::stringc(dialog->getFileName()).c_str());
436 } 436 }
437 break; 437 break;
438 438
439 case EGET_SCROLL_BAR_CHANGED: 439 case EGET_SCROLL_BAR_CHANGED:
440 440
441 // control skin transparency 441 // control skin transparency
442 if (id == GUI_ID_SKIN_TRANSPARENCY) 442 if (id == GUI_ID_SKIN_TRANSPARENCY)
443 { 443 {
444 const s32 pos = ((IGUIScrollBar*)event.GUIEvent.Caller)->getPos(); 444 const s32 pos = ((IGUIScrollBar*)event.GUIEvent.Caller)->getPos();
445 setSkinTransparency(pos, env->getSkin()); 445 setSkinTransparency(pos, env->getSkin());
446 } 446 }
447 // control animation speed 447 // control animation speed
448 else if (id == GUI_ID_SKIN_ANIMATION_FPS) 448 else if (id == GUI_ID_SKIN_ANIMATION_FPS)
449 { 449 {
450 const s32 pos = ((IGUIScrollBar*)event.GUIEvent.Caller)->getPos(); 450 const s32 pos = ((IGUIScrollBar*)event.GUIEvent.Caller)->getPos();
451 if (scene::ESNT_ANIMATED_MESH == Model->getType()) 451 if (scene::ESNT_ANIMATED_MESH == Model->getType())
452 ((scene::IAnimatedMeshSceneNode*)Model)->setAnimationSpeed((f32)pos); 452 ((scene::IAnimatedMeshSceneNode*)Model)->setAnimationSpeed((f32)pos);
453 } 453 }
454 break; 454 break;
455 455
456 case EGET_COMBO_BOX_CHANGED: 456 case EGET_COMBO_BOX_CHANGED:
457 457
458 // control anti-aliasing/filtering 458 // control anti-aliasing/filtering
459 if (id == GUI_ID_TEXTUREFILTER) 459 if (id == GUI_ID_TEXTUREFILTER)
460 { 460 {
461 OnTextureFilterSelected( (IGUIComboBox*)event.GUIEvent.Caller ); 461 OnTextureFilterSelected( (IGUIComboBox*)event.GUIEvent.Caller );
462 } 462 }
463 break; 463 break;
464 464
465 case EGET_BUTTON_CLICKED: 465 case EGET_BUTTON_CLICKED:
466 466
467 switch(id) 467 switch(id)
468 { 468 {
469 case GUI_ID_BUTTON_SET_SCALE: 469 case GUI_ID_BUTTON_SET_SCALE:
470 { 470 {
471 // set scale 471 // set scale
472 gui::IGUIElement* root = env->getRootGUIElement(); 472 gui::IGUIElement* root = env->getRootGUIElement();
473 core::vector3df scale; 473 core::vector3df scale;
474 core::stringc s; 474 core::stringc s;
475 475
476 s = root->getElementFromId(GUI_ID_X_SCALE, true)->getText(); 476 s = root->getElementFromId(GUI_ID_X_SCALE, true)->getText();
477 scale.X = (f32)atof(s.c_str()); 477 scale.X = (f32)atof(s.c_str());
478 s = root->getElementFromId(GUI_ID_Y_SCALE, true)->getText(); 478 s = root->getElementFromId(GUI_ID_Y_SCALE, true)->getText();
479 scale.Y = (f32)atof(s.c_str()); 479 scale.Y = (f32)atof(s.c_str());
480 s = root->getElementFromId(GUI_ID_Z_SCALE, true)->getText(); 480 s = root->getElementFromId(GUI_ID_Z_SCALE, true)->getText();
481 scale.Z = (f32)atof(s.c_str()); 481 scale.Z = (f32)atof(s.c_str());
482 482
483 if (Model) 483 if (Model)
484 Model->setScale(scale); 484 Model->setScale(scale);
485 updateScaleInfo(Model); 485 updateScaleInfo(Model);
486 } 486 }
487 break; 487 break;
488 case GUI_ID_BUTTON_SCALE_MUL10: 488 case GUI_ID_BUTTON_SCALE_MUL10:
489 if (Model) 489 if (Model)
490 Model->setScale(Model->getScale()*10.f); 490 Model->setScale(Model->getScale()*10.f);
491 updateScaleInfo(Model); 491 updateScaleInfo(Model);
492 break; 492 break;
493 case GUI_ID_BUTTON_SCALE_DIV10: 493 case GUI_ID_BUTTON_SCALE_DIV10:
494 if (Model) 494 if (Model)
495 Model->setScale(Model->getScale()*0.1f); 495 Model->setScale(Model->getScale()*0.1f);
496 updateScaleInfo(Model); 496 updateScaleInfo(Model);
497 break; 497 break;
498 case GUI_ID_BUTTON_OPEN_MODEL: 498 case GUI_ID_BUTTON_OPEN_MODEL:
499 env->addFileOpenDialog(L"Please select a model file to open"); 499 env->addFileOpenDialog(L"Please select a model file to open");
500 break; 500 break;
501 case GUI_ID_BUTTON_SHOW_ABOUT: 501 case GUI_ID_BUTTON_SHOW_ABOUT:
502 showAboutText(); 502 showAboutText();
503 break; 503 break;
504 case GUI_ID_BUTTON_SHOW_TOOLBOX: 504 case GUI_ID_BUTTON_SHOW_TOOLBOX:
505 createToolBox(); 505 createToolBox();
506 break; 506 break;
507 case GUI_ID_BUTTON_SELECT_ARCHIVE: 507 case GUI_ID_BUTTON_SELECT_ARCHIVE:
508 env->addFileOpenDialog(L"Please select your game archive/directory"); 508 env->addFileOpenDialog(L"Please select your game archive/directory");
509 break; 509 break;
510 } 510 }
511 511
512 break; 512 break;
513 default: 513 default:
514 break; 514 break;
515 } 515 }
516 } 516 }
517 517
518 return false; 518 return false;
519 } 519 }
520 520
521 521
522 /* 522 /*
523 Handle key-up events 523 Handle key-up events
524 */ 524 */
525 bool OnKeyUp(irr::EKEY_CODE keyCode) 525 bool OnKeyUp(irr::EKEY_CODE keyCode)
526 { 526 {
527 // Don't handle keys if we have a modal dialog open as it would lead 527 // Don't handle keys if we have a modal dialog open as it would lead
528 // to unexpected application behaviour for the user. 528 // to unexpected application behaviour for the user.
529 if ( hasModalDialog() ) 529 if ( hasModalDialog() )
530 return false; 530 return false;
531 531
532 if (keyCode == irr::KEY_ESCAPE) 532 if (keyCode == irr::KEY_ESCAPE)
533 { 533 {
534 if (Device) 534 if (Device)
535 { 535 {
536 scene::ICameraSceneNode * camera = 536 scene::ICameraSceneNode * camera =
537 Device->getSceneManager()->getActiveCamera(); 537 Device->getSceneManager()->getActiveCamera();
538 if (camera) 538 if (camera)
539 { 539 {
540 camera->setInputReceiverEnabled( !camera->isInputReceiverEnabled() ); 540 camera->setInputReceiverEnabled( !camera->isInputReceiverEnabled() );
541 } 541 }
542 return true; 542 return true;
543 } 543 }
544 } 544 }
545 else if (keyCode == irr::KEY_F1) 545 else if (keyCode == irr::KEY_F1)
546 { 546 {
547 if (Device) 547 if (Device)
548 { 548 {
549 IGUIElement* elem = Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_POSITION_TEXT); 549 IGUIElement* elem = Device->getGUIEnvironment()->getRootGUIElement()->getElementFromId(GUI_ID_POSITION_TEXT);
550 if (elem) 550 if (elem)
551 elem->setVisible(!elem->isVisible()); 551 elem->setVisible(!elem->isVisible());
552 } 552 }
553 } 553 }
554 else if (keyCode == irr::KEY_KEY_M) 554 else if (keyCode == irr::KEY_KEY_M)
555 { 555 {
556 if (Device) 556 if (Device)
557 Device->minimizeWindow(); 557 Device->minimizeWindow();
558 } 558 }
559 else if (keyCode == irr::KEY_KEY_L) 559 else if (keyCode == irr::KEY_KEY_L)
560 { 560 {
561 UseLight=!UseLight; 561 UseLight=!UseLight;
562 if (Model) 562 if (Model)
563 { 563 {
564 Model->setMaterialFlag(video::EMF_LIGHTING, UseLight); 564 Model->setMaterialFlag(video::EMF_LIGHTING, UseLight);
565 Model->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, UseLight); 565 Model->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, UseLight);
566 } 566 }
567 } 567 }
568 return false; 568 return false;
569 } 569 }
570 570
571 571
572 /* 572 /*
573 Handle "menu item clicked" events. 573 Handle "menu item clicked" events.
574 */ 574 */
575 void OnMenuItemSelected( IGUIContextMenu* menu ) 575 void OnMenuItemSelected( IGUIContextMenu* menu )
576 { 576 {
577 s32 id = menu->getItemCommandId(menu->getSelectedItem()); 577 s32 id = menu->getItemCommandId(menu->getSelectedItem());
578 IGUIEnvironment* env = Device->getGUIEnvironment(); 578 IGUIEnvironment* env = Device->getGUIEnvironment();
579 579
580 switch(id) 580 switch(id)
581 { 581 {
582 case GUI_ID_OPEN_MODEL: // FilOnButtonSetScalinge -> Open Model 582 case GUI_ID_OPEN_MODEL: // FilOnButtonSetScalinge -> Open Model
583 env->addFileOpenDialog(L"Please select a model file to open"); 583 env->addFileOpenDialog(L"Please select a model file to open");
584 break; 584 break;
585 case GUI_ID_SET_MODEL_ARCHIVE: // File -> Set Model Archive 585 case GUI_ID_SET_MODEL_ARCHIVE: // File -> Set Model Archive
586 env->addFileOpenDialog(L"Please select your game archive/directory"); 586 env->addFileOpenDialog(L"Please select your game archive/directory");
587 break; 587 break;
588 case GUI_ID_LOAD_AS_OCTREE: // File -> LoadAsOctree 588 case GUI_ID_LOAD_AS_OCTREE: // File -> LoadAsOctree
589 Octree = !Octree; 589 Octree = !Octree;
590 menu->setItemChecked(menu->getSelectedItem(), Octree); 590 menu->setItemChecked(menu->getSelectedItem(), Octree);
591 break; 591 break;
592 case GUI_ID_QUIT: // File -> Quit 592 case GUI_ID_QUIT: // File -> Quit
593 Device->closeDevice(); 593 Device->closeDevice();
594 break; 594 break;
595 case GUI_ID_SKY_BOX_VISIBLE: // View -> Skybox 595 case GUI_ID_SKY_BOX_VISIBLE: // View -> Skybox
596 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 596 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
597 SkyBox->setVisible(!SkyBox->isVisible()); 597 SkyBox->setVisible(!SkyBox->isVisible());
598 break; 598 break;
599 case GUI_ID_DEBUG_OFF: // View -> Debug Information 599 case GUI_ID_DEBUG_OFF: // View -> Debug Information
600 menu->setItemChecked(menu->getSelectedItem()+1, false); 600 menu->setItemChecked(menu->getSelectedItem()+1, false);
601 menu->setItemChecked(menu->getSelectedItem()+2, false); 601 menu->setItemChecked(menu->getSelectedItem()+2, false);
602 menu->setItemChecked(menu->getSelectedItem()+3, false); 602 menu->setItemChecked(menu->getSelectedItem()+3, false);
603 menu->setItemChecked(menu->getSelectedItem()+4, false); 603 menu->setItemChecked(menu->getSelectedItem()+4, false);
604 menu->setItemChecked(menu->getSelectedItem()+5, false); 604 menu->setItemChecked(menu->getSelectedItem()+5, false);
605 menu->setItemChecked(menu->getSelectedItem()+6, false); 605 menu->setItemChecked(menu->getSelectedItem()+6, false);
606 if (Model) 606 if (Model)
607 Model->setDebugDataVisible(scene::EDS_OFF); 607 Model->setDebugDataVisible(scene::EDS_OFF);
608 break; 608 break;
609 case GUI_ID_DEBUG_BOUNDING_BOX: // View -> Debug Information 609 case GUI_ID_DEBUG_BOUNDING_BOX: // View -> Debug Information
610 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 610 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
611 if (Model) 611 if (Model)
612 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_BBOX)); 612 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_BBOX));
613 break; 613 break;
614 case GUI_ID_DEBUG_NORMALS: // View -> Debug Information 614 case GUI_ID_DEBUG_NORMALS: // View -> Debug Information
615 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 615 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
616 if (Model) 616 if (Model)
617 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_NORMALS)); 617 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_NORMALS));
618 break; 618 break;
619 case GUI_ID_DEBUG_SKELETON: // View -> Debug Information 619 case GUI_ID_DEBUG_SKELETON: // View -> Debug Information
620 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 620 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
621 if (Model) 621 if (Model)
622 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_SKELETON)); 622 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_SKELETON));
623 break; 623 break;
624 case GUI_ID_DEBUG_WIRE_OVERLAY: // View -> Debug Information 624 case GUI_ID_DEBUG_WIRE_OVERLAY: // View -> Debug Information
625 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 625 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
626 if (Model) 626 if (Model)
627 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_MESH_WIRE_OVERLAY)); 627 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_MESH_WIRE_OVERLAY));
628 break; 628 break;
629 case GUI_ID_DEBUG_HALF_TRANSPARENT: // View -> Debug Information 629 case GUI_ID_DEBUG_HALF_TRANSPARENT: // View -> Debug Information
630 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 630 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
631 if (Model) 631 if (Model)
632 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_HALF_TRANSPARENCY)); 632 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_HALF_TRANSPARENCY));
633 break; 633 break;
634 case GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES: // View -> Debug Information 634 case GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES: // View -> Debug Information
635 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem())); 635 menu->setItemChecked(menu->getSelectedItem(), !menu->isItemChecked(menu->getSelectedItem()));
636 if (Model) 636 if (Model)
637 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_BBOX_BUFFERS)); 637 Model->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(Model->isDebugDataVisible()^scene::EDS_BBOX_BUFFERS));
638 break; 638 break;
639 case GUI_ID_DEBUG_ALL: // View -> Debug Information 639 case GUI_ID_DEBUG_ALL: // View -> Debug Information
640 menu->setItemChecked(menu->getSelectedItem()-1, true); 640 menu->setItemChecked(menu->getSelectedItem()-1, true);
641 menu->setItemChecked(menu->getSelectedItem()-2, true); 641 menu->setItemChecked(menu->getSelectedItem()-2, true);
642 menu->setItemChecked(menu->getSelectedItem()-3, true); 642 menu->setItemChecked(menu->getSelectedItem()-3, true);
643 menu->setItemChecked(menu->getSelectedItem()-4, true); 643 menu->setItemChecked(menu->getSelectedItem()-4, true);
644 menu->setItemChecked(menu->getSelectedItem()-5, true); 644 menu->setItemChecked(menu->getSelectedItem()-5, true);
645 menu->setItemChecked(menu->getSelectedItem()-6, true); 645 menu->setItemChecked(menu->getSelectedItem()-6, true);
646 if (Model) 646 if (Model)
647 Model->setDebugDataVisible(scene::EDS_FULL); 647 Model->setDebugDataVisible(scene::EDS_FULL);
648 break; 648 break;
649 case GUI_ID_ABOUT: // Help->About 649 case GUI_ID_ABOUT: // Help->About
650 showAboutText(); 650 showAboutText();
651 break; 651 break;
652 case GUI_ID_MODEL_MATERIAL_SOLID: // View -> Material -> Solid 652 case GUI_ID_MODEL_MATERIAL_SOLID: // View -> Material -> Solid
653 if (Model) 653 if (Model)
654 Model->setMaterialType(video::EMT_SOLID); 654 Model->setMaterialType(video::EMT_SOLID);
655 break; 655 break;
656 case GUI_ID_MODEL_MATERIAL_TRANSPARENT: // View -> Material -> Transparent 656 case GUI_ID_MODEL_MATERIAL_TRANSPARENT: // View -> Material -> Transparent
657 if (Model) 657 if (Model)
658 Model->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR); 658 Model->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);
659 break; 659 break;
660 case GUI_ID_MODEL_MATERIAL_REFLECTION: // View -> Material -> Reflection 660 case GUI_ID_MODEL_MATERIAL_REFLECTION: // View -> Material -> Reflection
661 if (Model) 661 if (Model)
662 Model->setMaterialType(video::EMT_SPHERE_MAP); 662 Model->setMaterialType(video::EMT_SPHERE_MAP);
663 break; 663 break;
664 664
665 case GUI_ID_CAMERA_MAYA: 665 case GUI_ID_CAMERA_MAYA:
666 setActiveCamera(Camera[0]); 666 setActiveCamera(Camera[0]);
667 break; 667 break;
668 case GUI_ID_CAMERA_FIRST_PERSON: 668 case GUI_ID_CAMERA_FIRST_PERSON:
669 setActiveCamera(Camera[1]); 669 setActiveCamera(Camera[1]);
670 break; 670 break;
671 } 671 }
672 } 672 }
673 673
674 /* 674 /*
675 Handle the event that one of the texture-filters was selected in the corresponding combobox. 675 Handle the event that one of the texture-filters was selected in the corresponding combobox.
676 */ 676 */
677 void OnTextureFilterSelected( IGUIComboBox* combo ) 677 void OnTextureFilterSelected( IGUIComboBox* combo )
678 { 678 {
679 s32 pos = combo->getSelected(); 679 s32 pos = combo->getSelected();
680 switch (pos) 680 switch (pos)
681 { 681 {
682 case 0: 682 case 0:
683 if (Model) 683 if (Model)
684 { 684 {
685 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, false); 685 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
686 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, false); 686 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, false);
687 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, false); 687 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, false);
688 } 688 }
689 break; 689 break;
690 case 1: 690 case 1:
691 if (Model) 691 if (Model)
692 { 692 {
693 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, true); 693 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, true);
694 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, false); 694 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, false);
695 } 695 }
696 break; 696 break;
697 case 2: 697 case 2:
698 if (Model) 698 if (Model)
699 { 699 {
700 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, false); 700 Model->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
701 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, true); 701 Model->setMaterialFlag(video::EMF_TRILINEAR_FILTER, true);
702 } 702 }
703 break; 703 break;
704 case 3: 704 case 3:
705 if (Model) 705 if (Model)
706 { 706 {
707 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, true); 707 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, true);
708 } 708 }
709 break; 709 break;
710 case 4: 710 case 4:
711 if (Model) 711 if (Model)
712 { 712 {
713 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, false); 713 Model->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, false);
714 } 714 }
715 break; 715 break;
716 } 716 }
717 } 717 }
718}; 718};
719 719
720 720
721/* 721/*
722Most of the hard work is done. We only need to create the Irrlicht Engine 722Most of the hard work is done. We only need to create the Irrlicht Engine
723device and all the buttons, menus and toolbars. We start up the engine as 723device and all the buttons, menus and toolbars. We start up the engine as
724usual, using createDevice(). To make our application catch events, we set our 724usual, using createDevice(). To make our application catch events, we set our
725eventreceiver as parameter. As you can see, there is also a call to 725eventreceiver as parameter. As you can see, there is also a call to
726IrrlichtDevice::setResizeable(). This makes the render window resizeable, which 726IrrlichtDevice::setResizeable(). This makes the render window resizeable, which
727is quite useful for a mesh viewer. 727is quite useful for a mesh viewer.
728*/ 728*/
729int main(int argc, char* argv[]) 729int main(int argc, char* argv[])
730{ 730{
731 // ask user for driver 731 // ask user for driver
732 video::E_DRIVER_TYPE driverType=driverChoiceConsole(); 732 video::E_DRIVER_TYPE driverType=driverChoiceConsole();
733 if (driverType==video::EDT_COUNT) 733 if (driverType==video::EDT_COUNT)
734 return 1; 734 return 1;
735 735
736 // create device and exit if creation failed 736 // create device and exit if creation failed
737 MyEventReceiver receiver; 737 MyEventReceiver receiver;
738 Device = createDevice(driverType, core::dimension2d<u32>(800, 600), 738 Device = createDevice(driverType, core::dimension2d<u32>(800, 600),
739 16, false, false, false, &receiver); 739 16, false, false, false, &receiver);
740 740
741 if (Device == 0) 741 if (Device == 0)
742 return 1; // could not create selected driver. 742 return 1; // could not create selected driver.
743 743
744 Device->setResizable(true); 744 Device->setResizable(true);
745 745
746 Device->setWindowCaption(L"Irrlicht Engine - Loading..."); 746 Device->setWindowCaption(L"Irrlicht Engine - Loading...");
747 747
748 video::IVideoDriver* driver = Device->getVideoDriver(); 748 video::IVideoDriver* driver = Device->getVideoDriver();
749 IGUIEnvironment* env = Device->getGUIEnvironment(); 749 IGUIEnvironment* env = Device->getGUIEnvironment();
750 scene::ISceneManager* smgr = Device->getSceneManager(); 750 scene::ISceneManager* smgr = Device->getSceneManager();
751 smgr->getParameters()->setAttribute(scene::COLLADA_CREATE_SCENE_INSTANCES, true); 751 smgr->getParameters()->setAttribute(scene::COLLADA_CREATE_SCENE_INSTANCES, true);
752 752
753 driver->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT, true); 753 driver->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT, true);
754 754
755 smgr->addLightSceneNode(0, core::vector3df(200,200,200), 755 smgr->addLightSceneNode(0, core::vector3df(200,200,200),
756 video::SColorf(1.0f,1.0f,1.0f),2000); 756 video::SColorf(1.0f,1.0f,1.0f),2000);
757 smgr->setAmbientLight(video::SColorf(0.3f,0.3f,0.3f)); 757 smgr->setAmbientLight(video::SColorf(0.3f,0.3f,0.3f));
758 // add our media directory as "search path" 758 // add our media directory as "search path"
759 Device->getFileSystem()->addFileArchive("../../media/"); 759 Device->getFileSystem()->addFileArchive("../../media/");
760 760
761 /* 761 /*
762 The next step is to read the configuration file. It is stored in the xml 762 The next step is to read the configuration file. It is stored in the xml
763 format and looks a little bit like this: 763 format and looks a little bit like this:
764 764
765 @verbatim 765 @verbatim
766 <?xml version="1.0"?> 766 <?xml version="1.0"?>
767 <config> 767 <config>
768 <startUpModel file="some filename" /> 768 <startUpModel file="some filename" />
769 <messageText caption="Irrlicht Engine Mesh Viewer"> 769 <messageText caption="Irrlicht Engine Mesh Viewer">
770 Hello! 770 Hello!
771 </messageText> 771 </messageText>
772 </config> 772 </config>
773 @endverbatim 773 @endverbatim
774 774
775 We need the data stored in there to be written into the global variables 775 We need the data stored in there to be written into the global variables
776 StartUpModelFile, MessageText and Caption. This is now done using the 776 StartUpModelFile, MessageText and Caption. This is now done using the
777 Irrlicht Engine integrated XML parser: 777 Irrlicht Engine integrated XML parser:
778 */ 778 */
779 779
780 // read configuration from xml file 780 // read configuration from xml file
781 781
782 io::IXMLReader* xml = Device->getFileSystem()->createXMLReader( L"config.xml"); 782 io::IXMLReader* xml = Device->getFileSystem()->createXMLReader( L"config.xml");
783 783
784 while(xml && xml->read()) 784 while(xml && xml->read())
785 { 785 {
786 switch(xml->getNodeType()) 786 switch(xml->getNodeType())
787 { 787 {
788 case io::EXN_TEXT: 788 case io::EXN_TEXT:
789 // in this xml file, the only text which occurs is the 789 // in this xml file, the only text which occurs is the
790 // messageText 790 // messageText
791 MessageText = xml->getNodeData(); 791 MessageText = xml->getNodeData();
792 break; 792 break;
793 case io::EXN_ELEMENT: 793 case io::EXN_ELEMENT:
794 { 794 {
795 if (core::stringw("startUpModel") == xml->getNodeName()) 795 if (core::stringw("startUpModel") == xml->getNodeName())
796 StartUpModelFile = xml->getAttributeValue(L"file"); 796 StartUpModelFile = xml->getAttributeValue(L"file");
797 else 797 else
798 if (core::stringw("messageText") == xml->getNodeName()) 798 if (core::stringw("messageText") == xml->getNodeName())
799 Caption = xml->getAttributeValue(L"caption"); 799 Caption = xml->getAttributeValue(L"caption");
800 } 800 }
801 break; 801 break;
802 default: 802 default:
803 break; 803 break;
804 } 804 }
805 } 805 }
806 806
807 if (xml) 807 if (xml)
808 xml->drop(); // don't forget to delete the xml reader 808 xml->drop(); // don't forget to delete the xml reader
809 809
810 if (argc > 1) 810 if (argc > 1)
811 StartUpModelFile = argv[1]; 811 StartUpModelFile = argv[1];
812 812
813 /* 813 /*
814 That wasn't difficult. Now we'll set a nicer font and create the Menu. 814 That wasn't difficult. Now we'll set a nicer font and create the Menu.
815 It is possible to create submenus for every menu item. The call 815 It is possible to create submenus for every menu item. The call
816 menu->addItem(L"File", -1, true, true); for example adds a new menu 816 menu->addItem(L"File", -1, true, true); for example adds a new menu
817 Item with the name "File" and the id -1. The following parameter says 817 Item with the name "File" and the id -1. The following parameter says
818 that the menu item should be enabled, and the last one says, that there 818 that the menu item should be enabled, and the last one says, that there
819 should be a submenu. The submenu can now be accessed with 819 should be a submenu. The submenu can now be accessed with
820 menu->getSubMenu(0), because the "File" entry is the menu item with 820 menu->getSubMenu(0), because the "File" entry is the menu item with
821 index 0. 821 index 0.
822 */ 822 */
823 823
824 // set a nicer font 824 // set a nicer font
825 825
826 IGUISkin* skin = env->getSkin(); 826 IGUISkin* skin = env->getSkin();
827 IGUIFont* font = env->getFont("fonthaettenschweiler.bmp"); 827 IGUIFont* font = env->getFont("fonthaettenschweiler.bmp");
828 if (font) 828 if (font)
829 skin->setFont(font); 829 skin->setFont(font);
830 830
831 // create menu 831 // create menu
832 gui::IGUIContextMenu* menu = env->addMenu(); 832 gui::IGUIContextMenu* menu = env->addMenu();
833 menu->addItem(L"File", -1, true, true); 833 menu->addItem(L"File", -1, true, true);
834 menu->addItem(L"View", -1, true, true); 834 menu->addItem(L"View", -1, true, true);
835 menu->addItem(L"Camera", -1, true, true); 835 menu->addItem(L"Camera", -1, true, true);
836 menu->addItem(L"Help", -1, true, true); 836 menu->addItem(L"Help", -1, true, true);
837 837
838 gui::IGUIContextMenu* submenu; 838 gui::IGUIContextMenu* submenu;
839 submenu = menu->getSubMenu(0); 839 submenu = menu->getSubMenu(0);
840 submenu->addItem(L"Open Model File & Texture...", GUI_ID_OPEN_MODEL); 840 submenu->addItem(L"Open Model File & Texture...", GUI_ID_OPEN_MODEL);
841 submenu->addItem(L"Set Model Archive...", GUI_ID_SET_MODEL_ARCHIVE); 841 submenu->addItem(L"Set Model Archive...", GUI_ID_SET_MODEL_ARCHIVE);
842 submenu->addItem(L"Load as Octree", GUI_ID_LOAD_AS_OCTREE); 842 submenu->addItem(L"Load as Octree", GUI_ID_LOAD_AS_OCTREE);
843 submenu->addSeparator(); 843 submenu->addSeparator();
844 submenu->addItem(L"Quit", GUI_ID_QUIT); 844 submenu->addItem(L"Quit", GUI_ID_QUIT);
845 845
846 submenu = menu->getSubMenu(1); 846 submenu = menu->getSubMenu(1);
847 submenu->addItem(L"sky box visible", GUI_ID_SKY_BOX_VISIBLE, true, false, true); 847 submenu->addItem(L"sky box visible", GUI_ID_SKY_BOX_VISIBLE, true, false, true);
848 submenu->addItem(L"toggle model debug information", GUI_ID_TOGGLE_DEBUG_INFO, true, true); 848 submenu->addItem(L"toggle model debug information", GUI_ID_TOGGLE_DEBUG_INFO, true, true);
849 submenu->addItem(L"model material", -1, true, true ); 849 submenu->addItem(L"model material", -1, true, true );
850 850
851 submenu = submenu->getSubMenu(1); 851 submenu = submenu->getSubMenu(1);
852 submenu->addItem(L"Off", GUI_ID_DEBUG_OFF); 852 submenu->addItem(L"Off", GUI_ID_DEBUG_OFF);
853 submenu->addItem(L"Bounding Box", GUI_ID_DEBUG_BOUNDING_BOX); 853 submenu->addItem(L"Bounding Box", GUI_ID_DEBUG_BOUNDING_BOX);
854 submenu->addItem(L"Normals", GUI_ID_DEBUG_NORMALS); 854 submenu->addItem(L"Normals", GUI_ID_DEBUG_NORMALS);
855 submenu->addItem(L"Skeleton", GUI_ID_DEBUG_SKELETON); 855 submenu->addItem(L"Skeleton", GUI_ID_DEBUG_SKELETON);
856 submenu->addItem(L"Wire overlay", GUI_ID_DEBUG_WIRE_OVERLAY); 856 submenu->addItem(L"Wire overlay", GUI_ID_DEBUG_WIRE_OVERLAY);
857 submenu->addItem(L"Half-Transparent", GUI_ID_DEBUG_HALF_TRANSPARENT); 857 submenu->addItem(L"Half-Transparent", GUI_ID_DEBUG_HALF_TRANSPARENT);
858 submenu->addItem(L"Buffers bounding boxes", GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES); 858 submenu->addItem(L"Buffers bounding boxes", GUI_ID_DEBUG_BUFFERS_BOUNDING_BOXES);
859 submenu->addItem(L"All", GUI_ID_DEBUG_ALL); 859 submenu->addItem(L"All", GUI_ID_DEBUG_ALL);
860 860
861 submenu = menu->getSubMenu(1)->getSubMenu(2); 861 submenu = menu->getSubMenu(1)->getSubMenu(2);
862 submenu->addItem(L"Solid", GUI_ID_MODEL_MATERIAL_SOLID); 862 submenu->addItem(L"Solid", GUI_ID_MODEL_MATERIAL_SOLID);
863 submenu->addItem(L"Transparent", GUI_ID_MODEL_MATERIAL_TRANSPARENT); 863 submenu->addItem(L"Transparent", GUI_ID_MODEL_MATERIAL_TRANSPARENT);
864 submenu->addItem(L"Reflection", GUI_ID_MODEL_MATERIAL_REFLECTION); 864 submenu->addItem(L"Reflection", GUI_ID_MODEL_MATERIAL_REFLECTION);
865 865
866 submenu = menu->getSubMenu(2); 866 submenu = menu->getSubMenu(2);
867 submenu->addItem(L"Maya Style", GUI_ID_CAMERA_MAYA); 867 submenu->addItem(L"Maya Style", GUI_ID_CAMERA_MAYA);
868 submenu->addItem(L"First Person", GUI_ID_CAMERA_FIRST_PERSON); 868 submenu->addItem(L"First Person", GUI_ID_CAMERA_FIRST_PERSON);
869 869
870 submenu = menu->getSubMenu(3); 870 submenu = menu->getSubMenu(3);
871 submenu->addItem(L"About", GUI_ID_ABOUT); 871 submenu->addItem(L"About", GUI_ID_ABOUT);
872 872
873 /* 873 /*
874 Below the menu we want a toolbar, onto which we can place colored 874 Below the menu we want a toolbar, onto which we can place colored
875 buttons and important looking stuff like a senseless combobox. 875 buttons and important looking stuff like a senseless combobox.
876 */ 876 */
877 877
878 // create toolbar 878 // create toolbar
879 879
880 gui::IGUIToolBar* bar = env->addToolBar(); 880 gui::IGUIToolBar* bar = env->addToolBar();
881 881
882 video::ITexture* image = driver->getTexture("open.png"); 882 video::ITexture* image = driver->getTexture("open.png");
883 bar->addButton(GUI_ID_BUTTON_OPEN_MODEL, 0, L"Open a model",image, 0, false, true); 883 bar->addButton(GUI_ID_BUTTON_OPEN_MODEL, 0, L"Open a model",image, 0, false, true);
884 884
885 image = driver->getTexture("tools.png"); 885 image = driver->getTexture("tools.png");
886 bar->addButton(GUI_ID_BUTTON_SHOW_TOOLBOX, 0, L"Open Toolset",image, 0, false, true); 886 bar->addButton(GUI_ID_BUTTON_SHOW_TOOLBOX, 0, L"Open Toolset",image, 0, false, true);
887 887
888 image = driver->getTexture("zip.png"); 888 image = driver->getTexture("zip.png");
889 bar->addButton(GUI_ID_BUTTON_SELECT_ARCHIVE, 0, L"Set Model Archive",image, 0, false, true); 889 bar->addButton(GUI_ID_BUTTON_SELECT_ARCHIVE, 0, L"Set Model Archive",image, 0, false, true);
890 890
891 image = driver->getTexture("help.png"); 891 image = driver->getTexture("help.png");
892 bar->addButton(GUI_ID_BUTTON_SHOW_ABOUT, 0, L"Open Help", image, 0, false, true); 892 bar->addButton(GUI_ID_BUTTON_SHOW_ABOUT, 0, L"Open Help", image, 0, false, true);
893 893
894 // create a combobox for texture filters 894 // create a combobox for texture filters
895 895
896 gui::IGUIComboBox* box = env->addComboBox(core::rect<s32>(250,4,350,23), bar, GUI_ID_TEXTUREFILTER); 896 gui::IGUIComboBox* box = env->addComboBox(core::rect<s32>(250,4,350,23), bar, GUI_ID_TEXTUREFILTER);
897 box->addItem(L"No filtering"); 897 box->addItem(L"No filtering");
898 box->addItem(L"Bilinear"); 898 box->addItem(L"Bilinear");
899 box->addItem(L"Trilinear"); 899 box->addItem(L"Trilinear");
900 box->addItem(L"Anisotropic"); 900 box->addItem(L"Anisotropic");
901 box->addItem(L"Isotropic"); 901 box->addItem(L"Isotropic");
902 902
903 /* 903 /*
904 To make the editor look a little bit better, we disable transparent gui 904 To make the editor look a little bit better, we disable transparent gui
905 elements, and add an Irrlicht Engine logo. In addition, a text showing 905 elements, and add an Irrlicht Engine logo. In addition, a text showing
906 the current frames per second value is created and the window caption is 906 the current frames per second value is created and the window caption is
907 changed. 907 changed.
908 */ 908 */
909 909
910 // disable alpha 910 // disable alpha
911 911
912 for (s32 i=0; i<gui::EGDC_COUNT ; ++i) 912 for (s32 i=0; i<gui::EGDC_COUNT ; ++i)
913 { 913 {
914 video::SColor col = env->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i); 914 video::SColor col = env->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
915 col.setAlpha(255); 915 col.setAlpha(255);
916 env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col); 916 env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
917 } 917 }
918 918
919 // add a tabcontrol 919 // add a tabcontrol
920 920
921 createToolBox(); 921 createToolBox();
922 922
923 // create fps text 923 // create fps text
924 924
925 IGUIStaticText* fpstext = env->addStaticText(L"", 925 IGUIStaticText* fpstext = env->addStaticText(L"",
926 core::rect<s32>(400,4,570,23), true, false, bar); 926 core::rect<s32>(400,4,570,23), true, false, bar);
927 927
928 IGUIStaticText* postext = env->addStaticText(L"", 928 IGUIStaticText* postext = env->addStaticText(L"",
929 core::rect<s32>(10,50,470,80),false, false, 0, GUI_ID_POSITION_TEXT); 929 core::rect<s32>(10,50,470,80),false, false, 0, GUI_ID_POSITION_TEXT);
930 postext->setVisible(false); 930 postext->setVisible(false);
931 931
932 // set window caption 932 // set window caption
933 933
934 Caption += " - ["; 934 Caption += " - [";
935 Caption += driver->getName(); 935 Caption += driver->getName();
936 Caption += "]"; 936 Caption += "]";
937 Device->setWindowCaption(Caption.c_str()); 937 Device->setWindowCaption(Caption.c_str());
938 938
939 /* 939 /*
940 That's nearly the whole application. We simply show the about message 940 That's nearly the whole application. We simply show the about message
941 box at start up, and load the first model. To make everything look 941 box at start up, and load the first model. To make everything look
942 better, a skybox is created and a user controlled camera, to make the 942 better, a skybox is created and a user controlled camera, to make the
943 application a little bit more interactive. Finally, everything is drawn 943 application a little bit more interactive. Finally, everything is drawn
944 in a standard drawing loop. 944 in a standard drawing loop.
945 */ 945 */
946 946
947 // show about message box and load default model 947 // show about message box and load default model
948 if (argc==1) 948 if (argc==1)
949 showAboutText(); 949 showAboutText();
950 loadModel(StartUpModelFile.c_str()); 950 loadModel(StartUpModelFile.c_str());
951 951
952 // add skybox 952 // add skybox
953 953
954 SkyBox = smgr->addSkyBoxSceneNode( 954 SkyBox = smgr->addSkyBoxSceneNode(
955 driver->getTexture("irrlicht2_up.jpg"), 955 driver->getTexture("irrlicht2_up.jpg"),
956 driver->getTexture("irrlicht2_dn.jpg"), 956 driver->getTexture("irrlicht2_dn.jpg"),
957 driver->getTexture("irrlicht2_lf.jpg"), 957 driver->getTexture("irrlicht2_lf.jpg"),
958 driver->getTexture("irrlicht2_rt.jpg"), 958 driver->getTexture("irrlicht2_rt.jpg"),
959 driver->getTexture("irrlicht2_ft.jpg"), 959 driver->getTexture("irrlicht2_ft.jpg"),
960 driver->getTexture("irrlicht2_bk.jpg")); 960 driver->getTexture("irrlicht2_bk.jpg"));
961 961
962 // add a camera scene node 962 // add a camera scene node
963 Camera[0] = smgr->addCameraSceneNodeMaya(); 963 Camera[0] = smgr->addCameraSceneNodeMaya();
964 Camera[0]->setFarValue(20000.f); 964 Camera[0]->setFarValue(20000.f);
965 // Maya cameras reposition themselves relative to their target, so target the location 965 // Maya cameras reposition themselves relative to their target, so target the location
966 // where the mesh scene node is placed. 966 // where the mesh scene node is placed.
967 Camera[0]->setTarget(core::vector3df(0,30,0)); 967 Camera[0]->setTarget(core::vector3df(0,30,0));
968 968
969 Camera[1] = smgr->addCameraSceneNodeFPS(); 969 Camera[1] = smgr->addCameraSceneNodeFPS();
970 Camera[1]->setFarValue(20000.f); 970 Camera[1]->setFarValue(20000.f);
971 Camera[1]->setPosition(core::vector3df(0,0,-70)); 971 Camera[1]->setPosition(core::vector3df(0,0,-70));
972 Camera[1]->setTarget(core::vector3df(0,30,0)); 972 Camera[1]->setTarget(core::vector3df(0,30,0));
973 973
974 setActiveCamera(Camera[0]); 974 setActiveCamera(Camera[0]);
975 975
976 // load the irrlicht engine logo 976 // load the irrlicht engine logo
977 IGUIImage *img = 977 IGUIImage *img =
978 env->addImage(driver->getTexture("irrlichtlogo2.png"), 978 env->addImage(driver->getTexture("irrlichtlogo2.png"),
979 core::position2d<s32>(10, driver->getScreenSize().Height - 128)); 979 core::position2d<s32>(10, driver->getScreenSize().Height - 128));
980 980
981 // lock the logo's edges to the bottom left corner of the screen 981 // lock the logo's edges to the bottom left corner of the screen
982 img->setAlignment(EGUIA_UPPERLEFT, EGUIA_UPPERLEFT, 982 img->setAlignment(EGUIA_UPPERLEFT, EGUIA_UPPERLEFT,
983 EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT); 983 EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT);
984 984
985 // remember state so we notice when the window does lose the focus 985 // remember state so we notice when the window does lose the focus
986 bool hasFocus = Device->isWindowFocused(); 986 bool hasFocus = Device->isWindowFocused();
987 987
988 // draw everything 988 // draw everything
989 989
990 while(Device->run() && driver) 990 while(Device->run() && driver)
991 { 991 {
992 // Catch focus changes (workaround until Irrlicht has events for this) 992 // Catch focus changes (workaround until Irrlicht has events for this)
993 bool focused = Device->isWindowFocused(); 993 bool focused = Device->isWindowFocused();
994 if ( hasFocus && !focused ) 994 if ( hasFocus && !focused )
995 onKillFocus(); 995 onKillFocus();
996 hasFocus = focused; 996 hasFocus = focused;
997 997
998 if (Device->isWindowActive()) 998 if (Device->isWindowActive())
999 { 999 {
1000 driver->beginScene(true, true, video::SColor(150,50,50,50)); 1000 driver->beginScene(true, true, video::SColor(150,50,50,50));
1001 1001
1002 smgr->drawAll(); 1002 smgr->drawAll();
1003 env->drawAll(); 1003 env->drawAll();
1004 1004
1005 driver->endScene(); 1005 driver->endScene();
1006 1006
1007 // update information about current frame-rate 1007 // update information about current frame-rate
1008 core::stringw str(L"FPS: "); 1008 core::stringw str(L"FPS: ");
1009 str.append(core::stringw(driver->getFPS())); 1009 str.append(core::stringw(driver->getFPS()));
1010 str += L" Tris: "; 1010 str += L" Tris: ";
1011 str.append(core::stringw(driver->getPrimitiveCountDrawn())); 1011 str.append(core::stringw(driver->getPrimitiveCountDrawn()));
1012 fpstext->setText(str.c_str()); 1012 fpstext->setText(str.c_str());
1013 1013
1014 // update information about the active camera 1014 // update information about the active camera
1015 scene::ICameraSceneNode* cam = Device->getSceneManager()->getActiveCamera(); 1015 scene::ICameraSceneNode* cam = Device->getSceneManager()->getActiveCamera();
1016 str = L"Pos: "; 1016 str = L"Pos: ";
1017 str.append(core::stringw(cam->getPosition().X)); 1017 str.append(core::stringw(cam->getPosition().X));
1018 str += L" "; 1018 str += L" ";
1019 str.append(core::stringw(cam->getPosition().Y)); 1019 str.append(core::stringw(cam->getPosition().Y));
1020 str += L" "; 1020 str += L" ";
1021 str.append(core::stringw(cam->getPosition().Z)); 1021 str.append(core::stringw(cam->getPosition().Z));
1022 str += L" Tgt: "; 1022 str += L" Tgt: ";
1023 str.append(core::stringw(cam->getTarget().X)); 1023 str.append(core::stringw(cam->getTarget().X));
1024 str += L" "; 1024 str += L" ";
1025 str.append(core::stringw(cam->getTarget().Y)); 1025 str.append(core::stringw(cam->getTarget().Y));
1026 str += L" "; 1026 str += L" ";
1027 str.append(core::stringw(cam->getTarget().Z)); 1027 str.append(core::stringw(cam->getTarget().Z));
1028 postext->setText(str.c_str()); 1028 postext->setText(str.c_str());
1029 1029
1030 // update the tool dialog 1030 // update the tool dialog
1031 updateToolBox(); 1031 updateToolBox();
1032 } 1032 }
1033 else 1033 else
1034 Device->yield(); 1034 Device->yield();
1035 } 1035 }
1036 1036
1037 Device->drop(); 1037 Device->drop();
1038 return 0; 1038 return 0;
1039} 1039}
1040 1040
1041/* 1041/*
1042**/ 1042**/
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/resource.h b/libraries/irrlicht-1.8/examples/09.Meshviewer/resource.h
index a8e8616..4eabbb3 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/resource.h
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/resource.h
@@ -1,16 +1,16 @@
1//{{NO_DEPENDENCIES}} 1//{{NO_DEPENDENCIES}}
2// Microsoft Visual C++ generated include file. 2// Microsoft Visual C++ generated include file.
3// Used by 9.Meshviewer.rc 3// Used by 9.Meshviewer.rc
4// 4//
5#define IDI_ICON1 101 5#define IDI_ICON1 101
6 6
7// Next default values for new objects 7// Next default values for new objects
8// 8//
9#ifdef APSTUDIO_INVOKED 9#ifdef APSTUDIO_INVOKED
10#ifndef APSTUDIO_READONLY_SYMBOLS 10#ifndef APSTUDIO_READONLY_SYMBOLS
11#define _APS_NEXT_RESOURCE_VALUE 102 11#define _APS_NEXT_RESOURCE_VALUE 102
12#define _APS_NEXT_COMMAND_VALUE 40001 12#define _APS_NEXT_COMMAND_VALUE 40001
13#define _APS_NEXT_CONTROL_VALUE 1001 13#define _APS_NEXT_CONTROL_VALUE 1001
14#define _APS_NEXT_SYMED_VALUE 101 14#define _APS_NEXT_SYMED_VALUE 101
15#endif 15#endif
16#endif 16#endif
diff --git a/libraries/irrlicht-1.8/examples/09.Meshviewer/tutorial.html b/libraries/irrlicht-1.8/examples/09.Meshviewer/tutorial.html
index d296b6c..a17db9f 100644
--- a/libraries/irrlicht-1.8/examples/09.Meshviewer/tutorial.html
+++ b/libraries/irrlicht-1.8/examples/09.Meshviewer/tutorial.html
@@ -1,182 +1,182 @@
1<html> 1<html>
2<head> 2<head>
3<title>Irrlicht Engine Tutorial</title> 3<title>Irrlicht Engine Tutorial</title>
4<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 4<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5</head> 5</head>
6 6
7<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> 7<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
8<br> 8<br>
9<table width="95%" border="0" cellspacing="0" cellpadding="2" align="center"> 9<table width="95%" border="0" cellspacing="0" cellpadding="2" align="center">
10 <tr> 10 <tr>
11 <td bgcolor="#666699" width="10"><b><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="../../media/irrlichtlogo.jpg" width="88" height="31" border="0"></a></b></td> 11 <td bgcolor="#666699" width="10"><b><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="../../media/irrlichtlogo.jpg" width="88" height="31" border="0"></a></b></td>
12 <td bgcolor="#666699" width="100%"> 12 <td bgcolor="#666699" width="100%">
13<div align="center"> 13<div align="center">
14 <div align="left"><b><font color="#FFFFFF">Tutorial 9. Mesh Viewer</font></b></div> 14 <div align="left"><b><font color="#FFFFFF">Tutorial 9. Mesh Viewer</font></b></div>
15 </div> 15 </div>
16 </td> 16 </td>
17 </tr> 17 </tr>
18 <tr bgcolor="#eeeeff"> 18 <tr bgcolor="#eeeeff">
19 <td height="90" colspan="2"> 19 <td height="90" colspan="2">
20 <div align="left"> 20 <div align="left">
21 <p> This tutorial shows how to create a more complex application with 21 <p> This tutorial shows how to create a more complex application with
22 the engine. We construct a simple mesh viewer using the user interface 22 the engine. We construct a simple mesh viewer using the user interface
23 API and the scenemanagement of Irrlicht.<br> 23 API and the scenemanagement of Irrlicht.<br>
24 The tutorial shows how to create and use Buttons, Windows, Toolbars, 24 The tutorial shows how to create and use Buttons, Windows, Toolbars,
25 Menus, ComboBoxes, Tabcontrols, Editboxes, Images, MessageBoxes, SkyBoxes, 25 Menus, ComboBoxes, Tabcontrols, Editboxes, Images, MessageBoxes, SkyBoxes,
26 and how to parse XML files with the integrated XML reader of the engine.</p> 26 and how to parse XML files with the integrated XML reader of the engine.</p>
27 <p>The program which is described here will look like this:</p> 27 <p>The program which is described here will look like this:</p>
28 <p align="center"><img src="../../media/009shot.jpg" width="260" height="203"><br> 28 <p align="center"><img src="../../media/009shot.jpg" width="260" height="203"><br>
29 </p> 29 </p>
30 </div> 30 </div>
31 </td> 31 </td>
32 </tr> 32 </tr>
33</table> 33</table>
34<br> 34<br>
35<table width="95%" border="0" cellspacing="0" cellpadding="2" align="center"> 35<table width="95%" border="0" cellspacing="0" cellpadding="2" align="center">
36 <tr> 36 <tr>
37 <td bgcolor="#666699"> <b><font color="#FFFFFF">Lets start!</font></b></td> 37 <td bgcolor="#666699"> <b><font color="#FFFFFF">Lets start!</font></b></td>
38 </tr> 38 </tr>
39 <tr> 39 <tr>
40 <td height="90" bgcolor="#eeeeff" valign="top"> <div align="left"> 40 <td height="90" bgcolor="#eeeeff" valign="top"> <div align="left">
41 <div align="left"> 41 <div align="left">
42 <p>We start like in most other tutorials: Include all nesessary header 42 <p>We start like in most other tutorials: Include all nesessary header
43 files, add a comment to let the engine be linked with the right .lib 43 files, add a comment to let the engine be linked with the right .lib
44 file in Visual Studio, and deklare some global variables. We also 44 file in Visual Studio, and deklare some global variables. We also
45 add two 'using namespece' statements, so we do not need to write the 45 add two 'using namespece' statements, so we do not need to write the
46 whole names of all classes. In this tutorial, we use a lot stuff from 46 whole names of all classes. In this tutorial, we use a lot stuff from
47 the gui namespace.</p> 47 the gui namespace.</p>
48 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 48 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
49 <tr> 49 <tr>
50 <td> <pre>#include &lt;irrlicht.h&gt;<br>#include &lt;iostream&gt;<br><br>using namespace irr;<br>using namespace gui;<br><br>#pragma comment(lib, &quot;Irrlicht.lib&quot;)<br><br>IrrlichtDevice *Device = 0;<br>core::stringc StartUpModelFile;<br>core::stringw MessageText;<br>core::stringw Caption;<br>scene::IAnimatedMeshSceneNode* Model = 0;<br>scene::ISceneNode* SkyBox = 0;<br></pre></td> 50 <td> <pre>#include &lt;irrlicht.h&gt;<br>#include &lt;iostream&gt;<br><br>using namespace irr;<br>using namespace gui;<br><br>#pragma comment(lib, &quot;Irrlicht.lib&quot;)<br><br>IrrlichtDevice *Device = 0;<br>core::stringc StartUpModelFile;<br>core::stringw MessageText;<br>core::stringw Caption;<br>scene::IAnimatedMeshSceneNode* Model = 0;<br>scene::ISceneNode* SkyBox = 0;<br></pre></td>
51 </tr> 51 </tr>
52 </table> 52 </table>
53 <p> The three following functions do several stuff used by the mesh 53 <p> The three following functions do several stuff used by the mesh
54 viewer. The first function showAboutText() simply displays a messagebox 54 viewer. The first function showAboutText() simply displays a messagebox
55 with a caption and a message text. The texts will be stored in the 55 with a caption and a message text. The texts will be stored in the
56 MessageText and Caption variables at startup.</p> 56 MessageText and Caption variables at startup.</p>
57 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 57 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
58 <tr> 58 <tr>
59 <td> <pre>void showAboutText()<br>{<br><font color="#006600"> // create modal message box with the text<br> // loaded from the xml file</font><font color="#00CC00">.</font><br> Device-&gt;getGUIEnvironment()-&gt;addMessageBox(<br> Caption.c_str(), MessageText.c_str());<br>}</pre></td> 59 <td> <pre>void showAboutText()<br>{<br><font color="#006600"> // create modal message box with the text<br> // loaded from the xml file</font><font color="#00CC00">.</font><br> Device-&gt;getGUIEnvironment()-&gt;addMessageBox(<br> Caption.c_str(), MessageText.c_str());<br>}</pre></td>
60 </tr> 60 </tr>
61 </table> 61 </table>
62 <p> The second function loadModel() loads a model and displays it using 62 <p> The second function loadModel() loads a model and displays it using
63 an addAnimatedMeshSceneNode and the scene manager. Nothing difficult. 63 an addAnimatedMeshSceneNode and the scene manager. Nothing difficult.
64 It also displays a short message box, if the model could not be loaded. 64 It also displays a short message box, if the model could not be loaded.
65 </p> 65 </p>
66 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 66 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
67 <tr> 67 <tr>
68 <td> <pre>void loadModel(const c8* filename)<br>{<br> <font color="#006600">// load a model into the engine</font><br> if (Model)<br> Model-&gt;remove();<br> Model = 0;<br><br> scene::IAnimatedMesh* m = Device-&gt;getSceneManager()-&gt;getMesh(filename);<br> if (!m) <br> {<br> <font color="#006600">// model could not be loaded</font><br> if (StartUpModelFile != filename)<br> Device-&gt;getGUIEnvironment()-&gt;addMessageBox(<br> Caption.c_str(), L&quot;The model could not be loaded. &quot; \<br> L&quot;Maybe it is not a supported file format.&quot;);<br> return;<br> }<br><br><font color="#006600"> // set default material properties</font><br> Model = Device-&gt;getSceneManager()-&gt;addAnimatedMeshSceneNode(m);<br> Model-&gt;setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);<br> Model-&gt;setMaterialFlag(video::EMF_LIGHTING, false);<br> Model-&gt;setDebugDataVisible(true);<br>}</pre></td> 68 <td> <pre>void loadModel(const c8* filename)<br>{<br> <font color="#006600">// load a model into the engine</font><br> if (Model)<br> Model-&gt;remove();<br> Model = 0;<br><br> scene::IAnimatedMesh* m = Device-&gt;getSceneManager()-&gt;getMesh(filename);<br> if (!m) <br> {<br> <font color="#006600">// model could not be loaded</font><br> if (StartUpModelFile != filename)<br> Device-&gt;getGUIEnvironment()-&gt;addMessageBox(<br> Caption.c_str(), L&quot;The model could not be loaded. &quot; \<br> L&quot;Maybe it is not a supported file format.&quot;);<br> return;<br> }<br><br><font color="#006600"> // set default material properties</font><br> Model = Device-&gt;getSceneManager()-&gt;addAnimatedMeshSceneNode(m);<br> Model-&gt;setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);<br> Model-&gt;setMaterialFlag(video::EMF_LIGHTING, false);<br> Model-&gt;setDebugDataVisible(true);<br>}</pre></td>
69 </tr> 69 </tr>
70 </table> 70 </table>
71 <p> Finally, the third function creates a toolbox window. In this simple 71 <p> Finally, the third function creates a toolbox window. In this simple
72 mesh viewer, this toolbox only contains a tab control with three edit 72 mesh viewer, this toolbox only contains a tab control with three edit
73 boxes for changing the scale of the displayed model.</p> 73 boxes for changing the scale of the displayed model.</p>
74 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 74 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
75 <tr> 75 <tr>
76 <td> <pre>void createToolBox()<br>{<br> <font color="#006600">// remove tool box if already there</font><br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> IGUIElement* root = env-&gt;getRootGUIElement();<br> IGUIElement* e = root-&gt;getElementFromId(5000, true);<br> if (e) e-&gt;remove();<br><br> <font color="#006600">// create the toolbox window</font><br> IGUIWindow* wnd = env-&gt;addWindow(core::rect&lt;s32&gt;(450,25,640,480),<br> false, L&quot;Toolset&quot;, 0, 5000);<br><br> <font color="#006600">// create tab control and tabs</font><br> IGUITabControl* tab = env-&gt;addTabControl(<br> core::rect&lt;s32&gt;(2,20,640-452,480-7), wnd, true, true);<br> IGUITab* t1 = tab-&gt;addTab(L&quot;Scale&quot;);<br> IGUITab* t2 = tab-&gt;addTab(L&quot;Empty Tab&quot;);<br><br> <font color="#006600">// add some edit boxes and a button to tab one</font><br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,50,130,70), true, t1, 901);<br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,80,130,100), true, t1, 902);<br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,110,130,130), true, t1, 903);<br> env-&gt;addButton(core::rect&lt;s32&gt;(10,150,100,190), t1, 1101, L&quot;set&quot;);<br><br> // bring irrlicht engine logo to front, because it<br> // now may be below the newly created toolbox<br> root-&gt;bringToFront(root-&gt;getElementFromId(666, true));<br>}</pre></td> 76 <td> <pre>void createToolBox()<br>{<br> <font color="#006600">// remove tool box if already there</font><br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> IGUIElement* root = env-&gt;getRootGUIElement();<br> IGUIElement* e = root-&gt;getElementFromId(5000, true);<br> if (e) e-&gt;remove();<br><br> <font color="#006600">// create the toolbox window</font><br> IGUIWindow* wnd = env-&gt;addWindow(core::rect&lt;s32&gt;(450,25,640,480),<br> false, L&quot;Toolset&quot;, 0, 5000);<br><br> <font color="#006600">// create tab control and tabs</font><br> IGUITabControl* tab = env-&gt;addTabControl(<br> core::rect&lt;s32&gt;(2,20,640-452,480-7), wnd, true, true);<br> IGUITab* t1 = tab-&gt;addTab(L&quot;Scale&quot;);<br> IGUITab* t2 = tab-&gt;addTab(L&quot;Empty Tab&quot;);<br><br> <font color="#006600">// add some edit boxes and a button to tab one</font><br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,50,130,70), true, t1, 901);<br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,80,130,100), true, t1, 902);<br> env-&gt;addEditBox(L&quot;1.0&quot;, core::rect&lt;s32&gt;(40,110,130,130), true, t1, 903);<br> env-&gt;addButton(core::rect&lt;s32&gt;(10,150,100,190), t1, 1101, L&quot;set&quot;);<br><br> // bring irrlicht engine logo to front, because it<br> // now may be below the newly created toolbox<br> root-&gt;bringToFront(root-&gt;getElementFromId(666, true));<br>}</pre></td>
77 </tr> 77 </tr>
78 </table> 78 </table>
79 <p> To get all the events sent by the GUI Elements, we need to create 79 <p> To get all the events sent by the GUI Elements, we need to create
80 an event receiver. This one is really simple. If an event occurs, 80 an event receiver. This one is really simple. If an event occurs,
81 it checks the id of the caller and the event type, and starts an action 81 it checks the id of the caller and the event type, and starts an action
82 based on these values. For example, if a menu item with id 100 was 82 based on these values. For example, if a menu item with id 100 was
83 selected, if opens a file-open-dialog. </p> 83 selected, if opens a file-open-dialog. </p>
84 </div> 84 </div>
85 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 85 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
86 <tr> 86 <tr>
87 <td> <pre><font size="2">class MyEventReceiver : public IEventReceiver<br>{<br>public:<br> virtual bool OnEvent(const SEvent&amp; event)<br> {<br> if (event.EventType == EET_GUI_EVENT)<br> {<br> s32 id = event.GUIEvent.Caller-&gt;getID();<br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> switch(event.GUIEvent.EventType)<br> {<br> case EGET_MENU_ITEM_SELECTED:<br> {<br> <font color="#006600"> // a menu item was clicked</font><br> IGUIContextMenu* menu = (IGUIContextMenu*)event.GUIEvent.Caller;<br> s32 id = menu-&gt;getItemCommandId(menu-&gt;getSelectedItem());<br> <br> switch(id)<br> {<br> case 100<font color="#006600">: // File -&gt; Open Mode</font>l<br> env-&gt;addFileOpenDialog(L&quot;Please select a model file to open&quot;);<br> break;<br> case 200<font color="#006600">: // File -&gt; Quit</font><br> Device-&gt;closeDevice();<br> break;<br> case 300<font color="#006600">: // View -&gt; Skybox</font><br> SkyBox-&gt;setVisible(!SkyBox-&gt;isVisible());<br> break;<br> case 400<font color="#006600">: // View -&gt; Debug Informatio</font>n<br> if (Model)<br> Model-&gt;setDebugDataVisible(!Model-&gt;isDebugDataVisible());<br> break;<br> case 500<font color="#006600">: // Help-&gt;About</font><br> showAboutText();<br> break;<br> case 610<font color="#006600">: // View -&gt; Material -&gt; Soli</font>d<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_SOLID);<br> break;<br> case 620<font color="#006600">: // View -&gt; Material -&gt; Transparen</font>t<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);<br> break;<br> case 630<font color="#006600">: // View -&gt; Material -&gt; Reflectio</font>n<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_SPHERE_MAP);<br> break;<br> }<br> break;<br> }<br> case EGET_FILE_SELECTED:<br> {<br> <font color="#006600"> // load the model file, selected in the file open dialo</font>g<br> IGUIFileOpenDialog* dialog = <br> (IGUIFileOpenDialog*)event.GUIEvent.Caller;<br> loadModel(core::stringc(dialog-&gt;getFilename()).c_str());<br> }<br> case EGET_BUTTON_CLICKED:<br> switch(id)<br> {<br> case 1101:<br> {<br> <font color="#006600"> // set scal</font>e<br> gui::IGUIElement* root = env-&gt;getRootGUIElement();<br> core::vector3df scale;<br> core::stringc s;<br> s = root-&gt;getElementFromId(901, true)-&gt;getText();<br> scale.X = (f32)atof(s.c_str());<br> s = root-&gt;getElementFromId(902, true)-&gt;getText();<br> scale.Y = (f32)atof(s.c_str());<br> s = root-&gt;getElementFromId(903, true)-&gt;getText();<br> scale.Z = (f32)atof(s.c_str());<br> if (Model)<br> Model-&gt;setScale(scale);<br> }<br> break;<br> case 1102:<br> env-&gt;addFileOpenDialog(L&quot;Please select a model file to open&quot;);<br> break;<br> case 1103:<br> showAboutText();<br> break;<br> case 1104:<br> createToolBox();<br> break;<br> }<br> break;<br> }<br> }<br> return false;<br> }<br>};</font></pre></td> 87 <td> <pre><font size="2">class MyEventReceiver : public IEventReceiver<br>{<br>public:<br> virtual bool OnEvent(const SEvent&amp; event)<br> {<br> if (event.EventType == EET_GUI_EVENT)<br> {<br> s32 id = event.GUIEvent.Caller-&gt;getID();<br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> switch(event.GUIEvent.EventType)<br> {<br> case EGET_MENU_ITEM_SELECTED:<br> {<br> <font color="#006600"> // a menu item was clicked</font><br> IGUIContextMenu* menu = (IGUIContextMenu*)event.GUIEvent.Caller;<br> s32 id = menu-&gt;getItemCommandId(menu-&gt;getSelectedItem());<br> <br> switch(id)<br> {<br> case 100<font color="#006600">: // File -&gt; Open Mode</font>l<br> env-&gt;addFileOpenDialog(L&quot;Please select a model file to open&quot;);<br> break;<br> case 200<font color="#006600">: // File -&gt; Quit</font><br> Device-&gt;closeDevice();<br> break;<br> case 300<font color="#006600">: // View -&gt; Skybox</font><br> SkyBox-&gt;setVisible(!SkyBox-&gt;isVisible());<br> break;<br> case 400<font color="#006600">: // View -&gt; Debug Informatio</font>n<br> if (Model)<br> Model-&gt;setDebugDataVisible(!Model-&gt;isDebugDataVisible());<br> break;<br> case 500<font color="#006600">: // Help-&gt;About</font><br> showAboutText();<br> break;<br> case 610<font color="#006600">: // View -&gt; Material -&gt; Soli</font>d<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_SOLID);<br> break;<br> case 620<font color="#006600">: // View -&gt; Material -&gt; Transparen</font>t<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);<br> break;<br> case 630<font color="#006600">: // View -&gt; Material -&gt; Reflectio</font>n<br> if (Model)<br> Model-&gt;setMaterialType(video::EMT_SPHERE_MAP);<br> break;<br> }<br> break;<br> }<br> case EGET_FILE_SELECTED:<br> {<br> <font color="#006600"> // load the model file, selected in the file open dialo</font>g<br> IGUIFileOpenDialog* dialog = <br> (IGUIFileOpenDialog*)event.GUIEvent.Caller;<br> loadModel(core::stringc(dialog-&gt;getFilename()).c_str());<br> }<br> case EGET_BUTTON_CLICKED:<br> switch(id)<br> {<br> case 1101:<br> {<br> <font color="#006600"> // set scal</font>e<br> gui::IGUIElement* root = env-&gt;getRootGUIElement();<br> core::vector3df scale;<br> core::stringc s;<br> s = root-&gt;getElementFromId(901, true)-&gt;getText();<br> scale.X = (f32)atof(s.c_str());<br> s = root-&gt;getElementFromId(902, true)-&gt;getText();<br> scale.Y = (f32)atof(s.c_str());<br> s = root-&gt;getElementFromId(903, true)-&gt;getText();<br> scale.Z = (f32)atof(s.c_str());<br> if (Model)<br> Model-&gt;setScale(scale);<br> }<br> break;<br> case 1102:<br> env-&gt;addFileOpenDialog(L&quot;Please select a model file to open&quot;);<br> break;<br> case 1103:<br> showAboutText();<br> break;<br> case 1104:<br> createToolBox();<br> break;<br> }<br> break;<br> }<br> }<br> return false;<br> }<br>};</font></pre></td>
88 </tr> 88 </tr>
89 </table> 89 </table>
90 <p> Most of the hard work is done. We only need to create the Irrlicht 90 <p> Most of the hard work is done. We only need to create the Irrlicht
91 Engine device and all the buttons, menus and toolbars. We start up the 91 Engine device and all the buttons, menus and toolbars. We start up the
92 engine as usual, using createDevice(). To make our application catch 92 engine as usual, using createDevice(). To make our application catch
93 events, we set our eventreceiver as parameter. The #ifdef WIN32 preprocessor 93 events, we set our eventreceiver as parameter. The #ifdef WIN32 preprocessor
94 commands are not necesarry, but I included them to make the tutorial 94 commands are not necesarry, but I included them to make the tutorial
95 use DirectX on Windows and OpenGL on all other platforms like Linux. 95 use DirectX on Windows and OpenGL on all other platforms like Linux.
96 As you can see, there is also a unusual call to IrrlichtDevice::setResizeAble(). 96 As you can see, there is also a unusual call to IrrlichtDevice::setResizeAble().
97 This makes the render window resizeable, which is quite useful for a 97 This makes the render window resizeable, which is quite useful for a
98 mesh viewer. </p> 98 mesh viewer. </p>
99 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 99 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
100 <tr> 100 <tr>
101 <td><pre>int main()<br>{<br> // ask user for driver 101 <td><pre>int main()<br>{<br> // ask user for driver
102<br> video::E_DRIVER_TYPE driverType; 102<br> video::E_DRIVER_TYPE driverType;
103<br> printf(&quot;Please select the driver you want for this example:\n&quot;\<br> &quot; (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n&quot;\<br> &quot; (d) Software Renderer\n (e) Apfelbaum Software Renderer\n&quot;\<br> &quot; (f) NullDevice\n (otherKey) exit\n\n&quot;);<br><br> char key;<br> std::cin &gt;&gt; key;<br><br> switch(key)<br> {<br> case 'a': driverType = video::EDT_DIRECT3D9;break;<br> case 'b': driverType = video::EDT_DIRECT3D8;break;<br> case 'c': driverType = video::EDT_OPENGL; break;<br> case 'd': driverType = video::EDT_SOFTWARE; break;<br> case 'e': driverType = video::EDT_BURNINGSVIDEO;break;<br> case 'f': driverType = video::EDT_NULL; break;<br> default: return 1;<br> } 103<br> printf(&quot;Please select the driver you want for this example:\n&quot;\<br> &quot; (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n&quot;\<br> &quot; (d) Software Renderer\n (e) Apfelbaum Software Renderer\n&quot;\<br> &quot; (f) NullDevice\n (otherKey) exit\n\n&quot;);<br><br> char key;<br> std::cin &gt;&gt; key;<br><br> switch(key)<br> {<br> case 'a': driverType = video::EDT_DIRECT3D9;break;<br> case 'b': driverType = video::EDT_DIRECT3D8;break;<br> case 'c': driverType = video::EDT_OPENGL; break;<br> case 'd': driverType = video::EDT_SOFTWARE; break;<br> case 'e': driverType = video::EDT_BURNINGSVIDEO;break;<br> case 'f': driverType = video::EDT_NULL; break;<br> default: return 1;<br> }
104<br> // create device and exit if creation failed 104<br> // create device and exit if creation failed
105<br> MyEventReceiver receiver;<br> Device = createDevice(driverType, core::dimension2d&lt;s32&gt;(640, 480),<br> 16, false, false, false, &amp;receiver); 105<br> MyEventReceiver receiver;<br> Device = createDevice(driverType, core::dimension2d&lt;s32&gt;(640, 480),<br> 16, false, false, false, &amp;receiver);
106<br> if (Device == 0)<br> return 1; // could not create selected driver.<br><br> Device-&gt;setResizable(true);<br> Device-&gt;setWindowCaption(L&quot;Irrlicht Engine - Loading...&quot;);<br><br> video::IVideoDriver* driver = Device-&gt;getVideoDriver();<br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> scene::ISceneManager* smgr = Device-&gt;getSceneManager();<br></pre></td> 106<br> if (Device == 0)<br> return 1; // could not create selected driver.<br><br> Device-&gt;setResizable(true);<br> Device-&gt;setWindowCaption(L&quot;Irrlicht Engine - Loading...&quot;);<br><br> video::IVideoDriver* driver = Device-&gt;getVideoDriver();<br> IGUIEnvironment* env = Device-&gt;getGUIEnvironment();<br> scene::ISceneManager* smgr = Device-&gt;getSceneManager();<br></pre></td>
107 </tr> 107 </tr>
108 </table> 108 </table>
109 <p> The next step is to read the configuration file. It is stored in the 109 <p> The next step is to read the configuration file. It is stored in the
110 xml format and looks a little bit like this:<br> 110 xml format and looks a little bit like this:<br>
111 <br> 111 <br>
112 <font face="Courier New, Courier, mono">&lt;?xml version=&quot;1.0&quot;?&gt;<br> 112 <font face="Courier New, Courier, mono">&lt;?xml version=&quot;1.0&quot;?&gt;<br>
113 &lt;config&gt;<br> 113 &lt;config&gt;<br>
114 &lt;startUpModel file=&quot;some filename&quot; /&gt;<br> 114 &lt;startUpModel file=&quot;some filename&quot; /&gt;<br>
115 &lt;messageText caption=&quot;Irrlicht Engine Mesh Viewer&quot;&gt;<br> 115 &lt;messageText caption=&quot;Irrlicht Engine Mesh Viewer&quot;&gt;<br>
116 Hello!<br> 116 Hello!<br>
117 &lt;/messageText&gt;<br> 117 &lt;/messageText&gt;<br>
118 &lt;/config&gt;</font><br> 118 &lt;/config&gt;</font><br>
119 <br> 119 <br>
120 We need the data stored in there to be written into the global variables 120 We need the data stored in there to be written into the global variables
121 StartUpModelFile, MessageText and Caption. This is now done using the 121 StartUpModelFile, MessageText and Caption. This is now done using the
122 Irrlicht Engine integrated XML parser: </p> 122 Irrlicht Engine integrated XML parser: </p>
123 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 123 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
124 <tr> 124 <tr>
125 <td><pre> <font color="#006600">// read configuration from xml file</font><br> io::IXMLReader* xml =<br> Device-&gt;getFileSystem()-&gt;createXMLReader(&quot;../../media/config.xml&quot;);<br> while(xml &amp;&amp; xml-&gt;read())<br> {<br> switch(xml-&gt;getNodeType())<br> {<br> case io::EXN_TEXT:<br> <font color="#006600">// in this xml file, the only text which occurs is the messageText</font><br> MessageText = xml-&gt;getNodeData();<br> break;<br> case io::EXN_ELEMENT:<br> {<br> if (core::stringw(&quot;startUpModel&quot;) == xml-&gt;getNodeName())<br> StartUpModelFile = xml-&gt;getAttributeValue(L&quot;file&quot;);<br> else<br> if (core::stringw(&quot;messageText&quot;) == xml-&gt;getNodeName())<br> Caption = xml-&gt;getAttributeValue(L&quot;caption&quot;);<br> }<br> break;<br> }<br> }<br> if (xml)<br> xml-&gt;drop(); <font color="#006600">// don't forget to delete the xml reader </font><br> 125 <td><pre> <font color="#006600">// read configuration from xml file</font><br> io::IXMLReader* xml =<br> Device-&gt;getFileSystem()-&gt;createXMLReader(&quot;../../media/config.xml&quot;);<br> while(xml &amp;&amp; xml-&gt;read())<br> {<br> switch(xml-&gt;getNodeType())<br> {<br> case io::EXN_TEXT:<br> <font color="#006600">// in this xml file, the only text which occurs is the messageText</font><br> MessageText = xml-&gt;getNodeData();<br> break;<br> case io::EXN_ELEMENT:<br> {<br> if (core::stringw(&quot;startUpModel&quot;) == xml-&gt;getNodeName())<br> StartUpModelFile = xml-&gt;getAttributeValue(L&quot;file&quot;);<br> else<br> if (core::stringw(&quot;messageText&quot;) == xml-&gt;getNodeName())<br> Caption = xml-&gt;getAttributeValue(L&quot;caption&quot;);<br> }<br> break;<br> }<br> }<br> if (xml)<br> xml-&gt;drop(); <font color="#006600">// don't forget to delete the xml reader </font><br>
126</pre></td> 126</pre></td>
127 </tr> 127 </tr>
128 </table> 128 </table>
129 <p> That wasn't difficult. Now we'll set a nicer font and create the Menu. 129 <p> That wasn't difficult. Now we'll set a nicer font and create the Menu.
130 It is possible to create submenus for every menu item. The call menu-&gt;addItem(L&quot;File&quot;, 130 It is possible to create submenus for every menu item. The call menu-&gt;addItem(L&quot;File&quot;,
131 -1, true, true); for example adds a new menu Item with the name &quot;File&quot; 131 -1, true, true); for example adds a new menu Item with the name &quot;File&quot;
132 and the id -1. The following parameter says that the menu item should 132 and the id -1. The following parameter says that the menu item should
133 be enabled, and the last one says, that there should be a submenu. The 133 be enabled, and the last one says, that there should be a submenu. The
134 submenu can now be accessed with menu-&gt;getSubMenu(0), because the 134 submenu can now be accessed with menu-&gt;getSubMenu(0), because the
135 &quot;File&quot; entry is the menu item with index 0. </p> 135 &quot;File&quot; entry is the menu item with index 0. </p>
136 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 136 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
137 <tr> 137 <tr>
138 <td><pre> <font color="#006600">// set a nicer font</font><br> IGUISkin* skin = env-&gt;getSkin();<br> IGUIFont* font = env-&gt;getFont(&quot;../../media/fonthaettenschweiler.bmp&quot;);<br> if (font)<br> skin-&gt;setFont(font);<br><br><font color="#006600"> // create menu</font><br> gui::IGUIContextMenu* menu = env-&gt;addMenu();<br> menu-&gt;addItem(L&quot;File&quot;, -1, true, true);<br> menu-&gt;addItem(L&quot;View&quot;, -1, true, true);<br> menu-&gt;addItem(L&quot;Help&quot;, -1, true, true);<br><br> gui::IGUIContextMenu* submenu;<br> submenu = menu-&gt;getSubMenu(0);<br> submenu-&gt;addItem(L&quot;Open Model File...&quot;, 100);<br> submenu-&gt;addSeparator();<br> submenu-&gt;addItem(L&quot;Quit&quot;, 200);<br><br> submenu = menu-&gt;getSubMenu(1);<br> submenu-&gt;addItem(L&quot;toggle sky box visibility&quot;, 300);<br> submenu-&gt;addItem(L&quot;toggle model debug information&quot;, 400);<br> submenu-&gt;addItem(L&quot;model material&quot;, -1, true, true );<br><br> submenu = submenu-&gt;getSubMenu(2);<br> submenu-&gt;addItem(L&quot;Solid&quot;, 610);<br> submenu-&gt;addItem(L&quot;Transparent&quot;, 620);<br> submenu-&gt;addItem(L&quot;Reflection&quot;, 630);<br><br> submenu = menu-&gt;getSubMenu(2);<br> submenu-&gt;addItem(L&quot;About&quot;, 500); 138 <td><pre> <font color="#006600">// set a nicer font</font><br> IGUISkin* skin = env-&gt;getSkin();<br> IGUIFont* font = env-&gt;getFont(&quot;../../media/fonthaettenschweiler.bmp&quot;);<br> if (font)<br> skin-&gt;setFont(font);<br><br><font color="#006600"> // create menu</font><br> gui::IGUIContextMenu* menu = env-&gt;addMenu();<br> menu-&gt;addItem(L&quot;File&quot;, -1, true, true);<br> menu-&gt;addItem(L&quot;View&quot;, -1, true, true);<br> menu-&gt;addItem(L&quot;Help&quot;, -1, true, true);<br><br> gui::IGUIContextMenu* submenu;<br> submenu = menu-&gt;getSubMenu(0);<br> submenu-&gt;addItem(L&quot;Open Model File...&quot;, 100);<br> submenu-&gt;addSeparator();<br> submenu-&gt;addItem(L&quot;Quit&quot;, 200);<br><br> submenu = menu-&gt;getSubMenu(1);<br> submenu-&gt;addItem(L&quot;toggle sky box visibility&quot;, 300);<br> submenu-&gt;addItem(L&quot;toggle model debug information&quot;, 400);<br> submenu-&gt;addItem(L&quot;model material&quot;, -1, true, true );<br><br> submenu = submenu-&gt;getSubMenu(2);<br> submenu-&gt;addItem(L&quot;Solid&quot;, 610);<br> submenu-&gt;addItem(L&quot;Transparent&quot;, 620);<br> submenu-&gt;addItem(L&quot;Reflection&quot;, 630);<br><br> submenu = menu-&gt;getSubMenu(2);<br> submenu-&gt;addItem(L&quot;About&quot;, 500);
139</pre></td> 139</pre></td>
140 </tr> 140 </tr>
141 </table> 141 </table>
142 <br> 142 <br>
143 We want a toolbar, onto which we can place colored buttons and important 143 We want a toolbar, onto which we can place colored buttons and important
144 looking stuff like a senseless combobox.<br> 144 looking stuff like a senseless combobox.<br>
145 <br> 145 <br>
146 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 146 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
147 <tr> 147 <tr>
148 <td><pre><font color="#006600"> // create toolbar</font><br> gui::IGUIToolBar* bar = env-&gt;addToolBar();<br> bar-&gt;addButton(1102, 0, driver-&gt;getTexture(&quot;../../media/open.bmp&quot;));<br> bar-&gt;addButton(1103, 0, driver-&gt;getTexture(&quot;../../media/help.bmp&quot;));<br> bar-&gt;addButton(1104, 0, driver-&gt;getTexture(&quot;../../media/tools.bmp&quot;));<br><br><font color="#006600"> // create a combobox with some senseless texts</font><br> gui::IGUIComboBox* box = env-&gt;addComboBox(core::rect&lt;s32&gt;(100,5,200,25), bar);<br> box-&gt;addItem(L&quot;Bilinear&quot;);<br> box-&gt;addItem(L&quot;Trilinear&quot;);<br> box-&gt;addItem(L&quot;Anisotropic&quot;);<br> box-&gt;addItem(L&quot;Isotropic&quot;);<br> box-&gt;addItem(L&quot;Psychedelic&quot;);<br> box-&gt;addItem(L&quot;No filtering&quot;);</pre></td> 148 <td><pre><font color="#006600"> // create toolbar</font><br> gui::IGUIToolBar* bar = env-&gt;addToolBar();<br> bar-&gt;addButton(1102, 0, driver-&gt;getTexture(&quot;../../media/open.bmp&quot;));<br> bar-&gt;addButton(1103, 0, driver-&gt;getTexture(&quot;../../media/help.bmp&quot;));<br> bar-&gt;addButton(1104, 0, driver-&gt;getTexture(&quot;../../media/tools.bmp&quot;));<br><br><font color="#006600"> // create a combobox with some senseless texts</font><br> gui::IGUIComboBox* box = env-&gt;addComboBox(core::rect&lt;s32&gt;(100,5,200,25), bar);<br> box-&gt;addItem(L&quot;Bilinear&quot;);<br> box-&gt;addItem(L&quot;Trilinear&quot;);<br> box-&gt;addItem(L&quot;Anisotropic&quot;);<br> box-&gt;addItem(L&quot;Isotropic&quot;);<br> box-&gt;addItem(L&quot;Psychedelic&quot;);<br> box-&gt;addItem(L&quot;No filtering&quot;);</pre></td>
149 </tr> 149 </tr>
150 </table> 150 </table>
151 <br> 151 <br>
152 To make the editor look a little bit better, we disable transparent gui 152 To make the editor look a little bit better, we disable transparent gui
153 elements, and add a Irrlicht Engine logo. In addition, a text, which will 153 elements, and add a Irrlicht Engine logo. In addition, a text, which will
154 show the current frame per second value is created, and the window caption 154 show the current frame per second value is created, and the window caption
155 changed.<br> 155 changed.<br>
156 <br> 156 <br>
157 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 157 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
158 <tr> 158 <tr>
159 <td><pre> <font color="#006600">// disable alpha</font><br> for (s32 i=0; i&lt;gui::EGDC_COUNT ; ++i)<br> {<br> video::SColor col = env-&gt;getSkin()-&gt;getColor((gui::EGUI_DEFAULT_COLOR)i);<br> col.setAlpha(255);<br> env-&gt;getSkin()-&gt;setColor((gui::EGUI_DEFAULT_COLOR)i, col);<br> }<br><br><font color="#006600"> // add a tabcontrol</font><br> createToolBox();<br><br> <font color="#006600">// add the irrlicht engine logo</font><br> IGUIImage* img = env-&gt;addImage(core::rect&lt;s32&gt;(22,429,108,460), 0, 666);<br> img-&gt;setImage(driver-&gt;getTexture(&quot;../../media/irrlichtlogoaligned.jpg&quot;));<br><br> <font color="#006600">// create fps text </font><br> IGUIStaticText* fpstext =<br> env-&gt;addStaticText(L&quot;&quot;, core::rect&lt;s32&gt;(210,26,270,41), true);<br><br> <font color="#006600">// set window caption</font><br> Caption += &quot; - [&quot;;<br> Caption += driver-&gt;getName();<br> Caption += &quot;]&quot;;<br> Device-&gt;setWindowCaption(Caption.c_str());</pre></td> 159 <td><pre> <font color="#006600">// disable alpha</font><br> for (s32 i=0; i&lt;gui::EGDC_COUNT ; ++i)<br> {<br> video::SColor col = env-&gt;getSkin()-&gt;getColor((gui::EGUI_DEFAULT_COLOR)i);<br> col.setAlpha(255);<br> env-&gt;getSkin()-&gt;setColor((gui::EGUI_DEFAULT_COLOR)i, col);<br> }<br><br><font color="#006600"> // add a tabcontrol</font><br> createToolBox();<br><br> <font color="#006600">// add the irrlicht engine logo</font><br> IGUIImage* img = env-&gt;addImage(core::rect&lt;s32&gt;(22,429,108,460), 0, 666);<br> img-&gt;setImage(driver-&gt;getTexture(&quot;../../media/irrlichtlogoaligned.jpg&quot;));<br><br> <font color="#006600">// create fps text </font><br> IGUIStaticText* fpstext =<br> env-&gt;addStaticText(L&quot;&quot;, core::rect&lt;s32&gt;(210,26,270,41), true);<br><br> <font color="#006600">// set window caption</font><br> Caption += &quot; - [&quot;;<br> Caption += driver-&gt;getName();<br> Caption += &quot;]&quot;;<br> Device-&gt;setWindowCaption(Caption.c_str());</pre></td>
160 </tr> 160 </tr>
161 </table> 161 </table>
162 <br> 162 <br>
163 That's nearly the whole application. We simply show the about message 163 That's nearly the whole application. We simply show the about message
164 box at start up, and load the first model. To make everything look better, 164 box at start up, and load the first model. To make everything look better,
165 a skybox is created and a user controled camera, to make the application 165 a skybox is created and a user controled camera, to make the application
166 a little bit more interactive. Finally, everything is drawed in a standard 166 a little bit more interactive. Finally, everything is drawed in a standard
167 drawing loop.<br> 167 drawing loop.<br>
168 <br> 168 <br>
169 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center"> 169 <table width="95%" border="0" cellspacing="2" cellpadding="0" bgcolor="#CCCCCC" align="center">
170 <tr> 170 <tr>
171 <td><pre> <font color="#006600">// show about message box and load default model</font><br> showAboutText();<br> loadModel(StartUpModelFile.c_str());<br><font color="#006600"><br> // add skybox</font> <br> SkyBox = smgr-&gt;addSkyBoxSceneNode(<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_up.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_dn.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_lf.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_rt.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_ft.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_bk.bmp&quot;));<br><br><font color="#006600"> // add a camera scene node </font><br> smgr-&gt;addCameraSceneNodeMaya();<br> <br> <font color="#006600">// draw everything</font><br> while(Device-&gt;run() &amp;&amp; driver)<br> if (Device-&gt;isWindowActive())<br> {<br> driver-&gt;beginScene(true, true, video::SColor(150,50,50,50));<br> smgr-&gt;drawAll();<br> env-&gt;drawAll();<br> <br> driver-&gt;endScene();<br><br> core::stringw str = L&quot;FPS: &quot;;<br> str += driver-&gt;getFPS();<br> fpstext-&gt;setText(str.c_str());<br> }<br> Device-&gt;drop();<br> return 0;<br>}<br></pre></td> 171 <td><pre> <font color="#006600">// show about message box and load default model</font><br> showAboutText();<br> loadModel(StartUpModelFile.c_str());<br><font color="#006600"><br> // add skybox</font> <br> SkyBox = smgr-&gt;addSkyBoxSceneNode(<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_up.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_dn.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_lf.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_rt.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_ft.bmp&quot;),<br> driver-&gt;getTexture(&quot;../../media/irrlicht2_bk.bmp&quot;));<br><br><font color="#006600"> // add a camera scene node </font><br> smgr-&gt;addCameraSceneNodeMaya();<br> <br> <font color="#006600">// draw everything</font><br> while(Device-&gt;run() &amp;&amp; driver)<br> if (Device-&gt;isWindowActive())<br> {<br> driver-&gt;beginScene(true, true, video::SColor(150,50,50,50));<br> smgr-&gt;drawAll();<br> env-&gt;drawAll();<br> <br> driver-&gt;endScene();<br><br> core::stringw str = L&quot;FPS: &quot;;<br> str += driver-&gt;getFPS();<br> fpstext-&gt;setText(str.c_str());<br> }<br> Device-&gt;drop();<br> return 0;<br>}<br></pre></td>
172 </tr> 172 </tr>
173 </table> 173 </table>
174 <br> 174 <br>
175 Compile and run this, and you have a fully functional 3d Mesh viewer.<br> 175 Compile and run this, and you have a fully functional 3d Mesh viewer.<br>
176 </div> 176 </div>
177 </td> 177 </td>
178 </tr> 178 </tr>
179</table> 179</table>
180<p>&nbsp;</p> 180<p>&nbsp;</p>
181 </body> 181 </body>
182</html> 182</html>