From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 13 Jan 2014 19:47:58 +1000
Subject: Update Irrlicht to 1.8.1. Include actual change markers this time.
lol
---
.../tools/FileToHeader/FileToHeader.cbp | 48 -
libraries/irrlicht-1.8/tools/FileToHeader/Makefile | 35 -
libraries/irrlicht-1.8/tools/FileToHeader/main.cpp | 175 ---
.../irrlicht-1.8/tools/GUIEditor/CGUIAttribute.h | 169 ---
.../tools/GUIEditor/CGUIAttributeEditor.cpp | 120 --
.../tools/GUIEditor/CGUIAttributeEditor.h | 54 -
.../tools/GUIEditor/CGUIBoolAttribute.h | 68 --
.../tools/GUIEditor/CGUIColorAttribute.h | 179 ---
.../tools/GUIEditor/CGUIDummyEditorStub.h | 59 -
.../tools/GUIEditor/CGUIEditFactory.cpp | 120 --
.../irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.h | 53 -
.../tools/GUIEditor/CGUIEditWindow.cpp | 356 ------
.../irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.h | 88 --
.../tools/GUIEditor/CGUIEditWorkspace.cpp | 927 ---------------
.../tools/GUIEditor/CGUIEditWorkspace.h | 168 ---
.../tools/GUIEditor/CGUIEnumAttribute.h | 114 --
.../irrlicht-1.8/tools/GUIEditor/CGUIPanel.cpp | 340 ------
libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.h | 128 ---
.../tools/GUIEditor/CGUIStringAttribute.h | 70 --
.../tools/GUIEditor/CGUITextureAttribute.h | 140 ---
.../tools/GUIEditor/CGUITextureCacheBrowser.cpp | 336 ------
.../tools/GUIEditor/CGUITextureCacheBrowser.h | 88 --
.../tools/GUIEditor/CMemoryReadWriteFile.cpp | 95 --
.../tools/GUIEditor/CMemoryReadWriteFile.h | 73 --
.../irrlicht-1.8/tools/GUIEditor/EGUIEditTypes.h | 61 -
.../irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.sln | 20 -
.../tools/GUIEditor/GUI Editor_v8.vcproj | 295 -----
.../irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.sln | 20 -
.../tools/GUIEditor/GUI Editor_v9.vcproj | 293 -----
.../tools/GUIEditor/GUI Editor_vc10.vcxproj | 213 ----
.../GUIEditor/GUI Editor_vc10.vcxproj.filters | 88 --
.../tools/GUIEditor/GUI Editor_vc11.vcxproj | 217 ----
.../GUIEditor/GUI Editor_vc11.vcxproj.filters | 88 --
.../irrlicht-1.8/tools/GUIEditor/GUIEditor_gcc.cbp | 77 --
libraries/irrlicht-1.8/tools/GUIEditor/Makefile | 43 -
libraries/irrlicht-1.8/tools/GUIEditor/main.cpp | 76 --
.../tools/IrrFontTool/newFontTool/CFontTool.cpp | 801 -------------
.../tools/IrrFontTool/newFontTool/CFontTool.h | 78 --
.../IrrFontTool/newFontTool/CVectorFontTool.h | 1199 --------------------
.../tools/IrrFontTool/newFontTool/Makefile | 38 -
.../IrrFontTool/newFontTool/irrFontTool_v8.sln | 20 -
.../IrrFontTool/newFontTool/irrFontTool_v8.vcproj | 201 ----
.../IrrFontTool/newFontTool/irrFontTool_v9.sln | 20 -
.../IrrFontTool/newFontTool/irrFontTool_v9.vcproj | 202 ----
.../IrrFontTool/newFontTool/irrFontTool_vc10.sln | 20 -
.../newFontTool/irrFontTool_vc10.vcxproj | 203 ----
.../IrrFontTool/newFontTool/irrFontTool_vc11.sln | 20 -
.../newFontTool/irrFontTool_vc11.vcxproj | 207 ----
.../tools/IrrFontTool/newFontTool/main.cpp | 493 --------
.../tools/IrrFontTool/oldFontTool/source.zip | Bin 37849 -> 0 bytes
.../irrlicht-1.8/tools/IrrFontTool/readme.txt | 13 -
.../irrlicht-1.8/tools/MeshConverter/Makefile | 38 -
.../tools/MeshConverter/MeshConverter.cbp | 54 -
.../tools/MeshConverter/MeshConverter_v9.vcproj | 187 ---
.../tools/MeshConverter/MeshConverter_vc10.vcxproj | 192 ----
.../tools/MeshConverter/MeshConverter_vc11.vcxproj | 196 ----
.../irrlicht-1.8/tools/MeshConverter/main.cpp | 108 --
libraries/irrlicht-1.8/tools/irrEdit/irrEdit.jpg | Bin 41602 -> 0 bytes
libraries/irrlicht-1.8/tools/irrEdit/irrEdit.txt | 7 -
59 files changed, 9791 deletions(-)
delete mode 100644 libraries/irrlicht-1.8/tools/FileToHeader/FileToHeader.cbp
delete mode 100644 libraries/irrlicht-1.8/tools/FileToHeader/Makefile
delete mode 100644 libraries/irrlicht-1.8/tools/FileToHeader/main.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIBoolAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIColorAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIDummyEditorStub.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIEnumAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUIStringAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureAttribute.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/EGUIEditTypes.h
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.sln
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.vcproj
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.sln
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.vcproj
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj.filters
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj.filters
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/GUIEditor_gcc.cbp
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/Makefile
delete mode 100644 libraries/irrlicht-1.8/tools/GUIEditor/main.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.h
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CVectorFontTool.h
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/Makefile
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.sln
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.vcproj
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.sln
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.vcproj
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.sln
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.sln
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/main.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/oldFontTool/source.zip
delete mode 100644 libraries/irrlicht-1.8/tools/IrrFontTool/readme.txt
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/Makefile
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter.cbp
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_v9.vcproj
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc10.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc11.vcxproj
delete mode 100644 libraries/irrlicht-1.8/tools/MeshConverter/main.cpp
delete mode 100644 libraries/irrlicht-1.8/tools/irrEdit/irrEdit.jpg
delete mode 100644 libraries/irrlicht-1.8/tools/irrEdit/irrEdit.txt
(limited to 'libraries/irrlicht-1.8/tools')
diff --git a/libraries/irrlicht-1.8/tools/FileToHeader/FileToHeader.cbp b/libraries/irrlicht-1.8/tools/FileToHeader/FileToHeader.cbp
deleted file mode 100644
index e6c1a2d..0000000
--- a/libraries/irrlicht-1.8/tools/FileToHeader/FileToHeader.cbp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/FileToHeader/Makefile b/libraries/irrlicht-1.8/tools/FileToHeader/Makefile
deleted file mode 100644
index 391a394..0000000
--- a/libraries/irrlicht-1.8/tools/FileToHeader/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# Makefile for FileToHeader
-Target = FileToHeader
-Sources = main.cpp
-
-# general compiler settings
-CPPFLAGS = -I../../include
-CXXFLAGS = -O3 -ffast-math -Wall
-#CXXFLAGS = -g -Wall
-
-#default target is Linux
-all: all_linux
-
-ifeq ($(HOSTTYPE), x86_64)
-LIBSELECT=64
-endif
-
-# target specific settings
-all_linux clean_linux: SYSTEM=Linux
-all_win32: LDFLAGS = -L../../lib/Win32-gcc
-all_win32 clean_win32: SYSTEM=Win32-gcc
-all_win32 clean_win32: SUF=.exe
-# name of the binary - only valid for targets which set SYSTEM
-DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF)
-
-all_linux all_win32:
- $(warning Building...)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS)
-
-clean: clean_linux clean_win32
- $(warning Cleaning...)
-
-clean_linux clean_win32:
- @$(RM) $(DESTPATH)
-
-.PHONY: all all_win32 clean clean_linux clean_win32
diff --git a/libraries/irrlicht-1.8/tools/FileToHeader/main.cpp b/libraries/irrlicht-1.8/tools/FileToHeader/main.cpp
deleted file mode 100644
index 492f19b..0000000
--- a/libraries/irrlicht-1.8/tools/FileToHeader/main.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// Copyright (C) 2012 Gaz Davidson
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-/***
- This tool creates a .h file from a given input file by encoding it into a C string,
- allowing you to build your resources directly into your binaries, just like Irrlicht's
- built-in font.
-
- To distribute your app as a single executable file of minimal size:
-
- 1. Put all your resources into a single directory and add it to Irrlicht's filesystem
- as a folder through IFileSystem::addArchive. Develop and test your app as usual.
- 2. Open IrrCompileConfig.h and comment out all the options that your app does not use.
- This will reduce the size of the Irrlicht library considerably.
- * You should remove the D3D video drivers, because they rely on external DLLs.
- * You should keep either the TAR or ZIP archive loader, used in step 6.
- * If you remove the JPEG loader, you don't have to say you use JPEG code in your
- documentation.
- 3. Recompile Irrlicht as a static library, editing the IRR_STATIC_LIB line in
- IrrCompileConfig.h.
- The next time you compile your application it will take a while longer, but
- Irrlicht will be built into your binary.
- 4. TAR or ZIP your resource directory using your favourite archiving tool (ie 7zip).
- * If you chose ZIP but compiled without zlib, don't compress this archive or it
- won't open.
- 5. Run this tool to convert your resource file into a .h file, like so:
- FileToHeader res.zip > EmbeddedResources.h
- 6. Add the .h file to your project, create the embedded read file then mount as a
- ZIP or TAR archive instead of the folder, like so:
- io::IReadFile *f = io::createEmbeddedFile(device->getFileSystem(), "res.zip");
- device->getFileSystem()->addFileArchive(f);
- archive->drop();
- 7. Recompile your app.
- * If you use Microsoft's compiler, make sure your CRT (common run-time) is
- the static library version, otherwise you'll have a dependency on the CRT DLLs.
- Your binary should now be completely portable; you can distribute just the exe file.
- 8. Optional: Use UPX (upx.sf.net) to compress your binary.
-*/
-
-#include
-#include
-#include
-
-using namespace std;
-
-int main(int argc, char* argv[])
-{
- if (argc < 2)
- {
- // print usage
- cerr << "You must to specify at least one input file" << endl;
- cerr << "usage: " << argv[0] << " [file2...]" << endl;
- cerr << "outputs a header file to stdout, so for example use";
- return 1;
- }
-
- int i = 1;
-
- // write file header
- cout << "// File made by FileToHeader, part of the Irrlicht Engine" << endl
- << endl
- << "#ifndef _EMBEDDED_FILES_H_INCLUDED_" << endl
- << "#define _EMBEDDED_FILES_H_INCLUDED_" << endl
- << endl
- << "#include \"irrTypes.h\"" << endl
- << "#include \"IReadFile.h\"" << endl
- << "#include \"IFileSystem.h\"" << endl
- << endl
- << "namespace irr" << endl
- << "{" << endl
- << "namespace io" << endl
- << "{" << endl
- << endl
- << " const c8* EmbeddedFileData[] = " << endl
- << " {" << endl;
-
- // store sizes and file names
- stringstream sizes;
- stringstream names;
- sizes << "const u32 EmbeddedFileSizes[] = {";
- names << "const c8* EmbeddedFileNames[] = {";
- int fileCount = 0;
-
- // char to hex digit table, probably doesn't help for speed due to fstream. better than using sprintf though
- char hextable[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
-
- while (i < argc)
- {
- // open and seek to end of file
- ifstream input;
- input.open(argv[i], ios::in | ios::binary | ios::ate);
-
- if (input.is_open())
- {
- int size = input.tellg();
- input.seekg(0, ios::beg);
- // read the file into RAM
- char *entireFile = new char[size];
- input.read(entireFile, size);
-
- if (fileCount)
- {
- sizes << ", ";
- names << ", ";
- cout << "," << endl;
- }
-
- // save file size and name
- sizes << size;
- names << '"' << argv[i] << '"';
-
- // write the file data
- cout << " \"";
- for (int count=0; count < size; ++count)
- {
- if (count && (count % 16) == 0)
- cout << "\"" << endl << " \"";
-
- cout << "\\x" << hextable[(entireFile[count] >> 4) & 0xF] << hextable[entireFile[count] & 0x0F];
- }
- cout << "\"";
-
- delete [] entireFile;
- //
- input.close();
-
- fileCount++;
- }
- else
- {
- cerr << "Failed to open file: " << argv[i] << endl;
- }
-
- ++i;
- }
-
- // close binary file list and write file metadata
- cout << endl
- << " , 0};" << endl
- << endl
- << " const u32 EmbeddedFileCount = " << fileCount << ";" << endl
- << " " << sizes.str() << "};" << endl
- << " " << names.str() << "};" << endl
- << endl;
-
- // write functions to create embedded IReadFiles
- cout << " IReadFile* createEmbeddedFile(IFileSystem *fs, u32 index)" << endl
- << " {" << endl
- << " if (EmbeddedFileCount < index)" << endl
- << " return 0;" << endl
- << endl
- << " return fs->createMemoryReadFile((void*)EmbeddedFileData[index], " << endl
- << " EmbeddedFileSizes[index], EmbeddedFileNames[index]);" << endl
- << " }" << endl
- << endl
- << " IReadFile* createEmbeddedFile(IFileSystem *fs, path filename)" << endl
- << " {" << endl
- << " for (u32 i=0; i < EmbeddedFileCount; ++i)" << endl
- << " if (filename == EmbeddedFileNames[i])" << endl
- << " return createEmbeddedFile(fs, i);" << endl
- << endl
- << " return 0;" << endl
- << " }" << endl
- << endl;
-
- // write footer
- cout << "} // namespace io" << endl
- << "} // namespace irr" << endl
- << endl
- << "#endif // _EMBEDDED_FILES_H_INCLUDED_" << endl;
-
- return 0;
-}
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttribute.h
deleted file mode 100644
index 1f2b092..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttribute.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- This base class is used by the Attribute editor for making your own attribute types.
-
- The attribute editor will try and create an attribute called "AttribType_attribute",
- and if it fails, it will create a "string_attribute".
-
-*/
-
-#ifndef __C_GUI_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_ATTRIBUTE_H_INCLUDED__
-
-#include "IGUIElement.h"
-#include "IGUIEnvironment.h"
-#include "IGUIFont.h"
-#include "IGUIStaticText.h"
-#include "IAttributes.h"
-#include "CGUIEditWorkspace.h"
-
-namespace irr
-{
-
-namespace gui
-{
-
- const u32 ATTRIBEDIT_ATTRIB_CHANGED=MAKE_IRR_ID('A','T','T','R');
-
- class CGUIAttribute : public IGUIElement
- {
- public:
- //! constructor
- CGUIAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- IGUIElement(EGUIET_ELEMENT, environment, parent, -1, core::rect(0, 0, 100, 100) ),
- AttribName(0), Attribs(0), Index(0), MyParentID(myParentID)
- {
-
- #ifdef _DEBUG
- setDebugName("CGUIAttribute");
- #endif
-
- AttribName = environment->addStaticText(0,
- core::rect(0, 0,
- 100, Environment->getSkin()->getFont()->getDimension(L"A").Height),
- false, false, this, -1, false);
- AttribName->grab();
- AttribName->setSubElement(true);
- AttribName->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- }
-
- virtual ~CGUIAttribute()
- {
- if (Attribs)
- Attribs->drop();
- if (AttribName)
- AttribName->drop();
- }
-
- virtual bool OnEvent(const SEvent &e)
- {
- if (IsEnabled)
- {
- switch (e.EventType)
- {
- case EET_GUI_EVENT:
- switch (e.GUIEvent.EventType)
- {
- case EGET_ELEMENT_FOCUSED:
- if (Parent && isMyChild(e.GUIEvent.Caller))
- Parent->bringToFront(this);
- break;
- case EGET_ELEMENT_HOVERED:
- case EGET_ELEMENT_LEFT:
- return IGUIElement::OnEvent(e);
- case EGET_ELEMENT_FOCUS_LOST:
- updateAttrib();
- return IGUIElement::OnEvent(e);
- default:
- return updateAttrib();
- }
- break;
- case EET_KEY_INPUT_EVENT:
- return true;
- default:
- break;
- }
- }
-
- return IGUIElement::OnEvent(e);
- }
-
- //! sets the attribute to use
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
- if (Attribs)
- Attribs->drop();
- Attribs = attribs;
- if (Attribs)
- Attribs->grab();
- Index = attribIndex;
-
- core::stringw name(attribs->getAttributeName(attribIndex));
- name += L" (";
- name += attribs->getAttributeTypeString(attribIndex);
- name += L")";
- AttribName->setText(name.c_str());
-
- core::rect r = Parent->getAbsolutePosition();
- core::rect r2(0, 5,
- r.getWidth(), Environment->getSkin()->getFont()->getDimension(L"A").Height + 10 );
-
- AttribName->setRelativePosition(r2);
-
- // get minimum height
- s32 y=0;
- core::list::Iterator it = Children.begin();
- for (; it != Children.end(); ++it)
- {
- if (y < (*it)->getRelativePosition().LowerRightCorner.Y)
- y = (*it)->getRelativePosition().LowerRightCorner.Y;
- }
- setMinSize( core::dimension2du(0, y+5));
-
- updateAttrib(false);
- }
-
- //! sets the parent ID, for identifying where events came from
- void setParentID(s32 parentID)
- {
- MyParentID = parentID;
- }
-
- //! save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (Attribs && IsEnabled && sendEvent)
- {
- // build event and pass to parent
- SEvent event;
- event.EventType = (EEVENT_TYPE)ATTRIBEDIT_ATTRIB_CHANGED;
- event.UserEvent.UserData1 = MyParentID;
- event.UserEvent.UserData2 = Index;
- return Parent->OnEvent(event);
- }
-
- return true;
- }
-
- virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0)
- {
- IGUIElement::serializeAttributes(out, options);
- }
-
- virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)
- {
- IGUIElement::deserializeAttributes(in, options);
- if (AttribName)
- AttribName->setText(Text.c_str());
- }
-
- protected:
- IGUIStaticText* AttribName;
- io::IAttributes* Attribs;
- u32 Index;
- s32 MyParentID;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.cpp
deleted file mode 100644
index 6d61f17..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-
-#include "CGUIAttributeEditor.h"
-#include "IGUIEnvironment.h"
-#include "IFileSystem.h"
-#include "IVideoDriver.h"
-#include "IAttributes.h"
-#include "IGUIFont.h"
-#include "IGUIScrollBar.h"
-#include "CGUIEditWorkspace.h"
-#include "CGUIAttribute.h"
-#include "CGUIStringAttribute.h"
-
-namespace irr
-{
-namespace gui
-{
-
-using namespace core;
-using namespace io;
-
-CGUIAttributeEditor::CGUIAttributeEditor(IGUIEnvironment* environment, s32 id, IGUIElement *parent) :
- CGUIPanel(environment, parent, id, rect(0, 0, 100, 100)),
- Attribs(0), Panel(0)
-{
- #ifdef _DEBUG
- setDebugName("CGUIAttributeEditor");
- #endif
-
- // create attributes
- Attribs = environment->getFileSystem()->createEmptyAttributes(Environment->getVideoDriver());
-
- calculateClientArea();
- resizeInnerPane();
-
- // refresh attrib list
- refreshAttribs();
-
- IGUIScrollBar* sb = getVScrollBar();
- core::rect r = sb->getRelativePosition();
- r.LowerRightCorner.Y -= 16;
- sb->setRelativePosition(r);
-}
-
-CGUIAttributeEditor::~CGUIAttributeEditor()
-{
- for (u32 i=0; iremove();
- AttribList[i]->drop();
- }
- AttribList.clear();
-
- Attribs->drop();
-}
-
-
-IAttributes* CGUIAttributeEditor::getAttribs()
-{
- return Attribs;
-}
-
-void CGUIAttributeEditor::refreshAttribs()
-{
- // clear the attribute list
- u32 i;
- for (i=0; iremove();
- AttribList[i]->drop();
- }
- AttribList.clear();
-
- position2di top(10, 5);
- rect r(top.X, top.Y,
- getClientArea().getWidth() - 10,
- 5 + Environment->getSkin()->getFont()->getDimension(L"A").Height);
-
- // add attribute elements
- u32 c = Attribs->getAttributeCount();
- for (i=0; igetAttributeTypeString(i);
- str += "_attribute";
- CGUIAttribute* n = (CGUIAttribute*)Environment->addGUIElement(str.c_str(), 0);
-
- // if this doesn't exist, use a string editor
- if (!n)
- n = (CGUIAttribute*)Environment->addGUIElement("string_attribute", 0);
-
- if (n)
- {
- AttribList.push_back(n);
- n->setParentID(getID());
- n->grab();
- }
-
- // We can't set "this" as parent above as we need functionality
- // of the overloaded addChild which isn't called in the constructor.
- // (that's a general Irrlicht messup with too fat constructors)
- addChild(n);
-
- AttribList[i]->setSubElement(true);
- AttribList[i]->setRelativePosition(r);
- AttribList[i]->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- AttribList[i]->setAttrib(Attribs, i);
- r += position2di(0, AttribList[i]->getRelativePosition().getHeight() + 5);
- }
-}
-
-void CGUIAttributeEditor::updateAttribs()
-{
- for (u32 i=0; iupdateAttrib(false);
-}
-
-} // namespace gui
-} // namespace irr
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.h
deleted file mode 100644
index 551fdfd..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIAttributeEditor.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef __C_GUI_ATTRIBUTE_EDITOR_H_INCLUDED__
-#define __C_GUI_ATTRIBUTE_EDITOR_H_INCLUDED__
-
-#include "IGUIElement.h"
-#include "CGUIPanel.h"
-#include "irrArray.h"
-#include "IAttributes.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- class CGUIAttribute;
-
-
- class CGUIAttributeEditor : public CGUIPanel
- {
- public:
-
- //! constructor
- CGUIAttributeEditor(IGUIEnvironment* environment, s32 id, IGUIElement *parent=0);
-
- //! destructor
- ~CGUIAttributeEditor();
-
- // gets the current attributes list
- virtual io::IAttributes* getAttribs();
-
- // update the attribute list after making a change
- void refreshAttribs();
-
- // save the attributes
- void updateAttribs();
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_ATTRIBUTEEDITOR];
- }
-
- private:
-
- core::array AttribList; // attributes editing controls
- io::IAttributes* Attribs; // current attributes
- CGUIPanel* Panel;
- };
-
-} // end namespace gui
-} // end namespace irr
-
-#endif // __C_GUI_ATTRIBUTE_EDITOR_H_INCLUDED__
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIBoolAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIBoolAttribute.h
deleted file mode 100644
index 189bd2d..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIBoolAttribute.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef __C_GUI_BOOL_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_BOOL_ATTRIBUTE_H_INCLUDED__
-
-#include "CGUIAttribute.h"
-#include "IGUICheckBox.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- class CGUIBoolAttribute : public CGUIAttribute
- {
- public:
- //
- CGUIBoolAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- CGUIAttribute(environment, parent, myParentID), AttribCheckBox(0)
- {
-
- core::rect r = getAbsolutePosition();
- core::rect r2(0, Environment->getSkin()->getFont()->getDimension(L"A").Height + 10,
- r.getWidth() - 5,
- Environment->getSkin()->getFont()->getDimension(L"A").Height*2 + 15 );
-
- AttribCheckBox = environment->addCheckBox(false, r2, this);
- AttribCheckBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- AttribCheckBox->setSubElement(true);
- AttribCheckBox->grab();
- }
-
- virtual ~CGUIBoolAttribute()
- {
- if (AttribCheckBox)
- AttribCheckBox->drop();
- }
-
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
- AttribCheckBox->setChecked(attribs->getAttributeAsBool(attribIndex));
- CGUIAttribute::setAttrib(attribs, attribIndex);
- }
-
- // save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (!Attribs)
- return true;
-
- Attribs->setAttribute(Index, AttribCheckBox->isChecked());
-
- return CGUIAttribute::updateAttrib(sendEvent);
- }
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_BOOLATTRIBUTE];
- }
-
- private:
- IGUICheckBox* AttribCheckBox;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIColorAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIColorAttribute.h
deleted file mode 100644
index d14b7a1..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIColorAttribute.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef __C_GUI_COLOR_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_COLOR_ATTRIBUTE_H_INCLUDED__
-
-#include "CGUIAttribute.h"
-#include "IGUIStaticText.h"
-#include "IGUIScrollBar.h"
-#include "IGUITabControl.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
- class CGUIColorAttribute : public CGUIAttribute
- {
- public:
- //
- CGUIColorAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- CGUIAttribute(environment, parent, myParentID),
- AttribSliderA(0), AttribSliderR(0), AttribSliderG(0), AttribSliderB(0),
- AttribEditBox(0), AttribColor(0)
- {
- s32 fh = Environment->getSkin()->getFont()->getDimension(L"A").Height;
-
- core::rect r0(getAbsolutePosition()),
- r2(0, fh + 5, r0.getWidth() - 5, fh*2 + 10 ),
- r3(r2),
- r4(r2.getWidth() - 20, 3, r2.getWidth() - 3, r2.getHeight()-3);
-
- AttribColor = Environment->addTab(r4, this, 0);
- AttribColor->grab();
- AttribColor->setDrawBackground(true);
- AttribColor->setSubElement(true);
- AttribColor->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
-
- s32 h=2;
- r2 += core::position2di(0, h*4 + Environment->getSkin()->getSize(EGDS_WINDOW_BUTTON_WIDTH)*2);
- r3.LowerRightCorner.Y = r3.UpperLeftCorner.Y + Environment->getSkin()->getSize(EGDS_WINDOW_BUTTON_WIDTH)/2;
-
- AttribSliderA = environment->addScrollBar(true, r3, this, -1);
- AttribSliderA->setMax(255);
- AttribSliderA->grab();
- AttribSliderA->setSubElement(true);
- AttribSliderA->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- r3 += core::position2di(0, r3.getHeight()+h);
- AttribSliderR = environment->addScrollBar(true, r3, this, -1);
- AttribSliderR->setMax(255);
- AttribSliderR->grab();
- AttribSliderR->setSubElement(true);
- AttribSliderR->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- r3 += core::position2di(0, r3.getHeight()+h);
- AttribSliderG = environment->addScrollBar(true, r3, this, -1);
- AttribSliderG->setMax(255);
- AttribSliderG->grab();
- AttribSliderG->setSubElement(true);
- AttribSliderG->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- r3 += core::position2di(0, r3.getHeight()+h);
- AttribSliderB = environment->addScrollBar(true, r3, this, -1);
- AttribSliderB->setMax(255);
- AttribSliderB->grab();
- AttribSliderB->setSubElement(true);
- AttribSliderB->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
-
- // add editbox
- AttribEditBox = environment->addEditBox(
- L"",
- r2,
- true, this, -1);
- AttribEditBox->grab();
- AttribEditBox->setSubElement(true);
- AttribEditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- }
-
- virtual ~CGUIColorAttribute()
- {
- if (AttribSliderA)
- AttribSliderA->drop();
- if (AttribSliderR)
- AttribSliderR->drop();
- if (AttribSliderG)
- AttribSliderG->drop();
- if (AttribSliderB)
- AttribSliderB->drop();
- if (AttribEditBox)
- AttribEditBox->drop();
- if (AttribColor)
- AttribColor->drop();
- }
-
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
- video::SColor col = attribs->getAttributeAsColor(attribIndex);
-
- AttribSliderA->setPos(col.getAlpha());
- AttribSliderR->setPos(col.getRed());
- AttribSliderG->setPos(col.getGreen());
- AttribSliderB->setPos(col.getBlue());
- AttribEditBox->setText( attribs->getAttributeAsStringW(attribIndex).c_str() );
- AttribColor->setBackgroundColor(col);
-
- CGUIAttribute::setAttrib(attribs, attribIndex);
- }
-
- virtual bool OnEvent(const SEvent &e)
- {
- switch (e.EventType)
- {
-
- case EET_GUI_EVENT:
- switch (e.GUIEvent.EventType)
- {
- case EGET_EDITBOX_ENTER:
- case EGET_ELEMENT_FOCUS_LOST:
- if (e.GUIEvent.Caller == AttribEditBox)
- {
- // update scrollbars from textbox
- Attribs->setAttribute(Index, AttribEditBox->getText());
- video::SColor col = Attribs->getAttributeAsColor(Index);
- AttribSliderA->setPos(col.getAlpha());
- AttribSliderR->setPos(col.getRed());
- AttribSliderG->setPos(col.getGreen());
- AttribSliderB->setPos(col.getBlue());
- // update colour
- AttribColor->setBackgroundColor(col);
- }
- break;
- case EGET_SCROLL_BAR_CHANGED:
- {
- // update editbox from scrollbars
- video::SColor col( AttribSliderA->getPos(), AttribSliderR->getPos(),
- AttribSliderG->getPos(), AttribSliderB->getPos());
-
- Attribs->setAttribute(Index, col);
- AttribEditBox->setText( Attribs->getAttributeAsStringW(Index).c_str());
- // update colour
- AttribColor->setBackgroundColor(col);
- }
- return updateAttrib();
- default:
- break;
- }
- break;
- default:
- break;
- }
- return CGUIAttribute::OnEvent(e);
- }
-
- // save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (!Attribs)
- return true;
-
- Attribs->setAttribute(Index, AttribEditBox->getText());
- AttribEditBox->setText(Attribs->getAttributeAsStringW(Index).c_str());
- return CGUIAttribute::updateAttrib(sendEvent);
- }
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_COLORATTRIBUTE];
- }
-
- private:
- IGUIScrollBar* AttribSliderA;
- IGUIScrollBar* AttribSliderR;
- IGUIScrollBar* AttribSliderG;
- IGUIScrollBar* AttribSliderB;
- IGUIEditBox* AttribEditBox;
- IGUITab* AttribColor;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIDummyEditorStub.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIDummyEditorStub.h
deleted file mode 100644
index b373b2d..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIDummyEditorStub.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- This is a custom editor for stubbing problematic elements out,
- for example elements which include modal screens
-*/
-
-#ifndef __C_GUI_DUMMY_EDITOR_STUB_H_INCLUDED__
-#define __C_GUI_DUMMY_EDITOR_STUB_H_INCLUDED__
-
-#include "IGUIElement.h"
-#include "IGUIEnvironment.h"
-#include "IGUIStaticText.h"
-
-namespace irr
-{
-
-namespace gui
-{
- class CGUIDummyEditorStub : public IGUIElement
- {
- public:
- //! constructor
- CGUIDummyEditorStub(IGUIEnvironment* environment, IGUIElement *parent, const char *text) :
- IGUIElement(EGUIET_ELEMENT, environment, parent, -1, core::rect(0, 0, 100, 100) ),
- TextBox(0), TypeName(text)
- {
-
- #ifdef _DEBUG
- setDebugName("CGUIDummyEditorStub");
- #endif
-
- core::dimension2du d = Environment->getSkin()->getFont()->getDimension(L"A");
- s32 h = d.Height / 2;
- s32 w = d.Width / 2;
-
- TextBox = environment->addStaticText(core::stringw(text).c_str(),
- core::rect(50-w, 50-h, 50+w, 50+h),
- false, false, this, -1, false);
- TextBox->grab();
- TextBox->setSubElement(true);
- TextBox->setAlignment(EGUIA_CENTER, EGUIA_CENTER, EGUIA_CENTER, EGUIA_CENTER);
- }
-
- virtual ~CGUIDummyEditorStub()
- {
- if (TextBox)
- TextBox->drop();
- }
- virtual const c8* getTypeName() const { return TypeName.c_str(); }
-
- protected:
- IGUIStaticText* TextBox;
- core::stringc TypeName;
-
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.cpp
deleted file mode 100644
index 0748360..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditFactory.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#include "CGUIEditFactory.h"
-#include "IGUIEnvironment.h"
-#include "irrString.h"
-
-#include "EGUIEditTypes.h"
-
-#include "CGUIEditWorkspace.h"
-#include "CGUIEditWindow.h"
-#include "CGUIPanel.h"
-#include "CGUITextureCacheBrowser.h"
-#include "CGUIAttributeEditor.h"
-#include "CGUIStringAttribute.h"
-#include "CGUIBoolAttribute.h"
-#include "CGUIEnumAttribute.h"
-#include "CGUIColorAttribute.h"
-#include "CGUITextureAttribute.h"
-#include "CGUIDummyEditorStub.h"
-
-namespace irr
-{
-namespace gui
-{
-
-CGUIEditFactory::CGUIEditFactory(IGUIEnvironment* env)
-: Environment(env)
-{
- #ifdef _DEBUG
- setDebugName("CGUIEditFactory");
- #endif
-
- // don't grab the gui environment here to prevent cyclic references
-}
-
-
-CGUIEditFactory::~CGUIEditFactory()
-{
-}
-
-
-//! adds an element to the environment based on its type name
-IGUIElement* CGUIEditFactory::addGUIElement(const c8* typeName, IGUIElement* parent)
-{
- /*
- here we create elements, add them to the manager, and then drop them
- */
-
- core::stringc elementType(typeName);
- IGUIElement* ret=0;
- if (!parent)
- parent = Environment->getRootGUIElement();
-
- // editor workspace
- if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_GUIEDIT]))
- ret = new CGUIEditWorkspace(Environment, -1, 0);
- // editor window
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_GUIEDITWINDOW]))
- ret = new CGUIEditWindow(Environment, core::rect(0,0,100,100), 0);
- // Klasker's GUI Panel
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_GUIPANEL]))
- ret = new CGUIPanel(Environment, 0);
- // texture cache browser
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_TEXTUREBROWSER]))
- ret = new CGUITextureCacheBrowser(Environment, -1, 0);
- // block of attribute editors
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_ATTRIBUTEEDITOR]))
- ret = new CGUIAttributeEditor(Environment, -1, 0);
- //! single attribute editors
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_STRINGATTRIBUTE]))
- ret = new CGUIStringAttribute(Environment, 0, -1);
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_BOOLATTRIBUTE]))
- ret = new CGUIBoolAttribute(Environment, 0, -1);
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_ENUMATTRIBUTE]))
- ret = new CGUIEnumAttribute(Environment, 0, -1);
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_COLORATTRIBUTE]))
- ret = new CGUIColorAttribute(Environment, 0, -1);
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_COLORFATTRIBUTE]))
- ret = new CGUIColorAttribute(Environment, 0, -1);
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_TEXTUREATTRIBUTE]))
- ret = new CGUITextureAttribute(Environment, 0, -1);
- // stubs and custom editors
- else if (elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_CONTEXTMENUEDITOR]) ||
- elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_MENUEDITOR]) ||
- elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_FILEDIALOGEDITOR]) ||
- elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_COLORDIALOGEDITOR]) ||
- elementType == core::stringc(GUIEditElementTypeNames[EGUIEDIT_MODALSCREENEDITOR]) )
- ret = new CGUIDummyEditorStub(Environment, 0, typeName);
-
- // add the element to its parent
- if (ret)
- parent->addChild(ret);
-
- // the environment now has the reference, so we can drop the element
- if (ret)
- ret->drop();
-
- return ret;
-}
-
-
-//! returns amount of element types this factory is able to create
-s32 CGUIEditFactory::getCreatableGUIElementTypeCount() const
-{
- return EGUIEDIT_COUNT;
-}
-
-
-//! returns type name of a createable element type
-const c8* CGUIEditFactory::getCreateableGUIElementTypeName(s32 idx) const
-{
- if (idx>=0 && idx rectangle, IGUIElement *parent)
- : IGUIWindow(environment, parent, -1, rectangle),
- Dragging(false), IsDraggable(true), Resizing(false), SelectedElement(0),
- AttribEditor(0), OptionEditor(0), EnvEditor(0)
-{
- #ifdef _DEBUG
- setDebugName("CGUIEditWindow");
- #endif
-
- // we can't tab out of this window
- setTabGroup(true);
- // we can ctrl+tab to it
- setTabStop(true);
- // the tab order number is auto-assigned
- setTabOrder(-1);
-
- // set window text
- setText(L"GUI Editor");
-
- // return if we have no skin.
- IGUISkin *skin = environment->getSkin();
- if (!skin)
- return;
-
- s32 th = skin->getSize(EGDS_WINDOW_BUTTON_WIDTH);
-
- setRelativePosition(core::rect(50,50,250,500));
- setMinSize(core::dimension2du(200,200));
-
- IGUITabControl *TabControl = environment->addTabControl(core::rect(1,th+5,199,449), this, false, true);
- TabControl->setSubElement(true);
- TabControl->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
-
- TabControl->addTab(L"Tools");
- //L"Texture Cache Browser"
- //L"Font Browser"
- //L"Font Generator"
- //L"Sprite Editor"
- //Environment->addGUIElement("textureCacheBrowser", this);
-
- IGUITab* EditorTab = TabControl->addTab(L"Editor");
- OptionEditor = (CGUIAttributeEditor*) environment->addGUIElement("attributeEditor", EditorTab);
- OptionEditor->grab();
- OptionEditor->setID(EGUIEDCE_OPTION_EDITOR);
- OptionEditor->setRelativePositionProportional(core::rect(0.0f, 0.0f, 1.0f, 1.0f));
- OptionEditor->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
-
- if (Parent && Parent->getParent() == Environment->getRootGUIElement())
- {
- IGUITab* EnvTab = TabControl->addTab(L"Env");
- EnvEditor = (CGUIAttributeEditor*) environment->addGUIElement("attributeEditor", EnvTab);
- EnvEditor->grab();
- EnvEditor->setID(EGUIEDCE_ENV_EDITOR);
- EnvEditor->setRelativePositionProportional(core::rect(0.0f, 0.0f, 1.0f, 1.0f));
- EnvEditor->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
- }
- IGUITab* ElementTab = TabControl->addTab(L"Element");
-
- AttribEditor = (CGUIAttributeEditor*) environment->addGUIElement("attributeEditor", ElementTab);
- AttribEditor->grab();
- AttribEditor->setID(EGUIEDCE_ATTRIB_EDITOR);
- AttribEditor->setRelativePositionProportional(core::rect(0.0f, 0.0f, 1.0f, 1.0f));
- AttribEditor->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
-
- IGUITab* TreeTab = TabControl->addTab(L"Tree");
- TreeView = environment->addTreeView(core::rect(0,0,0,0), TreeTab);
- TreeView->setRelativePositionProportional(core::rect(0.0f, 0.0f, 1.0f, 1.0f));
- TreeView->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
- IGUITreeViewNode* treenode = TreeView->getRoot();
- //treenode->addChildFront(L"Elements");
- ResizeButton = environment->addButton(core::rect(199-th,449-th,199,449), this);
- ResizeButton->setDrawBorder(false);
- ResizeButton->setEnabled(false);
- ResizeButton->setSpriteBank(skin->getSpriteBank());
- ResizeButton->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_WINDOW_RESIZE), skin->getColor(EGDC_WINDOW_SYMBOL));
- ResizeButton->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_WINDOW_RESIZE), skin->getColor(EGDC_WINDOW_SYMBOL));
- ResizeButton->grab();
- ResizeButton->setSubElement(true);
- ResizeButton->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT);
- updateTree();
-}
-
-
-//! destructor
-CGUIEditWindow::~CGUIEditWindow()
-{
- // drop everything
- if (AttribEditor)
- AttribEditor->drop();
- if (EnvEditor)
- EnvEditor->drop();
- if (OptionEditor)
- OptionEditor->drop();
- if (ResizeButton)
- ResizeButton->drop();
-}
-
-IGUITreeView* CGUIEditWindow::getTreeView() const
-{
- return TreeView;
-}
-CGUIAttributeEditor* CGUIEditWindow::getEnvironmentEditor() const
-{
- return EnvEditor;
-}
-
-CGUIAttributeEditor* CGUIEditWindow::getAttributeEditor() const
-{
- return AttribEditor;
-}
-
-CGUIAttributeEditor* CGUIEditWindow::getOptionEditor() const
-{
- return OptionEditor;
-}
-
-IGUITreeViewNode* CGUIEditWindow::getTreeNode(IGUIElement* element, IGUITreeViewNode* searchnode)
-{
- IGUITreeViewNode* child = searchnode->getFirstChild();
- while (child)
- {
- if (((IGUIElement*) child->getData()) == element)
- return child;
-
- if (child->hasChildren())
- {
- IGUITreeViewNode* foundnode = getTreeNode(element, child);
- if (foundnode)
- return foundnode;
- }
- child = child->getNextSibling();
- }
- return 0;
-}
-
-void CGUIEditWindow::addChildrenToTree(IGUIElement* parentElement, IGUITreeViewNode* treenode)
-{
- core::stringw name = core::stringw(parentElement->getTypeName());
- if (parentElement->getID() != -1)
- name += core::stringw(L" [") + core::stringw(parentElement->getID()) + core::stringw(L"]");
-
- IGUITreeViewNode* newnode = treenode->addChildBack(name.c_str());
- newnode->setData((void*)parentElement);
- core::list children = parentElement->getChildren();
-
- for (core::list::Iterator i = children.begin(); i != children.end(); i++ )
- {
- if(core::stringc((*i)->getTypeName()) != "GUIEditor" && !(*i)->isSubElement())
- addChildrenToTree(*i, newnode);
- }
-}
-
-void CGUIEditWindow::updateTree()
-{
- TreeView->getRoot()->clearChildren();
- IGUIElement* root = Environment->getRootGUIElement();
- addChildrenToTree(root, TreeView->getRoot());
- TreeView->getRoot()->getFirstChild()->setExpanded(true);
-}
-
-void CGUIEditWindow::setSelectedElement(IGUIElement *sel)
-{
- // save changes
- AttribEditor->updateAttribs();
- IGUITreeViewNode* elementTreeNode = getTreeNode(sel, TreeView->getRoot());
-
- if (elementTreeNode)
- {
- elementTreeNode->setSelected(true);
- while (elementTreeNode)
- {
- elementTreeNode->setExpanded(true);
- elementTreeNode = elementTreeNode->getParent();
- }
- }
-
- io::IAttributes* Attribs = AttribEditor->getAttribs();
-
- if (SelectedElement && sel != SelectedElement)
- {
- // deserialize attributes
- SelectedElement->deserializeAttributes(Attribs);
- }
- // clear the attributes list
- Attribs->clear();
- SelectedElement = sel;
-
- // get the new attributes
- if (SelectedElement)
- SelectedElement->serializeAttributes(Attribs);
-
- AttribEditor->refreshAttribs();
-}
-
-//! draws the element and its children.
-//! same code as for a window
-void CGUIEditWindow::draw()
-{
- if (!IsVisible)
- return;
-
- IGUISkin* skin = Environment->getSkin();
-
- core::rect rect = AbsoluteRect;
-
- // draw body fast
- rect = skin->draw3DWindowBackground(this, true, skin->getColor(EGDC_ACTIVE_BORDER),
- AbsoluteRect, &AbsoluteClippingRect);
-
- if (Text.size())
- {
- rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X);
- rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y);
- rect.LowerRightCorner.X -= skin->getSize(EGDS_WINDOW_BUTTON_WIDTH) + 5;
-
- IGUIFont* font = skin->getFont();
- if (font)
- font->draw(Text.c_str(), rect, skin->getColor(EGDC_ACTIVE_CAPTION), false, true, &AbsoluteClippingRect);
- }
-
- IGUIElement::draw();
-}
-
-
-//! called if an event happened.
-bool CGUIEditWindow::OnEvent(const SEvent &event)
-{
- switch(event.EventType)
- {
- case EET_GUI_EVENT:
- switch(event.GUIEvent.EventType)
- {
- case EGET_ELEMENT_FOCUS_LOST:
- if (event.GUIEvent.Caller == this ||
- event.GUIEvent.Caller == ResizeButton)
- {
- Dragging = false;
- Resizing = false;
- }
- break;
- default:
- break;
- }
-
- break;
- case EET_MOUSE_INPUT_EVENT:
- switch(event.MouseInput.Event)
- {
- case EMIE_LMOUSE_PRESSED_DOWN:
- {
- DragStart.X = event.MouseInput.X;
- DragStart.Y = event.MouseInput.Y;
-
- IGUIElement* clickedElement = getElementFromPoint(DragStart);
-
- if (clickedElement == this)
- {
- Dragging = IsDraggable;
- //Environment->setFocus(this);
- if (Parent)
- Parent->bringToFront(this);
- return true;
- }
- else if (clickedElement == ResizeButton)
- {
- Resizing = true;
- //Environment->setFocus(this);
- if (Parent)
- Parent->bringToFront(this);
- return true;
- }
- break;
- }
- case EMIE_LMOUSE_LEFT_UP:
- if (Dragging || Resizing)
- {
- Dragging = false;
- Resizing = false;
- return true;
- }
- break;
- case EMIE_MOUSE_MOVED:
- if (Dragging || Resizing)
- {
- // gui window should not be dragged outside of its parent
- if (Parent)
- if (event.MouseInput.X < Parent->getAbsolutePosition().UpperLeftCorner.X +1 ||
- event.MouseInput.Y < Parent->getAbsolutePosition().UpperLeftCorner.Y +1 ||
- event.MouseInput.X > Parent->getAbsolutePosition().LowerRightCorner.X -1 ||
- event.MouseInput.Y > Parent->getAbsolutePosition().LowerRightCorner.Y -1)
-
- return true;
- core::position2di diff(event.MouseInput.X - DragStart.X, event.MouseInput.Y - DragStart.Y);
- if (Dragging)
- {
- move(diff);
- DragStart.X = event.MouseInput.X;
- DragStart.Y = event.MouseInput.Y;
- }
- else if (Resizing)
- {
- core::position2di dp = RelativeRect.LowerRightCorner + diff;
- setRelativePosition(core::rect(RelativeRect.UpperLeftCorner, dp));
- DragStart += dp - RelativeRect.LowerRightCorner + diff;
- }
-
- return true;
- }
- break;
- default:
- break;
- }
- default:
- break;
- }
-
- return Parent ? Parent->OnEvent(event) : false;
-}
-
-bool CGUIEditWindow::isDraggable() const
-{
- return IsDraggable;
-}
-
-void CGUIEditWindow::setDraggable(bool draggable)
-{
- IsDraggable = draggable;
-
- if (Dragging && !IsDraggable)
- Dragging = false;
-}
-
-
-// we're supposed to supply these if we're creating an IGUIWindow
-// but we don't need them so we'll just return null
-
-//! Returns the rectangle of the drawable area (without border, without titlebar and without scrollbars)
-core::rect CGUIEditWindow::getClientRect() const {return core::recti();}
-IGUIButton* CGUIEditWindow::getCloseButton() const {return 0;}
-IGUIButton* CGUIEditWindow::getMinimizeButton() const {return 0;}
-IGUIButton* CGUIEditWindow::getMaximizeButton() const {return 0;}
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.h
deleted file mode 100644
index 07eb28b..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWindow.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef __C_GUI_EDITOR_H_INCLUDED__
-#define __C_GUI_EDITOR_H_INCLUDED__
-
-
-#include "IGUIWindow.h"
-#include "CGUIAttributeEditor.h"
-//#include "IGUIStaticText.h"
-#include "IGUIButton.h"
-#include "IGUITreeView.h"
-#include "irrArray.h"
-#include "IAttributes.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
- class CGUIEditWindow : public IGUIWindow
- {
- public:
-
- //! constructor
- CGUIEditWindow(IGUIEnvironment* environment, core::rect rectangle, IGUIElement *parent);
-
- //! destructor
- ~CGUIEditWindow();
-
- //! this part draws the window
- virtual void draw();
- //! handles events
- virtual bool OnEvent(const SEvent &event);
-
- //! change selection
- virtual void setSelectedElement(IGUIElement *sel);
-
- //! get draggable
- virtual bool isDraggable() const;
-
- //! get draggable
- virtual void setDraggable(bool draggable);
-
- // not used
- virtual core::rect getClientRect() const;
- virtual IGUIButton* getCloseButton() const;
- virtual IGUIButton* getMinimizeButton() const;
- virtual IGUIButton* getMaximizeButton() const;
- virtual void setDrawBackground(bool draw) { }
- virtual bool getDrawBackground() const { return true; }
- virtual void setDrawTitlebar(bool draw) { }
- virtual bool getDrawTitlebar() const { return true; }
-
- IGUITreeView* getTreeView() const;
- CGUIAttributeEditor* getAttributeEditor() const;
- CGUIAttributeEditor* getOptionEditor() const;
- CGUIAttributeEditor* getEnvironmentEditor() const;
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_GUIEDITWINDOW];
- }
-
- void updateTree();
- private:
-
- void addChildrenToTree(IGUIElement* parentElement, IGUITreeViewNode* treenode);
- IGUITreeViewNode* getTreeNode(IGUIElement* element, IGUITreeViewNode* searchnode);
- // for dragging the window
- bool Dragging;
- bool IsDraggable;
- bool Resizing;
- core::position2d DragStart;
-
- IGUIElement* SelectedElement; // current selected element
-
- CGUIAttributeEditor* AttribEditor; // edits the current attribute
- CGUIAttributeEditor* OptionEditor; // edits the options for the window
- CGUIAttributeEditor* EnvEditor; // edits attributes for the environment
- IGUITreeView* TreeView; // tree view of all elements in scene
- IGUIButton* ResizeButton;
-
- };
-
-} // end namespace gui
-} // end namespace irr
-
-#endif // __C_GUI_EDITOR_H_INCLUDED__
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.cpp
deleted file mode 100644
index 7b09136..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.cpp
+++ /dev/null
@@ -1,927 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt / Gaz Davidson
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-// Thanks to Midnight for all his testing, bug fixes and patches :)
-
-#include "CGUIEditWorkspace.h"
-#include "IGUIEnvironment.h"
-#include "IVideoDriver.h"
-#include "IOSOperator.h"
-#include "IReadFile.h"
-#include "IFileSystem.h"
-#include "IXMLWriter.h"
-#include "IGUISkin.h"
-#include "IGUIElementFactory.h"
-#include "CGUIEditWindow.h"
-#include "IGUIContextMenu.h"
-#include "IGUIFileOpenDialog.h"
-#include "IGUITreeView.h"
-#include "CGUIAttribute.h"
-#include "CMemoryReadWriteFile.h"
-
-namespace irr
-{
-namespace gui
-{
-
-//! constructor
-CGUIEditWorkspace::CGUIEditWorkspace(IGUIEnvironment* environment, s32 id, IGUIElement *parent)
-: IGUIElement(EGUIET_ELEMENT, environment, parent ? parent : environment->getRootGUIElement(), id, environment->getRootGUIElement()->getAbsolutePosition()),
- CurrentMode(EGUIEDM_SELECT), MouseOverMode(EGUIEDM_SELECT),
- GridSize(10,10), MenuCommandStart(0x3D17), DrawGrid(false), UseGrid(true),
- MouseOverElement(0), SelectedElement(0), EditorWindow(0)
-{
- #ifdef _DEBUG
- setDebugName("CGUIEditWorkspace");
- #endif
-
- // this element is never saved.
- setSubElement(true);
-
- // it resizes to fit a resizing window
- setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
-
- EditorWindow = (CGUIEditWindow*) Environment->addGUIElement("GUIEditWindow", this);
- if (EditorWindow)
- {
- EditorWindow->grab();
- EditorWindow->setSubElement(true);
-
- Environment->setFocus(EditorWindow);
- serializeAttributes(EditorWindow->getOptionEditor()->getAttribs());
- EditorWindow->getOptionEditor()->refreshAttribs();
-
- if (EditorWindow->getEnvironmentEditor())
- {
- Environment->serializeAttributes(EditorWindow->getEnvironmentEditor()->getAttribs());
- EditorWindow->getEnvironmentEditor()->refreshAttribs();
- }
- }
-}
-
-
-//! destructor
-CGUIEditWorkspace::~CGUIEditWorkspace()
-{
- if (EditorWindow)
- EditorWindow->drop();
-}
-
-
-void CGUIEditWorkspace::setMenuCommandIDStart(s32 id)
-{
- MenuCommandStart = id;
-}
-
-CGUIEditWorkspace::EGUIEDIT_MODE CGUIEditWorkspace::getModeFromPos(core::position2di p)
-{
- if (SelectedElement)
- {
- core::rect r = SelectedElement->getAbsolutePosition();
-
- if (TLRect.isPointInside(p))
- return EGUIEDM_RESIZE_TL;
-
- else if (TRRect.isPointInside(p))
- return EGUIEDM_RESIZE_TR;
-
- else if (BLRect.isPointInside(p) )
- return EGUIEDM_RESIZE_BL;
-
- else if (BRRect.isPointInside(p))
- return EGUIEDM_RESIZE_BR;
-
- else if (TopRect.isPointInside(p))
- return EGUIEDM_RESIZE_T;
-
- else if (BRect.isPointInside(p))
- return EGUIEDM_RESIZE_B;
-
- else if (LRect.isPointInside(p))
- return EGUIEDM_RESIZE_L;
-
- else if (RRect.isPointInside(p))
- return EGUIEDM_RESIZE_R;
-
- else if (getEditableElementFromPoint(SelectedElement, p) == SelectedElement)
- return EGUIEDM_MOVE;
-
- else
- return EGUIEDM_SELECT;
- }
-
- return EGUIEDM_SELECT;
-
-}
-
-IGUIElement* CGUIEditWorkspace::getEditableElementFromPoint(IGUIElement *start, const core::position2di &point, s32 index )
-{
- IGUIElement* target = 0;
-
- // we have to search from back to front.
-
- core::list::ConstIterator it = start->getChildren().getLast();
- s32 count=0;
- while(it != start->getChildren().end())
- {
- target = getEditableElementFromPoint((*it),point);
- if (target)
- {
- if (!target->isSubElement() && !isMyChild(target) && target != this)
- {
- if (index == count)
- return target;
- else
- count++;
- }
- else
- target = 0;
- }
- --it;
- }
-
- if (start->getAbsolutePosition().isPointInside(point))
- target = start;
-
- return target;
-}
-
-void CGUIEditWorkspace::setSelectedElement(IGUIElement *sel)
-{
- IGUIElement* focus = Environment->getFocus();
- // we only give focus back to children
- if (!isMyChild(focus))
- focus = 0;
-
- if (SelectedElement != Parent)
- {
- if (SelectedElement != sel && EditorWindow)
- {
- EditorWindow->setSelectedElement(sel);
- SelectedElement = sel;
- }
- }
- else
- SelectedElement = 0;
-
- if (focus)
- Environment->setFocus(focus);
- else
- Environment->setFocus(this);
-}
-
-IGUIElement* CGUIEditWorkspace::getSelectedElement()
-{
- return SelectedElement;
-}
-void CGUIEditWorkspace::selectNextSibling()
-{
- IGUIElement* p=0;
-
- if (SelectedElement && SelectedElement->getParent())
- p = SelectedElement->getParent();
- else
- p = Parent;
-
- core::list::ConstIterator it = p->getChildren().begin();
- // find selected element
- if (SelectedElement)
- while (*it != SelectedElement)
- ++it;
- if (it !=p->getChildren().end())
- ++it;
- // find next non sub-element
- while (it != p->getChildren().end() && (*it)->isSubElement())
- ++it;
-
- if (it != p->getChildren().end())
- setSelectedElement(*it);
-}
-void CGUIEditWorkspace::selectPreviousSibling()
-{
- IGUIElement* p=0;
-
- if (SelectedElement && SelectedElement->getParent())
- p = SelectedElement->getParent();
- else
- p = Parent;
-
- core::list::ConstIterator it = p->getChildren().getLast();
- // find selected element
- if (SelectedElement)
- while (*it != SelectedElement)
- --it;
- if (it != p->getChildren().end())
- --it;
- // find next non sub-element
- while (it != p->getChildren().end() && (*it)->isSubElement())
- --it;
-
- if (it != p->getChildren().end())
- setSelectedElement(*it);
-}
-
-//! called if an event happened.
-bool CGUIEditWorkspace::OnEvent(const SEvent &e)
-{
- IGUIFileOpenDialog* dialog=0;
- switch(e.EventType)
- {
- case ATTRIBEDIT_ATTRIB_CHANGED:
- {
- switch (e.UserEvent.UserData1)
- {
- case EGUIEDCE_ATTRIB_EDITOR:
- {
- // update selected items attributes
- if (SelectedElement)
- {
- SelectedElement->deserializeAttributes(EditorWindow->getAttributeEditor()->getAttribs());
- EditorWindow->updateTree();
- }
- return true;
- }
- case EGUIEDCE_OPTION_EDITOR:
- {
- // update editor options
- deserializeAttributes(EditorWindow->getOptionEditor()->getAttribs());
- return true;
- }
- case EGUIEDCE_ENV_EDITOR:
- {
- // update environment
- Environment->deserializeAttributes(EditorWindow->getEnvironmentEditor()->getAttribs());
- return true;
- }
- }
- }
- break;
-
- case EET_KEY_INPUT_EVENT:
- if (!e.KeyInput.PressedDown)
- {
- switch (e.KeyInput.Key)
- {
- case KEY_DELETE:
- if (SelectedElement)
- {
- IGUIElement* el = SelectedElement;
- setSelectedElement(0);
- MouseOverElement = 0;
- el->remove();
- EditorWindow->updateTree();
- }
- break;
- case KEY_KEY_X:
- if (e.KeyInput.Control && SelectedElement)
- {
- // cut
- CopySelectedElementXML();
- // delete element
- IGUIElement *el = SelectedElement;
- setSelectedElement(0);
- MouseOverElement = 0;
- el->remove();
- }
- break;
- case KEY_KEY_C:
- // copy
- if (e.KeyInput.Control && SelectedElement)
- {
- CopySelectedElementXML();
- }
- break;
- case KEY_KEY_V:
- // paste
- if (e.KeyInput.Control)
- {
- PasteXMLToSelectedElement();
- }
- break;
- default:
- break;
- }
-
- return true;
- }
- break;
-
- case EET_MOUSE_INPUT_EVENT:
-
- switch(e.MouseInput.Event)
- {
- case EMIE_MOUSE_WHEEL:
- {
- f32 wheel = e.MouseInput.Wheel;
-
- if (wheel > 0)
- selectPreviousSibling();
- else
- selectNextSibling();
- }
- break;
- case EMIE_LMOUSE_PRESSED_DOWN:
- {
- core::position2di p = core::position2di(e.MouseInput.X,e.MouseInput.Y);
-
- IGUIElement* newSelection = getElementFromPoint(p);
-
- if (newSelection != this && isMyChild(newSelection) ) // redirect event
- {
- Environment->setFocus(newSelection);
- return true;
- }
-
- // hide the gui editor
- if (EditorWindow)
- EditorWindow->setVisible(false);
-
- if (CurrentMode == EGUIEDM_SELECT)
- {
- if (SelectedElement)
- {
- // start moving or dragging
- CurrentMode = getModeFromPos(p);
-
- if (CurrentMode == EGUIEDM_MOVE)
- StartMovePos = SelectedElement->getAbsolutePosition().UpperLeftCorner;
-
- DragStart = p;
- SelectedArea = SelectedElement->getAbsolutePosition();
- }
-
- if (CurrentMode < EGUIEDM_MOVE)
- {
- // selecting an element...
- MouseOverElement = getEditableElementFromPoint(Parent, p);
-
- if (MouseOverElement == Parent)
- MouseOverElement = 0;
-
- setSelectedElement(MouseOverElement);
- }
- }
-
- break;
- }
- case EMIE_RMOUSE_PRESSED_DOWN:
- if (CurrentMode == EGUIEDM_SELECT_NEW_PARENT || CurrentMode >= EGUIEDM_MOVE)
- {
- // cancel dragging
- CurrentMode = EGUIEDM_SELECT;
- }
- else
- {
- DragStart = core::position2di(e.MouseInput.X,e.MouseInput.Y);
- // root menu
- IGUIContextMenu* mnu = Environment->addContextMenu(
- core::rect(e.MouseInput.X, e.MouseInput.Y, e.MouseInput.Y+100, e.MouseInput.Y+100),this);
- mnu->addItem(L"File",-1,true,true);
- mnu->addItem(L"Edit",-1,true,true);
- mnu->addItem(L"View",-1,true,true);
- mnu->addItem(SelectedElement ? L"Add child" : L"Add" ,-1,true,true);
-
- // file menu
- IGUIContextMenu* sub = mnu->getSubMenu(0);
- IGUIContextMenu* sub2 =0;
-
- sub->addItem(L"New", MenuCommandStart + EGUIEDMC_FILE_NEW );
- sub->addItem(L"Load...",MenuCommandStart + EGUIEDMC_FILE_LOAD);
- sub->addItem(L"Save...",MenuCommandStart + EGUIEDMC_FILE_SAVE);
-
- // edit menu
- sub = mnu->getSubMenu(1);
- sub->addItem(L"Cut (ctrl+x)", MenuCommandStart + EGUIEDMC_CUT_ELEMENT, (SelectedElement != 0));
- sub->addItem(L"Copy (ctrl+c)", MenuCommandStart + EGUIEDMC_COPY_ELEMENT, (SelectedElement != 0));
- sub->addItem(L"Paste (ctrl+v)", MenuCommandStart + EGUIEDMC_PASTE_ELEMENT,
- (core::stringc(Environment->getOSOperator()->getTextFromClipboard()) != ""));
- sub->addItem(L"Delete (del)", MenuCommandStart + EGUIEDMC_DELETE_ELEMENT, (SelectedElement != 0));
- sub->addSeparator();
- sub->addItem(L"Set parent", MenuCommandStart + EGUIEDMC_SET_PARENT, (SelectedElement != 0));
- sub->addItem(L"Bring to front", MenuCommandStart + EGUIEDMC_BRING_TO_FRONT, (SelectedElement != 0));
- sub->addSeparator();
- sub->addItem(L"Save to XML...", MenuCommandStart + EGUIEDMC_SAVE_ELEMENT, (SelectedElement != 0));
-
- sub = mnu->getSubMenu(2);
- // view menu
- if (EditorWindow)
- sub->addItem(EditorWindow->isVisible() ? L"Hide window" : L"Show window", MenuCommandStart + EGUIEDMC_TOGGLE_EDITOR);
-
- sub = mnu->getSubMenu(3);
-
- s32 i,j,c=0;
- sub->addItem(L"Default factory",-1,true, true);
-
- // add elements from each factory
- for (i=0; u32(i) < Environment->getRegisteredGUIElementFactoryCount(); ++i)
- {
- sub2 = sub->getSubMenu(i);
-
- IGUIElementFactory *f = Environment->getGUIElementFactory(i);
-
- for (j=0; j< f->getCreatableGUIElementTypeCount(); ++j)
- {
- sub2->addItem(core::stringw(f->getCreateableGUIElementTypeName(j)).c_str(), MenuCommandStart + EGUIEDMC_COUNT + c);
- c++;
- }
-
- if (u32(i+1) < Environment->getRegisteredGUIElementFactoryCount())
- {
- core::stringw strFact;
- strFact = L"Factory ";
- strFact += i+1;
- sub->addItem(strFact.c_str(),-1, true, true);
- }
- }
- sub->addSeparator();
- sub->addItem(L"From XML...", MenuCommandStart + EGUIEDMC_INSERT_XML);
-
- // set focus to menu
- Environment->setFocus(mnu);
-
- }
- break;
- case EMIE_LMOUSE_LEFT_UP:
-
- // make window visible again
- if (EditorWindow)
- EditorWindow->setVisible(true);
- if (CurrentMode == EGUIEDM_SELECT_NEW_PARENT)
- {
- if (SelectedElement)
- {
- MouseOverElement = getEditableElementFromPoint(Parent,
- core::position2di(e.MouseInput.X,e.MouseInput.Y));
- if (MouseOverElement)
- {
- MouseOverElement->addChild(SelectedElement);
- setSelectedElement(0);
- setSelectedElement(SelectedElement);
- }
- }
- CurrentMode = EGUIEDM_SELECT;
- }
- else if (CurrentMode >= EGUIEDM_MOVE)
- {
- IGUIElement *sel = SelectedElement;
- // unselect
- setSelectedElement(0);
-
- // move
- core::position2d p(0,0);
- if (sel->getParent())
- p = sel->getParent()->getAbsolutePosition().UpperLeftCorner;
-
- sel->setRelativePosition(SelectedArea - p);
-
- // select
- setSelectedElement(sel);
-
- // reset selection mode...
- CurrentMode = EGUIEDM_SELECT;
- }
- break;
- case EMIE_MOUSE_MOVED:
- // always on top
- Parent->bringToFront(this);
-
- // if selecting
- if (CurrentMode == EGUIEDM_SELECT || CurrentMode == EGUIEDM_SELECT_NEW_PARENT)
- {
-
- core::position2di p = core::position2di(e.MouseInput.X,e.MouseInput.Y);
-
- // highlight the element that the mouse is over
- MouseOverElement = getEditableElementFromPoint(Parent, p);
- if (MouseOverElement == Parent)
- {
- MouseOverElement = 0;
- }
-
- if (CurrentMode == EGUIEDM_SELECT)
- {
- MouseOverMode = getModeFromPos(p);
- if (MouseOverMode > EGUIEDM_MOVE)
- {
- MouseOverElement = SelectedElement;
- }
- }
- }
- else if (CurrentMode == EGUIEDM_MOVE)
- {
- // get difference
- core::position2di p = core::position2di(e.MouseInput.X,e.MouseInput.Y);
- p -= DragStart;
-
- // apply to top corner
- p = StartMovePos + p;
- if (UseGrid)
- {
- p.X = (p.X/GridSize.Width)*GridSize.Width;
- p.Y = (p.Y/GridSize.Height)*GridSize.Height;
- }
-
- SelectedArea += p - SelectedArea.UpperLeftCorner;
- }
- else if (CurrentMode > EGUIEDM_MOVE)
- {
- // get difference from start position
- core::position2di p = core::position2di(e.MouseInput.X,e.MouseInput.Y);
- if (UseGrid)
- {
- p.X = (p.X/GridSize.Width)*GridSize.Width;
- p.Y = (p.Y/GridSize.Height)*GridSize.Height;
- }
-
- switch(CurrentMode)
- {
- case EGUIEDM_RESIZE_T:
- SelectedArea.UpperLeftCorner.Y = p.Y;
- break;
- case EGUIEDM_RESIZE_B:
- SelectedArea.LowerRightCorner.Y = p.Y;
- break;
- case EGUIEDM_RESIZE_L:
- SelectedArea.UpperLeftCorner.X = p.X;
- break;
- case EGUIEDM_RESIZE_R:
- SelectedArea.LowerRightCorner.X = p.X;
- break;
- case EGUIEDM_RESIZE_TL:
- SelectedArea.UpperLeftCorner = p;
- break;
- case EGUIEDM_RESIZE_TR:
- SelectedArea.UpperLeftCorner.Y = p.Y;
- SelectedArea.LowerRightCorner.X = p.X;
- break;
- case EGUIEDM_RESIZE_BL:
- SelectedArea.UpperLeftCorner.X = p.X;
- SelectedArea.LowerRightCorner.Y = p.Y;
- break;
- case EGUIEDM_RESIZE_BR:
- SelectedArea.LowerRightCorner = p;
- break;
- default:
- break;
- }
- }
-
- break;
- default:
- break;
- }
- break;
-
- case EET_GUI_EVENT:
- switch(e.GUIEvent.EventType)
- {
- case EGET_TREEVIEW_NODE_SELECT:
- {
- IGUITreeViewNode* eventnode = ((IGUITreeView*)e.GUIEvent.Caller)->getLastEventNode();
- if(!eventnode->isRoot())
- setSelectedElement((IGUIElement*)(eventnode->getData()));
- break;
- }
- // load a gui file
- case EGET_FILE_SELECTED:
- dialog = (IGUIFileOpenDialog*)e.GUIEvent.Caller;
- Environment->loadGUI(core::stringc(dialog->getFileName()).c_str());
- break;
-
- case EGET_MENU_ITEM_SELECTED:
- {
- IGUIContextMenu *menu = (IGUIContextMenu*)e.GUIEvent.Caller;
- s32 cmdID = menu->getItemCommandId(menu->getSelectedItem()) - MenuCommandStart;
-
- IGUIElement* el;
-
- switch(cmdID)
- {
-
- //! file commands
- case EGUIEDMC_FILE_NEW:
- // clear all elements belonging to our parent
- setSelectedElement(0);
- MouseOverElement = 0;
- el = Parent;
- grab();
- // remove all children
- while(Children.end() != el->getChildren().begin())
- el->removeChild(*(el->getChildren().begin()));
- // attach to parent again
- el->addChild(this);
- drop();
-
- break;
- case EGUIEDMC_FILE_LOAD:
- Environment->addFileOpenDialog(L"Please select a GUI file to open", false, this);
- break;
- case EGUIEDMC_FILE_SAVE:
- Environment->saveGUI("guiTest.xml");
- break;
-
- //! edit menu
- case EGUIEDMC_CUT_ELEMENT:
- {
- CopySelectedElementXML();
- // delete element
- el = SelectedElement;
- setSelectedElement(0);
- MouseOverElement = 0;
- el->remove();
- break;
- }
- case EGUIEDMC_COPY_ELEMENT:
- CopySelectedElementXML();
- break;
- case EGUIEDMC_PASTE_ELEMENT:
- PasteXMLToSelectedElement();
- break;
- case EGUIEDMC_DELETE_ELEMENT:
- el = SelectedElement;
- setSelectedElement(0);
- MouseOverElement = 0;
- el->remove();
- break;
- case EGUIEDMC_SET_PARENT:
- CurrentMode = EGUIEDM_SELECT_NEW_PARENT;
- break;
- case EGUIEDMC_BRING_TO_FRONT:
- if (SelectedElement->getParent())
- SelectedElement->getParent()->bringToFront(SelectedElement);
- break;
-
- case EGUIEDMC_SAVE_ELEMENT:
- //TODO: add 'save' dialog.
- Environment->saveGUI("guiTest.xml", SelectedElement ? SelectedElement : Environment->getRootGUIElement() );
- break;
-
- //! toggle edit window
- case EGUIEDMC_TOGGLE_EDITOR:
- break;
-
- case EGUIEDMC_INSERT_XML:
- Environment->loadGUI("guiTest.xml", SelectedElement ? SelectedElement : Environment->getRootGUIElement() );
- break;
-
- default:
- // create element from factory?
- if (cmdID >= EGUIEDMC_COUNT)
- {
-
- s32 num = cmdID - EGUIEDMC_COUNT; // get index
- // loop through all factories
- s32 i, c=Environment->getRegisteredGUIElementFactoryCount();
- for (i=0; i Environment->getGUIElementFactory(i)->getCreatableGUIElementTypeCount(); ++i)
- {
- num -= Environment->getGUIElementFactory(i)->getCreatableGUIElementTypeCount();
- }
- if (num < Environment->getGUIElementFactory(i)->getCreatableGUIElementTypeCount() )
- {
- core::stringc name = Environment->getGUIElementFactory(i)->getCreateableGUIElementTypeName(num);
- IGUIElement *parentElement = SelectedElement ? SelectedElement : Environment->getRootGUIElement();
- // add it
- IGUIElement *newElement = Environment->getGUIElementFactory(i)->addGUIElement(name.c_str(),parentElement);
- if (newElement)
- {
- core::position2di p = DragStart - parentElement->getAbsolutePosition().UpperLeftCorner;
- newElement->setRelativePosition(core::rect(p,p+core::position2di(100,100)));
- //Environment->removeFocus(newElement);
- }
- }
- }
- break;
- }
- EditorWindow->updateTree();
- }
- return true;
- default:
- break;
- }
- break;
-
- default:
- break;
- }
-
- // even if we didn't absorb the event,
- // we never pass events back to the GUI we're editing!
- return false;
-}
-
-
-//! draws the element and its children
-void CGUIEditWorkspace::draw()
-{
- video::IVideoDriver *driver = Environment->getVideoDriver();
-
- if (DrawGrid)
- {
- // draw the grid
-
- core::rect r = getAbsolutePosition();
-
- s32 cy = r.UpperLeftCorner.Y;
- while (cy < r.LowerRightCorner.Y)
- {
- s32 cx = r.UpperLeftCorner.X;
- while (cx < r.LowerRightCorner.X)
- {
- driver->draw2DRectangle(video::SColor(40,0,0,90),core::rect(cx+1,cy+1,GridSize.Width+cx,GridSize.Height+cy));
- cx += GridSize.Width;
- }
- cy += GridSize.Height;
- }
- }
- if (MouseOverElement &&
- MouseOverElement != SelectedElement &&
- MouseOverElement != Parent)
- {
- core::rect r = MouseOverElement->getAbsolutePosition();
- driver->draw2DRectangle(video::SColor(100,0,0,255), r);
- }
- if (SelectedElement && CurrentMode == EGUIEDM_SELECT)
- {
- driver->draw2DRectangle(video::SColor(100,0,255,0),SelectedElement->getAbsolutePosition());
- }
- if (CurrentMode >= EGUIEDM_MOVE)
- {
- driver->draw2DRectangle(video::SColor(100,255,0,0),SelectedArea);
- }
-
- if ( (SelectedElement && CurrentMode >= EGUIEDM_MOVE) ||
- (SelectedElement && MouseOverElement == SelectedElement && MouseOverMode >= EGUIEDM_MOVE) )
- {
- // draw handles for moving
- EGUIEDIT_MODE m = CurrentMode;
- core::rect r = SelectedArea;
- if (m < EGUIEDM_MOVE)
- {
- m = MouseOverMode;
- r = SelectedElement->getAbsolutePosition();
- }
-
- core::position2di d = core::position2di(4,4);
-
- TLRect = core::rect(r.UpperLeftCorner, r.UpperLeftCorner + d );
- TRRect = core::rect(r.LowerRightCorner.X-4, r.UpperLeftCorner.Y, r.LowerRightCorner.X, r.UpperLeftCorner.Y+4);
- TopRect = core::rect(r.getCenter().X-2, r.UpperLeftCorner.Y,r.getCenter().X+2, r.UpperLeftCorner.Y+4 );
- BLRect = core::rect(r.UpperLeftCorner.X, r.LowerRightCorner.Y-4, r.UpperLeftCorner.X+4, r.LowerRightCorner.Y);
- LRect = core::rect(r.UpperLeftCorner.X,r.getCenter().Y-2, r.UpperLeftCorner.X+4, r.getCenter().Y+2 );
- RRect = core::rect(r.LowerRightCorner.X-4,r.getCenter().Y-2, r.LowerRightCorner.X, r.getCenter().Y+2 );
- BRRect = core::rect(r.LowerRightCorner-d, r.LowerRightCorner);
- BRect = core::rect(r.getCenter().X-2, r.LowerRightCorner.Y-4,r.getCenter().X+2, r.LowerRightCorner.Y );
-
- // top left
- if (m == EGUIEDM_RESIZE_T || m == EGUIEDM_RESIZE_L || m == EGUIEDM_RESIZE_TL || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), TLRect);
-
- if (m == EGUIEDM_RESIZE_T || m == EGUIEDM_RESIZE_R || m == EGUIEDM_RESIZE_TR || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), TRRect);
-
- if (m == EGUIEDM_RESIZE_T || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), TopRect);
-
- if (m == EGUIEDM_RESIZE_L || m == EGUIEDM_RESIZE_BL || m == EGUIEDM_RESIZE_B || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), BLRect);
-
- if (m == EGUIEDM_RESIZE_L || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), LRect);
-
- if (m == EGUIEDM_RESIZE_R || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), RRect);
-
- if (m == EGUIEDM_RESIZE_R || m == EGUIEDM_RESIZE_BR || m == EGUIEDM_RESIZE_B || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), BRRect );
-
- if (m == EGUIEDM_RESIZE_B || m == EGUIEDM_MOVE )
- driver->draw2DRectangle(video::SColor(100,255,255,255), BRect);
-
-
- }
-
- IGUIElement::draw();
-}
-
-
-void CGUIEditWorkspace::setDrawGrid(bool drawGrid)
-{
- DrawGrid = drawGrid;
-}
-
-void CGUIEditWorkspace::setGridSize(const core::dimension2di& gridSize)
-{
- GridSize = gridSize;
- if (GridSize.Width < 2)
- GridSize.Width = 2;
- if (GridSize.Height < 2)
- GridSize.Height = 2;
-}
-
-void CGUIEditWorkspace::setUseGrid(bool useGrid)
-{
- UseGrid = useGrid;
-}
-
-
-//! Removes a child.
-void CGUIEditWorkspace::removeChild(IGUIElement* child)
-{
- IGUIElement::removeChild(child);
-
- if (Children.empty())
- remove();
-}
-
-
-void CGUIEditWorkspace::updateAbsolutePosition()
-{
- core::rect parentRect(0,0,0,0);
-
- if (Parent)
- {
- parentRect = Parent->getAbsolutePosition();
- RelativeRect.UpperLeftCorner.X = 0;
- RelativeRect.UpperLeftCorner.Y = 0;
- RelativeRect.LowerRightCorner.X = parentRect.getWidth();
- RelativeRect.LowerRightCorner.Y = parentRect.getHeight();
- }
-
- IGUIElement::updateAbsolutePosition();
-}
-
-void CGUIEditWorkspace::CopySelectedElementXML()
-{
- core::stringc XMLText;
- core::stringw wXMLText;
- // create memory write file
- io::CMemoryReadWriteFile* memWrite = new io::CMemoryReadWriteFile("#Clipboard#");
- // save gui to mem file
- io::IXMLWriter* xml = Environment->getFileSystem()->createXMLWriter(memWrite);
- Environment->writeGUIElement(xml, SelectedElement);
-
- // copy to clipboard- wide chars not supported yet :(
- wXMLText = (wchar_t*)&memWrite->getData()[0];
- u32 i = memWrite->getData().size()/sizeof(wchar_t);
- if (wXMLText.size() > i)
- wXMLText[i] = L'\0';
- XMLText = wXMLText.c_str();
- memWrite->drop();
- xml->drop();
- Environment->getOSOperator()->copyToClipboard(XMLText.c_str());
-}
-
-void CGUIEditWorkspace::PasteXMLToSelectedElement()
-{
- // get clipboard data
- core::stringc XMLText = Environment->getOSOperator()->getTextFromClipboard();
- // convert to stringw
- core::stringw wXMLText = XMLText.c_str();
-
- io::CMemoryReadWriteFile* memWrite = new io::CMemoryReadWriteFile("#Clipboard#");
-
- io::IXMLWriter* xmlw = Environment->getFileSystem()->createXMLWriter(memWrite);
- xmlw->writeXMLHeader(); // it needs one of those
- xmlw->drop();
-
- // write clipboard data
- memWrite->write((void*)&wXMLText[0], wXMLText.size() * sizeof(wchar_t));
-
- // rewind file
- memWrite->seek(0, false);
-
- // read xml
- Environment->loadGUI(memWrite, SelectedElement);
-
- // reset focus
- Environment->setFocus(this);
-
- // drop the read file
- memWrite->drop();
-}
-
-void CGUIEditWorkspace::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options)
-{
- out->addBool("DrawGrid", DrawGrid);
- out->addBool("UseGrid", UseGrid);
- out->addPosition2d("GridSize", core::position2di(GridSize.Width, GridSize.Height));
- out->addInt("MenuCommandStart", MenuCommandStart);
-}
-
-void CGUIEditWorkspace::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
-{
- setDrawGrid(in->getAttributeAsBool("DrawGrid"));
- setUseGrid(in->getAttributeAsBool("UseGrid"));
-
- core::position2di tmpp = in->getAttributeAsPosition2d("GridSize");
- core::dimension2di tmpd(tmpp.X, tmpp.Y);
- setGridSize(tmpd);
- setMenuCommandIDStart(in->getAttributeAsInt("MenuCommandStart"));
-}
-
-
-} // end namespace gui
-} // end namespace irr
-
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.h
deleted file mode 100644
index c9ccd14..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEditWorkspace.h
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt / Gaz Davidson
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#ifndef __C_GUIEDIT_WORKSPACE_H_INCLUDED__
-#define __C_GUIEDIT_WORKSPACE_H_INCLUDED__
-
-#include "IGUIElement.h"
-#include "CGUIEditWindow.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- //! Adding the GUI Editor Workspace to an element allows you
- /** to create, edit, load and save any elements supported
- by any loaded factories.
- When you add it without a parent (to the root element)
- it will also allow you to edit, load and save settings in
- the current skin.
- */
-
- // custom events
- enum EGUIEDIT_CUSTOM_EVENTS
- {
- EGUIEDCE_ATTRIB_EDITOR = MAKE_IRR_ID('g','A','t','t'),
- EGUIEDCE_OPTION_EDITOR = MAKE_IRR_ID('g','O','p','t'),
- EGUIEDCE_ENV_EDITOR = MAKE_IRR_ID('g','E','n','v')
- };
-
- class CGUIEditWorkspace : public IGUIElement
- {
- public:
-
- //! constructor
- CGUIEditWorkspace(IGUIEnvironment* environment, s32 id=-1, IGUIElement *parent=0);
-
- //! destructor
- ~CGUIEditWorkspace();
-
- //! called if an event happened.
- virtual bool OnEvent(const SEvent &event);
-
- //! Removes a child.
- virtual void removeChild(IGUIElement* child);
-
- //! draws the element and its children
- virtual void draw();
-
- //! Updates the absolute position.
- virtual void updateAbsolutePosition();
-
- //! Sets the menu command id's
- /** The GUI editor defaults to command ID's from 0xED17 to 0xED17+EGUIEDMC_COUNT
- In the rare case that these are already in use and you wish to use menus
- while the editor is present you can set a new offset here.
- */
- virtual void setMenuCommandIDStart(s32 id);
-
- //! grid drawing...
- virtual void setDrawGrid(bool drawGrid);
- virtual void setGridSize(const core::dimension2di& gridSize);
- virtual void setUseGrid(bool useGrid);
-
- //! returns the first editable element under the mouse
- virtual IGUIElement* getEditableElementFromPoint(IGUIElement *start, const core::position2di &point, s32 index=0 );
-
- //! selecting elements
- virtual void setSelectedElement(IGUIElement *sel);
- virtual void selectNextSibling();
- virtual void selectPreviousSibling();
-
- //! returns the selected element
- virtual IGUIElement* getSelectedElement();
-
- //! copies the xml of the selected element and all children to the clipboard
- virtual void CopySelectedElementXML();
-
- //! copies the xml of the selected element and all children to the clipboard
- virtual void PasteXMLToSelectedElement();
-
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_GUIEDIT];
- }
-
- virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0);
- virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0);
-
- private:
-
- enum EGUIEDIT_MODE
- {
- // when we are currently selecting an element
- EGUIEDM_SELECT=0,
- // selecting a new parent for the selected element
- EGUIEDM_SELECT_NEW_PARENT,
-
- // moving the selected element
- EGUIEDM_MOVE,
- // resizing the selected element
- EGUIEDM_RESIZE_TL,
- EGUIEDM_RESIZE_T,
- EGUIEDM_RESIZE_TR,
- EGUIEDM_RESIZE_R,
- EGUIEDM_RESIZE_BR,
- EGUIEDM_RESIZE_B,
- EGUIEDM_RESIZE_BL,
- EGUIEDM_RESIZE_L
- };
-
- enum EGUIEDIT_MENUCOMMANDS
- {
- //! file commands
- EGUIEDMC_FILE_NEW,
- EGUIEDMC_FILE_LOAD,
- EGUIEDMC_FILE_SAVE,
- //! edit menu
- EGUIEDMC_CUT_ELEMENT,
- EGUIEDMC_COPY_ELEMENT,
- EGUIEDMC_PASTE_ELEMENT,
- EGUIEDMC_DELETE_ELEMENT,
- EGUIEDMC_SET_PARENT,
- EGUIEDMC_BRING_TO_FRONT,
- EGUIEDMC_SAVE_ELEMENT,
- //! grid
- EGUIEDMC_TOGGLE_EDITOR,
-
- EGUIEDMC_INSERT_XML,
-
- //! number of menu options
- EGUIEDMC_COUNT
- };
-
- EGUIEDIT_MODE getModeFromPos(core::position2di p);
-
- EGUIEDIT_MODE CurrentMode;
- EGUIEDIT_MODE MouseOverMode;
- core::position2di DragStart;
- core::position2di StartMovePos;
- core::rect SelectedArea;
-
- core::dimension2di GridSize;
- s32 MenuCommandStart;
- bool DrawGrid, UseGrid;
-
- IGUIElement *MouseOverElement,
- *SelectedElement;
- CGUIEditWindow *EditorWindow;
-
- core::rect TLRect;
- core::rect TRRect;
- core::rect TopRect;
- core::rect BLRect;
- core::rect LRect;
- core::rect RRect;
- core::rect BRRect;
- core::rect BRect;
- };
-
-
-} // end namespace gui
-} // end namespace irr
-
-#endif
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEnumAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEnumAttribute.h
deleted file mode 100644
index 31951e5..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIEnumAttribute.h
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef __C_GUI_ENUM_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_ENUM_ATTRIBUTE_H_INCLUDED__
-
-#include "CGUIAttribute.h"
-#include "IGUIComboBox.h"
-#include "IGUIEditBox.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- class CGUIEnumAttribute : public CGUIAttribute
- {
- public:
- //
- CGUIEnumAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- CGUIAttribute(environment, parent, myParentID),
- AttribComboBox(0), AttribEditBox(0)
- {
-
- }
-
- virtual ~CGUIEnumAttribute()
- {
- if (AttribComboBox)
- AttribComboBox->drop();
- if (AttribEditBox)
- AttribEditBox->drop();
- }
-
- // save the attribute and possibly post the event to its parent
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
-
- if (AttribComboBox)
- {
- AttribComboBox->remove();
- AttribComboBox->drop();
- AttribComboBox = 0;
- }
-
- if (AttribEditBox)
- {
- AttribEditBox->remove();
- AttribEditBox->drop();
- AttribEditBox = 0;
- }
-
- core::array outLiterals;
- attribs->getAttributeEnumerationLiteralsOfEnumeration(attribIndex, outLiterals);
-
- core::rect r = getAbsolutePosition();
- core::rect r2(0, Environment->getSkin()->getFont()->getDimension(L"A").Height + 10,
- r.getWidth() - 5,
- Environment->getSkin()->getFont()->getDimension(L"A").Height*2 + 20 );
-
- if (outLiterals.size() > 0)
- {
- AttribComboBox = Environment->addComboBox(r2, this, -1);
- for (u32 i=0; iaddItem( core::stringw(outLiterals[i].c_str()).c_str());
-
- AttribComboBox->setSelected( attribs->getAttributeAsInt(attribIndex) );
-
- AttribComboBox->grab();
- AttribComboBox->setSubElement(true);
- AttribComboBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- }
- else
- {
-
- AttribEditBox = Environment->addEditBox(
- attribs->getAttributeAsStringW(attribIndex).c_str(),
- r2, true, this, -1);
- AttribEditBox->grab();
- AttribEditBox->setSubElement(true);
- AttribEditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- }
-
- CGUIAttribute::setAttrib(attribs, attribIndex);
- }
-
- //! save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (!Attribs)
- return true;
-
- if (AttribComboBox)
- Attribs->setAttribute(Index, AttribComboBox->getText());
- else if (AttribEditBox)
- Attribs->setAttribute(Index, AttribEditBox->getText());
-
- return CGUIAttribute::updateAttrib(sendEvent);
- }
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_ENUMATTRIBUTE];
- }
-
- private:
- IGUIComboBox* AttribComboBox;
- IGUIEditBox* AttribEditBox;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.cpp
deleted file mode 100644
index 0ef1f36..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.cpp
+++ /dev/null
@@ -1,340 +0,0 @@
-// Copyright 2006-2012 Asger Feldthaus
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-/*
- Originally Klasker's but I've messed around with it lots - Gaz
-*/
-
-#include "CGUIPanel.h"
-#include "IGUIEnvironment.h"
-#include "IGUIScrollBar.h"
-#include "IGUITabControl.h"
-#include "IVideoDriver.h"
-
-const int SCROLL_BAR_SIZE = 16; // Scroll bars are 16 pixels wide
-const int BORDER_WIDTH = 2;
-
-namespace irr
-{
-namespace gui
-{
-
-CGUIPanel::CGUIPanel(IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle,
- bool border, E_SCROLL_BAR_MODE vMode, E_SCROLL_BAR_MODE hMode)
- : IGUIElement(EGUIET_ELEMENT, environment, parent, id, rectangle),
- VScrollBar(0), HScrollBar(0), ClipPane(0), InnerPane(0),
- VScrollBarMode(vMode), HScrollBarMode(hMode), NeedsUpdate(true), Border(border)
-{
- #ifdef _DEBUG
- setDebugName("CGUIPanel");
- #endif
-
- s32 width = rectangle.getWidth();
- s32 height = rectangle.getHeight();
-
- core::rect rct = core::rect(width - SCROLL_BAR_SIZE,0, width, height);
-
- VScrollBar = environment->addScrollBar(false, rct, 0, id);
- VScrollBar->setSubElement(true);
- VScrollBar->setTabStop(false);
- VScrollBar->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
- VScrollBar->grab();
- IGUIElement::addChild(VScrollBar);
-
- rct = core::rect(0, height - SCROLL_BAR_SIZE, width - SCROLL_BAR_SIZE,height );
-
- HScrollBar = environment->addScrollBar(true, rct, 0, id);
- HScrollBar->setSubElement(true);
- HScrollBar->setTabStop(false);
- HScrollBar->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT);
- HScrollBar->grab();
- IGUIElement::addChild(HScrollBar);
-
- rct = core::rect(0,0, width - SCROLL_BAR_SIZE, height - SCROLL_BAR_SIZE);
-
- ClipPane = environment->addTab( rct, 0, -1);
- ClipPane->setSubElement(true);
- ClipPane->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
- ClipPane->grab();
- IGUIElement::addChild(ClipPane);
-
- InnerPane = environment->addTab(rct, ClipPane, -1);
- InnerPane->setSubElement(true);
- InnerPane->grab();
-
- calculateClientArea();
- resizeInnerPane();
-}
-
-CGUIPanel::~CGUIPanel()
-{
- // because the inner pane has the list of children, we need to remove the outer ones manually
- IGUIElement::removeChild(VScrollBar);
- IGUIElement::removeChild(HScrollBar);
- IGUIElement::removeChild(ClipPane);
-
- // now we can drop the others
- VScrollBar->drop();
- HScrollBar->drop();
- ClipPane->drop();
- InnerPane->drop();
-}
-
-
-void CGUIPanel::draw()
-{
- if (NeedsUpdate)
- {
- calculateClientArea();
- resizeInnerPane();
- NeedsUpdate = false;
- }
-
- IGUISkin* skin = Environment->getSkin();
- if (Border && skin)
- {
- skin->draw3DSunkenPane( this, skin->getColor( EGDC_APP_WORKSPACE), false, true, AbsoluteRect, &AbsoluteClippingRect );
- }
-
- IGUIElement::draw();
-}
-
-void CGUIPanel::addChild(IGUIElement *child)
-{
- // add the child to the inner pane
- InnerPane->addChild(child);
-
- NeedsUpdate = true;
-}
-
-void CGUIPanel::removeChild(IGUIElement *child)
-{
- InnerPane->removeChild(child);
-
- NeedsUpdate = true;
-}
-
-//! returns children of the inner pane
-const core::list& CGUIPanel::getChildren()
-{
- return InnerPane->getChildren();
-}
-
-bool CGUIPanel::hasBorder() const
-{
- return Border;
-}
-
-void CGUIPanel::setBorder( bool enabled )
-{
- Border = enabled;
-}
-
-IGUIScrollBar* CGUIPanel::getVScrollBar() const
-{
- return VScrollBar;
-}
-
-IGUIScrollBar* CGUIPanel::getHScrollBar() const
-{
- return HScrollBar;
-}
-
-E_SCROLL_BAR_MODE CGUIPanel::getVScrollBarMode() const
-{
- return VScrollBarMode;
-}
-
-void CGUIPanel::setVScrollBarMode( E_SCROLL_BAR_MODE mode )
-{
- VScrollBarMode = mode;
- NeedsUpdate = true;
-}
-
-E_SCROLL_BAR_MODE CGUIPanel::getHScrollBarMode() const
-{
- return HScrollBarMode;
-}
-
-void CGUIPanel::setHScrollBarMode(E_SCROLL_BAR_MODE mode)
-{
- HScrollBarMode = mode;
- NeedsUpdate = true;
-}
-
-bool CGUIPanel::OnEvent(const SEvent &event)
-{
- // Redirect mouse wheel to scrollbar
- if (event.EventType == EET_MOUSE_INPUT_EVENT && event.MouseInput.Event == EMIE_MOUSE_WHEEL)
- {
- if (VScrollBar->isVisible())
- {
- Environment->setFocus(VScrollBar);
- VScrollBar->OnEvent(event);
- return true;
- }
- else if (VScrollBar->isVisible())
- {
- Environment->setFocus(HScrollBar);
- HScrollBar->OnEvent(event);
- return true;
- }
- }
- else
- {
- if (event.EventType == EET_GUI_EVENT && event.GUIEvent.EventType == EGET_SCROLL_BAR_CHANGED &&
- (event.GUIEvent.Caller == HScrollBar || event.GUIEvent.Caller == VScrollBar) )
- {
- moveInnerPane();
-
- return true;
- }
- }
-
- return IGUIElement::OnEvent(event);
-}
-
-void CGUIPanel::moveInnerPane()
-{
- core::dimension2d dim = InnerPane->getAbsolutePosition().getSize();
- core::position2d newpos(HScrollBar->isVisible() ? -HScrollBar->getPos() : 0 , VScrollBar->isVisible() ? -VScrollBar->getPos() : 0);
- core::rect r(newpos, newpos + dim);
- InnerPane->setRelativePosition(r);
-}
-
-
-void CGUIPanel::updateAbsolutePosition()
-{
- IGUIElement::updateAbsolutePosition();
- calculateClientArea();
- resizeInnerPane();
-}
-
-
-void CGUIPanel::resizeInnerPane()
-{
- if (!HScrollBar || !VScrollBar || !InnerPane || !ClipPane)
- return;
-
- // get outer pane size
- core::rect outerRect = ClipPane->getRelativePosition();
-
- // resize flexible children depending on outer pane
- InnerPane->setRelativePosition(outerRect);
-
- // get desired size (total size of all children)
- core::rect totalRect(0, 0, 0, 0);
-
- core::list::ConstIterator it;
-
- for (it = InnerPane->getChildren().begin();
- it != InnerPane->getChildren().end(); ++it)
- {
- core::rect rct = (*it)->getRelativePosition();
- totalRect.addInternalPoint(rct.UpperLeftCorner);
- totalRect.addInternalPoint(rct.LowerRightCorner);
- }
-
- // move children if pane needs to grow
- core::position2di adjustedMovement(0,0);
-
- if (totalRect.UpperLeftCorner.X < 0)
- adjustedMovement.X = -totalRect.UpperLeftCorner.X;
- if (totalRect.UpperLeftCorner.Y < 0)
- adjustedMovement.Y = -totalRect.UpperLeftCorner.Y;
-
- if (adjustedMovement.X > 0 || adjustedMovement.Y > 0)
- {
- totalRect += adjustedMovement;
-
- for (it = InnerPane->getChildren().begin();
- it != InnerPane->getChildren().end(); ++it )
- {
- (*it)->move(adjustedMovement);
- }
- }
-
- // make sure the inner pane is at least as big as the outer
- if (totalRect.getWidth() < outerRect.getWidth())
- {
- totalRect.UpperLeftCorner.X = 0;
- totalRect.LowerRightCorner.X = outerRect.getWidth();
- }
- if (totalRect.getHeight() < outerRect.getHeight())
- {
- totalRect.UpperLeftCorner.Y = 0;
- totalRect.LowerRightCorner.Y = outerRect.getHeight();
- }
-
- InnerPane->setRelativePosition(totalRect);
-
- // scrollbars
- if ( HScrollBarMode != ESBM_ALWAYS_INVISIBLE &&
- (totalRect.getWidth() > outerRect.getWidth() || HScrollBarMode == ESBM_ALWAYS_VISIBLE) )
- {
- HScrollBar->setVisible(true);
- HScrollBar->setMax(totalRect.getWidth() - outerRect.getWidth());
- bringToFront(HScrollBar);
- }
- else
- HScrollBar->setVisible(false);
-
- if ( VScrollBarMode != ESBM_ALWAYS_INVISIBLE &&
- (totalRect.getHeight() > outerRect.getHeight() || VScrollBarMode == ESBM_ALWAYS_VISIBLE) )
- {
- VScrollBar->setVisible(true);
- VScrollBar->setMax(totalRect.getHeight() - outerRect.getHeight());
- bringToFront(VScrollBar);
- }
- else
- VScrollBar->setVisible(false);
-
- // move to adjust for scrollbar pos
- moveInnerPane();
-}
-
-void CGUIPanel::calculateClientArea()
-{
- core::rect ClientArea(0,0, AbsoluteRect.getWidth(),AbsoluteRect.getHeight());
-
- if (VScrollBar->isVisible())
- ClientArea.LowerRightCorner.X -= VScrollBar->getRelativePosition().getWidth();
-
- if (HScrollBar->isVisible())
- ClientArea.LowerRightCorner.Y -= HScrollBar->getRelativePosition().getHeight();
-
- if (Border)
- {
- ClientArea.UpperLeftCorner += core::position2d( BORDER_WIDTH, BORDER_WIDTH );
- ClientArea.LowerRightCorner -= core::position2d( BORDER_WIDTH, BORDER_WIDTH );
- }
-
- ClipPane->setRelativePosition(ClientArea);
-}
-
-core::rect CGUIPanel::getClientArea() const
-{
- return ClipPane->getRelativePosition();
-}
-
-void CGUIPanel::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options)
-{
- IGUIElement::serializeAttributes(out, options);
-
- out->addBool("border", Border);
- out->addEnum("horizontalScrollBar", HScrollBarMode, GUIScrollBarModeNames );
- out->addEnum("verticalScrollBar", VScrollBarMode, GUIScrollBarModeNames );
-}
-
-void CGUIPanel::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
-{
- IGUIElement::deserializeAttributes(in, options);
-
- setBorder(in->getAttributeAsBool("border"));
- setHScrollBarMode((E_SCROLL_BAR_MODE)in->getAttributeAsEnumeration("horizontalScrollBar", GUIScrollBarModeNames));
- setVScrollBarMode((E_SCROLL_BAR_MODE)in->getAttributeAsEnumeration("verticalScrollBar", GUIScrollBarModeNames));
-}
-
-} // namespace gui
-} // namespace irr
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.h
deleted file mode 100644
index 87609c9..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIPanel.h
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2006-2012 Asger Feldthaus
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#ifndef _C_GUI_PANEL_H_
-#define _C_GUI_PANEL_H_
-
-#include "IGUIElement.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
-class IGUIScrollBar;
-class IGUITab;
-
-enum E_SCROLL_BAR_MODE
-{
- //! The scrollbar will only show up when needed.
- ESBM_AUTOMATIC = 0,
-
- //! The scrollbar will never be visible.
- ESBM_ALWAYS_INVISIBLE,
-
- //! The scrollbar will always the visible.
- ESBM_ALWAYS_VISIBLE,
-
- //! just a count of how many are in this enum
- ESBM_COUNT
-};
-
-const c8* const GUIScrollBarModeNames[] =
-{
- "automatic",
- "alwaysInvisible",
- "alwaysVisible",
- 0
-};
-
-class CGUIPanel : public IGUIElement
-{
-public:
- CGUIPanel( IGUIEnvironment* environment, IGUIElement* parent, s32 id=-1,
- const core::rect& rectangle = core::rect(0,0,100,100),
- bool border=false,
- E_SCROLL_BAR_MODE vMode=ESBM_AUTOMATIC,
- E_SCROLL_BAR_MODE hMode=ESBM_ALWAYS_INVISIBLE );
-
- virtual ~CGUIPanel();
-
- //! draws the panel and its children
- virtual void draw();
-
- //! returns true if it has a border, false if not
- bool hasBorder() const;
-
- //! sets whether the element draws a border
- void setBorder(bool enabled);
-
- //! returns a pointer to the vertical scrollbar
- IGUIScrollBar* getVScrollBar() const;
-
- //! returns a pointer to the horizontal scrollbar
- IGUIScrollBar* getHScrollBar() const;
-
- //! returns the vertical scrollbar visibility rule
- E_SCROLL_BAR_MODE getVScrollBarMode() const;
-
- //! sets the vertical scrollbar visibility rule
- void setVScrollBarMode(E_SCROLL_BAR_MODE mode);
-
- //! returns the horizontal scrollbar visibility rule
- E_SCROLL_BAR_MODE getHScrollBarMode() const;
-
- //! sets the horizontal scrollbar visibility rule
- void setHScrollBarMode(E_SCROLL_BAR_MODE mode);
-
- //! returns the visible area inside the panel, excluding scrollbar and border
- core::rect getClientArea() const;
-
- virtual bool OnEvent(const SEvent &event);
-
- //! adds a child to the panel
- virtual void addChild(IGUIElement* child);
-
- //! removes a child from the panel
- virtual void removeChild(IGUIElement* child);
-
- //! updates the absolute position
- virtual void updateAbsolutePosition();
-
- //! returns children of the inner pane
- virtual const core::list& getChildren();
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_GUIPANEL];
- }
-
- virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0);
- virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0);
-
-protected:
- void moveInnerPane();
- void resizeInnerPane();
- void calculateClientArea();
-
-private:
-
- IGUIScrollBar* VScrollBar;
- IGUIScrollBar* HScrollBar;
- IGUITab* ClipPane;
- IGUITab* InnerPane;
-
- E_SCROLL_BAR_MODE VScrollBarMode;
- E_SCROLL_BAR_MODE HScrollBarMode;
-
- bool NeedsUpdate;
- bool Border;
-};
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIStringAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUIStringAttribute.h
deleted file mode 100644
index 36cac56..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUIStringAttribute.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef __C_GUI_STRING_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_STRING_ATTRIBUTE_H_INCLUDED__
-
-#include "CGUIAttribute.h"
-#include "IGUIEditBox.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- class CGUIStringAttribute : public CGUIAttribute
- {
- public:
- //
- CGUIStringAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- CGUIAttribute(environment, parent, myParentID),
- AttribEditBox(0)
- {
- core::rect r = getAbsolutePosition();
- core::rect r2(0, Environment->getSkin()->getFont()->getDimension(L"A").Height + 10,
- r.getWidth() - 5,
- Environment->getSkin()->getFont()->getDimension(L"A").Height*2 + 15 );
-
- AttribEditBox = environment->addEditBox(0, r2, true, this, -1);
- AttribEditBox->grab();
- AttribEditBox->setSubElement(true);
- AttribEditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
-
- }
-
- virtual ~CGUIStringAttribute()
- {
- if (AttribEditBox)
- AttribEditBox->drop();
- }
-
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
- AttribEditBox->setText(attribs->getAttributeAsStringW(attribIndex).c_str());
- CGUIAttribute::setAttrib(attribs, attribIndex);
- }
-
- //! save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (!Attribs)
- return true;
-
- Attribs->setAttribute(Index, AttribEditBox->getText());
- AttribEditBox->setText(Attribs->getAttributeAsStringW(Index).c_str());
-
- return CGUIAttribute::updateAttrib(sendEvent);
- }
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_STRINGATTRIBUTE];
- }
-
- private:
- IGUIEditBox* AttribEditBox;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureAttribute.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureAttribute.h
deleted file mode 100644
index bee43a9..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureAttribute.h
+++ /dev/null
@@ -1,140 +0,0 @@
-#ifndef __C_GUI_TEXTURE_ATTRIBUTE_H_INCLUDED__
-#define __C_GUI_TEXTURE_ATTRIBUTE_H_INCLUDED__
-
-#include "CGUIAttribute.h"
-#include "IGUIEditBox.h"
-#include "IGUIImage.h"
-#include "IGUIButton.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- class CGUITextureAttribute : public CGUIAttribute
- {
- public:
- //
- CGUITextureAttribute(IGUIEnvironment* environment, IGUIElement *parent, s32 myParentID) :
- CGUIAttribute(environment, parent, myParentID),
- AttribEditBox(0), AttribImage(0), AttribButton(0)
- {
- IGUISkin* skin = Environment->getSkin();
-
- core::rect r = getAbsolutePosition();
- s32 topy = skin->getFont()->getDimension(L"A").Height + 10;
- s32 h = skin->getFont()->getDimension(L"A").Height + 5;
-
- AttribImage = environment->addImage(0, core::position2di(0, topy), false, this);
- AttribImage->setRelativePosition( core::rect(0,topy, r.getWidth() - 5, 100+topy));
- AttribImage->grab();
- AttribImage->setSubElement(true);
- AttribImage->setScaleImage(true);
- AttribImage->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
-
- topy += 105;
-
- core::rect r2(0, topy, r.getWidth() - 15 - skin->getSize(EGDS_CHECK_BOX_WIDTH), topy + h);
- core::rect br(r.getWidth() - 10 - skin->getSize(EGDS_CHECK_BOX_WIDTH), topy, r.getWidth(), topy + h);
-
- AttribEditBox = environment->addEditBox(0, r2, true, this, -1);
- AttribEditBox->grab();
- AttribEditBox->setSubElement(true);
- AttribEditBox->setAlignment(EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
-
- AttribButton = environment->addButton(br, this, -1, L"...");
- AttribButton->grab();
- AttribButton->setSubElement(true);
- AttribButton->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- //AttribButton->setSpriteBank(skin->getSpriteBank());
- //AttribButton->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_FILE), skin->getColor(EGDC_WINDOW_SYMBOL));
- //AttribButton->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_FILE), skin->getColor(EGDC_WINDOW_SYMBOL), true);
- }
-
- virtual ~CGUITextureAttribute()
- {
- if (AttribEditBox)
- AttribEditBox->drop();
- if (AttribImage)
- AttribImage->drop();
- if (AttribButton)
- AttribButton->drop();
- }
-
- virtual bool OnEvent(const SEvent &e)
- {
-
- if (IsEnabled)
- {
- switch (e.EventType)
- {
- case EET_GUI_EVENT:
- switch (e.GUIEvent.EventType)
- {
- case EGET_BUTTON_CLICKED:
- // button click: open file dialog
- if (e.GUIEvent.Caller == AttribButton)
- {
- //Environment->addGUIElement("textureBrowser", Environment->getRootGUIElement());
- return true;
- }
- break;
- case EGET_FILE_SELECTED:
- // file selected: change editbox value and set event
-
- return true;
- case EGET_FILE_CHOOSE_DIALOG_CANCELLED:
-
- return true;
- default:
- break;
- }
- break;
- case EET_KEY_INPUT_EVENT:
- return true;
- default:
- break;
- }
- }
- return CGUIAttribute::OnEvent(e);
- }
-
- virtual void setAttrib(io::IAttributes *attribs, u32 attribIndex)
- {
- AttribEditBox->setText(attribs->getAttributeAsStringW(attribIndex).c_str());
- AttribImage->setImage(attribs->getAttributeAsTexture(Index));
-
- CGUIAttribute::setAttrib(attribs, attribIndex);
- }
-
- //! save the attribute and possibly post the event to its parent
- virtual bool updateAttrib(bool sendEvent=true)
- {
- if (!Attribs)
- return true;
-
- Attribs->setAttribute(Index, AttribEditBox->getText());
- core::stringw tmp = Attribs->getAttributeAsStringW(Index);
- AttribEditBox->setText(Attribs->getAttributeAsStringW(Index).c_str());
- AttribImage->setImage(Attribs->getAttributeAsTexture(Index));
-
- return CGUIAttribute::updateAttrib(sendEvent);
- }
-
- //! Returns the type name of the gui element.
- virtual const c8* getTypeName() const
- {
- return GUIEditElementTypeNames[EGUIEDIT_TEXTUREATTRIBUTE];
- }
-
- private:
- IGUIEditBox* AttribEditBox;
- IGUIImage* AttribImage;
- IGUIButton* AttribButton;
- };
-
-} // namespace gui
-} // namespace irr
-
-#endif
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.cpp
deleted file mode 100644
index 6c80626..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt / Gaz Davidson
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#include "CGUITextureCacheBrowser.h"
-#include "IGUIEnvironment.h"
-#include "IGUIButton.h"
-#include "IGUISkin.h"
-#include "IGUIFont.h"
-#include "IVideoDriver.h"
-
-namespace irr
-{
-namespace gui
-{
-
-CGUITextureCacheBrowser::CGUITextureCacheBrowser(IGUIEnvironment* environment, s32 id, IGUIElement *parent)
-: IGUIWindow(environment, parent, id, core::rect(0,0,300,200)),
- CloseButton(0), Panel(0), SelectedTexture(-1), Dragging(false), IsDraggable(true)
-{
- #ifdef _DEBUG
- setDebugName("CGUITextureCacheBrowser");
- #endif
-
- IGUISkin* skin = 0;
- IGUISpriteBank* sprites = 0;
- video::SColor color(255,255,255,255);
-
- if (environment)
- skin = environment->getSkin();
-
- s32 buttonw = 15;
- if (skin)
- {
- buttonw = skin->getSize(EGDS_WINDOW_BUTTON_WIDTH);
- sprites = skin->getSpriteBank();
- color = skin->getColor(EGDC_WINDOW_SYMBOL);
- }
- s32 posx = RelativeRect.getWidth() - buttonw - 4;
-
- CloseButton = Environment->addButton(core::rect(posx, 3, posx + buttonw, 3 + buttonw), this, -1,
- L"", skin ? skin->getDefaultText(EGDT_WINDOW_CLOSE) : L"Close" );
- CloseButton->setSubElement(true);
- CloseButton->setAlignment(EGUIA_LOWERRIGHT, EGUIA_LOWERRIGHT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT);
- if (sprites)
- {
- CloseButton->setSpriteBank(sprites);
- CloseButton->setSprite(EGBS_BUTTON_UP, skin->getIcon(EGDI_WINDOW_CLOSE), color);
- CloseButton->setSprite(EGBS_BUTTON_DOWN, skin->getIcon(EGDI_WINDOW_CLOSE), color);
- }
-
- CloseButton->grab();
-
- // window title
- Text = L"Texture Browser";
-
- // panel element
- Panel = new CGUIPanel(environment, this);
- Panel->setRelativePosition( core::rect(1, buttonw + 5, 151, RelativeRect.getHeight() - 1));
- Panel->setAlignment(EGUIA_UPPERLEFT, EGUIA_UPPERLEFT, EGUIA_UPPERLEFT, EGUIA_LOWERRIGHT);
- Panel->setBorder(true);
- Panel->setSubElement(true);
-
- // some buttons
-
-
- // add images from texture cache
- updateImageList();
-
-}
-
-CGUITextureCacheBrowser::~CGUITextureCacheBrowser()
-{
- if (CloseButton)
- CloseButton->drop();
- if (Panel)
- Panel->drop();
-
- // drop images
- u32 i;
- for (i=0; idrop();
- Images[i]->remove();
- }
- Images.clear();
-}
-void CGUITextureCacheBrowser::updateImageList()
-{
- if (!Panel)
- return;
-
- video::IVideoDriver* Driver = Environment->getVideoDriver();
-
- // clear images
- u32 i;
- for (i=0; idrop();
- Images[i]->remove();
- }
- Images.clear();
-
- u32 count = (u32)Driver->getTextureCount();
-
- s32 h = Panel->getClientArea().getWidth()-10;
- s32 hw = h/2;
- core::rect pos(Panel->getClientArea().getCenter().X - Panel->getAbsolutePosition().UpperLeftCorner.X - hw, 5,
- Panel->getClientArea().getCenter().X - Panel->getAbsolutePosition().UpperLeftCorner.X + hw, h+5);
-
- core::position2di moveDist(0, h+5);
-
- for (u32 i=0; igetTextureByIndex(i);
- details = L"File name: ";
- details += tex->getName();
- details += L"\nFormat: ";
- video::ECOLOR_FORMAT cf = tex->getColorFormat();
-
- bool alpha = false;
-
- switch (cf)
- {
- case video::ECF_A1R5G5B5:
- details += L"A1R5G5B5 (16-bit with 1-bit alpha channel)\n";
- alpha = true;
- break;
- case video::ECF_R5G6B5:
- details += L"R5G6B5 (16-bit, no alpha channel)\n";
- break;
- case video::ECF_R8G8B8:
- details += L"R8G8B8 (16-bit, no alpha channel)\n";
- break;
- case video::ECF_A8R8G8B8:
- details += L"R8G8B8 (32-bit with 8-bit alpha channel)\n";
- alpha = true;
- break;
- default:
- details += L"Unknown\n";
- }
-
- core::dimension2du osize = tex->getOriginalSize();
- core::dimension2du size = tex->getOriginalSize();
-
- details += "Size: ";
- details += size.Width;
- details += "x";
- details += size.Height;
-
- if (osize != size)
- {
- details += "\nOriginal Size: ";
- details += osize.Width;
- details += "x";
- details += osize.Height;
- }
-
- details += L"\nMip-maps: ";
-
- if (tex->hasMipMaps())
- details += L"Yes\n";
- else
- details += L"No\n";
-
- IGUIImage* img = Environment->addImage(tex, core::position2di(1,1), alpha, Panel, i);
- img->grab();
- Images.push_back(img);
- img->setRelativePosition(pos);
- img->setToolTipText(details.c_str());
- img->setScaleImage(true);
- img->setColor( SelectedTexture == (s32)i ? video::SColor(255,255,255,255) : video::SColor(128,128,128,128) );
-
- pos = pos + moveDist;
- }
-}
-
-void CGUITextureCacheBrowser::updateAbsolutePosition()
-{
- IGUIWindow::updateAbsolutePosition();
- updateImageList();
-}
-
-//! called if an event happened.
-bool CGUITextureCacheBrowser::OnEvent(const SEvent &event)
-{
- switch(event.EventType)
- {
- case EET_GUI_EVENT:
- if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST)
- {
- if (event.GUIEvent.Caller == (IGUIElement*)this)
- Dragging = false;
- return true;
- }
- else
- if (event.GUIEvent.EventType == EGET_BUTTON_CLICKED)
- {
- if (event.GUIEvent.Caller == CloseButton)
- {
- remove();
- return true;
- }
- }
- break;
- case EET_MOUSE_INPUT_EVENT:
- switch(event.MouseInput.Event)
- {
- case EMIE_LMOUSE_PRESSED_DOWN:
- DragStart.X = event.MouseInput.X;
- DragStart.Y = event.MouseInput.Y;
-
- if (getElementFromPoint(DragStart) == this)
- {
- if (!Environment->hasFocus(this))
- {
- Dragging = IsDraggable;
- //Environment->setFocus(this);
- if (Parent)
- Parent->bringToFront(this);
- }
- return true;
- }
- else
- {
- if (Panel->getAbsolutePosition().isPointInside(DragStart))
- {
- // select an image
- IGUIElement* el = Panel->getElementFromPoint(DragStart);
- if (el && el != Panel)
- {
- if (el->getType() == EGUIET_IMAGE)
- {
- setSelected(el->getID());
- }
- }
- else
- {
- setSelected();
- }
- }
- }
- break;
- case EMIE_LMOUSE_LEFT_UP:
- Dragging = false;
- //Environment->removeFocus(this);
- return true;
- case EMIE_MOUSE_MOVED:
- if (Dragging)
- {
- // gui window should not be dragged outside its parent
- if (Parent)
- if (event.MouseInput.X < Parent->getAbsolutePosition().UpperLeftCorner.X +1 ||
- event.MouseInput.Y < Parent->getAbsolutePosition().UpperLeftCorner.Y +1 ||
- event.MouseInput.X > Parent->getAbsolutePosition().LowerRightCorner.X -1 ||
- event.MouseInput.Y > Parent->getAbsolutePosition().LowerRightCorner.Y -1)
-
- return true;
-
-
- move(core::position2d(event.MouseInput.X - DragStart.X, event.MouseInput.Y - DragStart.Y));
- DragStart.X = event.MouseInput.X;
- DragStart.Y = event.MouseInput.Y;
- return true;
- }
- break;
- default:
- break;
- }
- default:
- break;
- }
-
- return Parent ? Parent->OnEvent(event) : false;
-}
-
-void CGUITextureCacheBrowser::setSelected(s32 index)
-{
- SelectedTexture = index;
- updateImageList();
- printf("Texture %d selected\n", index);
-}
-
-void CGUITextureCacheBrowser::draw()
-{
- if (!IsVisible)
- return;
-
- IGUISkin* skin = Environment->getSkin();
-
- core::rect rect = AbsoluteRect;
- core::rect *cl = &AbsoluteClippingRect;
-
- // draw body fast
- rect = skin->draw3DWindowBackground(this, true, skin->getColor(EGDC_ACTIVE_BORDER),
- AbsoluteRect, &AbsoluteClippingRect);
-
- // draw window text
- if (Text.size())
- {
- rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X);
- rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y);
- rect.LowerRightCorner.X -= skin->getSize(EGDS_WINDOW_BUTTON_WIDTH) + 5;
-
- IGUIFont* font = skin->getFont();
- if (font)
- font->draw(Text.c_str(), rect, skin->getColor(EGDC_ACTIVE_CAPTION), false, true, cl);
- }
-
- IGUIElement::draw();
-}
-
-
-bool CGUITextureCacheBrowser::isDraggable() const
-{
- return IsDraggable;
-}
-
-void CGUITextureCacheBrowser::setDraggable(bool draggable)
-{
- IsDraggable = draggable;
-
- if (Dragging && !IsDraggable)
- Dragging = false;
-}
-
-
-//! Returns the rectangle of the drawable area (without border, without titlebar and without scrollbars)
-core::rect CGUITextureCacheBrowser::getClientRect() const
-{
- return core::recti();
-}
-
-} // namespace gui
-} // namespace irr
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.h b/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.h
deleted file mode 100644
index afe84f1..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CGUITextureCacheBrowser.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt / Gaz Davidson
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#ifndef __C_GUI_TEXTURE_CACHE_BROWSER_H_INCLUDED__
-#define __C_GUI_TEXTURE_CACHE_BROWSER_H_INCLUDED__
-
-#include "IGUIWindow.h"
-#include "CGUIPanel.h"
-#include "IGUIImage.h"
-#include "EGUIEditTypes.h"
-
-namespace irr
-{
-namespace gui
-{
-
- //! Texture cache browser
-
- const u32 TEXTURE_BROWSER_TEXTURE_SELECTED = 0x5E1EC7ED; // custom event number for texture selected
-
- class CGUITextureCacheBrowser : public IGUIWindow
- {
- public:
-
- //! constructor
- CGUITextureCacheBrowser(IGUIEnvironment* environment, s32 id=-1, IGUIElement *parent=0);
-
- //! destructor
- ~CGUITextureCacheBrowser();
-
- //! event handler
- virtual bool OnEvent(const SEvent &event);
-
- //! draws the element
- virtual void draw();
-
- //! update absolute position
- virtual void updateAbsolutePosition();
-
- //! this shoudln't be serialized, but this is included as it's an example
- virtual const c8* getTypeName() const { return "textureCacheBrowser"; }
-
- //! Returns pointer to the close button
- virtual IGUIButton* getCloseButton() const { return CloseButton; }
-
- //! Returns pointer to the minimize button
- virtual IGUIButton* getMinimizeButton() const { return 0;}
-
- //! Returns pointer to the maximize button
- virtual IGUIButton* getMaximizeButton() const { return 0;}
-
- //! get draggable
- virtual bool isDraggable() const;
-
- //! get draggable
- virtual void setDraggable(bool draggable);
-
- //! not used
- virtual core::rect getClientRect() const;
- virtual void setDrawBackground(bool draw) { }
- virtual bool getDrawBackground() const { return true; }
- virtual void setDrawTitlebar(bool draw) { }
- virtual bool getDrawTitlebar() const { return true; }
-
-
- void setSelected(s32 index=-1);
-
- private:
-
- void updateImageList();
-
- core::array Images;
- core::position2d DragStart;
-
- IGUIButton* CloseButton;
- CGUIPanel* Panel;
- s32 SelectedTexture;
- bool Dragging;
- bool IsDraggable;
- };
-
-
-} // end namespace gui
-} // end namespace irr
-
-#endif
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.cpp
deleted file mode 100644
index af46b15..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#include "CMemoryReadWriteFile.h"
-
-using namespace irr;
-using namespace io;
-
-CMemoryReadWriteFile::CMemoryReadWriteFile(const c8* filename)
-: Data(), FileName(filename), Pos(0)
-{
-}
-
-
-s32 CMemoryReadWriteFile::write(const void* buffer, u32 sizeToWrite)
-{
- // no point in writing 0 bytes
- if (sizeToWrite < 1)
- return 0;
-
- // expand size
- if (Pos + sizeToWrite > Data.size())
- Data.set_used(Pos+sizeToWrite);
-
- // copy data
- memcpy( (void*) &Data[Pos], buffer, (size_t) sizeToWrite);
-
- Pos += sizeToWrite;
-
- return sizeToWrite;
-
-}
-
-bool CMemoryReadWriteFile::seek(long finalPos, bool relativeMovement)
-{
- if (relativeMovement)
- {
- if (finalPos + Pos < 0)
- return 0;
- else
- Pos += finalPos;
- }
- else
- {
- Pos = finalPos;
- }
-
- if (Pos > (s32)Data.size())
- Data.set_used(Pos+1);
-
- return true;
-
-}
-
-const io::path& CMemoryReadWriteFile::getFileName() const
-{
- return FileName;
-}
-
-long CMemoryReadWriteFile::getPos() const
-{
- return Pos;
-}
-
-core::array& CMemoryReadWriteFile::getData()
-{
- return Data;
-}
-
-
-long CMemoryReadWriteFile::getSize() const
-{
- return Data.size();
-}
-
-
-s32 CMemoryReadWriteFile::read(void* buffer, u32 sizeToRead)
-{
- // cant read past the end
- if (Pos + sizeToRead >= Data.size())
- sizeToRead = Data.size() - Pos;
-
- // cant read 0 bytes
- if (!sizeToRead)
- return 0;
-
- // copy data
- memcpy( buffer, (void*) &Data[Pos], (size_t) sizeToRead);
-
- Pos += sizeToRead;
-
- return sizeToRead;
-}
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.h b/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.h
deleted file mode 100644
index e0fa06e..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/CMemoryReadWriteFile.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (C) 2002-2012 Nikolaus Gebhardt
-// This file is part of the "Irrlicht Engine".
-// For conditions of distribution and use, see copyright notice in irrlicht.h
-
-#ifndef __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__
-#define __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__
-
-#include "IWriteFile.h"
-#include "IReadFile.h"
-#include "irrArray.h"
-#include "irrString.h"
-#include "memory.h"
-
-namespace irr
-{
-namespace io
-{
-
- //! Provides write acess to an array as if it is a file.
- class CMemoryReadWriteFile : public virtual IWriteFile, public virtual IReadFile
- {
- public:
-
- CMemoryReadWriteFile(const c8* filename=0);
-
- //! Reads an amount of bytes from the file.
- //! \param buffer: Pointer to buffer of bytes to write.
- //! \param sizeToWrite: Amount of bytes to wrtie to the file.
- //! \return Returns how much bytes were written.
- virtual s32 write(const void* buffer, u32 sizeToWrite);
-
- //! Changes position in file, returns true if successful.
- //! \param finalPos: Destination position in the file.
- //! \param relativeMovement: If set to true, the position in the file is
- //! changed relative to current position. Otherwise the position is changed
- //! from begin of file.
- //! \return Returns true if successful, otherwise false.
- virtual bool seek(long finalPos, bool relativeMovement = false);
-
- //! Returns size of file.
- //! \return Returns the size of the file in bytes.
- virtual long getSize() const;
-
- //! Reads an amount of bytes from the file.
- //! \param buffer: Pointer to buffer where to read bytes will be written to.
- //! \param sizeToRead: Amount of bytes to read from the file.
- //! \return Returns how much bytes were read.
- virtual s32 read(void* buffer, u32 sizeToRead);
-
- //! Returns the current position in the file.
- //! \return Returns the current position in the file in bytes.
- virtual long getPos() const;
-
- //! Returns name of file.
- //! \return Returns the file name as zero terminated character string.
- virtual const io::path& getFileName() const;
-
- //! Returns file data as an array
- core::array& getData();
-
- private:
-
- core::array Data;
- io::path FileName;
- long Pos;
- };
-
-
-
-} // end namespace io
-} // end namespace irr
-
-#endif // __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/EGUIEditTypes.h b/libraries/irrlicht-1.8/tools/GUIEditor/EGUIEditTypes.h
deleted file mode 100644
index fe56726..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/EGUIEditTypes.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef __C_GUIEDIT_TYPES_H_INCLUDED__
-#define __C_GUIEDIT_TYPES_H_INCLUDED__
-
-#include "irrTypes.h"
-
-namespace irr {
-namespace gui {
-
-enum EGUIEDIT_ELEMENT_TYPES
-{
- // GUI Editor
- EGUIEDIT_GUIEDIT=0,
- EGUIEDIT_GUIEDITWINDOW,
- // Generic
- EGUIEDIT_GUIPANEL,
- EGUIEDIT_TEXTUREBROWSER,
- // Attribute editors
- EGUIEDIT_ATTRIBUTEEDITOR,
- EGUIEDIT_STRINGATTRIBUTE,
- EGUIEDIT_BOOLATTRIBUTE,
- EGUIEDIT_ENUMATTRIBUTE,
- EGUIEDIT_COLORATTRIBUTE,
- EGUIEDIT_COLORFATTRIBUTE,
- EGUIEDIT_TEXTUREATTRIBUTE,
- // Dummy editor stubs
- EGUIEDIT_CONTEXTMENUEDITOR,
- EGUIEDIT_MENUEDITOR,
- EGUIEDIT_FILEDIALOGEDITOR,
- EGUIEDIT_COLORDIALOGEDITOR,
- EGUIEDIT_MODALSCREENEDITOR,
- // Count
- EGUIEDIT_COUNT
-};
-
-const c8* const GUIEditElementTypeNames[] =
-{
- "GUIEditor",
- "GUIEditWindow",
- "panel",
- "textureCacheBrowser",
- "attributeEditor",
- "string_attribute",
- "bool_attribute",
- "enum_attribute",
- "color_attribute",
- "colorf_attribute",
- "texture_attribute",
- // dummy editors
- "contextMenu_editor",
- "menu_editor",
- "fileOpenDialog_editor",
- "colorSelectDialog_editor",
- "modalScreen_editor",
- 0
-};
-
-} // gui
-} // irr
-
-#endif
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.sln b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.sln
deleted file mode 100644
index 659854d..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GUI Editor", "GUI Editor.vcproj", "{853A396E-C031-4C26-A716-5B4E176BE11D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.ActiveCfg = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.Build.0 = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.ActiveCfg = Release|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.vcproj b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.vcproj
deleted file mode 100644
index e28c5fa..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v8.vcproj
+++ /dev/null
@@ -1,295 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.sln b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.sln
deleted file mode 100644
index 82a8b56..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C++ Express 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GUI Editor_v9", "GUI Editor_v9.vcproj", "{853A396E-C031-4C26-A716-5B4E176BE11D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.ActiveCfg = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.Build.0 = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.ActiveCfg = Release|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.vcproj b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.vcproj
deleted file mode 100644
index 79ba177..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_v9.vcproj
+++ /dev/null
@@ -1,293 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj
deleted file mode 100644
index 5c85f4b..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- {853A396E-C031-4C26-A716-5B4E176BE11D}
- GUI Editor
- Win32Proj
- GUIEditor
-
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- false
- false
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Full
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- ../../bin/Win32-visualstudio/GUIEditor.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
- true
- true
-
-
-
-
-
-
- Full
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- ../../bin/Win32-visualstudio/GUIEditor.exe
- ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj.filters b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj.filters
deleted file mode 100644
index 3644f98..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc10.vcxproj.filters
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
- {f6ad9df9-ebaa-4c0f-997b-c8101c1fc669}
-
-
- {7fd14cb1-d2e7-4fd0-85c1-68fc9d1249f7}
-
-
- {ab2c3f3a-1d99-4619-b5df-47fdd9449f3f}
-
-
- {740a4255-37cc-4ac4-94e9-f2f0970491a8}
-
-
- {a28a0b21-3336-432f-9759-ff2dc064874a}
-
-
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui\GUIAttributes
-
-
- gui\Useful GUI Elements
-
-
- io
-
-
-
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\Useful GUI Elements
-
-
- gui\Element Editors
-
-
- io
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj
deleted file mode 100644
index d2dc2e3..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- {853A396E-C031-4C26-A716-5B4E176BE11D}
- GUI Editor
- Win32Proj
- GUIEditor
-
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- false
- false
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Full
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- ../../bin/Win32-visualstudio/GUIEditor.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
- true
- true
-
-
-
-
-
-
- Full
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- ../../bin/Win32-visualstudio/GUIEditor.exe
- ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj.filters b/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj.filters
deleted file mode 100644
index 3644f98..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUI Editor_vc11.vcxproj.filters
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
- {f6ad9df9-ebaa-4c0f-997b-c8101c1fc669}
-
-
- {7fd14cb1-d2e7-4fd0-85c1-68fc9d1249f7}
-
-
- {ab2c3f3a-1d99-4619-b5df-47fdd9449f3f}
-
-
- {740a4255-37cc-4ac4-94e9-f2f0970491a8}
-
-
- {a28a0b21-3336-432f-9759-ff2dc064874a}
-
-
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui\GUIAttributes
-
-
- gui\Useful GUI Elements
-
-
- io
-
-
-
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\GUIAttributes
-
-
- gui\Useful GUI Elements
-
-
- gui\Element Editors
-
-
- io
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/GUIEditor_gcc.cbp b/libraries/irrlicht-1.8/tools/GUIEditor/GUIEditor_gcc.cbp
deleted file mode 100644
index 2b57608..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/GUIEditor_gcc.cbp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/Makefile b/libraries/irrlicht-1.8/tools/GUIEditor/Makefile
deleted file mode 100644
index 6010a2d..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# Irrlicht Engine GUIEditor Makefile
-Target = GUIEditor
-Sources = CGUIAttributeEditor.cpp CGUIEditFactory.cpp CGUIEditWindow.cpp CGUIEditWorkspace.cpp CGUIPanel.cpp CGUITextureCacheBrowser.cpp CMemoryReadWriteFile.cpp main.cpp
-
-CPPFLAGS = -I../../include -I/usr/X11R6/include
-CXXFLAGS = -Wall -O3 -ffast-math
-
-ifeq ($(HOSTTYPE), x86_64)
-LIBSELECT=64
-endif
-
-all: all_linux
-
-# target specific settings
-all_linux: SYSTEM=Linux
-all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../lib/$(SYSTEM) -lIrrlicht -lGL -lXxf86vm -lXext -lX11
-
-all_win32 clean_win32: SYSTEM=Win32-gcc
-all_win32: LDFLAGS = -L../../lib/$(SYSTEM) -lIrrlicht -lopengl32 -lm
-
-# if you enable sound add the proper library for linking
-#LDFLAGS += -lIrrKlang
-#LDFLAGS += -laudiere
-#LDFLAGS += -lSDL_mixer -lSDL
-
-all_win32 clean_win32: SUF=.exe
-# name of the binary - only valid for targets which set SYSTEM
-DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF)
-
-OBJ = $(Sources:.cpp=.o)
-
-all_linux all_win32: $(OBJ)
- $(warning Building...)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -o $(DESTPATH) $(LDFLAGS)
-
-clean: clean_linux clean_win32
- $(warning Cleaning...)
- @$(RM) $(OBJ)
-
-clean_linux clean_win32:
- @$(RM) $(DESTPATH)
-
-.PHONY: all all_win32 clean clean_linux clean_win32
diff --git a/libraries/irrlicht-1.8/tools/GUIEditor/main.cpp b/libraries/irrlicht-1.8/tools/GUIEditor/main.cpp
deleted file mode 100644
index 1d917d3..0000000
--- a/libraries/irrlicht-1.8/tools/GUIEditor/main.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#include
-#include "driverChoice.h"
-
-// include the gui creator element factory
-#include "CGUIEditFactory.h"
-
-using namespace irr;
-using namespace gui;
-
-#ifdef _MSC_VER
-#pragma comment(lib, "Irrlicht.lib")
-#endif
-
-int main()
-{
- // ask user for driver
- video::E_DRIVER_TYPE driverType=driverChoiceConsole();
- if (driverType==video::EDT_COUNT)
- return 1;
-
- IrrlichtDevice *device = createDevice(driverType, core::dimension2du(800, 600));
- video::IVideoDriver* driver = device->getVideoDriver();
- scene::ISceneManager* smgr = device->getSceneManager();
- gui::IGUIEnvironment *env = device->getGUIEnvironment();
-
- device->setResizable(true);
-
- /*
- first we create the factory which can make new GUI elements
- and register it with the gui environment.
- */
-
- IGUIElementFactory* factory = new CGUIEditFactory(env);
- env->registerGUIElementFactory(factory);
- // remember to drop since we created with a create call
- factory->drop();
-
- IGUISkin *skin = env->createSkin(EGST_WINDOWS_METALLIC);
- env->setSkin(skin);
-
- IGUIFont *font = env->getFont("../../media/lucida.xml");
- if (font)
- skin->setFont(font);
- skin->drop();
-
- // change transparency of skin
- for (s32 i=0; igetSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
- col.setAlpha(250);
- env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
- }
-
- /*
- now we add the GUI Editor Workspace
- */
-
- env->addGUIElement("GUIEditor");
-
- while(device->run())
- {
- device->sleep(10);
-
- if (device->isWindowActive())
- {
- driver->beginScene(true, true, video::SColor(0,200,200,200));
- smgr->drawAll();
- env->drawAll();
- driver->endScene();
- }
- }
-
- device->drop();
-
- return 0;
-}
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.cpp b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.cpp
deleted file mode 100644
index 7579d5d..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.cpp
+++ /dev/null
@@ -1,801 +0,0 @@
-#include "CFontTool.h"
-#include "IXMLWriter.h"
-
-using namespace irr;
-
-const int fontsizes[] = {4,6,8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,56,68,72,0};
-
-inline u32 getTextureSizeFromSurfaceSize(u32 size)
-{
- u32 ts = 0x01;
- while(ts < size)
- ts <<= 1;
-
- return ts;
-}
-
-// windows specific
-#ifdef _IRR_WINDOWS_
-
- const DWORD charsets[] = { ANSI_CHARSET, DEFAULT_CHARSET, OEM_CHARSET, BALTIC_CHARSET, GB2312_CHARSET, CHINESEBIG5_CHARSET,
- EASTEUROPE_CHARSET, GREEK_CHARSET, HANGUL_CHARSET, MAC_CHARSET, RUSSIAN_CHARSET,
- SHIFTJIS_CHARSET, SYMBOL_CHARSET, TURKISH_CHARSET, VIETNAMESE_CHARSET, JOHAB_CHARSET,
- ARABIC_CHARSET, HEBREW_CHARSET, THAI_CHARSET, 0};
-
- const wchar_t *setnames[] = {L"ANSI", L"All Available", L"OEM", L"Baltic", L"Chinese Simplified", L"Chinese Traditional",
- L"Eastern European", L"Greek", L"Hangul", L"Macintosh", L"Russian",
- L"Japanese", L"Symbol", L"Turkish", L"Vietnamese", L"Johab",
- L"Arabic", L"Hebrew", L"Thai", 0};
-
- // callback for adding font names
- int CALLBACK EnumFontFamExProc( ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
- DWORD FontType, LPARAM lParam)
- {
- CFontTool* t = (CFontTool*) lParam;
- t->FontNames.push_back( core::stringw(lpelfe->elfFullName));
- return 1;
- }
-
- //
- // Constructor
- //
-
- CFontTool::CFontTool(IrrlichtDevice* device) : FontSizes(fontsizes),
- Device(device), UseAlphaChannel(false),
- // win specific
- dc(0)
- {
- // init display context
- dc = CreateDC(L"DISPLAY", L"DISPLAY", 0 ,0 );
-
- // populate list of available character set names
- for (int i=0; setnames[i] != 0; ++i)
- CharSets.push_back( core::stringw(setnames[i]));
-
- selectCharSet(0);
- }
-
- void CFontTool::selectCharSet(u32 currentCharSet)
- {
- if ( currentCharSet >= CharSets.size() )
- return;
-
- LOGFONTW lf;
- lf.lfFaceName[0] = L'\0';
- lf.lfCharSet = (BYTE) charsets[currentCharSet];
- // HRESULT hr; // no error checking(!)
-
- // clear font list
- FontNames.clear();
-
- // create list of available fonts
- EnumFontFamiliesExW( dc, (LPLOGFONTW) &lf, (FONTENUMPROCW) EnumFontFamExProc, (LPARAM) this, 0);
- }
-
- bool CFontTool::makeBitmapFont(u32 fontIndex, u32 charsetIndex, s32 fontSize, u32 textureWidth, u32 textureHeight, bool bold, bool italic, bool aa, bool alpha)
- {
- if (fontIndex >= FontNames.size() || charsetIndex >= CharSets.size() )
- return false;
-
- UseAlphaChannel = alpha;
- u32 currentImage = 0;
-
- // create the font
- HFONT font = CreateFontW(
- -MulDiv(fontSize, GetDeviceCaps(dc, LOGPIXELSY), 72), 0,
- 0,0,
- bold ? FW_BOLD : 0,
- italic, 0,0, charsets[charsetIndex], 0,0,
- aa ? ANTIALIASED_QUALITY : 0,
- 0, FontNames[fontIndex].c_str() );
-
- if (!font)
- return false;
-
- SelectObject(dc, font);
- SetTextAlign (dc,TA_LEFT | TA_TOP | TA_NOUPDATECP);
-
- // get rid of the current textures/images
- for (u32 i=0; idrop();
- currentTextures.clear();
-
- for (u32 i=0; idrop();
- currentImages.clear();
-
- // clear current image mappings
- CharMap.clear();
- // clear array
- Areas.clear();
-
- // get information about this font's unicode ranges.
- s32 size = GetFontUnicodeRanges( dc, 0);
- c8 *buf = new c8[size];
- LPGLYPHSET glyphs = (LPGLYPHSET)buf;
-
- GetFontUnicodeRanges( dc, glyphs);
-
- // s32 TotalCharCount = glyphs->cGlyphsSupported;
-
- s32 currentx=0, currenty=0, maxy=0;
-
- for (u32 range=0; range < glyphs->cRanges; range++)
- {
- WCRANGE* current = &glyphs->ranges[range];
-
- //maxy=0;
-
- // loop through each glyph and write its size and position
- for (s32 ch=current->wcLow; ch< current->wcLow + current->cGlyphs; ch++)
- {
- wchar_t currentchar = ch;
-
- if ( IsDBCSLeadByte((BYTE) ch))
- continue; // surragate pairs unsupported
-
- // get the dimensions
- SIZE size;
- ABC abc;
- GetTextExtentPoint32W(dc, ¤tchar, 1, &size);
- SFontArea fa;
- fa.underhang = 0;
- fa.overhang = 0;
-
- if (GetCharABCWidthsW(dc, currentchar, currentchar, &abc)) // for unicode fonts, get overhang, underhang, width
- {
- size.cx = abc.abcB;
- fa.underhang = abc.abcA;
- fa.overhang = abc.abcC;
-
- if (abc.abcB-abc.abcA+abc.abcC<1)
- continue; // nothing of width 0
- }
- if (size.cy < 1)
- continue;
-
- //GetGlyphOutline(dc, currentchar, GGO_METRICS, &gm, 0, 0, 0);
-
- //size.cx++; size.cy++;
-
- // wrap around?
- if (currentx + size.cx > (s32) textureWidth)
- {
- currenty += maxy;
- currentx = 0;
- if ((u32)(currenty + maxy) > textureHeight)
- {
- currentImage++; // increase Image count
- currenty=0;
- }
- maxy = 0;
- }
- // add this char dimension to the current map
-
- fa.rectangle = core::rect(currentx, currenty, currentx + size.cx, currenty + size.cy);
- fa.sourceimage = currentImage;
-
- CharMap.insert(currentchar, Areas.size());
- Areas.push_back( fa );
-
- currentx += size.cx +1;
-
- if (size.cy+1 > maxy)
- maxy = size.cy+1;
- }
- }
- currenty += maxy;
-
- u32 lastTextureHeight = getTextureSizeFromSurfaceSize(currenty);
-
- // delete the glyph set
- delete [] buf;
-
- currentImages.set_used(currentImage+1);
- currentTextures.set_used(currentImage+1);
-
- for (currentImage=0; currentImage < currentImages.size(); ++currentImage)
- {
- core::stringc logmsg = "Creating image ";
- logmsg += (s32) (currentImage+1);
- logmsg += " of ";
- logmsg += (s32) currentImages.size();
- Device->getLogger()->log(logmsg.c_str());
- // no need for a huge final texture
- u32 texHeight = textureHeight;
- if (currentImage == currentImages.size()-1 )
- texHeight = lastTextureHeight;
-
- // make a new bitmap
- HBITMAP bmp = CreateCompatibleBitmap(dc, textureWidth, texHeight);
- HDC bmpdc = CreateCompatibleDC(dc);
-
- LOGBRUSH lbrush;
- lbrush.lbColor = RGB(0,0,0);
- lbrush.lbHatch = 0;
- lbrush.lbStyle = BS_SOLID;
-
- HBRUSH brush = CreateBrushIndirect(&lbrush);
- HPEN pen = CreatePen(PS_NULL, 0, 0);
-
- HGDIOBJ oldbmp = SelectObject(bmpdc, bmp);
- HGDIOBJ oldbmppen = SelectObject(bmpdc, pen);
- HGDIOBJ oldbmpbrush = SelectObject(bmpdc, brush);
- HGDIOBJ oldbmpfont = SelectObject(bmpdc, font);
-
- SetTextColor(bmpdc, RGB(255,255,255));
-
- Rectangle(bmpdc, 0,0,textureWidth,texHeight);
- SetBkMode(bmpdc, TRANSPARENT);
-
- // draw the letters...
-
- // iterate through the tree
- core::map::Iterator it = CharMap.getIterator();
- while (!it.atEnd())
- {
- s32 currentArea = (*it).getValue();
- wchar_t wch = (*it).getKey();
- // sloppy but I couldnt be bothered rewriting it
- if (Areas[currentArea].sourceimage == currentImage)
- {
- // draw letter
- s32 sx = Areas[currentArea].rectangle.UpperLeftCorner.X - Areas[currentArea].underhang;
- TextOutW(bmpdc, sx, Areas[currentArea].rectangle.UpperLeftCorner.Y, &wch, 1);
-
- // if ascii font...
- //SetPixel(bmpdc, Areas[currentArea].rectangle.UpperLeftCorner.X, Areas[currentArea].rectangle.UpperLeftCorner.Y, RGB(255,255,0));// left upper corner mark
- }
- it++;
- }
-
- // copy the font bitmap into a new irrlicht image
- BITMAP b;
- PBITMAPINFO pbmi;
- WORD cClrBits;
- u32 cformat;
-
- // Retrieve the bitmap color format, width, and height.
- GetObject(bmp, sizeof(BITMAP), (LPSTR)&b);
-
- // Convert the color format to a count of bits.
- cClrBits = (WORD)(b.bmPlanes * b.bmBitsPixel);
-
- if (cClrBits <= 8) // we're not supporting these
- cformat = -1;
- else if (cClrBits <= 16)
- cformat = video::ECF_A1R5G5B5;
- else if (cClrBits <= 24)
- cformat = video::ECF_R8G8B8;
- else
- cformat = video::ECF_A8R8G8B8;
-
- pbmi = (PBITMAPINFO) LocalAlloc(LPTR,
- sizeof(BITMAPINFOHEADER));
-
- // Initialize the fields in the BITMAPINFO structure.
-
- pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- pbmi->bmiHeader.biWidth = b.bmWidth;
- pbmi->bmiHeader.biHeight = b.bmHeight;
- pbmi->bmiHeader.biPlanes = b.bmPlanes;
- pbmi->bmiHeader.biBitCount = b.bmBitsPixel;
-
- // If the bitmap is not compressed, set the BI_RGB flag.
- pbmi->bmiHeader.biCompression = BI_RGB;
-
- // Compute the number of bytes in the array of color
- // indices and store the result in biSizeImage.
- // For Windows NT, the width must be DWORD aligned unless
- // the bitmap is RLE compressed. This example shows this.
- // For Windows 95/98/Me, the width must be WORD aligned unless the
- // bitmap is RLE compressed.
- pbmi->bmiHeader.biSizeImage = ((pbmi->bmiHeader.biWidth * cClrBits +31) & ~31) /8
- * pbmi->bmiHeader.biHeight;
- // Set biClrImportant to 0, indicating that all of the
- // device colors are important.
- pbmi->bmiHeader.biClrImportant = 0;
-
- LPBYTE lpBits; // memory pointer
-
- PBITMAPINFOHEADER pbih = (PBITMAPINFOHEADER) pbmi;
- lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, pbih->biSizeImage);
-
- GetDIBits(dc, bmp, 0, (WORD) pbih->biHeight, lpBits, pbmi, DIB_RGB_COLORS);
-
- // DEBUG- copy to clipboard
- //OpenClipboard(hWnd);
- //EmptyClipboard();
- //SetClipboardData(CF_BITMAP, bmp);
- //CloseClipboard();
-
- // flip bitmap
- s32 rowsize = ((pbmi->bmiHeader.biWidth * cClrBits +31) & ~31) /8;
- c8 *row = new c8[rowsize];
- for (s32 i=0; i < (pbih->biHeight/2); ++i)
- {
- // grab a row
- memcpy(row, lpBits + (rowsize * i), rowsize);
- // swap row
- memcpy(lpBits + (rowsize * i), lpBits + ((pbih->biHeight-1 -i) * rowsize ) , rowsize);
- memcpy(lpBits + ((pbih->biHeight-1 -i) * rowsize ), row , rowsize);
- }
-
- bool ret = false;
-
- if (cformat == video::ECF_A8R8G8B8)
- {
- // in this case the font should have an alpha channel, but since windows doesn't draw one
- // we have to set one manually by going through all the pixels.. *sigh*
-
- u8* m;
- for (m = lpBits; m < lpBits + pbih->biSizeImage; m+=4)
- {
- if (UseAlphaChannel)
- {
- if (m[0] > 0) // pixel has colour
- {
- m[3]=m[0]; // set alpha
- m[0]=m[1]=m[2] = 255; // everything else is full
- }
- }
- else
- m[3]=255; // all pixels are full alpha
- }
-
- }
- else if (cformat == video::ECF_A1R5G5B5)
- {
- u8* m;
- for (m = lpBits; m < lpBits + pbih->biSizeImage; m+=2)
- {
- WORD *p = (WORD*)m;
- if (m[0] > 0 || !UseAlphaChannel) // alpha should be set
- *p |= 0x8000; // set alpha bit
- }
- }
- else
- {
- cformat = -1;
- }
-
- // make a texture from the image
- if (cformat != -1)
- {
- // turn mip-mapping off
- bool b = Device->getVideoDriver()->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS);
- currentImages[currentImage] = Device->getVideoDriver()->createImageFromData((video::ECOLOR_FORMAT)cformat, core::dimension2d(textureWidth,texHeight), (void*)lpBits);
- Device->getVideoDriver()->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS,b);
- }
- else
- {
- Device->getLogger()->log("Couldn't create font, your pixel format is unsupported.");
- }
-
- // free memory and windows resources
- // sloppy I know, but I only intended to create one image at first.
- delete [] row;
- LocalFree(pbmi);
- GlobalFree(lpBits);
- DeleteDC(bmpdc);
- DeleteObject(brush);
- DeleteObject(pen);
- DeleteObject(bmp);
-
- if (currentImages[currentImage])
- {
- // add texture
- currentTextures[currentImage] = Device->getVideoDriver()->addTexture("GUIFontImage",currentImages[currentImage]);
- currentTextures[currentImage]->grab();
- }
- else
- {
- Device->getLogger()->log("Something went wrong, aborting.");
- // drop all images
- DeleteObject(font);
- return false;
- }
- } // looping through each texture
- DeleteObject(font);
- return true;
- }
-
-#else
-
- CFontTool::CFontTool(IrrlichtDevice *device) : FontSizes(fontsizes), Device(device), UseAlphaChannel(false)
- {
- if (!XftInitFtLibrary())
- {
- core::stringc logmsg = "XFT not found\n";
- Device->getLogger()->log(logmsg.c_str());
- exit(EXIT_FAILURE);
- }
-
- /* Get a list of the font foundries, storing them in a set to sort */
- std::set foundries;
- Display* display = (Display*)Device->getVideoDriver()->getExposedVideoData().OpenGLLinux.X11Display;
- XftFontSet* fonts = XftListFonts(display, DefaultScreen(display), 0, XFT_FOUNDRY, 0);
- for (int i = 0; i < fonts->nfont; i++)
- {
- char *foundry;
- XftPatternGetString(fonts->fonts[i], XFT_FOUNDRY, 0, &foundry);
- core::stringw tmp(foundry);
- foundries.insert(tmp);
- }
- XftFontSetDestroy(fonts);
-
- /* Copy the sorted list into the array */
- CharSets.clear();
- for (std::set::iterator i = foundries.begin(); i != foundries.end(); i++)
- CharSets.push_back((*i).c_str());
- selectCharSet(0);
- }
-
- /* Note: There must be some trick for using strings as pattern parameters to XftListFonts because
- no matter how I specify a string, I end up with an intermittent segfault. Since XftFontList is
- just calling FcFontList, that's what I'll do too since that works OK */
- void CFontTool::selectCharSet(u32 currentCharSet)
- {
- /* Get a list of the font families, storing them in a set to sort */
- char foundry[256];
- sprintf(&foundry[0],"%ls",CharSets[currentCharSet].c_str());
- std::set families;
- XftPattern *pattern = FcPatternCreate();
- XftPatternAddString(pattern, FC_FOUNDRY, &foundry[0]);
- XftObjectSet *objectset = FcObjectSetCreate();
- XftObjectSetAdd(objectset, XFT_FOUNDRY);
- XftObjectSetAdd(objectset, XFT_FAMILY);
- FcFontSet *fonts = FcFontList(NULL, pattern, objectset);
-
- for (int i = 0; i < fonts->nfont; i++)
- {
- char* ptr;
- XftPatternGetString(fonts->fonts[i], XFT_FAMILY, 0, &ptr);
- core::stringw family(ptr);
- families.insert(family);
- }
- XftPatternDestroy(pattern);
- FcObjectSetDestroy(objectset);
-
- /* Copy the sorted list into the array */
- FontNames.clear();
- for (std::set::iterator i = families.begin(); i != families.end(); i++)
- FontNames.push_back((*i).c_str());
- }
-
- bool CFontTool::makeBitmapFont(u32 fontIndex, u32 charsetIndex, s32 fontSize, u32 textureWidth, u32 textureHeight, bool bold, bool italic, bool aa, bool alpha)
- {
- if (fontIndex >= FontNames.size() || charsetIndex >= CharSets.size() )
- return false;
-
- Display *display = (Display*) Device->getVideoDriver()->getExposedVideoData().OpenGLLinux.X11Display;
- u32 screen = DefaultScreen(display);
- Window win = RootWindow(display, screen);
- Visual *visual = DefaultVisual(display, screen);
- UseAlphaChannel = alpha;
- u32 currentImage = 0;
-
- XftResult result;
- XftPattern *request = XftPatternCreate();
- char foundry[256], family[256];
- sprintf(&foundry[0],"%ls",CharSets[charsetIndex].c_str());
- sprintf(&family[0],"%ls",FontNames[fontIndex].c_str());
- XftPatternAddString(request, XFT_FOUNDRY, &foundry[0]);
- XftPatternAddString(request, XFT_FAMILY, &family[0]);
- XftPatternAddInteger(request, XFT_PIXEL_SIZE, fontSize);
- XftPatternAddInteger(request, XFT_WEIGHT, bold ? XFT_WEIGHT_BLACK : XFT_WEIGHT_LIGHT);
- XftPatternAddInteger(request, XFT_SLANT, italic ? XFT_SLANT_ITALIC : XFT_SLANT_ROMAN);
- XftPatternAddBool(request, XFT_ANTIALIAS, aa);
-
- /* Find the closest font that matches the user choices and open it and check if the returned
- font has anti aliasing enabled by default, even if it wasn't requested */
- FcBool aaEnabled;
- XftPattern *found = XftFontMatch(display, DefaultScreen(display), request, &result);
- XftPatternGetBool(found, XFT_ANTIALIAS, 0, &aaEnabled);
- aa = aaEnabled;
- XftFont *font = XftFontOpenPattern(display, found);
-
- // get rid of the current textures/images
- for (u32 i=0; idrop();
- currentTextures.clear();
- for (u32 i=0; idrop();
- currentImages.clear();
- CharMap.clear();
- Areas.clear();
-
- /* Calculate the max height of the font. Annoyingly, it seems that the height property of the font
- is the maximum height of any single character, but a string of characters, aligned along their
- baselines, can exceed this figure. Because I don't know any better way of doing it, I'm going to
- have to use the brute force method.
-
- Note: There will be a certain number of charters in a font, however they may not be grouped
- consecutively, and could in fact be spread out with many gaps */
- u32 maxY = 0;
- u32 charsFound = 0;
- for (FT_UInt charCode = 0; charsFound < FcCharSetCount(font->charset); charCode++)
- {
- if (!XftCharExists(display, font, charCode))
- continue;
-
- charsFound++;
-
- XGlyphInfo extents;
- XftTextExtents32(display, font, &charCode, 1, &extents);
- if ((extents.xOff <= 0) && (extents.height <= 0))
- continue;
-
- /* Calculate the width and height, adding 1 extra pixel if anti aliasing is enabled */
- u32 chWidth = extents.xOff + (aa ? 1 : 0);
- u32 chHeight = (font->ascent - extents.y + extents.height) + (aa ? 1 : 0);
- if (chHeight > maxY)
- maxY = chHeight;
-
- /* Store the character details here */
- SFontArea fontArea;
- fontArea.rectangle = core::rect(0, 0, chWidth, chHeight);
- CharMap.insert(charCode, Areas.size());
- Areas.push_back(fontArea);
- }
- core::stringc logmsg = "Found ";
- logmsg += (s32) (CharMap.size() + 1);
- logmsg += " characters";
- Device->getLogger()->log(logmsg.c_str());
-
- /* Get the size of the chars and allocate them a position on a texture. If the next character that
- is added would be outside the width or height of the texture, then a new texture is added */
- u32 currentX = 0, currentY = 0, rowY = 0;
- for (core::map::Iterator it = CharMap.getIterator(); !it.atEnd(); it++)
- {
- s32 currentArea = (*it).getValue();
- SFontArea *fontArea = &Areas[currentArea];
- u32 chWidth = fontArea->rectangle.LowerRightCorner.X;
- u32 chHeight = fontArea->rectangle.LowerRightCorner.Y;
-
- /* If the width of this char will exceed the textureWidth then start a new row */
- if ((currentX + chWidth) > textureWidth)
- {
- currentY += rowY;
- currentX = 0;
-
- /* If the new row added to the texture exceeds the textureHeight then start a new texture */
- if ((currentY + rowY) > textureHeight)
- {
- currentImage++;
- currentY = 0;
- }
- rowY = 0;
- }
-
- /* Update the area with the current x and y and texture */
- fontArea->rectangle = core::rect(currentX, currentY, currentX + chWidth, currentY + chHeight);
- fontArea->sourceimage = currentImage;
- currentX += chWidth + 1;
- if (chHeight + 1 > rowY)
- rowY = chHeight + 1;
- }
-
- /* The last row of chars and the last texture weren't accounted for in the loop, so add them here */
- currentY += rowY;
- u32 lastTextureHeight = getTextureSizeFromSurfaceSize(currentY);
- currentImages.set_used(currentImage + 1);
- currentTextures.set_used(currentImage + 1);
-
- /* Initialise colours */
- XftColor colFore, colBack;
- XRenderColor xFore = {0xffff, 0xffff, 0xffff, 0xffff};
- XRenderColor xBack = {0x0000, 0x0000, 0x0000, 0xffff};
- XftColorAllocValue(display, DefaultVisual(display, screen), DefaultColormap(display, screen), &xFore, &colFore);
- XftColorAllocValue(display, DefaultVisual(display, screen), DefaultColormap(display, screen), &xBack, &colBack);
-
- /* Create a pixmap that is large enough to hold any character in the font */
- Pixmap pixmap = XCreatePixmap(display, win, textureWidth, maxY, DefaultDepth(display, screen));
- XftDraw *draw = XftDrawCreate(display, pixmap, visual, DefaultColormap(display, screen));
-
- /* Render the chars */
- for (currentImage = 0; currentImage < currentImages.size(); ++currentImage)
- {
- core::stringc logmsg = "Creating image ";
- logmsg += (s32) (currentImage+1);
- logmsg += " of ";
- logmsg += (s32) currentImages.size();
- Device->getLogger()->log(logmsg.c_str());
-
- /* The last texture that is saved is vertically shrunk to fit the characters drawn on it */
- u32 texHeight = textureHeight;
- if (currentImage == currentImages.size() - 1)
- texHeight = lastTextureHeight;
-
- /* The texture that holds this "page" of characters */
- currentImages[currentImage] = Device->getVideoDriver()->createImage(video::ECF_A8R8G8B8, core::dimension2du(textureWidth, texHeight));
- currentImages[currentImage]->fill(video::SColor(alpha ? 0 : 255,0,0,0));
-
- for (core::map::Iterator it = CharMap.getIterator(); !it.atEnd(); it++)
- {
- FcChar32 wch = (*it).getKey();
- s32 currentArea = (*it).getValue();
- if (Areas[currentArea].sourceimage == currentImage)
- {
- SFontArea *fontArea = &Areas[currentArea];
- u32 chWidth = fontArea->rectangle.LowerRightCorner.X - fontArea->rectangle.UpperLeftCorner.X;
- u32 chHeight = fontArea->rectangle.LowerRightCorner.Y - fontArea->rectangle.UpperLeftCorner.Y;
-
- /* Draw the glyph onto the pixmap */
- XGlyphInfo extents;
- XftDrawRect(draw, &colBack, 0, 0, chWidth, chHeight);
- XftTextExtents32(display, font, &wch, 1, &extents);
- XftDrawString32(draw, &colFore, font, extents.x, extents.y, &wch, 1);
-
- /* Convert the pixmap into an image, then copy it onto the Irrlicht texture, pixel by pixel.
- There's bound to be a faster way, but this is adequate */
- u32 xDest = fontArea->rectangle.UpperLeftCorner.X;
- u32 yDest = fontArea->rectangle.UpperLeftCorner.Y + font->ascent - extents.y;
- XImage *image = XGetImage(display, pixmap, 0, 0, chWidth, chHeight, 0xffffff, XYPixmap);
- if (image)
- {
- for (u32 ySrc = 0; ySrc < chHeight; ySrc++)
- for (u32 xSrc = 0; xSrc < chWidth; xSrc++)
- {
- /* Get the pixel colour and break it down into rgb components */
- u32 col = XGetPixel(image, xSrc, ySrc);
- u32 a = 255;
- u32 r = col & visual->red_mask;
- u32 g = col & visual->green_mask;
- u32 b = col & visual->blue_mask;
- while (r > 0xff) r >>= 8;
- while (g > 0xff) g >>= 8;
- while (b > 0xff) b >>= 8;
-
- /* To make the background transparent, set the colour to 100% white and the alpha to
- the average of the three rgb colour components to maintain the anti-aliasing */
- if (alpha)
- {
- a = (r + g + b) / 3;
- r = 255;
- g = 255;
- b = 255;
- }
- currentImages[currentImage]->setPixel(xDest + xSrc,yDest + ySrc,video::SColor(a,r,g,b));
- }
- image->f.destroy_image(image);
- }
- }
- }
-
- /* Add the texture to the list */
- currentTextures[currentImage] = Device->getVideoDriver()->addTexture("GUIFontImage",currentImages[currentImage]);
- currentTextures[currentImage]->grab();
- }
-
- XftColorFree (display, visual, DefaultColormap(display, screen), &colFore);
- XftColorFree (display, visual, DefaultColormap(display, screen), &colBack);
- XftFontClose(display,font);
- XftPatternDestroy(request);
- XftDrawDestroy(draw);
- XFreePixmap(display, pixmap);
- return true;
- }
-#endif
-
- CFontTool::~CFontTool()
- {
-#ifdef _IRR_WINDOWS_
- // destroy display context
- if (dc)
- DeleteDC(dc);
-#endif
-
- // drop textures+images
- for (u32 i=0; idrop();
- currentTextures.clear();
-
- for (u32 i=0; idrop();
- currentImages.clear();
- }
-
-bool CFontTool::saveBitmapFont(const c8 *filename, const c8* format)
-{
- if (currentImages.size() == 0)
- {
- Device->getLogger()->log("No image data to write, aborting.");
- return false;
- }
-
- core::stringc fn = filename;
- core::stringc imagename = filename;
- fn += ".xml";
-
- io::IXMLWriter *writer = Device->getFileSystem()->createXMLWriter(fn.c_str());
-
- // header and line breaks
- writer->writeXMLHeader();
- writer->writeLineBreak();
-
- // write information
- writer->writeElement(L"font", false, L"type", L"bitmap");
- writer->writeLineBreak();
- writer->writeLineBreak();
-
- // write images and link to them
- for (u32 i=0; igetVideoDriver()->writeImageToFile(currentImages[i],imagename.c_str());
-
- writer->writeElement(L"Texture", true,
- L"index", core::stringw(i).c_str(),
- L"filename", core::stringw(imagename.c_str()).c_str(),
- L"hasAlpha", UseAlphaChannel ? L"true" : L"false");
- writer->writeLineBreak();
- }
-
- writer->writeLineBreak();
-
- // write each character
- core::map::Iterator it = CharMap.getIterator();
- while (!it.atEnd())
- {
- SFontArea &fa = Areas[(*it).getValue()];
-
- wchar_t c[2];
- c[0] = (*it).getKey();
- c[1] = L'\0';
- core::stringw area, under, over, image;
- area = core::stringw(fa.rectangle.UpperLeftCorner.X);
- area += L", ";
- area += fa.rectangle.UpperLeftCorner.Y;
- area += L", ";
- area += fa.rectangle.LowerRightCorner.X;
- area += L", ";
- area += fa.rectangle.LowerRightCorner.Y;
-
- core::array names;
- core::array values;
- names.clear();
- values.clear();
- // char
- names.push_back(core::stringw(L"c"));
- values.push_back(core::stringw(c));
- // image number
- if (fa.sourceimage != 0)
- {
- image = core::stringw(fa.sourceimage);
- names.push_back(core::stringw(L"i"));
- values.push_back(image);
- }
- // rectangle
- names.push_back(core::stringw(L"r"));
- values.push_back(area);
-
- if (fa.underhang != 0)
- {
- under = core::stringw(fa.underhang);
- names.push_back(core::stringw(L"u"));
- values.push_back(under);
- }
- if (fa.overhang != 0)
- {
- over = core::stringw(fa.overhang);
- names.push_back(core::stringw(L"o"));
- values.push_back(over);
- }
- writer->writeElement(L"c", true, names, values);
-
- writer->writeLineBreak();
- it++;
- }
-
- writer->writeClosingTag(L"font");
-
- writer->drop();
-
- Device->getLogger()->log("Bitmap font saved.");
-
- return true;
-}
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.h b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.h
deleted file mode 100644
index ee0eefb..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CFontTool.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __IRR_FONT_TOOL_INCLUDED__
-#define __IRR_FONT_TOOL_INCLUDED__
-
-
-#include "irrlicht.h"
-
-#if defined(_IRR_WINDOWS_)
- #ifdef _MBCS
- #undef _MBCS
- #endif
-
- #define UNICODE
- #define _WIN32_WINNT 0x0500
- #include "windows.h"
-#else
- #ifdef _IRR_COMPILE_WITH_X11_
- #include
- #endif
- #include
- #include
-#endif
-
-
-namespace irr {
- class CFontTool : public irr::IReferenceCounted
- {
- public:
- CFontTool(irr::IrrlichtDevice* device);
- ~CFontTool();
-
- virtual bool makeBitmapFont(u32 fontIndex, u32 charsetIndex,
- s32 fontSize, u32 texturewidth, u32 textureHeight,
- bool bold, bool italic, bool aa, bool alpha);
-
- virtual bool saveBitmapFont(const c8* filename, const c8* format);
-
- virtual void selectCharSet(u32 currentCharSet);
-
- struct SFontArea
- {
- SFontArea() : rectangle(), underhang(0), overhang(0), sourceimage(0) {}
- core::rect rectangle;
- s32 underhang;
- s32 overhang;
- u32 sourceimage;
- };
-
- /* struct SFontMap
- {
- SFontMap() : areas(), start(0), count(0) {}
- core::array< SFontArea > areas;
- s32 start;
- s32 count;
- };*/
-
-
-
- core::array FontNames;
- core::array CharSets;
- //core::array Mappings;
- core::array Areas;
- core::map CharMap;
-
- core::array currentTextures;
- core::array currentImages;
- const int *FontSizes;
- IrrlichtDevice *Device;
-
- bool UseAlphaChannel;
-
- // windows
- #ifdef _IRR_WINDOWS_
- HDC dc;
- #endif
-
- };
-}
-#endif // __IRR_FONT_TOOL_INCLUDED__
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CVectorFontTool.h b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CVectorFontTool.h
deleted file mode 100644
index c139f3d..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/CVectorFontTool.h
+++ /dev/null
@@ -1,1199 +0,0 @@
-/*
- Vector font tool - Gaz Davidson December 2006-2012
-
- I noticed bitmap fonts were taking massive amounts of video memory at reasonable sizes,
- so I decided to make a vector font. I always wanted to try converting pixels to triangles...
-
- And I failed! This is a collection of the ugliest, bloated, most inneficient algorithms
- i've ever written, but its kinda working so I'm not changing it.
-*/
-
-#ifndef __VECTOR_FONT_TOOL_INCLUDED__
-#define __VECTOR_FONT_TOOL_INCLUDED__
-
-#include "irrlicht.h"
-#include "CFontTool.h"
-#include
-
-using namespace irr;
-using namespace video;
-
-struct STriangleList
-{
- core::array positions;
- core::array indexes;
-
- // for adding one triangle list to another,
- // these triangles share positions, but dont share triangles
- STriangleList& operator+=(STriangleList &other)
- {
- core::matrix4 m;
- core::array map;
- map.set_used(other.positions.size());
-
- for (u32 i=0; i positions;
-
- bool isMember(s32 x, s32 y)
- {
- for (u32 i=0; i h1((f32)(positions[i-1].X - positions[i].X),(f32)(positions[i-1].Y - positions[i].Y)),
- h2((f32)(positions[i].X - positions[i+1].X),(f32)(positions[i].Y - positions[i+1].Y));
- h1.normalize();
- h2.normalize();
-
- if (h1==h2) // erase the current point
- positions.erase(i--);
- }
-
- // level 1- if point1 points at point3, we can skip point2
- // level 2+ allow a deviation of level-1
-
- }
-
- };
-
- // contains an array of lines for triangulation
- struct SLineList
- {
- core::array lines;
- SLineList() : lines() { }
- void addEdge(const SEdge &edge)
- {
- // adds lines to the buffer
- for (u32 i=1; i 0 &&
- lb.getPointOrientation(l2.start) > 0 &&
- lc.getPointOrientation(l2.start) > 0)
- return true;
- //if (la.getPointOrientation(l2.start) < 0 &&
- // lb.getPointOrientation(l2.start) < 0 &&
- // lc.getPointOrientation(l2.start) < 0)
- // return true;
-
- core::vector2df out;
- //if (la.intersectWith(l2,out))
- // if (out != la.start && out != la.end &&
- // out != l2.start && out != l2.end)
- // return true;
- if (lb.intersectWith(l2,out))
- if (!out.equals(lb.start) && !out.equals(lb.end) &&
- !out.equals(l2.start) && !out.equals(l2.end))
- return true;
- if (lc.intersectWith(l2,out))
- if (!out.equals(lc.start) && !out.equals(lc.end) &&
- !out.equals(l2.start) && !out.equals(l2.end))
- return true;
-
- // my shit intersection code only works with lines in certain directions :(
- if (l2.intersectWith(lb,out))
- if (!out.equals(lb.start) && !out.equals(lb.end) &&
- !out.equals(l2.start) && !out.equals(l2.end))
- return true;
- if (l2.intersectWith(lc,out))
- if (!out.equals(lc.start) && !out.equals(lc.end) &&
- !out.equals(l2.start) && !out.equals(l2.end))
- return true;
-
-
- if (lb.isPointOnLine(l2.start) && l2.start != lb.start && l2.start != lb.end)
- return true;
- if (lc.isPointOnLine(l2.start) && l2.start != lc.start && l2.start != lc.end)
- return true;
-
- }
- return false;
- }
- };
-
- // an area of adjacent pixels
- struct SPixelGroup
- {
- SPixelGroup(IrrlichtDevice *device) : triangles(), pixelWidth(0), pixelHeight(0),
- Device(device) {}
-
- core::array pixels;
- core::array edges;
- STriangleList triangles;
- core::array ll;
- core::array isMemberCache;
- s32 pixelWidth;
- s32 pixelHeight;
- IrrlichtDevice *Device;
-
- void triangulate()
- {
-
- // find edges in this group
- makeEdges();
-
- // triangulate the group
- makeTriangles();
-
- }
-
- void drawTriangle( core::line2df line, core::vector2df point)
- {
- //const u32 endt = Device->getTimer()->getTime() + t;
- f32 scale = 5;
-
-
- //while(Device->getTimer()->getTime() < endt )
- //{
- Device->run();
- Device->getVideoDriver()->beginScene(true,true,video::SColor(0,0,0,0));
- for (u32 v=0;vgetVideoDriver()->draw2DLine(st,en, SColor(255,255,255,255));
- }
- // draw this triangle
- const core::position2di st((s32)(line.start.X*scale)+50, (s32)(line.start.Y*scale)+50);
- const core::position2di en((s32)(line.end.X*scale)+50, (s32)(line.end.Y*scale)+50);
- const core::position2di p((s32)(point.X*scale)+50, (s32)(point.Y*scale)+50);
- Device->getVideoDriver()->draw2DLine(st,en, SColor(255,255,0,0));
- Device->getVideoDriver()->draw2DLine(en,p, SColor(255,0,255,0));
- Device->getVideoDriver()->draw2DLine(p,st, SColor(255,0,0,255));
-
- Device->getVideoDriver()->endScene();
- //}
- }
-
- void makeTriangles()
- {
- // make lines from edges, because they're easier to deal with
- ll.clear();
- for (u32 i=0; i < edges.size(); ++i)
- {
- SLineList l;
- l.addEdge(edges[i]);
- ll.push_back(l);
- }
- // add an extra one for inside edges
- SLineList innerlines;
- ll.push_back(innerlines);
-
- // loop through each edge and make triangles
- for (u32 i=0; ibestScore)
- {
- bestScore = score;
- bestEdge = k;
- bestPoint = j;
- }
- }
- // hopefully we found one
- if (bestEdge >= 0 && bestPoint >= 0 && bestScore >= 0.0f)
- {
- //assert(bestEdge >= 0 && bestPoint >= 0);
- //assert(bestScore >= 0.0f);
-
- core::vector2df point(ll[bestEdge].lines[bestPoint].start.X, ll[bestEdge].lines[bestPoint].start.Y);
-
- // add it to the triangles list
- triangles.add(currentLine.start, currentLine.end, point);
-
- // add inner lines to the line buffer, but only if they arent in others
-
- core::line2df la(point,currentLine.start);
- core::line2df lb(currentLine.end,point);
-
- bool found = false;
- for (u32 lineno=0;lineno= 3);
-
- // all edges should be closed
- assert(edges[i].positions[0] == edges[i].positions[edges[i].positions.size()-1] );
- }
- }
-
- // adds a line to the edges arrays
- void addToEdges(s32 x1, s32 y1, s32 x2, s32 y2)
- {
- bool found=false;
- // loop through each edge
- for (u32 i=0; ipixelWidth || y>pixelHeight || x<0 || y<0)
- return false;
- else
- return isMemberCache[pixelWidth*y + x];
- }
-
- void refreshIsMemberCache()
- {
- isMemberCache.clear();
- pixelWidth=0; pixelHeight=0;
- for (u32 i=0; ipixelWidth) pixelWidth=pixels[i].X;
- if (pixels[i].Y>pixelHeight) pixelHeight=pixels[i].Y;
- }
- pixelWidth+=2; pixelHeight+=2;
- isMemberCache.set_used(pixelWidth*pixelHeight+1);
- for (u32 i=0; igetTimer()->getTime();
- const u32 endt = stt + t;
-
- while(device->getTimer()->getTime() < endt )
- {
- const f32 phase = f32((device->getTimer()->getTime()-stt) % 500) / 500.0f;
-
- device->run();
- device->getVideoDriver()->beginScene(true,true,video::SColor(0,0,0,0));
- for (u32 g=0;ggetVideoDriver()->draw2DLine(st,en);
- device->getVideoDriver()->draw2DLine(st,ep,video::SColor(255,255,0,0) );
- }
- device->getVideoDriver()->endScene();
- }
- }
-
- void drawTriangles(IrrlichtDevice *device, u32 t, s32 scale)
- {
- const u32 stt = device->getTimer()->getTime();
- const u32 endt = stt + t;
-
- while(device->getTimer()->getTime() < endt )
- {
- const f32 phase = f32((device->getTimer()->getTime()-stt) % 500) / 500.0f;
-
- device->run();
- device->getVideoDriver()->beginScene(true,true,video::SColor(0,0,0,0));
- for (u32 g=0;ggetVideoDriver()->draw2DLine(st,en, SColor(255,255,0,0));
- st = core::position2di((s32)(t.positions[t.indexes[v+1]].X*scale)+50,(s32)(t.positions[t.indexes[v+1]].Y*scale)+50);
- en = core::position2di((s32)(t.positions[t.indexes[v+2]].X*scale)+50,(s32)(t.positions[t.indexes[v+2]].Y*scale)+50);
- device->getVideoDriver()->draw2DLine(st,en, SColor(255,0,255,0));
- st = core::position2di((s32)(t.positions[t.indexes[v+2]].X*scale)+50,(s32)(t.positions[t.indexes[v+2]].Y*scale)+50);
- en = core::position2di((s32)(t.positions[t.indexes[v+0]].X*scale)+50,(s32)(t.positions[t.indexes[v+0]].Y*scale)+50);
- device->getVideoDriver()->draw2DLine(st,en, SColor(255,0,0,255));
- }
- device->getVideoDriver()->endScene();
- }
- }
-
- void drawTriLines(IrrlichtDevice *device, u32 t, s32 scale)
- {
- const u32 endt = device->getTimer()->getTime() + t;
-
- while(device->getTimer()->getTime() < endt )
- {
- device->run();
- device->getVideoDriver()->beginScene(true,true,video::SColor(0,0,0,0));
- for (u32 g=0;ggetVideoDriver()->draw2DLine(st,en, SColor(255,255,0,0));
- }
-
- device->getVideoDriver()->endScene();
- }
- }
- void drawTri3D(IrrlichtDevice *device, u32 t)
- {
- for (u32 g=0;g verts;
- verts.clear();
- for(u32 v=0; v< t.positions.size(); ++v)
- {
- verts.push_back(S3DVertex(
- -t.positions[v].X, -t.positions[v].Y, -100,
- 0,0,1,SColor(255,255,255,255),0,0));
- }
-
- device->getVideoDriver()->drawIndexedTriangleList(verts.pointer(),verts.size(),t.indexes.pointer(), t.indexes.size()/3 );
- }
- }
-
-
- // process all pixels
- void findGroups()
- {
- for (int y=0; y0) // look one behind
- {
- grp = getRef(x-1,y);
- if (grp) found=true;
- }
- if (y>0) // look above
- {
- if (x>0) // top left
- {
- g = getRef(x-1,y-1);
-
- if (g)
- {
- if (found)
- {
- mergeGroups(grp, g);
- }
- else
- {
- grp = g;
- found = true;
- }
- }
- }
-
- if (x groups;
- core::array groupRefs;
- core::array refbuffer;
- bool *mem;
- IrrlichtDevice *Device;
-};
-
-// creates a simple vector font from a bitmap from the font tool
-class CVectorFontTool
-{
-public:
- CVectorFontTool(CFontTool *fonttool) :
- triangulator(0), FontTool(fonttool),
- letterHeight(0), letterWidth(0), triangles()
- {
- core::map::Iterator it = FontTool->CharMap.getIterator();
-
- while(!it.atEnd())
- {
- CFontTool::SFontArea &fa = FontTool->Areas[(*it).getValue()];
-
- if (fa.rectangle.getWidth() > letterWidth)
- letterWidth = fa.rectangle.getWidth();
- if (fa.rectangle.getHeight() > letterHeight)
- letterHeight = fa.rectangle.getHeight();
-
- it++;
- }
-
- // number of verts is one more than number of pixels because it's a grid of squares
- letterWidth++;
- letterHeight++;
-
- // create image memory
- imagedata.set_used(letterWidth*letterHeight);
-
- // create vertex list, set position etc
- verts.set_used(letterWidth*letterHeight);
- for (s32 y=0; yCharMap.getIterator();
- while(!it.atEnd())
- {
- addChar((*it).getKey());
- it++;
- }
- }
-
- ~CVectorFontTool()
- {
- if (triangulator)
- delete triangulator;
- }
-
- void addChar(wchar_t thischar)
- {
- const s32 area = FontTool->CharMap[thischar];
- const CFontTool::SFontArea &fa = FontTool->Areas[area];
-
- const s32 img = fa.sourceimage;
- const core::rect& r = fa.rectangle;
-
- // init image memory
- IImage *image = FontTool->currentImages[img];
- for (u32 i=0; i < imagedata.size(); ++i)
- imagedata[i] = false;
- for (s32 y=r.UpperLeftCorner.Y; y < r.LowerRightCorner.Y; ++y)
- {
- for (s32 x=r.UpperLeftCorner.X; x < r.LowerRightCorner.X ; ++x)
- if (image->getPixel(x,y).getBlue() > 0)
- {
- imagedata[letterWidth*(y-r.UpperLeftCorner.Y) +(x-r.UpperLeftCorner.X)] = true;
- }
- }
-
- // get shape areas
- triangulator = new CGroupFinder(imagedata.pointer(), letterWidth, letterHeight, FontTool->Device );
-
- wprintf(L"Created character '%c' in texture %d\n", thischar, img );
-
- //floodfill->drawEdges(FontTool->Device, 500, 3);
- //floodfill->drawTriangles(FontTool->Device, 500,30);
- //floodfill->drawTriLines(FontTool->Device, 200,3);
-
- /*
- if (area==32 && map == 0)
- {
- scene::ISceneManager *smgr = FontTool->Device->getSceneManager();
- smgr->addCameraSceneNodeFPS();
- while(FontTool->Device->run())
- {
- //floodfill->drawEdges(FontTool->Device, 100, 30);
- FontTool->Device->getVideoDriver()->beginScene(true, true, video::SColor(0,200,200,200));
- smgr->drawAll();
- floodfill->drawTri3D(FontTool->Device, 100);
- FontTool->Device->getVideoDriver()->endScene();
- }
- }*/
-
- u32 lastind = triangles.indexes.size();
-
- // loop through each shape and add it to the current character...
- for (u32 i=0; i < triangulator->groups.size(); ++i)
- triangles += triangulator->groups[i].triangles;
-
- // add character details
- charstarts.push_back(lastind);
- charlengths.push_back(triangles.indexes.size() - lastind);
- chars.push_back(thischar);
- }
-
- bool saveVectorFont(const c8 *filename, const c8 *formatname)
- {
- IrrlichtDevice *Device = FontTool->Device;
-
- if (triangles.indexes.size() == 0)
- {
- Device->getLogger()->log("No vector data to write, aborting.");
- return false;
- }
-
- core::stringc fn = filename;
-
- if (core::stringc(formatname) == core::stringc("xml"))
- {
- fn += ".xml";
- io::IXMLWriter *writer = FontTool->Device->getFileSystem()->createXMLWriter(fn.c_str());
-
- // header and line breaks
- writer->writeXMLHeader();
- writer->writeLineBreak();
-
- // write info header
- writer->writeElement(L"font", false, L"type", L"vector");
- writer->writeLineBreak();
- writer->writeLineBreak();
-
- // write each letter
-
- for (u32 n=0; nCharMap[chars[n]];
- CFontTool::SFontArea &fa = FontTool->Areas[i];
- wchar_t c[2];
- c[0] = chars[n];
- c[1] = L'\0';
- core::stringw area, under, over;
- area = core::stringw(fa.rectangle.LowerRightCorner.X-
- fa.rectangle.UpperLeftCorner.X);
- area += L", ";
- area += fa.rectangle.LowerRightCorner.Y-
- fa.rectangle.UpperLeftCorner.Y;
-
-
- core::array names;
- core::array values;
- names.clear();
- values.clear();
- // char
- names.push_back(core::stringw(L"c"));
- values.push_back(core::stringw(c));
-
- // width+height
- names.push_back(core::stringw(L"wh"));
- values.push_back(area);
-
- // start
- names.push_back(core::stringw(L"st"));
- values.push_back(core::stringw(charstarts[n]));
- // length
- names.push_back(core::stringw(L"len"));
- values.push_back(core::stringw(charlengths[n]));
-
- if (fa.underhang != 0)
- {
- under = core::stringw(fa.underhang);
- names.push_back(core::stringw(L"u"));
- values.push_back(under);
- }
- if (fa.overhang != 0)
- {
- over = core::stringw(fa.overhang);
- names.push_back(core::stringw(L"o"));
- values.push_back(over);
- }
- writer->writeElement(L"c", true, names, values);
-
- writer->writeLineBreak();
- }
-
- // write vertex data
- core::stringw data, count;
- data = L"";
- count = core::stringw(triangles.positions.size());
- for (u32 i=0; iwriteElement(L"Vertices", true, L"count", count.c_str(), L"data", data.c_str());
- writer->writeLineBreak();
-
- // write index list
- data = L"";
- count = core::stringw(triangles.indexes.size());
- for (u32 i=0; iwriteElement(L"Indices", true, L"count", count.c_str(), L"data", data.c_str());
- writer->writeLineBreak();
-
- writer->writeClosingTag(L"font");
-
- writer->drop();
-
- Device->getLogger()->log("Font saved.");
- return true;
-
- }
- else if (core::stringc(formatname) == core::stringc("bin"))
- {
- FontTool->Device->getLogger()->log("binary fonts not supported yet, sorry");
- return false;
- }
- else
- {
- FontTool->Device->getLogger()->log("unsupported file format, unable to save vector font");
- return false;
- }
- }
-
- S3DVertex& getVert(s32 x, s32 y) { return verts[letterWidth*y +x]; }
-
- core::array verts;
- core::array inds;
- core::array imagedata;
-
- core::array charstarts; // start position of each char
- core::array charlengths; // index count
- core::array chars; // letters
-
- CGroupFinder* triangulator;
- CFontTool* FontTool;
-
- s32 letterHeight;
- s32 letterWidth;
-
- STriangleList triangles;
-};
-
-#endif // __VECTOR_FONT_TOOL_INCLUDED__
-
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/Makefile b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/Makefile
deleted file mode 100644
index b3f2731..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# Makefile for Irrlicht Examples
-# It's usually sufficient to change just the target name and source file list
-# and be sure that CXX is set to a valid compiler
-Target = FontTool
-Sources = CFontTool.cpp main.cpp
-
-# general compiler settings
-CPPFLAGS = -I../../../include -I/usr/X11R6/include -I/usr/include/freetype2/
-CXXFLAGS = -O3 -ffast-math
-#CXXFLAGS = -g -Wall
-
-#default target is Linux
-all: all_linux
-
-ifeq ($(HOSTTYPE), x86_64)
-LIBSELECT=64
-endif
-
-# target specific settings
-all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXft
-all_linux clean_linux: SYSTEM=Linux
-all_win32: LDFLAGS = -L../../../lib/Win32-gcc -lIrrlicht -lgdi32 -lopengl32 -lglu32 -lm
-all_win32 clean_win32: SYSTEM=Win32-gcc
-all_win32 clean_win32: SUF=.exe
-# name of the binary - only valid for targets which set SYSTEM
-DESTPATH = ../../../bin/$(SYSTEM)/$(Target)$(SUF)
-
-all_linux all_win32:
- $(warning Building...)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS)
-
-clean: clean_linux clean_win32
- $(warning Cleaning...)
-
-clean_linux clean_win32:
- @$(RM) $(DESTPATH)
-
-.PHONY: all all_win32 clean clean_linux clean_win32
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.sln b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.sln
deleted file mode 100644
index a5b9269..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Font Tool", "irrFontTool_v8.vcproj", "{853A396E-C031-4C26-A716-5B4E176BE11D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.ActiveCfg = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.Build.0 = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.ActiveCfg = Release|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.vcproj b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.vcproj
deleted file mode 100644
index 56cc087..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v8.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.sln b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.sln
deleted file mode 100644
index 7120ffb..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C++ Express 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Font Tool", "irrFontTool_v9.vcproj", "{853A396E-C031-4C26-A716-5B4E176BE11D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.ActiveCfg = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Debug|Win32.Build.0 = Debug|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.ActiveCfg = Release|Win32
- {853A396E-C031-4C26-A716-5B4E176BE11D}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.vcproj b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.vcproj
deleted file mode 100644
index 2c7f713..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_v9.vcproj
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.sln b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.sln
deleted file mode 100644
index 55fc6c7..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Font Tool", "irrFontTool_vc10.vcxproj", "{4D53E40F-37E3-42B1-8848-F4C6F8313A17}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Debug|Win32.ActiveCfg = Debug|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Debug|Win32.Build.0 = Debug|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Release|Win32.ActiveCfg = Release|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.vcxproj b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.vcxproj
deleted file mode 100644
index fc54796..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc10.vcxproj
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- FontTool
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}
- Win32Proj
-
-
-
- Application
- MultiByte
- true
-
-
- Application
- MultiByte
- true
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\..\bin\Win32-VisualStudio\
- ..\..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\..\bin\Win32-VisualStudio\
- ..\..\..\bin\Win64-VisualStudio\
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win32-visualstudio/FontTool.exe
- ../../../lib/Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Disabled
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win64-visualstudio/FontTool.exe
- ../../../lib/Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- MaxSpeed
- false
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win32-visualstudio/FontTool.exe
- ../../../lib/Win32-visualstudio;%(AdditionalLibraryDirectories)
- false
- Console
- true
- true
-
-
-
-
-
-
-
-
- MaxSpeed
- false
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win64-visualstudio/FontTool.exe
- ../../../lib/Win64-visualstudio;%(AdditionalLibraryDirectories)
- false
- Console
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.sln b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.sln
deleted file mode 100644
index 60f8d08..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2012
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Font Tool", "irrFontTool_vc11.vcxproj", "{4D53E40F-37E3-42B1-8848-F4C6F8313A17}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Debug|Win32.ActiveCfg = Debug|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Debug|Win32.Build.0 = Debug|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Release|Win32.ActiveCfg = Release|Win32
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.vcxproj b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.vcxproj
deleted file mode 100644
index ddae5b1..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/irrFontTool_vc11.vcxproj
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- FontTool
- {4D53E40F-37E3-42B1-8848-F4C6F8313A17}
- Win32Proj
-
-
-
- Application
- MultiByte
- true
- v110
-
-
- Application
- MultiByte
- true
- v110
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\..\bin\Win32-VisualStudio\
- ..\..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\..\bin\Win32-VisualStudio\
- ..\..\..\bin\Win64-VisualStudio\
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win32-visualstudio/FontTool.exe
- ../../../lib/Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- Disabled
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win64-visualstudio/FontTool.exe
- ../../../lib/Win64-visualstudio;%(AdditionalLibraryDirectories)
- true
- Console
-
-
-
-
-
-
- MaxSpeed
- false
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win32-visualstudio/FontTool.exe
- ../../../lib/Win32-visualstudio;%(AdditionalLibraryDirectories)
- false
- Console
- true
- true
-
-
-
-
-
-
-
-
- MaxSpeed
- false
- ../../../include;%(AdditionalIncludeDirectories)
- WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib gdi32.lib %(AdditionalOptions)
- ../../../bin/Win64-visualstudio/FontTool.exe
- ../../../lib/Win64-visualstudio;%(AdditionalLibraryDirectories)
- false
- Console
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/main.cpp b/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/main.cpp
deleted file mode 100644
index 1170bcc..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/newFontTool/main.cpp
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- Tool for creating Irrlicht bitmap+vector fonts,
- started by Gaz Davidson in December 2006
-
- Due to my laziness and Microsoft's unituitive API, surragate pairs and
- nonspacing diacritical marks are not supported!
-
- Linux bitmap font support added by Neil Burlock Oct 2008
- Note: Xft/Freetype2 is used to render the fonts under X11. Anti-aliasing
- is controlled by the system and cannot be overriden by an application,
- so fonts that are rendered will be aliased or anti-aliased depending
- on the system that they are created on.
-
-*/
-
-
-#include
-#include
-
-#include "CFontTool.h"
-#include "CVectorFontTool.h"
-#include "ITexture.h"
-
-using namespace irr;
-using namespace gui;
-
-#pragma comment(lib, "Irrlicht.lib")
-
-const s32 texturesizes[] = {128, 256, 512, 1024, 2048, 4096, 0};
-
-const wchar_t *fileformats[] = { L"bmp", L"ppm", 0 }; // bitmap font formats
-const wchar_t *alphafileformats[] = { L"png", L"tga", 0 }; // bitmap font formats which support alpha channels
-const wchar_t *vectorfileformats[] = { L"xml", L"bin", 0 }; // file formats for vector fonts
-
-const wchar_t *warntext = L"Legal Notice\n"
- L"------------\n\n"
- L"When making bitmap and vector fonts, you should consider the potential legal "
- L"issues with redistributing the fonts with your software; this tool basically "
- L"copies font data and some authors might not like this!\n"
- L"If you purchased fonts or they came with an application or your OS, you'll have"
- L"to check the license to see what restrictions are placed on making derivative works.\n\n"
- L"PD and the OFL\n"
- L"--------------\n\n"
- L"You'll find lots of fonts on the web listed as Public Domain, you can do what you like "
- L"with these.\n"
- L"Many fonts are released under the Open Font License, which is a 'viral' open source "
- L"license like the GPL. It's worth reading the license here: http://scripts.sil.org/OFL\n"
- L"The most important restrictions are- you must include the original font's license, you "
- L"can't stop your users from using or distributing the font, the font must have a "
- L"different name the original.\n\n"
- L"Some free fonts can be found here- www.openfontlibrary.org\n"
- L"http://savannah.nongnu.org/projects/freefont/";
-
-const wchar_t *helptext = L"This tool creates bitmap fonts for the Irrlicht Engine\n\n"
-
- L"First select a character encoding from the list, then choose the font, "
- L"size, and whether you'd like bold, italic, antialiasing and an alpha channel. "
- L"In Windows, antialiasing will be ignored for small fonts\n\n"
-
- L"Then select a texture width and height. If the output exceeds this then more than "
- L"one image will be created. You can use the scrollbar at the top of the screen to "
- L"preview them. Most modern graphics cards will support up to 2048x2048, "
- L"keep in mind that more images means worse performance when drawing text!\n\n"
-
- L"If you want a vector font rather than a bitmap font, check the vector box. "
- L"Vector fonts are stored in system memory while bitmap fonts are in video ram\n\n"
-
- L"Click create to preview your font, this may take lots of time and memory "
- L"when making a font with a lot of characters, please be patient!\n\n"
-
- L"Now you're ready to give your font a name, select a format and click save.\n\n"
- L"To load your font in Irrlicht, simply use env->getFont(\"Myfont.xml\");\n\n"
-
- L"That's all, have fun :-)";
-
-#ifdef _IRR_WINDOWS_
- const wchar_t *completeText = L"Font created";
-#else
- const wchar_t *completeText = L"Font created\n\n"
- L"Please note that anti-aliasing under X11 is controlled by the system "
- L"configuration, so if your system is set to use anti-aliasing, then so "
- L"will any fonts you create with FontTool";
-#endif
-
-enum MYGUI
-{
- MYGUI_CHARSET = 100,
- MYGUI_FONTNAME,
- MYGUI_SIZE,
- MYGUI_TEXWIDTH,
- MYGUI_TEXHEIGHT,
- MYGUI_BOLD,
- MYGUI_ITALIC,
- MYGUI_ANTIALIAS,
- MYGUI_ALPHA,
- MYGUI_VECTOR,
- MYGUI_FILENAME,
- MYGUI_FORMAT,
- MYGUI_CREATE,
- MYGUI_SAVE,
- MYGUI_IMAGE,
- MYGUI_CURRENTIMAGE,
- MYGUI_HELPBUTTON
-};
-
-
-// event reciever
-class MyEventReceiver : public IEventReceiver
-{
-public:
-
- MyEventReceiver(IrrlichtDevice* device, CFontTool*& fonttool, CVectorFontTool* &vectool) :
- Device(device), FontTool(fonttool), VecTool(vectool)
- {
- device->setEventReceiver(this);
- }
-
- virtual bool OnEvent(const SEvent &event)
- {
- if (event.EventType == EET_GUI_EVENT)
- {
- s32 id = event.GUIEvent.Caller->getID();
- IGUIEnvironment* env = Device->getGUIEnvironment();
-
- switch(event.GUIEvent.EventType)
- {
- case EGET_SCROLL_BAR_CHANGED:
- if (id == MYGUI_CURRENTIMAGE)
- {
- IGUIImage* img = (IGUIImage*)env->getRootGUIElement()->getElementFromId(MYGUI_IMAGE,true);
- s32 i = ((IGUIScrollBar*)event.GUIEvent.Caller)->getPos();
- img->setImage(FontTool->currentTextures[i]);
-
- return true;
- }
- break;
- case EGET_COMBO_BOX_CHANGED:
- if (id == MYGUI_CHARSET)
- {
- IGUIComboBox* cbo = (IGUIComboBox*)event.GUIEvent.Caller;
- FontTool->selectCharSet(cbo->getSelected());
- // rebuild font list
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FONTNAME,true);
- cbo->clear();
- for (u32 i=0; i < FontTool->FontNames.size(); ++i)
- cbo->addItem(FontTool->FontNames[i].c_str());
- return true;
- }
- break;
- case EGET_CHECKBOX_CHANGED:
- if (id == MYGUI_VECTOR)
- {
- IGUICheckBox* chk = (IGUICheckBox*)event.GUIEvent.Caller;
-
- IGUIComboBox *cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FORMAT,true);
- cbo->clear();
-
- if (chk->isChecked() && VecTool)
- {
- // vector formats
- for (s32 i=0; fileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(vectorfileformats[i]).c_str());
-
- }
- else
- {
-
- // bitmap formats
- if (!FontTool->UseAlphaChannel)
- {
- // add non-alpha formats
- for (s32 i=0; fileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(fileformats[i]).c_str());
- }
- // add formats which support alpha
- for (s32 i=0; alphafileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(alphafileformats[i]).c_str());
- }
-
- }
- break;
-
- case EGET_BUTTON_CLICKED:
-
- if (id == MYGUI_CREATE)
- {
- // create the font with the params
- IGUIComboBox* cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_CHARSET, true);
- int charset = cbo->getSelected();
-
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FONTNAME,true);
- int fontname = cbo->getSelected();
-
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_SIZE,true);
- int fontsize = cbo->getSelected();
-
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_TEXWIDTH,true);
- int texwidth = cbo->getSelected();
-
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_TEXHEIGHT,true);
- int texheight = cbo->getSelected();
-
- IGUICheckBox* chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_BOLD,true);
- bool bold = chk->isChecked();
- chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_ITALIC,true);
- bool italic = chk->isChecked();
-
- chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_ALPHA,true);
- bool alpha = chk->isChecked();
-
- chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_ANTIALIAS,true);
- bool aa = chk->isChecked();
-
- // vector fonts disabled
- //chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_VECTOR,true);
- bool vec = false;//chk->isChecked();
-
- FontTool->makeBitmapFont(fontname, charset, FontTool->FontSizes[fontsize], texturesizes[texwidth], texturesizes[texheight], bold, italic, aa, alpha);
-
- IGUIScrollBar* scrl = (IGUIScrollBar*)env->getRootGUIElement()->getElementFromId(MYGUI_CURRENTIMAGE,true);
- scrl->setMax(FontTool->currentTextures.size() == 0 ? 0 : FontTool->currentTextures.size()-1);
-
- if (FontTool->currentTextures.size() > 0)
- {
- IGUIImage* img = (IGUIImage*)env->getRootGUIElement()->getElementFromId(MYGUI_IMAGE,true);
- img->setImage(FontTool->currentTextures[0]);
- scrl->setPos(0);
- }
-
- // make sure users pick a file format that supports alpha channel
- cbo = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FORMAT,true);
- cbo->clear();
-
- if (vec)
- {
- // add vector formats
- for (s32 i=0; fileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(vectorfileformats[i]).c_str());
- }
- else
- {
- if (!alpha)
- {
- // add non-alpha formats
- for (s32 i=0; fileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(fileformats[i]).c_str());
- }
- // add formats which support alpha
- for (s32 i=0; alphafileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(alphafileformats[i]).c_str());
- }
- if (VecTool)
- {
- delete VecTool;
- VecTool = 0;
- }
- if (vec)
- {
- VecTool = new CVectorFontTool(FontTool);
- }
-
- /* Message box letting the user know the process is complete */
- env->addMessageBox(L"Create", completeText);
-
- return true;
- }
-
- if (id == MYGUI_SAVE)
- {
- IGUIEditBox *edt = (IGUIEditBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FILENAME,true);
- core::stringc name = edt->getText();
-
- IGUIComboBox *fmt = (IGUIComboBox*)env->getRootGUIElement()->getElementFromId(MYGUI_FORMAT,true);
- core::stringc format = fmt->getItem(fmt->getSelected());
-
- // vector fonts disabled
- IGUICheckBox *chk = (IGUICheckBox*)env->getRootGUIElement()->getElementFromId(MYGUI_VECTOR,true);
- bool vec = false; // chk->isChecked();
-
- if (vec && VecTool)
- VecTool->saveVectorFont(name.c_str(), format.c_str());
- else
- FontTool->saveBitmapFont(name.c_str(), format.c_str());
-
- return true;
- }
-
- if (id == MYGUI_HELPBUTTON)
- {
- env->addMessageBox(L"Irrlicht Unicode Font Tool", helptext);
- return true;
- }
-
- break;
- }
- }
-
- return false;
- }
-
- IrrlichtDevice* Device;
- CFontTool* FontTool;
- CVectorFontTool* VecTool;
-
-};
-
-void createGUI(IrrlichtDevice* device, CFontTool* fc)
-{
- gui::IGUIEnvironment *env = device->getGUIEnvironment();
-
- // change transparency of skin
- for (s32 i=0; igetSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
- col.setAlpha(255);
- env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
- }
-
- IGUIWindow *win = env->addWindow( core::rect(10,10,200,500), false, L"Font Creator");
- win->getCloseButton()->setVisible(false);
-
- s32 xs=10,xp=xs, yp=30, h=20;
-
- env->addStaticText(L"Charset", core::rect(xp,yp,50,yp+h),false,false, win);
-
- xp+=60;
-
- // charset combo
- gui::IGUIComboBox* cbo = env->addComboBox( core::rect(xp,yp,180,yp+h),win, MYGUI_CHARSET);
- for (u32 i=0; i < fc->CharSets.size(); ++i)
- cbo->addItem(fc->CharSets[i].c_str());
-
- yp += (s32)(h*1.5f);
- xp = xs;
-
- env->addStaticText(L"Font", core::rect(xp,yp,50,yp+h),false,false, win);
-
- xp+=60;
-
- // font name combo
- cbo = env->addComboBox( core::rect(xp,yp,180,yp+h),win, MYGUI_FONTNAME);
- for (u32 i=0; i < fc->FontNames.size(); ++i)
- cbo->addItem(fc->FontNames[i].c_str());
-
- yp += (s32)(h*1.5f);
- xp = xs;
-
- env->addStaticText(L"Size", core::rect(xp,yp,50,yp+h),false,false, win);
-
- xp += 60;
-
- // font size combo
- cbo = env->addComboBox( core::rect(xp,yp,xp+50,yp+h),win, MYGUI_SIZE);
- for (s32 i=0; fc->FontSizes[i] != 0; ++i)
- cbo->addItem( ((core::stringw(fc->FontSizes[i])) + L"px").c_str());
-
- xp = xs;
- yp += (s32)(h*1.5f);
-
- // bold checkbox
- env->addCheckBox(false, core::rect(xp,yp,xp+50,yp+h),win, MYGUI_BOLD, L"Bold");
-
- xp += 45;
-
- // italic checkbox
- env->addCheckBox(false, core::rect(xp,yp,xp+50,yp+h),win, MYGUI_ITALIC, L"Italic");
-
- xp += 45;
-
- // AA checkbox
- env->addCheckBox(false, core::rect(xp,yp,xp+50,yp+h),win, MYGUI_ANTIALIAS, L"AA");
-
- xp +=40;
-
- // Alpha checkbox
- env->addCheckBox(false, core::rect(xp,yp,xp+50,yp+h),win, MYGUI_ALPHA, L"Alpha");
-
- xp = xs;
- yp += (s32)(h*1.5f);
-
- /*
- // vector fonts can't be loaded yet
- env->addCheckBox(false, core::rect(xp,yp,xp+200,yp+h),win, MYGUI_VECTOR, L"Vector Font");
- */
-
- yp += (s32)(h*1.5f);
-
- env->addStaticText(L"Max Width:", core::rect(xp,yp,50,yp+h),false,false, win);
-
- xp += 60;
-
- // texture widths
- cbo = env->addComboBox( core::rect(xp,yp,xp+70,yp+h),win, MYGUI_TEXWIDTH);
- for (s32 i=0; texturesizes[i] != 0; ++i)
- cbo->addItem( ((core::stringw(texturesizes[i])) + L" wide").c_str());
-
- xp=xs;
- yp += (s32)(h*1.5f);
-
- env->addStaticText(L"Max Height:", core::rect(xp,yp,60,yp+h),false,false, win);
-
- xp += 60;
-
- // texture height
- cbo = env->addComboBox( core::rect(xp,yp,xp+70,yp+h),win, MYGUI_TEXHEIGHT);
- for (s32 i=0; texturesizes[i] != 0; ++i)
- cbo->addItem( ((core::stringw(texturesizes[i])) + L" tall").c_str());
-
- // file name
- xp = xs;
- yp += (s32)(h*1.5f);
- env->addStaticText(L"Filename", core::rect(xp,yp,60,yp+h),false,false, win);
- xp += 60;
- env->addEditBox(L"myfont",core::rect(xp,yp,xp+70,yp+h), true, win, MYGUI_FILENAME);
-
- // file format
- xp = xs;
- yp += (s32)(h*1.5f);
- env->addStaticText(L"File Format", core::rect(xp,yp,60,yp+h),false,false, win);
- xp += 60;
-
- cbo = env->addComboBox( core::rect(xp,yp,xp+70,yp+h),win, MYGUI_FORMAT);
- for (s32 i=0; fileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(fileformats[i]).c_str());
- for (s32 i=0; alphafileformats[i] != 0; ++i)
- cbo->addItem( core::stringw(alphafileformats[i]).c_str());
-
- xp = xs;
- yp += h*2;
-
- // create button
- env->addButton( core::rect(xp,yp,xp+50,yp+h),win, MYGUI_CREATE, L"Create");
-
- xp += 60;
-
- // save button
- env->addButton( core::rect(xp,yp,xp+50,yp+h),win, MYGUI_SAVE, L"Save");
-
- xp += 60;
-
- // help button
- env->addButton( core::rect(xp,yp,xp+50,yp+h),win, MYGUI_HELPBUTTON, L"Help");
-
- // font image
- gui::IGUIImage *img = env->addImage(0, core::position2d(0,0), true,0, MYGUI_IMAGE);
- img->setRelativePosition(core::rect(0,20,800,600));
-
- // font scrollbar
- IGUIScrollBar *scrl= env->addScrollBar(true,core::rect(0,0,800,20),0, MYGUI_CURRENTIMAGE);
- scrl->setMax(0);
- scrl->setSmallStep(1);
-
- yp += h*3;
-
- env->getRootGUIElement()->bringToFront(win);
- win->setRelativePosition( core::rect(10,10,200,yp));
-}
-
-int main()
-{
- IrrlichtDevice* device =createDevice(video::EDT_OPENGL, core::dimension2du(800, 600));
- video::IVideoDriver* driver = device->getVideoDriver();
- scene::ISceneManager* smgr = device->getSceneManager();
- gui::IGUIEnvironment *env = device->getGUIEnvironment();
-
- // create font tool
- CFontTool *fc = new CFontTool(device);
- CVectorFontTool *vc = 0;
-
- IEventReceiver *events = new MyEventReceiver(device,fc,vc);
-
- createGUI(device, fc);
-
- while(device->run())
- {
- if (device->isWindowActive())
- {
-
- driver->beginScene(true, true, video::SColor(0,200,200,200));
- smgr->drawAll();
- env->drawAll();
- driver->endScene();
- }
- }
-
- // drop the font tool and resources
- fc->drop();
-
- device->drop();
-
- return 0;
-}
-
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/oldFontTool/source.zip b/libraries/irrlicht-1.8/tools/IrrFontTool/oldFontTool/source.zip
deleted file mode 100644
index 9228ebb..0000000
Binary files a/libraries/irrlicht-1.8/tools/IrrFontTool/oldFontTool/source.zip and /dev/null differ
diff --git a/libraries/irrlicht-1.8/tools/IrrFontTool/readme.txt b/libraries/irrlicht-1.8/tools/IrrFontTool/readme.txt
deleted file mode 100644
index 092deb1..0000000
--- a/libraries/irrlicht-1.8/tools/IrrFontTool/readme.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-There are two tools available for creating fonts for irrlicht, both are supported.
-
-oldFontTool:
- only works in Windows, creates a simple image file containing all data for displaying fonts.
- Those file contain no alpha informations and are limited in their character set.
- use the IrrFontTool.exe file in this directory.
-
-newFontTool:
- a more sophisticated font tool supporting alpha channels, anti aliasing,
- different character sets, vector fonts and other operating systems than
- just windows. It will create multiple image files and an .xml file
- containing meta information for the generated font.
- You can find it as FontTool.exe in the /bin directory.
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/Makefile b/libraries/irrlicht-1.8/tools/MeshConverter/Makefile
deleted file mode 100644
index ac4b78c..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# Makefile for Irrlicht Examples
-# It's usually sufficient to change just the target name and source file list
-# and be sure that CXX is set to a valid compiler
-Target = MeshConverter
-Sources = main.cpp
-
-# general compiler settings
-CPPFLAGS = -I../../include -I/usr/X11R6/include
-CXXFLAGS = -O3 -ffast-math -Wall
-#CXXFLAGS = -g -Wall
-
-#default target is Linux
-all: all_linux
-
-ifeq ($(HOSTTYPE), x86_64)
-LIBSELECT=64
-endif
-
-# target specific settings
-all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11
-all_linux clean_linux: SYSTEM=Linux
-all_win32: LDFLAGS = -L../../lib/Win32-gcc -lIrrlicht -lopengl32 -lglu32 -lm
-all_win32 clean_win32: SYSTEM=Win32-gcc
-all_win32 clean_win32: SUF=.exe
-# name of the binary - only valid for targets which set SYSTEM
-DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF)
-
-all_linux all_win32:
- $(warning Building...)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS)
-
-clean: clean_linux clean_win32
- $(warning Cleaning...)
-
-clean_linux clean_win32:
- @$(RM) $(DESTPATH)
-
-.PHONY: all all_win32 clean clean_linux clean_win32
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter.cbp b/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter.cbp
deleted file mode 100644
index 08ebbfb..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter.cbp
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_v9.vcproj b/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_v9.vcproj
deleted file mode 100644
index 09fef60..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_v9.vcproj
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc10.vcxproj b/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc10.vcxproj
deleted file mode 100644
index f994800..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc10.vcxproj
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- MeshConverter
- {E72B637E-4AA6-46F3-885F-AC67B4B470ED}
- GUI Editor
- Win32Proj
-
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
- Application
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- false
- false
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ../../bin/Win32-visualstudio/MeshConverter.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- $(OutDir)TestProject.pdb
- Console
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ../../bin/Win64-visualstudio/MeshConverter.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- $(OutDir)TestProject.pdb
- Console
-
-
-
-
-
-
- Full
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
-
-
- ../../bin/Win32-visualstudio/MeshConverter.exe
- true
- Console
- true
- true
-
-
-
-
-
-
- Full
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
-
-
- ../../bin/Win64-visualstudio/MeshConverter.exe
- true
- Console
- true
- true
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc11.vcxproj b/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc11.vcxproj
deleted file mode 100644
index ccd4271..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/MeshConverter_vc11.vcxproj
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- MeshConverter
- {E72B637E-4AA6-46F3-885F-AC67B4B470ED}
- GUI Editor
- Win32Proj
-
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
- Application
- MultiByte
- v110
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- true
- true
- ..\..\bin\Win32-VisualStudio\
- ..\..\bin\Win64-VisualStudio\
- false
- false
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
- AllRules.ruleset
- AllRules.ruleset
-
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- EditAndContinue
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ../../bin/Win32-visualstudio/MeshConverter.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- $(OutDir)TestProject.pdb
- Console
-
-
-
-
-
-
- Disabled
- Neither
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- EnableFastChecks
- MultiThreadedDebug
-
-
- Level3
- ProgramDatabase
-
-
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib glu32.lib opengl32.lib %(AdditionalOptions)
- ../../bin/Win64-visualstudio/MeshConverter.exe
- ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories)
- true
- $(OutDir)TestProject.pdb
- Console
-
-
-
-
-
-
- Full
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
-
-
- ../../bin/Win32-visualstudio/MeshConverter.exe
- true
- Console
- true
- true
-
-
-
-
-
-
- Full
- false
- ..\..\include;%(AdditionalIncludeDirectories)
- WIN32;WIN64NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreaded
-
-
- Level3
-
-
- ../../bin/Win64-visualstudio/MeshConverter.exe
- true
- Console
- true
- true
-
-
-
-
-
-
-
-
-
- {e08e042a-6c45-411b-92be-3cc31331019f}
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libraries/irrlicht-1.8/tools/MeshConverter/main.cpp b/libraries/irrlicht-1.8/tools/MeshConverter/main.cpp
deleted file mode 100644
index f05d6fa..0000000
--- a/libraries/irrlicht-1.8/tools/MeshConverter/main.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#include
-#include
-
-using namespace irr;
-
-using namespace core;
-using namespace scene;
-using namespace video;
-using namespace io;
-using namespace gui;
-
-#ifdef _IRR_WINDOWS_
-#pragma comment(lib, "Irrlicht.lib")
-#endif
-
-void usage(const char* name)
-{
- std::cerr << "Usage: " << name << " [options] " << std::endl;
- std::cerr << " where options are" << std::endl;
- std::cerr << " --createTangents: convert to tangents mesh is possible." << std::endl;
- std::cerr << " --format=[irrmesh|collada|stl|obj|ply]: Choose target format" << std::endl;
-}
-
-int main(int argc, char* argv[])
-{
- if ((argc < 3) ||
- ((argc==3) && (argv[1][0]=='-')))
- {
- usage(argv[0]);
- return 1;
- }
-
- IrrlichtDevice *device = createDevice( video::EDT_NULL,
- dimension2d(800, 600), 32, false, false, false, 0);
-
- device->setWindowCaption(L"Mesh Converter");
-
- scene::EMESH_WRITER_TYPE type = EMWT_IRR_MESH;
- u32 i=1;
- bool createTangents=false;
- while (argv[i][0]=='-')
- {
- core::stringc format = argv[i];
- if (format.size() > 3)
- {
- if (format.equalsn("--format=",9))
- {
- format = format.subString(9,format.size());
- if (format=="collada")
- type = EMWT_COLLADA;
- else if (format=="stl")
- type = EMWT_STL;
- else if (format=="obj")
- type = EMWT_OBJ;
- else if (format=="ply")
- type = EMWT_PLY;
- else
- type = EMWT_IRR_MESH;
- }
- else
- if (format =="--createTangents")
- createTangents=true;
- }
- else
- if (format=="--")
- {
- ++i;
- break;
- }
- ++i;
- }
-
- const s32 srcmesh = i;
- const s32 destmesh = i+1;
-
- --argc;
- if ((argcgetSceneManager()->getMesh(argv[srcmesh])->getMesh(0);
- if (!mesh)
- {
- std::cerr << "Could not load " << argv[srcmesh] << std::endl;
- return 1;
- }
- if (createTangents)
- {
- IMesh* tmp = device->getSceneManager()->getMeshManipulator()->createMeshWithTangents(mesh);
- mesh->drop();
- mesh=tmp;
- }
- IMeshWriter* mw = device->getSceneManager()->createMeshWriter(type);
- IWriteFile* file = device->getFileSystem()->createAndWriteFile(argv[destmesh]);
- mw->writeMesh(file, mesh);
-
- file->drop();
- mw->drop();
- device->drop();
-
- return 0;
-}
-
diff --git a/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.jpg b/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.jpg
deleted file mode 100644
index deafb3f..0000000
Binary files a/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.jpg and /dev/null differ
diff --git a/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.txt b/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.txt
deleted file mode 100644
index 48c5f2a..0000000
--- a/libraries/irrlicht-1.8/tools/irrEdit/irrEdit.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-irrEdit is a free scene graph editor for Irrlicht Engine .irr files and is capable as being used as world editor,
-particle system designer, meshviewer and more. It is a visual front end for the Irrlicht Engine, and thus has a lot
-of impressive features like importing meshes of every format Irrlicht supports, simple but powerful material
-system and lots of special effects.
-
-For package size reasons, irrEdit is not included in this SDK, but you can download it from
-http://www.ambiera.com/irredit
\ No newline at end of file
--
cgit v1.1