Merged revisions 1561:1570 from 1.4 branch. This fixes the ZWrite enable scene attribute and does some minor cosmetic changes.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1571 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2008-09-16 16:33:33 +00:00
parent c1aadf5acc
commit 038d839eb8
22 changed files with 597 additions and 52 deletions

View File

@ -211,6 +211,18 @@ Changes in version 1.5 (... 2008)
------------------------------------------- -------------------------------------------
Changes in version 1.4.2 (x.x.2008) Changes in version 1.4.2 (x.x.2008)
- Unified the handling of zwrite enable with transparent materials on all hw accelerated drivers. This means that all transparent materials will now disable ZWrite, ignoring the material flag.
There is a scene manager attribute, though, which will revert this behavior to the usual SMaterial driven way. Simply call
SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true) and set the SMaterial flag as desired.
- Some changes for texture matrices in q3 shaders.
- Added BlindSide's irrAllocator patch for proper TextureMatrix release under Win32 with any CRT library.
- Added VC9 project files.
- Added getEmitter for particle system scene nodes.
- Fixed rounding problem in getScreenCoordinatesFrom3DPosition - Fixed rounding problem in getScreenCoordinatesFrom3DPosition
- Fixed Software renderer color flicker, was a shift bug I believe. - Fixed Software renderer color flicker, was a shift bug I believe.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9.00" Version="9,00"
Name="16.Quake3MapShader_vc9" Name="16.Quake3MapShader_vc9"
ProjectGUID="{EB3B38EA-5CE7-4983-845B-880661E69D09}" ProjectGUID="{EB3B38EA-5CE7-4983-845B-880661E69D09}"
RootNamespace="16.Quake3MapShader_vc9" RootNamespace="16.Quake3MapShader_vc9"
@ -49,7 +49,6 @@
RuntimeLibrary="1" RuntimeLibrary="1"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool

View File

