Added ResourceRef (Automatic resource reference)
Former-commit-id: 97a0b2732f4dc443b8e1676e68b33b1b53ddf4fb
This commit is contained in:
@@ -9,8 +9,14 @@
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceRef.hpp>
|
||||
#include <Nazara/Renderer/ContextParameters.hpp>
|
||||
|
||||
class NzContext;
|
||||
|
||||
using NzContextConstRef = NzResourceRef<const NzContext>;
|
||||
using NzContextRef = NzResourceRef<NzContext>;
|
||||
|
||||
class NzContextImpl;
|
||||
|
||||
class NAZARA_API NzContext : public NzResource
|
||||
|
||||
@@ -9,8 +9,11 @@
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Color.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceLoader.hpp>
|
||||
#include <Nazara/Core/ResourceRef.hpp>
|
||||
#include <Nazara/Renderer/Enums.hpp>
|
||||
#include <Nazara/Renderer/Shader.hpp>
|
||||
#include <Nazara/Renderer/Texture.hpp>
|
||||
#include <Nazara/Renderer/TextureSampler.hpp>
|
||||
|
||||
@@ -23,9 +26,10 @@ struct NAZARA_API NzMaterialParams
|
||||
};
|
||||
|
||||
class NzMaterial;
|
||||
class NzShader;
|
||||
|
||||
using NzMaterialConstRef = NzResourceRef<const NzMaterial>;
|
||||
using NzMaterialLoader = NzResourceLoader<NzMaterial, NzMaterialParams>;
|
||||
using NzMaterialRef = NzResourceRef<NzMaterial>;
|
||||
|
||||
class NAZARA_API NzMaterial : public NzResource
|
||||
{
|
||||
@@ -35,7 +39,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
NzMaterial();
|
||||
NzMaterial(const NzMaterial& material);
|
||||
NzMaterial(NzMaterial&& material);
|
||||
~NzMaterial();
|
||||
~NzMaterial() = default;
|
||||
|
||||
void Apply(const NzShader* shader) const;
|
||||
|
||||
@@ -102,6 +106,8 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
static NzMaterial* GetDefault();
|
||||
|
||||
private:
|
||||
void Copy(const NzMaterial& material);
|
||||
|
||||
nzBlendFunc m_dstBlend;
|
||||
nzBlendFunc m_srcBlend;
|
||||
nzFaceCulling m_faceCulling;
|
||||
@@ -113,11 +119,11 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
NzColor m_specularColor;
|
||||
NzTextureSampler m_diffuseSampler;
|
||||
NzTextureSampler m_specularSampler;
|
||||
mutable const NzShader* m_customShader;
|
||||
NzTexture* m_diffuseMap;
|
||||
NzTexture* m_heightMap;
|
||||
NzTexture* m_normalMap;
|
||||
NzTexture* m_specularMap;
|
||||
mutable NzShaderConstRef m_customShader;
|
||||
NzTextureRef m_diffuseMap;
|
||||
NzTextureRef m_heightMap;
|
||||
NzTextureRef m_normalMap;
|
||||
NzTextureRef m_specularMap;
|
||||
bool m_alphaBlendingEnabled;
|
||||
bool m_faceCullingEnabled;
|
||||
bool m_lightingEnabled;
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <Nazara/Core/Color.hpp>
|
||||
#include <Nazara/Core/NonCopyable.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceRef.hpp>
|
||||
#include <Nazara/Core/String.hpp>
|
||||
#include <Nazara/Math/Matrix4.hpp>
|
||||
#include <Nazara/Math/Vector2.hpp>
|
||||
@@ -18,9 +19,14 @@
|
||||
#include <Nazara/Math/Vector4.hpp>
|
||||
#include <Nazara/Renderer/Enums.hpp>
|
||||
|
||||
class NzShaderImpl;
|
||||
class NzShader;
|
||||
class NzTexture;
|
||||
|
||||
using NzShaderConstRef = NzResourceRef<const NzShader>;
|
||||
using NzShaderRef = NzResourceRef<NzShader>;
|
||||
|
||||
class NzShaderImpl;
|
||||
|
||||
class NAZARA_API NzShader : public NzResource, NzNonCopyable
|
||||
{
|
||||
friend class NzRenderer;
|
||||
|
||||
@@ -9,11 +9,18 @@
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/NonCopyable.hpp>
|
||||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/ResourceRef.hpp>
|
||||
#include <Nazara/Renderer/Enums.hpp>
|
||||
#include <Nazara/Utility/Image.hpp>
|
||||
#include <Nazara/Utility/PixelFormat.hpp>
|
||||
|
||||
class NzRenderTexture;
|
||||
class NzTexture;
|
||||
|
||||
using NzTextureConstRef = NzResourceRef<const NzTexture>;
|
||||
using NzTextureRef = NzResourceRef<NzTexture>;
|
||||
|
||||
struct NzTextureImpl;
|
||||
|
||||
class NAZARA_API NzTexture : public NzResource, NzNonCopyable
|
||||
|
||||
Reference in New Issue
Block a user