Graphics/SpriteLibrary: Fix missing initialization/uninitialization (fixes crash at exit)
Former-commit-id: c7bbd781d163a8456f1fadd0f71451adc5a1bd1a
This commit is contained in:
@@ -23,6 +23,9 @@ namespace Nz
|
||||
|
||||
class NAZARA_GRAPHICS_API Sprite : public InstancedRenderable
|
||||
{
|
||||
friend SpriteLibrary;
|
||||
friend class Graphics;
|
||||
|
||||
public:
|
||||
inline Sprite();
|
||||
inline Sprite(MaterialRef material);
|
||||
@@ -57,6 +60,9 @@ namespace Nz
|
||||
void MakeBoundingVolume() const override;
|
||||
void UpdateData(InstanceData* instanceData) const override;
|
||||
|
||||
static bool Initialize();
|
||||
static void Uninitialize();
|
||||
|
||||
Color m_color;
|
||||
MaterialRef m_material;
|
||||
Rectf m_textureCoords;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <Nazara/Graphics/RenderTechniques.hpp>
|
||||
#include <Nazara/Graphics/SkinningManager.hpp>
|
||||
#include <Nazara/Graphics/SkyboxBackground.hpp>
|
||||
#include <Nazara/Graphics/Sprite.hpp>
|
||||
#include <Nazara/Graphics/Formats/MeshLoader.hpp>
|
||||
#include <Nazara/Graphics/Formats/OBJLoader.hpp>
|
||||
#include <Nazara/Graphics/Formats/TextureLoader.hpp>
|
||||
@@ -89,6 +90,12 @@ namespace Nz
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Sprite::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize sprites");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Loaders
|
||||
Loaders::RegisterOBJ();
|
||||
|
||||
@@ -181,6 +188,7 @@ namespace Nz
|
||||
ParticleController::Uninitialize();
|
||||
Material::Uninitialize();
|
||||
SkyboxBackground::Uninitialize();
|
||||
Sprite::Uninitialize();
|
||||
|
||||
NazaraNotice("Uninitialized: Graphics module");
|
||||
|
||||
|
||||
@@ -51,5 +51,21 @@ namespace Nz
|
||||
*texCoordPtr++ = m_textureCoords.GetCorner(RectCorner_RightBottom);
|
||||
}
|
||||
|
||||
bool Sprite::Initialize()
|
||||
{
|
||||
if (!SpriteLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Sprite::Uninitialize()
|
||||
{
|
||||
SpriteLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
SpriteLibrary::LibraryMap Sprite::s_library;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user