@ -1,5 +1,5 @@
// This is a Demo of the Irrlicht Engine (c) 2005 by N.Gebhardt. // This is a Demo of the Irrlicht Engine (c) 2005-2008 by N.Gebhardt.
// This file is not documentated. // This file is not documented.
#include "CDemo.h" #include "CDemo.h"
@ -46,7 +46,7 @@ void CDemo::run()
} }
device = createDevice(driverType,resolution, 32, fullscreen, shadows, vsync, this); device = createDevice(driverType,resolution, 32, fullscreen, shadows, vsync, this);
if ( 0 == device ) if (!device)
return; return;
if (device->getFileSystem()->existFile("irrlicht.dat")) if (device->getFileSystem()->existFile("irrlicht.dat"))
@ -468,8 +468,7 @@ void CDemo::loadSceneData()
core::array<video::ITexture*> textures; core::array<video::ITexture*> textures;
for (s32 g=1; g<8; ++g) for (s32 g=1; g<8; ++g)
{ {
core::stringc tmp; core::stringc tmp("../../media/portal");
tmp = "../../media/portal";
tmp += g; tmp += g;
tmp += ".bmp"; tmp += ".bmp";
video::ITexture* t = driver->getTexture( tmp.c_str () ); video::ITexture* t = driver->getTexture( tmp.c_str () );

View File

@ -1,5 +1,5 @@
// This is a Demo of the Irrlicht Engine (c) 2005 by N.Gebhardt. // This is a Demo of the Irrlicht Engine (c) 2005-2008 by N.Gebhardt.
// This file is not documentated. // This file is not documented.
#include "CMainMenu.h" #include "CMainMenu.h"
@ -68,7 +68,7 @@ private:
CMainMenu::CMainMenu() CMainMenu::CMainMenu()
: startButton(0), device(0), selected(2), start(false), fullscreen(true), : startButton(0), MenuDevice(0), selected(2), start(false), fullscreen(true),
music(true), shadows(false), additive(false), transparent(true), vsync(false) music(true), shadows(false), additive(false), transparent(true), vsync(false)
{ {
} }
@ -78,21 +78,21 @@ CMainMenu::CMainMenu()
bool CMainMenu::run(bool& outFullscreen, bool& outMusic, bool& outShadows, bool CMainMenu::run(bool& outFullscreen, bool& outMusic, bool& outShadows,
bool& outAdditive, bool &outVSync, video::E_DRIVER_TYPE& outDriver) bool& outAdditive, bool &outVSync, video::E_DRIVER_TYPE& outDriver)
{ {
device = createDevice( outDriver, //Varmint: 2007/12/18 video::EDT_BURNINGSVIDEO, MenuDevice = createDevice( outDriver, //Varmint: 2007/12/18 video::EDT_BURNINGSVIDEO,
core::dimension2d<s32>(512, 384), 16, false, false, false, this); core::dimension2d<s32>(512, 384), 16, false, false, false, this);
if (device->getFileSystem()->existFile("irrlicht.dat")) if (MenuDevice->getFileSystem()->existFile("irrlicht.dat"))
device->getFileSystem()->addZipFileArchive("irrlicht.dat"); MenuDevice->getFileSystem()->addZipFileArchive("irrlicht.dat");
else else
device->getFileSystem()->addZipFileArchive("../../media/irrlicht.dat"); MenuDevice->getFileSystem()->addZipFileArchive("../../media/irrlicht.dat");
video::IVideoDriver* driver = device->getVideoDriver(); video::IVideoDriver* driver = MenuDevice->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager(); scene::ISceneManager* smgr = MenuDevice->getSceneManager();
gui::IGUIEnvironment* guienv = device->getGUIEnvironment(); gui::IGUIEnvironment* guienv = MenuDevice->getGUIEnvironment();
core::stringw str = "Irrlicht Engine Demo v"; core::stringw str = "Irrlicht Engine Demo v";
str += device->getVersion(); str += MenuDevice->getVersion();
device->setWindowCaption(str.c_str()); MenuDevice->setWindowCaption(str.c_str());
// set new Skin // set new Skin
gui::IGUISkin* newskin = guienv->createSkin( gui::EGST_BURNING_SKIN); gui::IGUISkin* newskin = guienv->createSkin( gui::EGST_BURNING_SKIN);
@ -156,7 +156,7 @@ bool CMainMenu::run(bool& outFullscreen, bool& outMusic, bool& outShadows,
// add about text // add about text
wchar_t* text2 = L"This is the tech demo of the Irrlicht engine. To start, "\ wchar_t* text2 = L"This is the tech demo of the Irrlicht engine. To start, "\
L"select a device which works best with your hardware and press 'start demo'. "\ L"select a MenuDevice which works best with your hardware and press 'start demo'. "\
L"What you currently see is displayed using the Burning Software Renderer (Thomas Alten). "\ L"What you currently see is displayed using the Burning Software Renderer (Thomas Alten). "\
L"The Irrlicht Engine was written by me, Nikolaus Gebhardt. The models, "\ L"The Irrlicht Engine was written by me, Nikolaus Gebhardt. The models, "\
L"maps and textures were placed at my disposal by B.Collins, M.Cook and J.Marton. The music was created by "\ L"maps and textures were placed at my disposal by B.Collins, M.Cook and J.Marton. The music was created by "\
@ -283,9 +283,9 @@ bool CMainMenu::run(bool& outFullscreen, bool& outMusic, bool& outShadows,
// draw all // draw all
while(device->run()) while(MenuDevice->run())
{ {
if (device->isWindowActive()) if (MenuDevice->isWindowActive())
{ {
driver->beginScene(false, true, video::SColor(0,0,0,0)); driver->beginScene(false, true, video::SColor(0,0,0,0));
@ -300,7 +300,7 @@ bool CMainMenu::run(bool& outFullscreen, bool& outMusic, bool& outShadows,
} }
} }
device->drop(); MenuDevice->drop();
outFullscreen = fullscreen; outFullscreen = fullscreen;
outMusic = music; outMusic = music;
@ -328,10 +328,10 @@ bool CMainMenu::OnEvent(const SEvent& event)
event.KeyInput.Key == KEY_F9 && event.KeyInput.Key == KEY_F9 &&
event.KeyInput.PressedDown == false) event.KeyInput.PressedDown == false)
{ {
video::IImage* image = device->getVideoDriver()->createScreenShot(); video::IImage* image = MenuDevice->getVideoDriver()->createScreenShot();
if (image) if (image)
{ {
device->getVideoDriver()->writeImageToFile(image, "screenshot_main.jpg"); MenuDevice->getVideoDriver()->writeImageToFile(image, "screenshot_main.jpg");
image->drop(); image->drop();
} }
} }
@ -340,7 +340,7 @@ bool CMainMenu::OnEvent(const SEvent& event)
event.MouseInput.Event == EMIE_RMOUSE_LEFT_UP ) event.MouseInput.Event == EMIE_RMOUSE_LEFT_UP )
{ {
core::rect<s32> r(event.MouseInput.X, event.MouseInput.Y, 0, 0); core::rect<s32> r(event.MouseInput.X, event.MouseInput.Y, 0, 0);
gui::IGUIContextMenu* menu = device->getGUIEnvironment()->addContextMenu(r, 0, 45); gui::IGUIContextMenu* menu = MenuDevice->getGUIEnvironment()->addContextMenu(r, 0, 45);
menu->addItem(L"transparent menus", 666, transparent == false); menu->addItem(L"transparent menus", 666, transparent == false);
menu->addItem(L"solid menus", 666, transparent == true); menu->addItem(L"solid menus", 666, transparent == true);
menu->addSeparator(); menu->addSeparator();
@ -375,7 +375,7 @@ bool CMainMenu::OnEvent(const SEvent& event)
case 2: case 2:
if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED ) if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED )
{ {
device->closeDevice(); MenuDevice->closeDevice();
start = true; start = true;
} }
case 3: case 3:
@ -407,7 +407,7 @@ bool CMainMenu::OnEvent(const SEvent& event)
void CMainMenu::getOriginalSkinColor() void CMainMenu::getOriginalSkinColor()
{ {
irr::gui::IGUISkin * skin = device->getGUIEnvironment()->getSkin(); irr::gui::IGUISkin * skin = MenuDevice->getGUIEnvironment()->getSkin();
for (s32 i=0; i<gui::EGDC_COUNT ; ++i) for (s32 i=0; i<gui::EGDC_COUNT ; ++i)
{ {
SkinColor [ i ] = skin->getColor ( (gui::EGUI_DEFAULT_COLOR)i ); SkinColor [ i ] = skin->getColor ( (gui::EGUI_DEFAULT_COLOR)i );
@ -417,10 +417,9 @@ void CMainMenu::getOriginalSkinColor()
void CMainMenu::setTransparency() void CMainMenu::setTransparency()
{ {
irr::gui::IGUISkin * skin = device->getGUIEnvironment()->getSkin(); irr::gui::IGUISkin * skin = MenuDevice->getGUIEnvironment()->getSkin();
u32 i; for (u32 i=0; i<gui::EGDC_COUNT ; ++i)
for ( i=0; i<gui::EGDC_COUNT ; ++i)
{ {
video::SColor col = SkinColor [ i ]; video::SColor col = SkinColor [ i ];
@ -430,3 +429,4 @@ void CMainMenu::setTransparency()
skin->setColor((gui::EGUI_DEFAULT_COLOR)i, col); skin->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
} }
} }

View File

@ -24,7 +24,7 @@ private:
void setTransparency(); void setTransparency();
gui::IGUIButton* startButton; gui::IGUIButton* startButton;
IrrlichtDevice *device; IrrlichtDevice *MenuDevice;
s32 selected; s32 selected;
bool start; bool start;
bool fullscreen; bool fullscreen;

View File

@ -1,5 +1,5 @@
// This is a Demo of the Irrlicht Engine (c) 2005 by N.Gebhardt. // This is a Demo of the Irrlicht Engine (c) 2005-2008 by N.Gebhardt.
// This file is not documentated. // This file is not documented.
#include <irrlicht.h> #include <irrlicht.h>
#ifdef _IRR_WINDOWS_ #ifdef _IRR_WINDOWS_

View File

@ -80,7 +80,10 @@ namespace video
EVDF_FRAMEBUFFER_OBJECT, EVDF_FRAMEBUFFER_OBJECT,
//! Are vertex buffer objects supported? //! Are vertex buffer objects supported?
EVDF_VERTEX_BUFFER_OBJECT EVDF_VERTEX_BUFFER_OBJECT,
//! Only used for counting the elements of this enum
EVDF_COUNT
}; };
} // end namespace video } // end namespace video
@ -89,4 +92,3 @@ namespace video
#endif #endif

View File

@ -972,8 +972,8 @@ namespace video
//! Only used by the engine internally. //! Only used by the engine internally.
/** Passes the global material flag DisableZWriteOnTransparent. /** Passes the global material flag DisableZWriteOnTransparent.
Use the SceneManager attribute to set this value from the app. Use the SceneManager attribute to set this value from the app.
\param color New color of the ambient light. */ \param flag Default behavior is to disable ZWrite, i.e. false. */
virtual void setDisableZWriteOnTransparent(bool flag=true) = 0; virtual void setAllowZWriteOnTransparent(bool flag) = 0;
}; };
} // end namespace video } // end namespace video

