Separate NAZARA_API into multiple defines (one per module)

To fix inter-module dependency


Former-commit-id: 64704f020e0af22e529d38527323ba977187d4d0
This commit is contained in:
Lynix
2015-06-13 22:31:29 +02:00
parent 251e21f006
commit 1fc17c8b53
196 changed files with 680 additions and 546 deletions

View File

@@ -11,13 +11,14 @@
#include <Nazara/Core/Signal.hpp>
#include <Nazara/Core/SparsePtr.hpp>
#include <Nazara/Math/Rect.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
#include <unordered_map>
class NzAbstractImage;
class NzImage;
class NAZARA_API NzAbstractAtlas
class NAZARA_UTILITY_API NzAbstractAtlas
{
public:
NzAbstractAtlas() = default;

View File

@@ -9,7 +9,7 @@
#include <Nazara/Utility/Buffer.hpp>
class NAZARA_API NzAbstractBuffer
class NAZARA_UTILITY_API NzAbstractBuffer
{
public:
NzAbstractBuffer() = default;

View File

@@ -11,9 +11,10 @@
#include <Nazara/Math/Box.hpp>
#include <Nazara/Math/Rect.hpp>
#include <Nazara/Math/Vector3.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
class NAZARA_API NzAbstractImage
class NAZARA_UTILITY_API NzAbstractImage
{
public:
NzAbstractImage() = default;

View File

@@ -11,11 +11,12 @@
#include <Nazara/Core/Color.hpp>
#include <Nazara/Math/Rect.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Utility/Config.hpp>
class NzAbstractImage;
class NzFont;
class NAZARA_API NzAbstractTextDrawer
class NAZARA_UTILITY_API NzAbstractTextDrawer
{
public:
struct Glyph;

View File

@@ -32,28 +32,28 @@ struct NzVertexPointers
NzSparsePtr<NzVector2f> uvPtr;
};
NAZARA_API NzBoxf NzComputeAABB(NzSparsePtr<const NzVector3f> positionPtr, unsigned int vertexCount);
NAZARA_API void NzComputeBoxIndexVertexCount(const NzVector3ui& subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API unsigned int NzComputeCacheMissCount(NzIndexIterator indices, unsigned int indexCount);
NAZARA_API void NzComputeConeIndexVertexCount(unsigned int subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API void NzComputeCubicSphereIndexVertexCount(unsigned int subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API void NzComputeIcoSphereIndexVertexCount(unsigned int recursionLevel, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API void NzComputePlaneIndexVertexCount(const NzVector2ui& subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API void NzComputeUvSphereIndexVertexCount(unsigned int sliceCount, unsigned int stackCount, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API NzBoxf NzComputeAABB(NzSparsePtr<const NzVector3f> positionPtr, unsigned int vertexCount);
NAZARA_UTILITY_API void NzComputeBoxIndexVertexCount(const NzVector3ui& subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API unsigned int NzComputeCacheMissCount(NzIndexIterator indices, unsigned int indexCount);
NAZARA_UTILITY_API void NzComputeConeIndexVertexCount(unsigned int subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API void NzComputeCubicSphereIndexVertexCount(unsigned int subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API void NzComputeIcoSphereIndexVertexCount(unsigned int recursionLevel, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API void NzComputePlaneIndexVertexCount(const NzVector2ui& subdivision, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_UTILITY_API void NzComputeUvSphereIndexVertexCount(unsigned int sliceCount, unsigned int stackCount, unsigned int* indexCount, unsigned int* vertexCount);
NAZARA_API void NzGenerateBox(const NzVector3f& lengths, const NzVector3ui& subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzGenerateCone(float length, float radius, unsigned int subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzGenerateCubicSphere(float size, unsigned int subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzGenerateIcoSphere(float size, unsigned int recursionLevel, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzGeneratePlane(const NzVector2ui& subdivision, const NzVector2f& size, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzGenerateUvSphere(float size, unsigned int sliceCount, unsigned int stackCount, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGenerateBox(const NzVector3f& lengths, const NzVector3ui& subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGenerateCone(float length, float radius, unsigned int subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGenerateCubicSphere(float size, unsigned int subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGenerateIcoSphere(float size, unsigned int recursionLevel, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGeneratePlane(const NzVector2ui& subdivision, const NzVector2f& size, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_UTILITY_API void NzGenerateUvSphere(float size, unsigned int sliceCount, unsigned int stackCount, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzVertexPointers vertexPointers, NzIndexIterator indices, NzBoxf* aabb = nullptr, unsigned int indexOffset = 0);
NAZARA_API void NzOptimizeIndices(NzIndexIterator indices, unsigned int indexCount);
NAZARA_UTILITY_API void NzOptimizeIndices(NzIndexIterator indices, unsigned int indexCount);
NAZARA_API void NzSkinPosition(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_API void NzSkinPositionNormal(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_API void NzSkinPositionNormalTangent(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_UTILITY_API void NzSkinPosition(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_UTILITY_API void NzSkinPositionNormal(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_UTILITY_API void NzSkinPositionNormalTangent(const NzSkinningData& data, unsigned int startVertex, unsigned int vertexCount);
NAZARA_API void NzTransformVertices(NzVertexPointers vertexPointers, unsigned int vertexCount, const NzMatrix4f& matrix);
NAZARA_UTILITY_API void NzTransformVertices(NzVertexPointers vertexPointers, unsigned int vertexCount, const NzMatrix4f& matrix);
#endif // NAZARA_ALGORITHM_UTILITY_HPP

View File

@@ -16,11 +16,12 @@
#include <Nazara/Core/ResourceManager.hpp>
#include <Nazara/Core/Signal.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
#include <Nazara/Utility/Sequence.hpp>
#include <limits>
struct NAZARA_API NzAnimationParams
struct NAZARA_UTILITY_API NzAnimationParams
{
// La frame de fin à charger
unsigned int endFrame = std::numeric_limits<unsigned int>::max();
@@ -41,7 +42,7 @@ using NzAnimationRef = NzObjectRef<NzAnimation>;
struct NzAnimationImpl;
class NAZARA_API NzAnimation : public NzRefCounted, public NzResource
class NAZARA_UTILITY_API NzAnimation : public NzRefCounted, public NzResource
{
friend NzAnimationLibrary;
friend NzAnimationLoader;

View File

@@ -12,6 +12,7 @@
#include <Nazara/Core/ObjectRef.hpp>
#include <Nazara/Core/RefCounted.hpp>
#include <Nazara/Core/Signal.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
class NzBuffer;
@@ -21,7 +22,7 @@ using NzBufferRef = NzObjectRef<NzBuffer>;
class NzAbstractBuffer;
class NAZARA_API NzBuffer : public NzRefCounted, NzNonCopyable
class NAZARA_UTILITY_API NzBuffer : public NzRefCounted, NzNonCopyable
{
friend class NzUtility;

View File

@@ -58,4 +58,14 @@
/// Vérification des valeurs et types de certaines constantes
#include <Nazara/Utility/ConfigCheck.hpp>
#if defined(NAZARA_STATIC)
#define NAZARA_UTILITY_API
#else
#ifdef NAZARA_UTILITY_BUILD
#define NAZARA_UTILITY_API NAZARA_EXPORT
#else
#define NAZARA_UTILITY_API NAZARA_IMPORT
#endif
#endif
#endif // NAZARA_CONFIG_UTILITY_HPP

View File

@@ -9,11 +9,12 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Utility/Config.hpp>
class NzCursorImpl;
class NzImage;
class NAZARA_API NzCursor
class NAZARA_UTILITY_API NzCursor
{
friend class NzWindowImpl;

View File

@@ -19,7 +19,7 @@
#include <memory>
#include <unordered_map>
struct NAZARA_API NzFontParams
struct NAZARA_UTILITY_API NzFontParams
{
bool IsValid() const;
};
@@ -34,7 +34,7 @@ using NzFontLibrary = NzObjectLibrary<NzFont>;
using NzFontLoader = NzResourceLoader<NzFont, NzFontParams>;
using NzFontRef = NzObjectRef<NzFont>;
class NAZARA_API NzFont : public NzRefCounted, public NzResource, NzNonCopyable
class NAZARA_UTILITY_API NzFont : public NzRefCounted, public NzResource, NzNonCopyable
{
friend NzFontLibrary;
friend NzFontLoader;

View File

@@ -9,10 +9,11 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Utility/Config.hpp>
struct NzFontGlyph;
class NAZARA_API NzFontData
class NAZARA_UTILITY_API NzFontData
{
public:
NzFontData() = default;

View File

@@ -15,7 +15,7 @@
#include <Nazara/Utility/Animation.hpp>
#include <vector>
class NAZARA_API NzMD5AnimParser
class NAZARA_UTILITY_API NzMD5AnimParser
{
public:
struct FrameJoint

View File

@@ -15,7 +15,7 @@
#include <Nazara/Utility/Mesh.hpp>
#include <vector>
class NAZARA_API NzMD5MeshParser
class NAZARA_UTILITY_API NzMD5MeshParser
{
public:
struct Joint

View File

@@ -11,9 +11,10 @@
#include <Nazara/Core/Color.hpp>
#include <Nazara/Core/InputStream.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Utility/Config.hpp>
#include <unordered_map>
class NAZARA_API NzMTLParser
class NAZARA_UTILITY_API NzMTLParser
{
public:
struct Material

View File

@@ -12,9 +12,10 @@
#include <Nazara/Core/String.hpp>
#include <Nazara/Math/Vector3.hpp>
#include <Nazara/Math/Vector4.hpp>
#include <Nazara/Utility/Config.hpp>
#include <vector>
class NzOBJParser
class NAZARA_UTILITY_API NzOBJParser
{
public:
struct FaceVertex

View File

@@ -15,7 +15,7 @@
#include <memory>
#include <vector>
class NAZARA_API NzGuillotineImageAtlas : public NzAbstractAtlas
class NAZARA_UTILITY_API NzGuillotineImageAtlas : public NzAbstractAtlas
{
public:
NzGuillotineImageAtlas();

View File

@@ -9,11 +9,12 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Utility/Config.hpp>
class NzImage;
class NzIconImpl;
class NAZARA_API NzIcon
class NAZARA_UTILITY_API NzIcon
{
friend class NzWindowImpl;

View File

@@ -23,7 +23,7 @@
///TODO: Filtres
struct NAZARA_API NzImageParams
struct NAZARA_UTILITY_API NzImageParams
{
// Le format dans lequel l'image doit être chargée (Undefined pour le format le plus proche de l'original)
nzPixelFormat loadFormat = nzPixelFormat_Undefined;
@@ -42,7 +42,7 @@ using NzImageLoader = NzResourceLoader<NzImage, NzImageParams>;
using NzImageManager = NzResourceManager<NzImage, NzImageParams>;
using NzImageRef = NzObjectRef<NzImage>;
class NAZARA_API NzImage : public NzAbstractImage, public NzRefCounted, public NzResource
class NAZARA_UTILITY_API NzImage : public NzAbstractImage, public NzRefCounted, public NzResource
{
friend NzImageLibrary;
friend NzImageLoader;

View File

@@ -17,7 +17,7 @@ class NzIndexBuffer;
using NzIndexBufferConstRef = NzObjectRef<const NzIndexBuffer>;
using NzIndexBufferRef = NzObjectRef<NzIndexBuffer>;
class NAZARA_API NzIndexBuffer : public NzRefCounted
class NAZARA_UTILITY_API NzIndexBuffer : public NzRefCounted
{
public:
NzIndexBuffer() = default;

View File

@@ -18,7 +18,7 @@ class NzSubMesh;
using NzIndexMapperGetter = nzUInt32 (*)(const void* buffer, unsigned int i);
using NzIndexMapperSetter = void (*)(void* buffer, unsigned int i, nzUInt32 value);
class NAZARA_API NzIndexMapper
class NAZARA_UTILITY_API NzIndexMapper
{
public:
NzIndexMapper(NzIndexBuffer* indexBuffer, nzBufferAccess access = nzBufferAccess_ReadWrite);

View File

@@ -14,7 +14,7 @@
class NzSkeleton;
class NAZARA_API NzJoint : public NzNode
class NAZARA_UTILITY_API NzJoint : public NzNode
{
public:
NzJoint(NzSkeleton* skeleton);

View File

@@ -10,7 +10,7 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/String.hpp>
class NAZARA_API NzJoystick
class NAZARA_UTILITY_API NzJoystick
{
public:
NzJoystick() = delete;

View File

@@ -11,8 +11,9 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Utility/Config.hpp>
class NAZARA_API NzKeyboard
class NAZARA_UTILITY_API NzKeyboard
{
public:
enum Key

View File

@@ -22,7 +22,7 @@
#include <Nazara/Utility/SubMesh.hpp>
#include <Nazara/Utility/VertexStruct.hpp>
struct NAZARA_API NzMeshParams
struct NAZARA_UTILITY_API NzMeshParams
{
NzMeshParams(); // Vérifie que le storage par défaut est supporté (software autrement)
@@ -61,7 +61,7 @@ using NzMeshRef = NzObjectRef<NzMesh>;
struct NzMeshImpl;
class NAZARA_API NzMesh : public NzRefCounted, public NzResource
class NAZARA_UTILITY_API NzMesh : public NzRefCounted, public NzResource
{
friend NzMeshLibrary;
friend NzMeshLoader;

View File

@@ -11,10 +11,11 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Utility/Config.hpp>
class NzWindow;
class NAZARA_API NzMouse
class NAZARA_UTILITY_API NzMouse
{
public:
enum Button

View File

@@ -12,11 +12,12 @@
#include <Nazara/Math/Matrix4.hpp>
#include <Nazara/Math/Quaternion.hpp>
#include <Nazara/Math/Vector3.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
#include <unordered_map>
#include <vector>
class NAZARA_API NzNode
class NAZARA_UTILITY_API NzNode
{
public:
NzNode();

View File

@@ -9,6 +9,7 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
#include <functional>
#include <map>
@@ -49,8 +50,8 @@ class NzPixelFormat
static bool Initialize();
static void Uninitialize();
static NAZARA_API ConvertFunction s_convertFunctions[nzPixelFormat_Max+1][nzPixelFormat_Max+1];
static NAZARA_API std::map<nzPixelFormat, FlipFunction> s_flipFunctions[nzPixelFlipping_Max+1];
static NAZARA_UTILITY_API ConvertFunction s_convertFunctions[nzPixelFormat_Max+1][nzPixelFormat_Max+1];
static NAZARA_UTILITY_API std::map<nzPixelFormat, FlipFunction> s_flipFunctions[nzPixelFlipping_Max+1];
};
#include <Nazara/Utility/PixelFormat.inl>

View File

@@ -14,7 +14,7 @@
#include <Nazara/Utility/Font.hpp>
#include <vector>
class NAZARA_API NzSimpleTextDrawer : public NzAbstractTextDrawer
class NAZARA_UTILITY_API NzSimpleTextDrawer : public NzAbstractTextDrawer
{
public:
NzSimpleTextDrawer();

View File

@@ -17,7 +17,7 @@ class NzSkeletalMesh;
using NzSkeletalMeshConstRef = NzObjectRef<const NzSkeletalMesh>;
using NzSkeletalMeshRef = NzObjectRef<NzSkeletalMesh>;
class NAZARA_API NzSkeletalMesh final : public NzSubMesh
class NAZARA_UTILITY_API NzSkeletalMesh final : public NzSubMesh
{
public:
NzSkeletalMesh(const NzMesh* parent);

View File

@@ -24,7 +24,7 @@ using NzSkeletonRef = NzObjectRef<NzSkeleton>;
struct NzSkeletonImpl;
class NAZARA_API NzSkeleton : public NzRefCounted
class NAZARA_UTILITY_API NzSkeleton : public NzRefCounted
{
friend NzJoint;
friend NzSkeletonLibrary;

View File

@@ -16,7 +16,7 @@ class NzStaticMesh;
using NzStaticMeshConstRef = NzObjectRef<const NzStaticMesh>;
using NzStaticMeshRef = NzObjectRef<NzStaticMesh>;
class NAZARA_API NzStaticMesh final : public NzSubMesh
class NAZARA_UTILITY_API NzStaticMesh final : public NzSubMesh
{
public:
NzStaticMesh(const NzMesh* parent);

View File

@@ -22,7 +22,7 @@ class NzSubMesh;
using NzSubMeshConstRef = NzObjectRef<const NzSubMesh>;
using NzSubMeshRef = NzObjectRef<NzSubMesh>;
class NAZARA_API NzSubMesh : public NzRefCounted
class NAZARA_UTILITY_API NzSubMesh : public NzRefCounted
{
friend NzMesh;

View File

@@ -13,7 +13,7 @@
class NzSubMesh;
class NAZARA_API NzTriangleIterator
class NAZARA_UTILITY_API NzTriangleIterator
{
public:
NzTriangleIterator(nzPrimitiveMode primitiveMode, const NzIndexBuffer* indexBuffer);

View File

@@ -9,9 +9,10 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/Initializer.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
class NAZARA_API NzUtility
class NAZARA_UTILITY_API NzUtility
{
public:
NzUtility() = delete;

View File

@@ -19,7 +19,7 @@ class NzVertexBuffer;
using NzVertexBufferConstRef = NzObjectRef<NzVertexBuffer>;
using NzVertexBufferRef = NzObjectRef<NzVertexBuffer>;
class NAZARA_API NzVertexBuffer : public NzRefCounted
class NAZARA_UTILITY_API NzVertexBuffer : public NzRefCounted
{
public:
NzVertexBuffer() = default;

View File

@@ -12,6 +12,7 @@
#include <Nazara/Core/ObjectRef.hpp>
#include <Nazara/Core/RefCounted.hpp>
#include <Nazara/Core/Signal.hpp>
#include <Nazara/Utility/Config.hpp>
#include <Nazara/Utility/Enums.hpp>
class NzVertexDeclaration;
@@ -20,7 +21,7 @@ using NzVertexDeclarationConstRef = NzObjectRef<const NzVertexDeclaration>;
using NzVertexDeclarationLibrary = NzObjectLibrary<NzVertexDeclaration>;
using NzVertexDeclarationRef = NzObjectRef<NzVertexDeclaration>;
class NAZARA_API NzVertexDeclaration : public NzRefCounted
class NAZARA_UTILITY_API NzVertexDeclaration : public NzRefCounted
{
friend NzVertexDeclarationLibrary;
friend class NzUtility;

View File

@@ -15,7 +15,7 @@
class NzSubMesh;
class NAZARA_API NzVertexMapper
class NAZARA_UTILITY_API NzVertexMapper
{
public:
NzVertexMapper(NzSubMesh* subMesh, nzBufferAccess access = nzBufferAccess_ReadWrite);

View File

@@ -10,9 +10,10 @@
#define NAZARA_VIDEOMODE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Utility/Config.hpp>
#include <vector>
class NAZARA_API NzVideoMode
class NAZARA_UTILITY_API NzVideoMode
{
public:
NzVideoMode();

View File

@@ -30,7 +30,7 @@ class NzImage;
class NzIcon;
class NzWindowImpl;
class NAZARA_API NzWindow : NzNonCopyable
class NAZARA_UTILITY_API NzWindow : NzNonCopyable
{
friend NzWindowImpl;
friend class NzMouse;