Add support for custom resource parameters
And allow users to skip a precise loader using them Former-commit-id: 297af2e4a24ad67c343aae5d89352abf4ea05f63
This commit is contained in:
parent
b524d9395a
commit
dce587bd63
|
|
@ -12,10 +12,11 @@
|
|||
#include <Nazara/Audio/SoundEmitter.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct MusicParams
|
||||
struct MusicParams : ResourceParameters
|
||||
{
|
||||
bool forceMono = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,13 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceManager.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/Stream.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct SoundBufferParams
|
||||
struct SoundBufferParams : ResourceParameters
|
||||
{
|
||||
bool forceMono = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ namespace Nz
|
|||
template<typename Type, typename Parameters>
|
||||
class ResourceLoader
|
||||
{
|
||||
static_assert(std::is_base_of<ResourceParameters, Parameters>::value, "ResourceParameters must be a base of Parameters");
|
||||
|
||||
friend Type;
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright (C) 2015 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Core module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef NAZARA_RESOURCEPARAMETERS_HPP
|
||||
#define NAZARA_RESOURCEPARAMETERS_HPP
|
||||
|
||||
#include <Nazara/Core/ParameterList.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct ResourceParameters
|
||||
{
|
||||
ParameterList custom;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // NAZARA_RESOURCEPARAMETERS_HPP
|
||||
|
|
@ -21,6 +21,8 @@ namespace Nz
|
|||
template<typename Type, typename Parameters>
|
||||
class ResourceSaver
|
||||
{
|
||||
static_assert(std::is_base_of<ResourceParameters, Parameters>::value, "ResourceParameters must be a base of Parameters");
|
||||
|
||||
friend Type;
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceManager.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/String.hpp>
|
||||
#include <Nazara/Graphics/Config.hpp>
|
||||
|
|
@ -26,7 +27,7 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_GRAPHICS_API MaterialParams
|
||||
struct NAZARA_GRAPHICS_API MaterialParams : ResourceParameters
|
||||
{
|
||||
bool loadAlphaMap = true;
|
||||
bool loadDiffuseMap = true;
|
||||
|
|
|
|||
|
|
@ -10,13 +10,14 @@
|
|||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Graphics/InstancedRenderable.hpp>
|
||||
#include <Nazara/Graphics/Material.hpp>
|
||||
#include <Nazara/Utility/Mesh.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_GRAPHICS_API ModelParameters
|
||||
struct NAZARA_GRAPHICS_API ModelParameters : ResourceParameters
|
||||
{
|
||||
ModelParameters();
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_GRAPHICS_API SkeletalModelParameters : public ModelParameters
|
||||
struct NAZARA_GRAPHICS_API SkeletalModelParameters : ModelParameters
|
||||
{
|
||||
bool loadAnimation = true;
|
||||
AnimationParams animation;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceManager.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/String.hpp>
|
||||
#include <Nazara/Utility/Config.hpp>
|
||||
|
|
@ -23,7 +24,7 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_UTILITY_API AnimationParams
|
||||
struct NAZARA_UTILITY_API AnimationParams : ResourceParameters
|
||||
{
|
||||
// La frame de fin à charger
|
||||
unsigned int endFrame = std::numeric_limits<unsigned int>::max();
|
||||
|
|
|
|||
|
|
@ -14,13 +14,14 @@
|
|||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Utility/AbstractAtlas.hpp>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_UTILITY_API FontParams
|
||||
struct NAZARA_UTILITY_API FontParams : ResourceParameters
|
||||
{
|
||||
bool IsValid() const;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceManager.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Core/ResourceSaver.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/Stream.hpp>
|
||||
|
|
@ -26,7 +27,7 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_UTILITY_API ImageParams
|
||||
struct NAZARA_UTILITY_API ImageParams : ResourceParameters
|
||||
{
|
||||
// Le format dans lequel l'image doit être chargée (Undefined pour le format le plus proche de l'original)
|
||||
PixelFormatType loadFormat = PixelFormatType_Undefined;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceManager.hpp>
|
||||
#include <Nazara/Core/ResourceParameters.hpp>
|
||||
#include <Nazara/Core/Stream.hpp>
|
||||
#include <Nazara/Core/String.hpp>
|
||||
#include <Nazara/Math/Box.hpp>
|
||||
|
|
@ -24,7 +25,7 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_UTILITY_API MeshParams
|
||||
struct NAZARA_UTILITY_API MeshParams : ResourceParameters
|
||||
{
|
||||
MeshParams(); // Vérifie que le storage par défaut est supporté (software autrement)
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,10 @@ namespace Nz
|
|||
Ternary CheckStatic(Stream& stream, const ModelParameters& parameters)
|
||||
{
|
||||
NazaraUnused(stream);
|
||||
NazaraUnused(parameters);
|
||||
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeStaticMeshLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
return Ternary_Unknown;
|
||||
}
|
||||
|
|
@ -66,7 +69,10 @@ namespace Nz
|
|||
Ternary CheckAnimated(Stream& stream, const SkeletalModelParameters& parameters)
|
||||
{
|
||||
NazaraUnused(stream);
|
||||
NazaraUnused(parameters);
|
||||
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeAnimatedMeshLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
return Ternary_Unknown;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@ namespace Nz
|
|||
Ternary Check(Stream& stream, const ModelParameters& parameters)
|
||||
{
|
||||
NazaraUnused(stream);
|
||||
NazaraUnused(parameters);
|
||||
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeOBJLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
return Ternary_Unknown;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,10 @@ namespace Nz
|
|||
Ternary Check(Stream& stream, const MaterialParams& parameters)
|
||||
{
|
||||
NazaraUnused(stream);
|
||||
NazaraUnused(parameters);
|
||||
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeTextureLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
return Ternary_Unknown;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const ImageParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeDDSLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
UInt32 magic;
|
||||
if (stream.Read(&magic, sizeof(UInt32)) == sizeof(UInt32))
|
||||
|
|
|
|||
|
|
@ -348,7 +348,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const FontParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeFreeTypeLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
FreeTypeStream face;
|
||||
face.SetStream(stream);
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const MeshParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeMD2Loader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
UInt32 magic[2];
|
||||
if (stream.Read(&magic[0], 2*sizeof(UInt32)) == 2*sizeof(UInt32))
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const AnimationParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeMD5AnimLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
MD5AnimParser parser(stream);
|
||||
return parser.Check();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const MeshParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeMD5MeshLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
MD5MeshParser parser(stream);
|
||||
return parser.Check();
|
||||
|
|
|
|||
|
|
@ -47,7 +47,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const ImageParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativePCXLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
UInt8 manufacturer;
|
||||
if (stream.Read(&manufacturer, 1) == 1)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,9 @@ namespace Nz
|
|||
|
||||
Ternary Check(Stream& stream, const ImageParams& parameters)
|
||||
{
|
||||
NazaraUnused(parameters);
|
||||
bool skip;
|
||||
if (parameters.custom.GetBooleanParameter("NativeSTBLoader_Skip", &skip) && skip)
|
||||
return Ternary_False;
|
||||
|
||||
int width, height, bpp;
|
||||
if (stbi_info_from_callbacks(&callbacks, &stream, &width, &height, &bpp))
|
||||
|
|
|
|||
Loading…
Reference in New Issue