View File

@ -21,13 +21,13 @@ namespace scene
z-buffer for all really transparent, i.e. blending materials. This z-buffer for all really transparent, i.e. blending materials. This
avoids problems with intersecting faces, but can also break renderings. avoids problems with intersecting faces, but can also break renderings.
If transparent materials should use the SMaterial flag for ZWriteEnable If transparent materials should use the SMaterial flag for ZWriteEnable
jsut as other material types use this attribute. just as other material types use this attribute.
Use it like this: Use it like this:
\code \code
SceneManager->getParameters()->setAttribute(scene::DISABLE_ZWRITE_ON_TRANPARENT, false); SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
\endcode \endcode
**/ **/
const c8* const DISABLE_ZWRITE_ON_TRANSPARENT = "Disable_ZWrite_On_Transparent"; const c8* const ALLOW_ZWRITE_ON_TRANSPARENT = "Allow_ZWrite_On_Transparent";
//! Name of the parameter for changing the texture path of the built-in csm loader. //! Name of the parameter for changing the texture path of the built-in csm loader.
/** Use it like this: /** Use it like this:

View File

@ -684,7 +684,7 @@ public:
if (len > used-1) if (len > used-1)
return -1; return -1;
for (s32 i=0; i<used-len; ++i) for (u32 i=0; i<used-len; ++i)
{ {
u32 j=0; u32 j=0;

View File

@ -1341,7 +1341,7 @@ void CD3D8Driver::setBasicRenderStates(const SMaterial& material, const SMateria
// zwrite // zwrite
// if (resetAllRenderstates || lastmaterial.ZWriteEnable != material.ZWriteEnable) // if (resetAllRenderstates || lastmaterial.ZWriteEnable != material.ZWriteEnable)
{ {
if (material.ZWriteEnable && !(DisableZWriteOnTransparent && material.isTransparent())) if (material.ZWriteEnable && (AllowZWriteOnTransparent || !material.isTransparent()))
pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE); pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE);
else else
pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE); pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE);

View File

@ -1678,7 +1678,7 @@ void CD3D9Driver::setBasicRenderStates(const SMaterial& material, const SMateria
// zwrite // zwrite
// if (resetAllRenderstates || (lastmaterial.ZWriteEnable != material.ZWriteEnable)) // if (resetAllRenderstates || (lastmaterial.ZWriteEnable != material.ZWriteEnable))
{ {
if ( material.ZWriteEnable && !(DisableZWriteOnTransparent && material.isTransparent())) if ( material.ZWriteEnable && (AllowZWriteOnTransparent || !material.isTransparent()))
pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE); pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE);
else else
pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE); pID3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE);

View File

@ -167,7 +167,6 @@ int IrrPrintXError(Display *display, XErrorEvent *event)
#endif #endif
bool CIrrDeviceLinux::createWindow() bool CIrrDeviceLinux::createWindow()
{ {
#ifdef _IRR_COMPILE_WITH_X11_ #ifdef _IRR_COMPILE_WITH_X11_
@ -1140,6 +1139,7 @@ void CIrrDeviceLinux::createKeyMap()
KeyMap.push_back(SKeyMap(XK_Scroll_Lock, KEY_SCROLL)); KeyMap.push_back(SKeyMap(XK_Scroll_Lock, KEY_SCROLL));
KeyMap.push_back(SKeyMap(XK_Sys_Req, 0)); // ??? KeyMap.push_back(SKeyMap(XK_Sys_Req, 0)); // ???
KeyMap.push_back(SKeyMap(XK_Escape, KEY_ESCAPE)); KeyMap.push_back(SKeyMap(XK_Escape, KEY_ESCAPE));
KeyMap.push_back(SKeyMap(XK_Insert, KEY_INSERT));
KeyMap.push_back(SKeyMap(XK_Delete, KEY_DELETE)); KeyMap.push_back(SKeyMap(XK_Delete, KEY_DELETE));
KeyMap.push_back(SKeyMap(XK_Home, KEY_HOME)); KeyMap.push_back(SKeyMap(XK_Home, KEY_HOME));
KeyMap.push_back(SKeyMap(XK_Left, KEY_LEFT)); KeyMap.push_back(SKeyMap(XK_Left, KEY_LEFT));

View File

@ -70,7 +70,7 @@ IImageWriter* createImageWriterPPM();
//! constructor //! constructor
CNullDriver::CNullDriver(io::IFileSystem* io, const core::dimension2d<s32>& screenSize) CNullDriver::CNullDriver(io::IFileSystem* io, const core::dimension2d<s32>& screenSize)
: FileSystem(io), MeshManipulator(0), ViewPort(0,0,0,0), ScreenSize(screenSize), : FileSystem(io), MeshManipulator(0), ViewPort(0,0,0,0), ScreenSize(screenSize),
PrimitivesDrawn(0), TextureCreationFlags(0), DisableZWriteOnTransparent(true) PrimitivesDrawn(0), TextureCreationFlags(0), AllowZWriteOnTransparent(false)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("CNullDriver"); setDebugName("CNullDriver");

View File

@ -497,8 +497,8 @@ namespace video
virtual core::stringc getVendorInfo() {return "Not available on this driver.";}; virtual core::stringc getVendorInfo() {return "Not available on this driver.";};
//! Only used by the engine internally. //! Only used by the engine internally.
virtual void setDisableZWriteOnTransparent(bool flag=true) virtual void setAllowZWriteOnTransparent(bool flag)
{ DisableZWriteOnTransparent=flag; } { AllowZWriteOnTransparent=flag; }
protected: protected:
@ -612,7 +612,7 @@ namespace video
bool PixelFog; bool PixelFog;
bool RangeFog; bool RangeFog;
bool DisableZWriteOnTransparent; bool AllowZWriteOnTransparent;
SExposedVideoData ExposedData; SExposedVideoData ExposedData;
}; };

View File

@ -1875,7 +1875,7 @@ void COpenGLDriver::setBasicRenderStates(const SMaterial& material, const SMater
// zwrite // zwrite
// if (resetAllRenderStates || lastmaterial.ZWriteEnable != material.ZWriteEnable) // if (resetAllRenderStates || lastmaterial.ZWriteEnable != material.ZWriteEnable)
{ {
if (material.ZWriteEnable && !(DisableZWriteOnTransparent && material.isTransparent())) if (material.ZWriteEnable && (AllowZWriteOnTransparent || !material.isTransparent()))
{ {
glDepthMask(GL_TRUE); glDepthMask(GL_TRUE);
} }

View File

@ -1256,7 +1256,7 @@ void CSceneManager::drawAll()
driver->setTransform ( video::ETS_TEXTURE_3, core::IdentityMatrix ); driver->setTransform ( video::ETS_TEXTURE_3, core::IdentityMatrix );
} }
driver->setDisableZWriteOnTransparent(Parameters.getAttributeAsBool( DISABLE_ZWRITE_ON_TRANSPARENT) ); driver->setAllowZWriteOnTransparent(Parameters.getAttributeAsBool( ALLOW_ZWRITE_ON_TRANSPARENT) );
// do animations and other stuff. // do animations and other stuff.
OnAnimate(os::Timer::getTime()); OnAnimate(os::Timer::getTime());

View File

@ -0,0 +1,20 @@

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

View File

@ -0,0 +1,293 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="GUI Editor_v9"
ProjectGUID="{853A396E-C031-4C26-A716-5B4E176BE11D}"
RootNamespace="GUI Editor"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
FavorSizeOrSpeed="0"
WholeProgramOptimization="false"
AdditionalIncludeDirectories="..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" 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 "
OutputFile="../../bin/Win32-visualstudio/GUIEditor.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;..\..\lib\Win32-visualstudio&quot;"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/TestProject.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
WholeProgramOptimization="true"
AdditionalIncludeDirectories="..\..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../bin/Win32-visualstudio/GUIEditor.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="gui"
>
<File
RelativePath=".\CGUIEditFactory.cpp"
>
</File>
<File
RelativePath=".\CGUIEditFactory.h"
>
</File>
<File
RelativePath=".\CGUIEditWindow.cpp"
>
</File>
<File
RelativePath=".\CGUIEditWindow.h"
>
</File>
<File
RelativePath=".\CGUIEditWorkspace.cpp"
>
</File>
<File
RelativePath=".\CGUIEditWorkspace.h"
>
</File>
<File
RelativePath=".\CGUITextureCacheBrowser.cpp"
>
</File>
<File
RelativePath=".\CGUITextureCacheBrowser.h"
>
</File>
<Filter
Name="GUIAttributes"
>
<File
RelativePath=".\CGUIAttribute.h"
>
</File>
<File
RelativePath=".\CGUIAttributeEditor.cpp"
>
</File>
<File
RelativePath=".\CGUIAttributeEditor.h"
>
</File>
<File
RelativePath=".\CGUIBoolAttribute.h"
>
</File>
<File
RelativePath=".\CGUIColorAttribute.h"
>
</File>
<File
RelativePath=".\CGUIEnumAttribute.h"
>
</File>
<File
RelativePath=".\CGUIStringAttribute.h"
>
</File>
<File
RelativePath=".\CGUITextureAttribute.h"
>
</File>
</Filter>
<Filter
Name="Useful GUI Elements"
>
<File
RelativePath=".\CGUIPanel.cpp"
>
</File>
<File
RelativePath=".\CGUIPanel.h"
>
</File>
</Filter>
<Filter
Name="Element Editors"
>
<File
RelativePath=".\CGUIDummyEditorStub.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="io"
>
<File
RelativePath=".\CMemoryReadWriteFile.cpp"
>
</File>
<File
RelativePath=".\CMemoryReadWriteFile.h"
>
</File>
</Filter>
<File
RelativePath=".\main.cpp"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -7,7 +7,7 @@ const int fontsizes[] = {4,6,8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,56,68,72
inline u32 getTextureSizeFromSurfaceSize(u32 size) inline u32 getTextureSizeFromSurfaceSize(u32 size)
{ {
int ts = 0x01; u32 ts = 0x01;
while(ts < size) while(ts < size)
ts <<= 1; ts <<= 1;

View File

@ -0,0 +1,20 @@

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

View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="Font Tool"
ProjectGUID="{853A396E-C031-4C26-A716-5B4E176BE11D}"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" 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"
OutputFile="../../../bin/Win32-visualstudio/FontTool.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="../../../lib/Win32-visualstudio"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/TestProject.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" 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"
OutputFile="../../../bin/Win32-visualstudio/FontTool.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="../../../lib/Win32-visualstudio"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\CFontTool.cpp"
>
</File>
<File
RelativePath=".\CFontTool.h"
>
</File>
<File
RelativePath=".\CVectorFontTool.h"
>
</File>
<File
RelativePath=".\main.cpp"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>