Merge trunk revisions 4630 to 4685:
- Makefile for the new IrrFontTool links now correctly to libfontconfig - Bugfix: getFont for xml-fonts now also works for fonts inside archives (thx @Neirdan for bugreport) - Add function mergeFilename + tests - Add ISceneNodeAnimator::setStartTime/getStartTime to allow resetting movement animators. - Get Irrlicht to compile with IRRLICHT_FAST_MATH on Linux (out-define code which was written for VS and remove #warn which is not a preprocessor command recognized by GCC). - Make key-release events also show the correct Char value on Windows (thx @zerochen for report+fix here: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=49499) - Fix input with numlock-keys on Linux. Thx @zerochen for report and help with bugfixing. - Linux version of makedocumentation.sh now works like the DOS version and creates html docs. - Add some error checking in test. - Indentation git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@4686 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
5b63d4ef81
commit
37b154102b
15
changes.txt
15
changes.txt
|
@ -1,8 +1,14 @@
|
|||
--------------------------
|
||||
Changes in 1.9 (not yet released)
|
||||
- Removed VS6 .dsw / .dsp project files - VS6 is no longer supported.
|
||||
Changes in ogl-es (not yet released - will be merged with trunk at some point)
|
||||
|
||||
- Added support for PVR textures. Loader offer support for compressed DXT1-5, PVRTC/PVRTC-II, ETC1/ETC2 texture formats.
|
||||
|
||||
--------------------------
|
||||
Changes in 1.9 (not yet released)
|
||||
|
||||
- Bugfix: getFont for xml-fonts now also works for fonts inside archives (thx @Neirdan for bugreport)
|
||||
- Added function irr::core::mergeFilename
|
||||
- Add ISceneNodeAnimator::setStartTime/getStartTime to allow resetting movement animators.
|
||||
- Improve speed for finalizing skinned meshes (removal of unnecessary frames after loading) (thx @ichtyander for the testmodel)
|
||||
- Collada loader now instantiates camera nodes which had been ignore so far (thx @NemoStein for the test .dae)
|
||||
- line2d::intersectWith has a new parameter to allow ignoring intersections with coincident lines
|
||||
|
@ -31,6 +37,11 @@ Changes in 1.9 (not yet released)
|
|||
- Add IColladaMeshWriter::findGeometryNameForNode
|
||||
- Add getters IGUIButton::isDrawBorderEnabled and IGUIButton::isDrawBackgroundEnabled
|
||||
|
||||
--------------------------
|
||||
Changes in 1.8.2
|
||||
|
||||
- Makefile for the new IrrFontTool links now correctly to libfontconfig
|
||||
|
||||
--------------------------
|
||||
Changes in 1.8.1 (17.11.2013)
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
Checklist for Irrlicht developers for doing releases.
|
||||
|
||||
- PRE-BUILD TESTS:
|
||||
- - Run tests in the tests folder
|
||||
- - Compile and run all examples for testing (preferably on all platforms,
|
||||
compilers, settings ... until you are certain enough stuff works sufficiently).
|
||||
Ask for help for platforms which you don't own.
|
||||
- - Compile the tools on all platforms you have. Note that some tools are in the buildall-examples VS project files on Windows, but on Linux
|
||||
command line you have to compile them individually.
|
||||
|
||||
- VERSION UPDATES:
|
||||
- - check IRRLICHT_SDK_VERSION (in IrrCompileConfig.h)
|
||||
- - check version number in the Makefile
|
||||
- - update readme.txt (version number, supported compilers)
|
||||
- - Add new release information (date+version-number) in changes.txt
|
||||
- - go through folders if other .txt files still make sense (things change and updating those files tends to be forgotten)
|
||||
|
||||
- BUILDING THE RELEASE
|
||||
- - run a clean build for buildAllExamples in the examples folder with the
|
||||
target compiler for 32-bit and for release (preferably oldest supported VS
|
||||
compiler, otherwise oldest you have still installed)
|
||||
- - when possible compile the dll for MinGW on Windows (in release and with -s for smaller size)
|
||||
- - when possible compile the dll for 64 bit (again with Visual Studio and release)
|
||||
- - run makedocumentation in scripts\doc\irrlicht
|
||||
- - create a target directory, like irrlicht-1.8.1 for example
|
||||
- - svn export to the target directory
|
||||
- - copy the subfolders of doctemp into the doc folder of the target directory
|
||||
- - copy all .exe files (except test.exe) from bin\Win32-VisualStudio (.pdb's are not necessary)
|
||||
- - copy Irrlicht.dll from bin\Win32-visualstudio
|
||||
- - copy the files in lib\Win32-visualstudio
|
||||
- - copy Irrlicht.dll from bin\Win64-VisualStudio
|
||||
- - copy the files in lib\Win64-visualstudio
|
||||
- - copy Irrlicht.dll from bin\Win32-gcc
|
||||
- - copy the files in lib\Win32-gcc
|
||||
- - remove the tests folder
|
||||
- - remove scripts folder (if the release comes with docs, if you do a release
|
||||
without docs for smaller filesizes then the script folder has to stay in).
|
||||
- - create a zip file
|
||||
- - figure out how to fix unix access right for shell-scripts in the zip file (my
|
||||
trick so far is: unzip in Linux, set +x for all .sh files, zip again)
|
||||
|
||||
RELEASING:
|
||||
- - upload the zip-file somewhere, then download it again on all platforms and do
|
||||
another quick test with that file (do examples still run, can you compile)
|
||||
- - give the link to the zip out on the mailinglist for others to look at
|
||||
- - Upload new documentation (the content of doc/html) to: web.sourceforge.net
|
||||
(sftp protocol, user and passwd are your sourceforge account, the folder
|
||||
might not be shown - but you can still cd into it!):
|
||||
/home/project-web/i/ir/irrlicht/htdocs
|
||||
Best create first a folder with a new name, copy stuff in there, test (just
|
||||
check the website), rename old folder and give new folder the "docu" name.
|
||||
Then you can delete the old folder if you want.
|
||||
- - update changes.txt (also in /home/project-web/i/ir/irrlicht/htdocs)
|
||||
- - upload the zip by logging in to sourceforge and using the "Files" menu (needs
|
||||
admin privileges and it's the 'Files' menu between 'Summary' and 'Reviews').
|
||||
The target is in one of the Irrlicht SDK subfolders. Then click the "i" beside
|
||||
the file and "select all" to make it the active download.
|
||||
- - write a forum post, tell everyone in facebook, reddit, your friends...
|
||||
- - login to wordpress at http://irrlicht.sourceforge.net/wp-login.php, update the
|
||||
downloads section and write a release post.
|
|
@ -68,6 +68,24 @@ namespace scene
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
/** By default most animators start on object creation.
|
||||
Commonly you will use irr::ITimer::getTime().
|
||||
This value is ignored by animators which don't work with a starttime.
|
||||
CSceneNodeAnimatorRotation currently overwrites this value constantly (might be changed in the future).
|
||||
*/
|
||||
virtual void setStartTime(u32 time)
|
||||
{
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
/** This will return 0 for by animators which don't work with a starttime. */
|
||||
virtual irr::u32 getStartTime() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ inline s32 isInSameDirectory ( const io::path& path, const io::path& file )
|
|||
return subB - subA;
|
||||
}
|
||||
|
||||
// splits a path into components
|
||||
//! splits a path into components
|
||||
static inline void splitFilename(const io::path &name, io::path* path=0,
|
||||
io::path* filename=0, io::path* extension=0, bool make_lower=false)
|
||||
{
|
||||
|
@ -171,6 +171,29 @@ static inline void splitFilename(const io::path &name, io::path* path=0,
|
|||
*filename = name.subString ( 0, extpos, make_lower );
|
||||
}
|
||||
|
||||
//! create a filename from components
|
||||
static inline io::path mergeFilename(const io::path& path, const io::path& filename, const io::path& extension = "")
|
||||
{
|
||||
io::path result(path);
|
||||
|
||||
if ( !result.empty() )
|
||||
{
|
||||
fschar_t last = result.lastChar();
|
||||
if ( last != _IRR_TEXT('/') && last != _IRR_TEXT('\\') )
|
||||
result += _IRR_TEXT('/');
|
||||
}
|
||||
if ( !filename.empty() )
|
||||
result += filename;
|
||||
if ( !extension.empty() )
|
||||
{
|
||||
if ( !result.empty() && extension[0] != _IRR_TEXT('.') )
|
||||
result += _IRR_TEXT('.');
|
||||
result += extension;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//! some standard function ( to remove dependencies )
|
||||
#undef isdigit
|
||||
|
|
|
@ -455,15 +455,13 @@ namespace core
|
|||
{
|
||||
#ifdef IRRLICHT_FAST_MATH
|
||||
return;
|
||||
#ifdef feclearexcept
|
||||
#ifdef feclearexcept
|
||||
feclearexcept(FE_ALL_EXCEPT);
|
||||
#elif defined(_MSC_VER)
|
||||
#elif defined(_MSC_VER)
|
||||
__asm fnclex;
|
||||
#elif defined(__GNUC__) && defined(__x86__)
|
||||
#elif defined(__GNUC__) && defined(__x86__)
|
||||
__asm__ __volatile__ ("fclex \n\t");
|
||||
#else
|
||||
# warn clearFPUException not supported.
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -540,6 +538,7 @@ namespace core
|
|||
// bi ts of the mantissa
|
||||
// One Newtown-Raphson Iteration:
|
||||
// f(i+1) = 2 * rcpss(f) - f * rcpss(f) * rcpss(f)
|
||||
#if defined(_MSC_VER)
|
||||
f32 rec;
|
||||
__asm rcpss xmm0, f // xmm0 = rcpss(f)
|
||||
__asm movss xmm1, f // xmm1 = f
|
||||
|
@ -550,8 +549,9 @@ namespace core
|
|||
// - f * rcpss(f) * rcpss(f)
|
||||
__asm movss rec, xmm0 // return xmm0
|
||||
return rec;
|
||||
|
||||
|
||||
#else // no support yet for other compilers
|
||||
return 1.f / f;
|
||||
#endif
|
||||
//! i do not divide through 0.. (fpu expection)
|
||||
// instead set f to a high value to get a return value near zero..
|
||||
// -1000000000000.f.. is use minus to stay negative..
|
||||
|
@ -580,6 +580,7 @@ namespace core
|
|||
// bi ts of the mantissa
|
||||
// One Newtown-Raphson Iteration:
|
||||
// f(i+1) = 2 * rcpss(f) - f * rcpss(f) * rcpss(f)
|
||||
#if defined(_MSC_VER)
|
||||
f32 rec;
|
||||
__asm rcpss xmm0, f // xmm0 = rcpss(f)
|
||||
__asm movss xmm1, f // xmm1 = f
|
||||
|
@ -590,7 +591,9 @@ namespace core
|
|||
// - f * rcpss(f) * rcpss(f)
|
||||
__asm movss rec, xmm0 // return xmm0
|
||||
return rec;
|
||||
|
||||
#else // no support yet for other compilers
|
||||
return 1.f / f;
|
||||
#endif
|
||||
|
||||
/*
|
||||
// SSE reciprocal estimate, accurate to 12 significant bits of
|
||||
|
@ -633,7 +636,6 @@ namespace core
|
|||
: "st"
|
||||
);
|
||||
#else
|
||||
# warn IRRLICHT_FAST_MATH not supported.
|
||||
return (s32) floorf ( x );
|
||||
#endif
|
||||
return t;
|
||||
|
@ -666,7 +668,6 @@ namespace core
|
|||
: "st"
|
||||
);
|
||||
#else
|
||||
# warn IRRLICHT_FAST_MATH not supported.
|
||||
return (s32) ceilf ( x );
|
||||
#endif
|
||||
return t;
|
||||
|
@ -696,7 +697,6 @@ namespace core
|
|||
: "st"
|
||||
);
|
||||
#else
|
||||
# warn IRRLICHT_FAST_MATH not supported.
|
||||
return (s32) round_(x);
|
||||
#endif
|
||||
return t;
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
rm tut.txt || true;
|
||||
|
||||
mkdir ../../../doctemp
|
||||
mkdir ../../../doctemp/html
|
||||
cp doxygen.css irrlicht.png logobig.png ../../../doctemp/html
|
||||
|
||||
for i in ../../../examples/[012]*/main.cpp; do
|
||||
sed -f tutorials.sed $i >>tut.txt;
|
||||
done
|
||||
|
||||
doxygen doxygen-pdf.cfg
|
||||
|
||||
cp doxygen.css irrlicht.png logobig.png ../../../doctemp/html
|
||||
|
||||
|
||||
doxygen doxygen.cfg
|
||||
|
|
|
@ -1448,19 +1448,16 @@ IGUIFont* CGUIEnvironment::getFont(const io::path& filename)
|
|||
{
|
||||
CGUIFont* font = new CGUIFont(this, filename);
|
||||
ifont = (IGUIFont*)font;
|
||||
// change working directory, for loading textures
|
||||
io::path workingDir = FileSystem->getWorkingDirectory();
|
||||
FileSystem->changeWorkingDirectoryTo(FileSystem->getFileDir(f.NamedPath.getPath()));
|
||||
|
||||
// load the font
|
||||
if (!font->load(xml))
|
||||
io::path directory;
|
||||
core::splitFilename(filename, &directory);
|
||||
if (!font->load(xml, directory))
|
||||
{
|
||||
font->drop();
|
||||
font = 0;
|
||||
ifont = 0;
|
||||
}
|
||||
// change working dir back again
|
||||
FileSystem->changeWorkingDirectoryTo( workingDir );
|
||||
}
|
||||
else if (t==EGFT_VECTOR)
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#ifdef _IRR_COMPILE_WITH_GUI_
|
||||
|
||||
#include "os.h"
|
||||
#include "coreutil.h"
|
||||
#include "IGUIEnvironment.h"
|
||||
#include "IXMLReader.h"
|
||||
#include "IReadFile.h"
|
||||
|
@ -63,7 +64,7 @@ CGUIFont::~CGUIFont()
|
|||
|
||||
|
||||
//! loads a font file from xml
|
||||
bool CGUIFont::load(io::IXMLReader* xml)
|
||||
bool CGUIFont::load(io::IXMLReader* xml, const io::path& directory)
|
||||
{
|
||||
if (!SpriteBank)
|
||||
return false;
|
||||
|
@ -89,7 +90,8 @@ bool CGUIFont::load(io::IXMLReader* xml)
|
|||
Driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false);
|
||||
|
||||
// load texture
|
||||
SpriteBank->setTexture(i, Driver->getTexture(fn));
|
||||
io::path textureFullName = core::mergeFilename(directory, fn);
|
||||
SpriteBank->setTexture(i, Driver->getTexture(textureFullName));
|
||||
|
||||
// set previous mip-map+filter state
|
||||
Driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, mipmap);
|
||||
|
|
|
@ -46,7 +46,8 @@ public:
|
|||
bool load(io::IReadFile* file);
|
||||
|
||||
//! loads a font from an XML file
|
||||
bool load(io::IXMLReader* xml);
|
||||
//\param directory Directory in which the bitmaps can be found
|
||||
bool load(io::IXMLReader* xml, const io::path& directory);
|
||||
|
||||
//! draws an text and clips it to the specified rectangle if wanted
|
||||
virtual void draw(const core::stringw& text, const core::rect<s32>& position,
|
||||
|
|
|
@ -836,7 +836,7 @@ bool CIrrDeviceLinux::run()
|
|||
irrevent.KeyInput.Control = (event.xkey.state & ControlMask) != 0;
|
||||
irrevent.KeyInput.Shift = (event.xkey.state & ShiftMask) != 0;
|
||||
|
||||
event.xkey.state = 0; // ignore shift-ctrl states for figuring out the key
|
||||
event.xkey.state &= ~(ControlMask|ShiftMask); // ignore shift-ctrl states for figuring out the key
|
||||
XLookupString(&event.xkey, buf, sizeof(buf), &mp.X11Key, NULL);
|
||||
const s32 idx = KeyMap.binary_search(mp);
|
||||
if (idx != -1)
|
||||
|
|
|
@ -824,7 +824,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
// Handle unicode and deadkeys in a way that works since Windows 95 and nt4.0
|
||||
// Using ToUnicode instead would be shorter, but would to my knowledge not run on 95 and 98.
|
||||
WORD keyChars[2];
|
||||
UINT scanCode = HIWORD(lParam);
|
||||
UINT scanCode = HIWORD(lParam) & 0x7FFF;
|
||||
int conversionResult = ToAsciiEx(wParam,scanCode,allKeys,keyChars,0,KEYBOARD_INPUT_HKL);
|
||||
if (conversionResult == 1)
|
||||
{
|
||||
|
|
|
@ -74,7 +74,6 @@ void CSceneNodeAnimatorFlyCircle::deserializeAttributes(io::IAttributes* in, io:
|
|||
Radius = in->getAttributeAsFloat("Radius");
|
||||
Speed = in->getAttributeAsFloat("Speed");
|
||||
Direction = in->getAttributeAsVector3d("Direction");
|
||||
StartTime = 0;
|
||||
|
||||
if (Direction.equals(core::vector3df(0,0,0)))
|
||||
Direction.set(0,1,0); // irrlicht 1.1 backwards compatibility
|
||||
|
|
|
@ -38,6 +38,18 @@ namespace scene
|
|||
(IReferenceCounted::drop()) the returned pointer after calling
|
||||
this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
virtual void setStartTime(u32 time) _IRR_OVERRIDE_
|
||||
{
|
||||
StartTime = time;
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
virtual irr::u32 getStartTime() const _IRR_OVERRIDE_
|
||||
{
|
||||
return StartTime;
|
||||
}
|
||||
|
||||
private:
|
||||
// do some initial calculations
|
||||
|
|
|
@ -37,6 +37,19 @@ namespace scene
|
|||
/** Please note that you will have to drop
|
||||
(IReferenceCounted::drop()) the returned pointer after calling this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
virtual void setStartTime(u32 time) _IRR_OVERRIDE_
|
||||
{
|
||||
StartTime = time;
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
virtual irr::u32 getStartTime() const _IRR_OVERRIDE_
|
||||
{
|
||||
return StartTime;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
@ -57,4 +70,3 @@ namespace scene
|
|||
} // end namespace irr
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,6 +41,18 @@ namespace scene
|
|||
(IReferenceCounted::drop()) the returned pointer after calling
|
||||
this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
virtual void setStartTime(u32 time) _IRR_OVERRIDE_
|
||||
{
|
||||
StartTime = time;
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
virtual irr::u32 getStartTime() const _IRR_OVERRIDE_
|
||||
{
|
||||
return StartTime;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
|
|
|
@ -34,6 +34,18 @@ namespace scene
|
|||
/** Please note that you will have to drop
|
||||
(IReferenceCounted::drop()) the returned pointer after calling this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
virtual void setStartTime(u32 time) _IRR_OVERRIDE_
|
||||
{
|
||||
StartTime = time;
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
virtual irr::u32 getStartTime() const _IRR_OVERRIDE_
|
||||
{
|
||||
return StartTime;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -41,6 +41,18 @@ namespace scene
|
|||
this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Reset a time-based movement by changing the starttime.
|
||||
virtual void setStartTime(u32 time) _IRR_OVERRIDE_
|
||||
{
|
||||
StartTime = time;
|
||||
}
|
||||
|
||||
//! Get the starttime.
|
||||
virtual irr::u32 getStartTime() const _IRR_OVERRIDE_
|
||||
{
|
||||
return StartTime;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void clearTextures();
|
||||
|
|
|
@ -13,16 +13,34 @@ bool testImageCreation()
|
|||
if (device == 0)
|
||||
return true; // could not create selected driver.
|
||||
|
||||
bool result = true;
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
video::ITexture* tex=driver->getTexture("../media/water.jpg");
|
||||
video::IImage* img1=driver->createImage(tex, core::vector2di(0,0), core::dimension2du(32,32));
|
||||
video::ITexture* tex1=driver->addTexture("new1", img1);
|
||||
img1->drop();
|
||||
img1=0;
|
||||
video::IImage* img2=driver->createImage(tex, core::vector2di(0,0), tex->getSize());
|
||||
video::ITexture* tex2=driver->addTexture("new2", img2);
|
||||
img2->drop();
|
||||
img2 = 0;
|
||||
video::ITexture* tex1=0;
|
||||
video::ITexture* tex2=0;
|
||||
if (!tex)
|
||||
result=false;
|
||||
else
|
||||
{
|
||||
video::IImage* img1=driver->createImage(tex, core::vector2di(0,0), core::dimension2du(32,32));
|
||||
if (!img1)
|
||||
result=false;
|
||||
else
|
||||
{
|
||||
tex1=driver->addTexture("new1", img1);
|
||||
img1->drop();
|
||||
img1=0;
|
||||
}
|
||||
video::IImage* img2=driver->createImage(tex, core::vector2di(0,0), tex->getSize());
|
||||
if (!img2)
|
||||
result=false;
|
||||
else
|
||||
{
|
||||
tex2=driver->addTexture("new2", img2);
|
||||
img2->drop();
|
||||
img2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
driver->beginScene(true, true, video::SColor(255,255,0,255));//Backbuffer background is pink
|
||||
|
||||
|
@ -32,7 +50,7 @@ bool testImageCreation()
|
|||
|
||||
driver->endScene();
|
||||
|
||||
bool result = takeScreenshotAndCompareAgainstReference(driver, "-createImage.png");
|
||||
result = takeScreenshotAndCompareAgainstReference(driver, "-createImage.png");
|
||||
|
||||
device->closeDevice();
|
||||
device->run();
|
||||
|
@ -73,3 +91,4 @@ bool createImage()
|
|||
result &= testImageFormats();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ int main(int argumentCount, char * arguments[])
|
|||
// Note that to interactively debug a test, you will generally want to move it
|
||||
// (temporarily) to the beginning of the list, since each test runs in its own
|
||||
// process.
|
||||
|
||||
|
||||
TEST(disambiguateTextures); // Normally you should run this first, since it validates the working directory.
|
||||
// Now the simple tests without device
|
||||
TEST(testIrrArray);
|
||||
|
@ -84,6 +84,7 @@ int main(int argumentCount, char * arguments[])
|
|||
TEST(sceneNodeAnimator);
|
||||
TEST(meshLoaders);
|
||||
TEST(testTimer);
|
||||
TEST(testCoreutil);
|
||||
// software drivers only
|
||||
TEST(softwareDevice);
|
||||
TEST(b3dAnimation);
|
||||
|
|
|
@ -11,13 +11,13 @@ using namespace video;
|
|||
/** Tests that the geometry creator does what it says it does. */
|
||||
bool testGeometryCreator(void)
|
||||
{
|
||||
IrrlichtDevice *device = createDevice(video::EDT_BURNINGSVIDEO,
|
||||
core::dimension2du(160,120), 32);
|
||||
if (!device)
|
||||
return false;
|
||||
IrrlichtDevice *device = createDevice(video::EDT_BURNINGSVIDEO,
|
||||
core::dimension2du(160,120), 32);
|
||||
if (!device)
|
||||
return false;
|
||||
|
||||
IVideoDriver* driver = device->getVideoDriver();
|
||||
ISceneManager* smgr = device->getSceneManager();
|
||||
IVideoDriver* driver = device->getVideoDriver();
|
||||
ISceneManager* smgr = device->getSceneManager();
|
||||
(void)smgr->addCameraSceneNode(0, vector3df(0, 0, -50));
|
||||
|
||||
const IGeometryCreator * geom = smgr->getGeometryCreator();
|
||||
|
@ -94,9 +94,10 @@ bool testGeometryCreator(void)
|
|||
video::IImage* colorMapImage = driver->createImageFromFile("../media/terrain-texture.jpg");
|
||||
video::IImage* heightMapImage = driver->createImageFromFile("../media/terrain-heightmap.bmp");
|
||||
|
||||
scene::IAnimatedMesh* terrain = smgr->addTerrainMesh("TerrainMeshName", colorMapImage, heightMapImage,
|
||||
core::dimension2d<f32>(40, 40), // size of a pixel
|
||||
8*40); // maximum height
|
||||
scene::IAnimatedMesh* terrain = smgr->addTerrainMesh("TerrainMeshName",
|
||||
colorMapImage, heightMapImage,
|
||||
core::dimension2d<f32>(40, 40), // size of a pixel
|
||||
8*40); // maximum height
|
||||
colorMapImage->drop();
|
||||
colorMapImage = 0;
|
||||
heightMapImage->drop();
|
||||
|
@ -119,7 +120,8 @@ bool testGeometryCreator(void)
|
|||
|
||||
device->closeDevice();
|
||||
device->run();
|
||||
device->drop();
|
||||
device->drop();
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ 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: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXft -lfontconfig
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue