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:
@@ -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:
|
||||
|
||||
20
include/Nazara/Core/ResourceParameters.hpp
Normal file
20
include/Nazara/Core/ResourceParameters.hpp
Normal file
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user