Added ResourceRef (Automatic resource reference)

Former-commit-id: 97a0b2732f4dc443b8e1676e68b33b1b53ddf4fb
This commit is contained in:
Lynix
2013-03-15 03:09:58 +01:00
parent 4ee6ca05ed
commit 6c2fb1eb89
29 changed files with 344 additions and 299 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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