Merge remote-tracking branch 'refs/remotes/origin/master' into vulkan

Former-commit-id: f52c323e7f107b51ba49d16caa15280cadf17f65 [formerly c405b28529951fc0289c8c2aa27b7e345de972ac]
Former-commit-id: 8ea93c5687261a4758aedfdf40fe7122e9281044
This commit is contained in:
Lynix 2016-06-13 21:24:44 +02:00
commit 52dde9bda3
43 changed files with 204 additions and 197 deletions

View File

@ -26,7 +26,7 @@ namespace Ndk
inline ComponentIndex BaseComponent::RegisterComponent(ComponentId id, Factory factoryFunc) inline ComponentIndex BaseComponent::RegisterComponent(ComponentId id, Factory factoryFunc)
{ {
// Nous allons rajouter notre composant à la fin // Nous allons rajouter notre composant à la fin
ComponentIndex index = s_entries.size(); ComponentIndex index = static_cast<ComponentIndex>(s_entries.size());
s_entries.resize(index + 1); s_entries.resize(index + 1);
// On récupère et on affecte // On récupère et on affecte

View File

@ -40,7 +40,7 @@ namespace Ndk
private: private:
inline void InvalidateBoundingVolume(); inline void InvalidateBoundingVolume();
void InvalidateRenderableData(const Nz::InstancedRenderable* renderable, Nz::UInt32 flags, unsigned int index); void InvalidateRenderableData(const Nz::InstancedRenderable* renderable, Nz::UInt32 flags, std::size_t index);
inline void InvalidateRenderables(); inline void InvalidateRenderables();
inline void InvalidateTransformMatrix(); inline void InvalidateTransformMatrix();

View File

@ -9,7 +9,7 @@
namespace Ndk namespace Ndk
{ {
void GraphicsComponent::InvalidateRenderableData(const Nz::InstancedRenderable* renderable, Nz::UInt32 flags, unsigned int index) void GraphicsComponent::InvalidateRenderableData(const Nz::InstancedRenderable* renderable, Nz::UInt32 flags, std::size_t index)
{ {
NazaraAssert(index < m_renderables.size(), "Invalid renderable index"); NazaraAssert(index < m_renderables.size(), "Invalid renderable index");
NazaraUnused(renderable); NazaraUnused(renderable);

View File

@ -54,7 +54,7 @@ function NazaraBuild:Execute()
targetdir("../extlibs/lib/" .. makeLibDir .. "/x64") targetdir("../extlibs/lib/" .. makeLibDir .. "/x64")
configuration("vs*") configuration("vs*")
buildoptions("/MP") buildoptions({"/MP", "/bigobj"}) -- Multiprocessus build and big .obj
configuration({"vs*", "x32"}) configuration({"vs*", "x32"})
libdirs("../extlibs/lib/msvc/x86") libdirs("../extlibs/lib/msvc/x86")
@ -158,7 +158,7 @@ function NazaraBuild:Execute()
buildoptions("-fvisibility=hidden") buildoptions("-fvisibility=hidden")
configuration("vs*") configuration("vs*")
buildoptions("/MP") -- Multiprocessus build buildoptions({"/MP", "/bigobj"}) -- Multiprocessus build and big .obj
flags("NoMinimalRebuild") flags("NoMinimalRebuild")
defines("_CRT_SECURE_NO_WARNINGS") defines("_CRT_SECURE_NO_WARNINGS")
defines("_SCL_SECURE_NO_WARNINGS") defines("_SCL_SECURE_NO_WARNINGS")
@ -270,7 +270,7 @@ function NazaraBuild:Execute()
project(prefix .. toolTable.Name) project(prefix .. toolTable.Name)
location(_ACTION .. "/tools") location(_ACTION .. "/tools")
targetdir(toolTable.Directory) targetdir(toolTable.TargetDirectory)
if (toolTable.Kind == "plugin" or toolTable.Kind == "library") then if (toolTable.Kind == "plugin" or toolTable.Kind == "library") then
kind("SharedLib") kind("SharedLib")
@ -278,7 +278,7 @@ function NazaraBuild:Execute()
-- Copy the tool binaries to the example folder -- Copy the tool binaries to the example folder
self:MakeInstallCommands(toolTable) self:MakeInstallCommands(toolTable)
elseif (toolTable.Kind == "application") then elseif (toolTable.Kind == "application") then
debugdir(toolTable.Directory) debugdir(toolTable.TargetDirectory)
if (toolTable.EnableConsole) then if (toolTable.EnableConsole) then
kind("ConsoleApp") kind("ConsoleApp")
else else
@ -404,7 +404,7 @@ function NazaraBuild:Execute()
self:MakeInstallCommands(toolTable) self:MakeInstallCommands(toolTable)
elseif (exampleTable.Kind == "application") then elseif (exampleTable.Kind == "application") then
debugdir(exampleTable.Directory) debugdir(exampleTable.TargetDirectory)
if (exampleTable.EnableConsole) then if (exampleTable.EnableConsole) then
kind("ConsoleApp") kind("ConsoleApp")
else else
@ -769,7 +769,7 @@ function NazaraBuild:RegisterTool(toolTable)
return false, "This tool name is already in use" return false, "This tool name is already in use"
end end
if (toolTable.Directory == nil or type(toolTable.Directory) ~= "string" or string.len(toolTable.Directory) == 0) then if (toolTable.TargetDirectory == nil or type(toolTable.TargetDirectory) ~= "string" or string.len(toolTable.TargetDirectory) == 0) then
return false, "Invalid tool directory" return false, "Invalid tool directory"
end end
@ -907,7 +907,7 @@ function NazaraBuild:Process(infoTable)
end end
if (infoTable.Kind == "application") then if (infoTable.Kind == "application") then
self:AddExecutablePath(infoTable.Directory) self:AddExecutablePath(infoTable.TargetDirectory)
end end
return true return true
@ -995,8 +995,8 @@ end
function NazaraBuild:SetupExampleTable(infoTable) function NazaraBuild:SetupExampleTable(infoTable)
self:SetupInfoTable(infoTable) self:SetupInfoTable(infoTable)
infoTable.Directory = "../examples/bin"
infoTable.Kind = "application" infoTable.Kind = "application"
infoTable.TargetDirectory = "../examples/bin"
end end
function NazaraBuild:SetupExtlibTable(infoTable) function NazaraBuild:SetupExtlibTable(infoTable)

View File

@ -1,7 +1,8 @@
TOOL.Name = "Assimp" TOOL.Name = "Assimp"
TOOL.Directory = "../SDK/lib" TOOL.Directory = "../plugins/Assimp"
TOOL.Kind = "Plugin" TOOL.Kind = "Plugin"
TOOL.TargetDirectory = "../SDK/lib"
TOOL.Includes = { TOOL.Includes = {
"../include", "../include",

View File

@ -1,7 +1,8 @@
TOOL.Name = "SDK" TOOL.Name = "SDK"
TOOL.Directory = "../SDK/lib" TOOL.Directory = "../SDK"
TOOL.Kind = "Library" TOOL.Kind = "Library"
TOOL.TargetDirectory = "../SDK/lib"
TOOL.Defines = { TOOL.Defines = {
"NDK_BUILD" "NDK_BUILD"

View File

@ -1,7 +1,8 @@
TOOL.Name = "SDKServer" TOOL.Name = "SDKServer"
TOOL.Directory = "../SDK/lib" TOOL.Directory = "../SDK"
TOOL.Kind = "Library" TOOL.Kind = "Library"
TOOL.TargetDirectory = "../SDK/lib"
TOOL.Defines = { TOOL.Defines = {
"NDK_BUILD", "NDK_BUILD",

View File

@ -3,6 +3,7 @@ TOOL.Name = "UnitTests"
TOOL.Directory = "../tests" TOOL.Directory = "../tests"
TOOL.EnableConsole = true TOOL.EnableConsole = true
TOOL.Kind = "Application" TOOL.Kind = "Application"
TOOL.TargetDirectory = TOOL.Directory
TOOL.Defines = { TOOL.Defines = {
} }

View File

@ -26,9 +26,9 @@ namespace Nz
class Bit; class Bit;
Bitset(); Bitset();
explicit Bitset(unsigned int bitCount, bool val); explicit Bitset(std::size_t bitCount, bool val);
explicit Bitset(const char* bits); explicit Bitset(const char* bits);
Bitset(const char* bits, unsigned int bitCount); Bitset(const char* bits, std::size_t bitCount);
Bitset(const Bitset& bitset) = default; Bitset(const Bitset& bitset) = default;
explicit Bitset(const String& bits); explicit Bitset(const String& bits);
template<typename T> Bitset(T value); template<typename T> Bitset(T value);
@ -36,16 +36,16 @@ namespace Nz
~Bitset() noexcept = default; ~Bitset() noexcept = default;
void Clear() noexcept; void Clear() noexcept;
unsigned int Count() const; std::size_t Count() const;
void Flip(); void Flip();
unsigned int FindFirst() const; std::size_t FindFirst() const;
unsigned int FindNext(unsigned int bit) const; std::size_t FindNext(std::size_t bit) const;
Block GetBlock(unsigned int i) const; Block GetBlock(std::size_t i) const;
unsigned int GetBlockCount() const; std::size_t GetBlockCount() const;
unsigned int GetCapacity() const; std::size_t GetCapacity() const;
unsigned int GetSize() const; std::size_t GetSize() const;
void PerformsAND(const Bitset& a, const Bitset& b); void PerformsAND(const Bitset& a, const Bitset& b);
void PerformsNOT(const Bitset& a); void PerformsNOT(const Bitset& a);
@ -54,19 +54,19 @@ namespace Nz
bool Intersects(const Bitset& bitset) const; bool Intersects(const Bitset& bitset) const;
void Reserve(unsigned int bitCount); void Reserve(std::size_t bitCount);
void Resize(unsigned int bitCount, bool defaultVal = false); void Resize(std::size_t bitCount, bool defaultVal = false);
void Reset(); void Reset();
void Reset(unsigned int bit); void Reset(std::size_t bit);
void Set(bool val = true); void Set(bool val = true);
void Set(unsigned int bit, bool val = true); void Set(std::size_t bit, bool val = true);
void SetBlock(unsigned int i, Block block); void SetBlock(std::size_t i, Block block);
void Swap(Bitset& bitset); void Swap(Bitset& bitset);
bool Test(unsigned int bit) const; bool Test(std::size_t bit) const;
bool TestAll() const; bool TestAll() const;
bool TestAny() const; bool TestAny() const;
bool TestNone() const; bool TestNone() const;
@ -74,9 +74,9 @@ namespace Nz
template<typename T> T To() const; template<typename T> T To() const;
String ToString() const; String ToString() const;
void UnboundedReset(unsigned int bit); void UnboundedReset(std::size_t bit);
void UnboundedSet(unsigned int bit, bool val = true); void UnboundedSet(std::size_t bit, bool val = true);
bool UnboundedTest(unsigned int bit) const; bool UnboundedTest(std::size_t bit) const;
Bit operator[](int index); Bit operator[](int index);
bool operator[](int index) const; bool operator[](int index) const;
@ -93,20 +93,20 @@ namespace Nz
Bitset& operator^=(const Bitset& bitset); Bitset& operator^=(const Bitset& bitset);
static constexpr Block fullBitMask = std::numeric_limits<Block>::max(); static constexpr Block fullBitMask = std::numeric_limits<Block>::max();
static constexpr unsigned int bitsPerBlock = std::numeric_limits<Block>::digits; static constexpr std::size_t bitsPerBlock = std::numeric_limits<Block>::digits;
static constexpr unsigned int npos = std::numeric_limits<unsigned int>::max(); static constexpr std::size_t npos = std::numeric_limits<std::size_t>::max();
private: private:
unsigned int FindFirstFrom(unsigned int blockIndex) const; std::size_t FindFirstFrom(std::size_t blockIndex) const;
Block GetLastBlockMask() const; Block GetLastBlockMask() const;
void ResetExtraBits(); void ResetExtraBits();
static unsigned int ComputeBlockCount(unsigned int bitCount); static std::size_t ComputeBlockCount(std::size_t bitCount);
static unsigned int GetBitIndex(unsigned int bit); static std::size_t GetBitIndex(std::size_t bit);
static unsigned int GetBlockIndex(unsigned int bit); static std::size_t GetBlockIndex(std::size_t bit);
std::vector<Block, Allocator> m_blocks; std::vector<Block, Allocator> m_blocks;
unsigned int m_bitCount; std::size_t m_bitCount;
}; };
template<typename Block, class Allocator> template<typename Block, class Allocator>

View File

@ -42,7 +42,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
Bitset<Block, Allocator>::Bitset(unsigned int bitCount, bool val) : Bitset<Block, Allocator>::Bitset(std::size_t bitCount, bool val) :
Bitset() Bitset()
{ {
Resize(bitCount, val); Resize(bitCount, val);
@ -72,11 +72,11 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
Bitset<Block, Allocator>::Bitset(const char* bits, unsigned int bitCount) : Bitset<Block, Allocator>::Bitset(const char* bits, std::size_t bitCount) :
m_blocks(ComputeBlockCount(bitCount), 0U), m_blocks(ComputeBlockCount(bitCount), 0U),
m_bitCount(bitCount) m_bitCount(bitCount)
{ {
for (unsigned int i = 0; i < bitCount; ++i) for (std::size_t i = 0; i < bitCount; ++i)
{ {
switch (*bits++) switch (*bits++)
{ {
@ -126,7 +126,7 @@ namespace Nz
else else
{ {
// Note: I was kinda tired when I wrote this, there's probably a much easier method than checking bits to write bits // Note: I was kinda tired when I wrote this, there's probably a much easier method than checking bits to write bits
for (unsigned int bitPos = 0; bitPos < std::numeric_limits<T>::digits; bitPos++) for (std::size_t bitPos = 0; bitPos < std::numeric_limits<T>::digits; bitPos++)
{ {
if (value & (T(1U) << bitPos)) if (value & (T(1U) << bitPos))
UnboundedSet(bitPos, true); UnboundedSet(bitPos, true);
@ -153,13 +153,13 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::Count() const std::size_t Bitset<Block, Allocator>::Count() const
{ {
if (m_blocks.empty()) if (m_blocks.empty())
return 0; return 0;
unsigned int count = 0; std::size_t count = 0;
for (unsigned int i = 0; i < m_blocks.size(); ++i) for (std::size_t i = 0; i < m_blocks.size(); ++i)
count += CountBits(m_blocks[i]); count += CountBits(m_blocks[i]);
return count; return count;
@ -184,7 +184,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindFirst() const std::size_t Bitset<Block, Allocator>::FindFirst() const
{ {
return FindFirstFrom(0); return FindFirstFrom(0);
} }
@ -199,7 +199,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindNext(unsigned int bit) const std::size_t Bitset<Block, Allocator>::FindNext(std::size_t bit) const
{ {
NazaraAssert(bit < m_bitCount, "Bit index out of range"); NazaraAssert(bit < m_bitCount, "Bit index out of range");
@ -207,8 +207,8 @@ namespace Nz
return npos; return npos;
// The block of the bit and its index // The block of the bit and its index
unsigned int blockIndex = GetBlockIndex(bit); std::size_t blockIndex = GetBlockIndex(bit);
unsigned int bitIndex = GetBitIndex(bit); std::size_t bitIndex = GetBitIndex(bit);
// We get the block // We get the block
Block block = m_blocks[blockIndex]; Block block = m_blocks[blockIndex];
@ -233,7 +233,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
Block Bitset<Block, Allocator>::GetBlock(unsigned int i) const Block Bitset<Block, Allocator>::GetBlock(std::size_t i) const
{ {
NazaraAssert(i < m_blocks.size(), "Block index out of range"); NazaraAssert(i < m_blocks.size(), "Block index out of range");
@ -246,7 +246,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBlockCount() const std::size_t Bitset<Block, Allocator>::GetBlockCount() const
{ {
return m_blocks.size(); return m_blocks.size();
} }
@ -257,7 +257,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetCapacity() const std::size_t Bitset<Block, Allocator>::GetCapacity() const
{ {
return m_blocks.capacity()*bitsPerBlock; return m_blocks.capacity()*bitsPerBlock;
} }
@ -268,7 +268,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetSize() const std::size_t Bitset<Block, Allocator>::GetSize() const
{ {
return m_bitCount; return m_bitCount;
} }
@ -285,7 +285,7 @@ namespace Nz
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::PerformsAND(const Bitset& a, const Bitset& b) void Bitset<Block, Allocator>::PerformsAND(const Bitset& a, const Bitset& b)
{ {
std::pair<unsigned int, unsigned int> minmax = std::minmax(a.GetBlockCount(), b.GetBlockCount()); std::pair<std::size_t, std::size_t> minmax = std::minmax(a.GetBlockCount(), b.GetBlockCount());
// We reinitialise our blocks with zero // We reinitialise our blocks with zero
m_blocks.clear(); m_blocks.clear();
@ -293,7 +293,7 @@ namespace Nz
m_bitCount = std::max(a.GetSize(), b.GetSize()); m_bitCount = std::max(a.GetSize(), b.GetSize());
// In case of the "AND", we can stop with the smallest size (because x & 0 = 0) // In case of the "AND", we can stop with the smallest size (because x & 0 = 0)
for (unsigned int i = 0; i < minmax.first; ++i) for (std::size_t i = 0; i < minmax.first; ++i)
m_blocks[i] = a.GetBlock(i) & b.GetBlock(i); m_blocks[i] = a.GetBlock(i) & b.GetBlock(i);
ResetExtraBits(); ResetExtraBits();
@ -311,7 +311,7 @@ namespace Nz
m_blocks.resize(a.GetBlockCount()); m_blocks.resize(a.GetBlockCount());
m_bitCount = a.GetSize(); m_bitCount = a.GetSize();
for (unsigned int i = 0; i < m_blocks.size(); ++i) for (std::size_t i = 0; i < m_blocks.size(); ++i)
m_blocks[i] = ~a.GetBlock(i); m_blocks[i] = ~a.GetBlock(i);
ResetExtraBits(); ResetExtraBits();
@ -332,15 +332,15 @@ namespace Nz
const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b; const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b;
const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a; const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a;
unsigned int maxBlockCount = greater.GetBlockCount(); std::size_t maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount(); std::size_t minBlockCount = lesser.GetBlockCount();
m_blocks.resize(maxBlockCount); m_blocks.resize(maxBlockCount);
m_bitCount = greater.GetSize(); m_bitCount = greater.GetSize();
for (unsigned int i = 0; i < minBlockCount; ++i) for (std::size_t i = 0; i < minBlockCount; ++i)
m_blocks[i] = a.GetBlock(i) | b.GetBlock(i); m_blocks[i] = a.GetBlock(i) | b.GetBlock(i);
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i) for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
m_blocks[i] = greater.GetBlock(i); // (x | 0 = x) m_blocks[i] = greater.GetBlock(i); // (x | 0 = x)
ResetExtraBits(); ResetExtraBits();
@ -361,15 +361,15 @@ namespace Nz
const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b; const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b;
const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a; const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a;
unsigned int maxBlockCount = greater.GetBlockCount(); std::size_t maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount(); std::size_t minBlockCount = lesser.GetBlockCount();
m_blocks.resize(maxBlockCount); m_blocks.resize(maxBlockCount);
m_bitCount = greater.GetSize(); m_bitCount = greater.GetSize();
for (unsigned int i = 0; i < minBlockCount; ++i) for (std::size_t i = 0; i < minBlockCount; ++i)
m_blocks[i] = a.GetBlock(i) ^ b.GetBlock(i); m_blocks[i] = a.GetBlock(i) ^ b.GetBlock(i);
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i) for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
m_blocks[i] = greater.GetBlock(i); // (x ^ 0 = x) m_blocks[i] = greater.GetBlock(i); // (x ^ 0 = x)
ResetExtraBits(); ResetExtraBits();
@ -385,8 +385,8 @@ namespace Nz
bool Bitset<Block, Allocator>::Intersects(const Bitset& bitset) const bool Bitset<Block, Allocator>::Intersects(const Bitset& bitset) const
{ {
// We only test the blocks in common // We only test the blocks in common
unsigned int sharedBlocks = std::min(GetBlockCount(), bitset.GetBlockCount()); std::size_t sharedBlocks = std::min(GetBlockCount(), bitset.GetBlockCount());
for (unsigned int i = 0; i < sharedBlocks; ++i) for (std::size_t i = 0; i < sharedBlocks; ++i)
{ {
Block a = GetBlock(i); Block a = GetBlock(i);
Block b = bitset.GetBlock(i); Block b = bitset.GetBlock(i);
@ -404,7 +404,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Reserve(unsigned int bitCount) void Bitset<Block, Allocator>::Reserve(std::size_t bitCount)
{ {
m_blocks.reserve(ComputeBlockCount(bitCount)); m_blocks.reserve(ComputeBlockCount(bitCount));
} }
@ -417,13 +417,13 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Resize(unsigned int bitCount, bool defaultVal) void Bitset<Block, Allocator>::Resize(std::size_t bitCount, bool defaultVal)
{ {
// We begin with changing the size of container, with the correct value of initialisation // We begin with changing the size of container, with the correct value of initialisation
unsigned int lastBlockIndex = m_blocks.size() - 1; std::size_t lastBlockIndex = m_blocks.size() - 1;
m_blocks.resize(ComputeBlockCount(bitCount), (defaultVal) ? fullBitMask : 0U); m_blocks.resize(ComputeBlockCount(bitCount), (defaultVal) ? fullBitMask : 0U);
unsigned int remainingBits = GetBitIndex(m_bitCount); std::size_t remainingBits = GetBitIndex(m_bitCount);
if (bitCount > m_bitCount && remainingBits > 0 && defaultVal) if (bitCount > m_bitCount && remainingBits > 0 && defaultVal)
// Initialisation of unused bits in the last block before the size change // Initialisation of unused bits in the last block before the size change
m_blocks[lastBlockIndex] |= fullBitMask << remainingBits; m_blocks[lastBlockIndex] |= fullBitMask << remainingBits;
@ -451,7 +451,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Reset(unsigned int bit) void Bitset<Block, Allocator>::Reset(std::size_t bit)
{ {
Set(bit, false); Set(bit, false);
} }
@ -482,7 +482,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Set(unsigned int bit, bool val) void Bitset<Block, Allocator>::Set(std::size_t bit, bool val)
{ {
NazaraAssert(bit < m_bitCount, "Bit index out of range"); NazaraAssert(bit < m_bitCount, "Bit index out of range");
@ -503,7 +503,7 @@ namespace Nz
* \remark Produce a NazaraAssert if i is greather than number of blocks in bitset * \remark Produce a NazaraAssert if i is greather than number of blocks in bitset
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::SetBlock(unsigned int i, Block block) void Bitset<Block, Allocator>::SetBlock(std::size_t i, Block block)
{ {
NazaraAssert(i < m_blocks.size(), "Block index out of range"); NazaraAssert(i < m_blocks.size(), "Block index out of range");
@ -537,7 +537,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
bool Bitset<Block, Allocator>::Test(unsigned int bit) const bool Bitset<Block, Allocator>::Test(std::size_t bit) const
{ {
NazaraAssert(bit < m_bitCount, "Bit index out of range"); NazaraAssert(bit < m_bitCount, "Bit index out of range");
@ -555,7 +555,7 @@ namespace Nz
// Special case for the last block // Special case for the last block
Block lastBlockMask = GetLastBlockMask(); Block lastBlockMask = GetLastBlockMask();
for (unsigned int i = 0; i < m_blocks.size(); ++i) for (std::size_t i = 0; i < m_blocks.size(); ++i)
{ {
Block mask = (i == m_blocks.size() - 1) ? lastBlockMask : fullBitMask; Block mask = (i == m_blocks.size() - 1) ? lastBlockMask : fullBitMask;
if (m_blocks[i] == mask) // The extra bits are set to zero, thus we can't test without proceeding with a mask if (m_blocks[i] == mask) // The extra bits are set to zero, thus we can't test without proceeding with a mask
@ -576,7 +576,7 @@ namespace Nz
if (m_blocks.empty()) if (m_blocks.empty())
return false; return false;
for (unsigned int i = 0; i < m_blocks.size(); ++i) for (std::size_t i = 0; i < m_blocks.size(); ++i)
{ {
if (m_blocks[i]) if (m_blocks[i])
return true; return true;
@ -612,7 +612,7 @@ namespace Nz
NazaraAssert(m_bitCount <= std::numeric_limits<T>::digits, "Bit count cannot be greater than T bit count"); NazaraAssert(m_bitCount <= std::numeric_limits<T>::digits, "Bit count cannot be greater than T bit count");
T value = 0; T value = 0;
for (unsigned int i = 0; i < m_blocks.size(); ++i) for (std::size_t i = 0; i < m_blocks.size(); ++i)
value |= static_cast<T>(m_blocks[i]) << i*bitsPerBlock; value |= static_cast<T>(m_blocks[i]) << i*bitsPerBlock;
return value; return value;
@ -628,7 +628,7 @@ namespace Nz
{ {
String str(m_bitCount, '0'); String str(m_bitCount, '0');
for (unsigned int i = 0; i < m_bitCount; ++i) for (std::size_t i = 0; i < m_bitCount; ++i)
{ {
if (Test(i)) if (Test(i))
str[m_bitCount - i - 1] = '1'; // Inversion de l'indice str[m_bitCount - i - 1] = '1'; // Inversion de l'indice
@ -648,7 +648,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::UnboundedReset(unsigned int bit) void Bitset<Block, Allocator>::UnboundedReset(std::size_t bit)
{ {
UnboundedSet(bit, false); UnboundedSet(bit, false);
} }
@ -665,7 +665,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
void Bitset<Block, Allocator>::UnboundedSet(unsigned int bit, bool val) void Bitset<Block, Allocator>::UnboundedSet(std::size_t bit, bool val)
{ {
if (bit < m_bitCount) if (bit < m_bitCount)
Set(bit, val); Set(bit, val);
@ -687,7 +687,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
bool Bitset<Block, Allocator>::UnboundedTest(unsigned int bit) const bool Bitset<Block, Allocator>::UnboundedTest(std::size_t bit) const
{ {
if (bit < m_bitCount) if (bit < m_bitCount)
return Test(bit); return Test(bit);
@ -816,13 +816,13 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindFirstFrom(unsigned int blockIndex) const std::size_t Bitset<Block, Allocator>::FindFirstFrom(std::size_t blockIndex) const
{ {
if (blockIndex >= m_blocks.size()) if (blockIndex >= m_blocks.size())
return npos; return npos;
// We are looking for the first non-null block // We are looking for the first non-null block
unsigned int i = blockIndex; std::size_t i = blockIndex;
for (; i < m_blocks.size(); ++i) for (; i < m_blocks.size(); ++i)
{ {
if (m_blocks[i]) if (m_blocks[i])
@ -868,7 +868,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::ComputeBlockCount(unsigned int bitCount) std::size_t Bitset<Block, Allocator>::ComputeBlockCount(std::size_t bitCount)
{ {
return GetBlockIndex(bitCount) + ((GetBitIndex(bitCount) != 0U) ? 1U : 0U); return GetBlockIndex(bitCount) + ((GetBitIndex(bitCount) != 0U) ? 1U : 0U);
} }
@ -879,7 +879,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBitIndex(unsigned int bit) std::size_t Bitset<Block, Allocator>::GetBitIndex(std::size_t bit)
{ {
return bit & (bitsPerBlock - 1U); // bit % bitsPerBlock return bit & (bitsPerBlock - 1U); // bit % bitsPerBlock
} }
@ -890,7 +890,7 @@ namespace Nz
*/ */
template<typename Block, class Allocator> template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBlockIndex(unsigned int bit) std::size_t Bitset<Block, Allocator>::GetBlockIndex(std::size_t bit)
{ {
return bit / bitsPerBlock; return bit / bitsPerBlock;
} }
@ -1106,18 +1106,18 @@ namespace Nz
const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs; const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs;
const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs; const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs;
unsigned int maxBlockCount = greater.GetBlockCount(); std::size_t maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount(); std::size_t minBlockCount = lesser.GetBlockCount();
// We test the blocks in common to check the equality of bits // We test the blocks in common to check the equality of bits
for (unsigned int i = 0; i < minBlockCount; ++i) for (std::size_t i = 0; i < minBlockCount; ++i)
{ {
if (lhs.GetBlock(i) != rhs.GetBlock(i)) if (lhs.GetBlock(i) != rhs.GetBlock(i))
return false; return false;
} }
// Now we check for the blocks that only the biggest bitset owns, and to be equal, they must be set to '0' // Now we check for the blocks that only the biggest bitset owns, and to be equal, they must be set to '0'
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i) for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
if (greater.GetBlock(i)) if (greater.GetBlock(i))
return false; return false;
@ -1152,20 +1152,20 @@ namespace Nz
const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs; const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs;
const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs; const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs;
unsigned int maxBlockCount = greater.GetBlockCount(); std::size_t maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount(); std::size_t minBlockCount = lesser.GetBlockCount();
// If the greatest bitset has a single bit active in a block outside the lesser bitset range, then it is greater // If the greatest bitset has a single bit active in a block outside the lesser bitset range, then it is greater
for (unsigned int i = maxBlockCount; i > minBlockCount; ++i) for (std::size_t i = maxBlockCount; i > minBlockCount; ++i)
{ {
if (greater.GetBlock(i)) if (greater.GetBlock(i))
return lhs.GetBlockCount() < rhs.GetBlockCount(); return lhs.GetBlockCount() < rhs.GetBlockCount();
} }
// Compare the common blocks // Compare the common blocks
for (unsigned int i = 0; i < minBlockCount; ++i) for (std::size_t i = 0; i < minBlockCount; ++i)
{ {
unsigned int index = (minBlockCount - i - 1); // Compare from the most significant block to the less significant block std::size_t index = (minBlockCount - i - 1); // Compare from the most significant block to the less significant block
if (lhs.GetBlock(index) < rhs.GetBlock(index)) if (lhs.GetBlock(index) < rhs.GetBlock(index))
return true; return true;
} }

View File

@ -33,8 +33,8 @@ namespace Nz
inline void SwapBytes(void* buffer, std::size_t size) inline void SwapBytes(void* buffer, std::size_t size)
{ {
UInt8* bytes = static_cast<UInt8*>(buffer); UInt8* bytes = static_cast<UInt8*>(buffer);
unsigned int i = 0; std::size_t i = 0;
unsigned int j = size - 1; std::size_t j = size - 1;
while (i < j) while (i < j)
std::swap(bytes[i++], bytes[j--]); std::swap(bytes[i++], bytes[j--]);

View File

@ -39,7 +39,7 @@ namespace Nz
static bool IsExtensionSupported(const String& extension); static bool IsExtensionSupported(const String& extension);
static bool LoadFromFile(Type* resource, const String& filePath, const Parameters& parameters = Parameters()); static bool LoadFromFile(Type* resource, const String& filePath, const Parameters& parameters = Parameters());
static bool LoadFromMemory(Type* resource, const void* data, unsigned int size, const Parameters& parameters = Parameters()); static bool LoadFromMemory(Type* resource, const void* data, std::size_t size, const Parameters& parameters = Parameters());
static bool LoadFromStream(Type* resource, Stream& stream, const Parameters& parameters = Parameters()); static bool LoadFromStream(Type* resource, Stream& stream, const Parameters& parameters = Parameters());
static void RegisterLoader(ExtensionGetter extensionGetter, StreamChecker checkFunc, StreamLoader streamLoader, FileLoader fileLoader = nullptr, MemoryLoader memoryLoader = nullptr); static void RegisterLoader(ExtensionGetter extensionGetter, StreamChecker checkFunc, StreamLoader streamLoader, FileLoader fileLoader = nullptr, MemoryLoader memoryLoader = nullptr);

View File

@ -160,7 +160,7 @@ namespace Nz
* \remark Produces a NazaraError if all loaders failed or no loader was found * \remark Produces a NazaraError if all loaders failed or no loader was found
*/ */
template<typename Type, typename Parameters> template<typename Type, typename Parameters>
bool ResourceLoader<Type, Parameters>::LoadFromMemory(Type* resource, const void* data, unsigned int size, const Parameters& parameters) bool ResourceLoader<Type, Parameters>::LoadFromMemory(Type* resource, const void* data, std::size_t size, const Parameters& parameters)
{ {
NazaraAssert(resource, "Invalid resource"); NazaraAssert(resource, "Invalid resource");
NazaraAssert(data, "Invalid data pointer"); NazaraAssert(data, "Invalid data pointer");

View File

@ -84,7 +84,7 @@ namespace Nz
bool Execute(const String& code); bool Execute(const String& code);
bool ExecuteFromFile(const String& filePath); bool ExecuteFromFile(const String& filePath);
bool ExecuteFromMemory(const void* data, unsigned int size); bool ExecuteFromMemory(const void* data, std::size_t size);
bool ExecuteFromStream(Stream& stream); bool ExecuteFromStream(Stream& stream);
int GetAbsIndex(int index) const; int GetAbsIndex(int index) const;
@ -142,10 +142,10 @@ namespace Nz
void PushNumber(double value) const; void PushNumber(double value) const;
void PushReference(int ref) const; void PushReference(int ref) const;
void PushString(const char* str) const; void PushString(const char* str) const;
void PushString(const char* str, unsigned int size) const; void PushString(const char* str, std::size_t size) const;
void PushString(const String& str) const; void PushString(const String& str) const;
void PushTable(unsigned int sequenceElementCount = 0, unsigned int arrayElementCount = 0) const; void PushTable(unsigned int sequenceElementCount = 0, unsigned int arrayElementCount = 0) const;
void* PushUserdata(unsigned int size) const; void* PushUserdata(std::size_t size) const;
void PushValue(int index) const; void PushValue(int index) const;
void Remove(int index) const; void Remove(int index) const;
@ -158,7 +158,7 @@ namespace Nz
void SetMetatable(const char* tname) const; void SetMetatable(const char* tname) const;
void SetMetatable(const String& tname) const; void SetMetatable(const String& tname) const;
void SetMetatable(int index) const; void SetMetatable(int index) const;
void SetMemoryLimit(UInt32 memoryLimit); void SetMemoryLimit(std::size_t memoryLimit);
void SetTable(int index = -3) const; void SetTable(int index = -3) const;
void SetTimeLimit(UInt32 timeLimit); void SetTimeLimit(UInt32 timeLimit);
@ -185,8 +185,8 @@ namespace Nz
static int ProxyFunc(lua_State* state); static int ProxyFunc(lua_State* state);
static void TimeLimiter(lua_State* state, lua_Debug* debug); static void TimeLimiter(lua_State* state, lua_Debug* debug);
UInt32 m_memoryLimit; std::size_t m_memoryLimit;
UInt32 m_memoryUsage; std::size_t m_memoryUsage;
UInt32 m_timeLimit; UInt32 m_timeLimit;
Clock m_clock; Clock m_clock;
String m_lastError; String m_lastError;

View File

@ -59,8 +59,8 @@ namespace Nz
unsigned int GetHeight(UInt8 level = 0) const; unsigned int GetHeight(UInt8 level = 0) const;
UInt8 GetLevelCount() const; UInt8 GetLevelCount() const;
UInt8 GetMaxLevel() const; UInt8 GetMaxLevel() const;
unsigned int GetMemoryUsage() const; std::size_t GetMemoryUsage() const;
unsigned int GetMemoryUsage(UInt8 level) const; std::size_t GetMemoryUsage(UInt8 level) const;
Vector3ui GetSize(UInt8 level = 0) const; Vector3ui GetSize(UInt8 level = 0) const;
ImageType GetType() const; ImageType GetType() const;
unsigned int GetWidth(UInt8 level = 0) const; unsigned int GetWidth(UInt8 level = 0) const;

View File

@ -29,7 +29,7 @@ namespace Nz
virtual void Clear() = 0; virtual void Clear() = 0;
virtual void Free(SparsePtr<const Rectui> rects, SparsePtr<unsigned int> layers, unsigned int count) = 0; virtual void Free(SparsePtr<const Rectui> rects, SparsePtr<unsigned int> layers, unsigned int count) = 0;
virtual AbstractImage* GetLayer(unsigned int layerIndex) const = 0; virtual AbstractImage* GetLayer(unsigned int layerIndex) const = 0;
virtual unsigned int GetLayerCount() const = 0; virtual std::size_t GetLayerCount() const = 0;
virtual UInt32 GetStorage() const = 0; virtual UInt32 GetStorage() const = 0;
virtual bool Insert(const Image& image, Rectui* rect, bool* flipped, unsigned int* layerIndex) = 0; virtual bool Insert(const Image& image, Rectui* rect, bool* flipped, unsigned int* layerIndex) = 0;

View File

@ -28,8 +28,8 @@ namespace Nz
virtual unsigned int GetHeight(UInt8 level = 0) const = 0; virtual unsigned int GetHeight(UInt8 level = 0) const = 0;
virtual UInt8 GetLevelCount() const = 0; virtual UInt8 GetLevelCount() const = 0;
virtual UInt8 GetMaxLevel() const = 0; virtual UInt8 GetMaxLevel() const = 0;
virtual unsigned int GetMemoryUsage() const = 0; virtual std::size_t GetMemoryUsage() const = 0;
virtual unsigned int GetMemoryUsage(UInt8 level) const = 0; virtual std::size_t GetMemoryUsage(UInt8 level) const = 0;
virtual Vector3ui GetSize(UInt8 level = 0) const = 0; virtual Vector3ui GetSize(UInt8 level = 0) const = 0;
virtual ImageType GetType() const = 0; virtual ImageType GetType() const = 0;
virtual unsigned int GetWidth(UInt8 level = 0) const = 0; virtual unsigned int GetWidth(UInt8 level = 0) const = 0;

View File

@ -27,10 +27,10 @@ namespace Nz
virtual ~AbstractTextDrawer(); virtual ~AbstractTextDrawer();
virtual const Recti& GetBounds() const = 0; virtual const Recti& GetBounds() const = 0;
virtual Font* GetFont(unsigned int index) const = 0; virtual Font* GetFont(std::size_t index) const = 0;
virtual unsigned int GetFontCount() const = 0; virtual std::size_t GetFontCount() const = 0;
virtual const Glyph& GetGlyph(unsigned int index) const = 0; virtual const Glyph& GetGlyph(std::size_t index) const = 0;
virtual unsigned int GetGlyphCount() const = 0; virtual std::size_t GetGlyphCount() const = 0;
struct Glyph struct Glyph
{ {

View File

@ -61,8 +61,8 @@ namespace Nz
bool ExtractGlyph(unsigned int characterSize, char32_t character, UInt32 style, FontGlyph* glyph) const; bool ExtractGlyph(unsigned int characterSize, char32_t character, UInt32 style, FontGlyph* glyph) const;
const std::shared_ptr<AbstractAtlas>& GetAtlas() const; const std::shared_ptr<AbstractAtlas>& GetAtlas() const;
unsigned int GetCachedGlyphCount(unsigned int characterSize, UInt32 style) const; std::size_t GetCachedGlyphCount(unsigned int characterSize, UInt32 style) const;
unsigned int GetCachedGlyphCount() const; std::size_t GetCachedGlyphCount() const;
String GetFamilyName() const; String GetFamilyName() const;
int GetKerning(unsigned int characterSize, char32_t first, char32_t second) const; int GetKerning(unsigned int characterSize, char32_t first, char32_t second) const;
const Glyph& GetGlyph(unsigned int characterSize, UInt32 style, char32_t character) const; const Glyph& GetGlyph(unsigned int characterSize, UInt32 style, char32_t character) const;

View File

@ -47,12 +47,12 @@ namespace Nz
Ternary Check(); Ternary Check();
unsigned int GetAnimatedComponentCount() const; std::size_t GetAnimatedComponentCount() const;
const Frame* GetFrames() const; const Frame* GetFrames() const;
unsigned int GetFrameCount() const; std::size_t GetFrameCount() const;
unsigned int GetFrameRate() const; std::size_t GetFrameRate() const;
const Joint* GetJoints() const; const Joint* GetJoints() const;
unsigned int GetJointCount() const; std::size_t GetJointCount() const;
bool Parse(); bool Parse();

View File

@ -58,9 +58,9 @@ namespace Nz
Ternary Check(); Ternary Check();
const Joint* GetJoints() const; const Joint* GetJoints() const;
unsigned int GetJointCount() const; std::size_t GetJointCount() const;
const Mesh* GetMeshes() const; const Mesh* GetMeshes() const;
unsigned int GetMeshCount() const; std::size_t GetMeshCount() const;
bool Parse(); bool Parse();

View File

@ -23,16 +23,17 @@ namespace Nz
GuillotineImageAtlas(); GuillotineImageAtlas();
virtual ~GuillotineImageAtlas(); virtual ~GuillotineImageAtlas();
void Clear(); void Clear() override;
void Free(SparsePtr<const Rectui> rects, SparsePtr<unsigned int> layers, unsigned int count);
void Free(SparsePtr<const Rectui> rects, SparsePtr<unsigned int> layers, unsigned int count) override;
GuillotineBinPack::FreeRectChoiceHeuristic GetRectChoiceHeuristic() const; GuillotineBinPack::FreeRectChoiceHeuristic GetRectChoiceHeuristic() const;
GuillotineBinPack::GuillotineSplitHeuristic GetRectSplitHeuristic() const; GuillotineBinPack::GuillotineSplitHeuristic GetRectSplitHeuristic() const;
AbstractImage* GetLayer(unsigned int layerIndex) const; AbstractImage* GetLayer(unsigned int layerIndex) const override;
unsigned int GetLayerCount() const; std::size_t GetLayerCount() const override;
UInt32 GetStorage() const; UInt32 GetStorage() const override;
bool Insert(const Image& image, Rectui* rect, bool* flipped, unsigned int* layerIndex); bool Insert(const Image& image, Rectui* rect, bool* flipped, unsigned int* layerIndex) override;
void SetRectChoiceHeuristic(GuillotineBinPack::FreeRectChoiceHeuristic heuristic); void SetRectChoiceHeuristic(GuillotineBinPack::FreeRectChoiceHeuristic heuristic);
void SetRectSplitHeuristic(GuillotineBinPack::GuillotineSplitHeuristic heuristic); void SetRectSplitHeuristic(GuillotineBinPack::GuillotineSplitHeuristic heuristic);

View File

@ -84,8 +84,8 @@ namespace Nz
unsigned int GetHeight(UInt8 level = 0) const; unsigned int GetHeight(UInt8 level = 0) const;
UInt8 GetLevelCount() const; UInt8 GetLevelCount() const;
UInt8 GetMaxLevel() const; UInt8 GetMaxLevel() const;
unsigned int GetMemoryUsage() const; std::size_t GetMemoryUsage() const;
unsigned int GetMemoryUsage(UInt8 level) const; std::size_t GetMemoryUsage(UInt8 level) const;
Color GetPixelColor(unsigned int x, unsigned int y = 0, unsigned int z = 0) const; Color GetPixelColor(unsigned int x, unsigned int y = 0, unsigned int z = 0) const;
UInt8* GetPixels(unsigned int x = 0, unsigned int y = 0, unsigned int z = 0, UInt8 level = 0); UInt8* GetPixels(unsigned int x = 0, unsigned int y = 0, unsigned int z = 0, UInt8 level = 0);
Vector3ui GetSize(UInt8 level = 0) const; Vector3ui GetSize(UInt8 level = 0) const;

View File

@ -100,7 +100,7 @@ namespace Nz
counter |= blueMask; counter |= blueMask;
counter |= alphaMask; counter |= alphaMask;
bitsPerPixel = counter.Count(); bitsPerPixel = static_cast<UInt8>(counter.Count());
} }
inline bool PixelFormatInfo::Validate() const inline bool PixelFormatInfo::Validate() const
@ -116,7 +116,7 @@ namespace Nz
for (unsigned int i = 0; i < 4; ++i) for (unsigned int i = 0; i < 4; ++i)
{ {
unsigned int usedBits = masks[i]->Count(); UInt8 usedBits = static_cast<UInt8>(masks[i]->Count());
if (usedBits == 0) if (usedBits == 0)
continue; continue;

View File

@ -32,10 +32,10 @@ namespace Nz
unsigned int GetCharacterSize() const; unsigned int GetCharacterSize() const;
const Color& GetColor() const; const Color& GetColor() const;
Font* GetFont() const; Font* GetFont() const;
Font* GetFont(unsigned int index) const override; Font* GetFont(std::size_t index) const override;
unsigned int GetFontCount() const override; std::size_t GetFontCount() const override;
const Glyph& GetGlyph(unsigned int index) const override; const Glyph& GetGlyph(std::size_t index) const override;
unsigned int GetGlyphCount() const override; std::size_t GetGlyphCount() const override;
UInt32 GetStyle() const; UInt32 GetStyle() const;
const String& GetText() const; const String& GetText() const;

View File

@ -96,7 +96,7 @@ namespace Nz
//UInt64 oldCursorPos = GetCursorPos(); //UInt64 oldCursorPos = GetCursorPos();
DWORD read = 0; DWORD read = 0;
if (ReadFile(m_handle, buffer, size, &read, nullptr)) if (ReadFile(m_handle, buffer, static_cast<DWORD>(size), &read, nullptr))
{ {
m_endOfFile = (read != size); m_endOfFile = (read != size);
m_endOfFileUpdated = true; m_endOfFileUpdated = true;
@ -191,9 +191,9 @@ namespace Nz
LARGE_INTEGER cursorPos; LARGE_INTEGER cursorPos;
cursorPos.QuadPart = GetCursorPos(); cursorPos.QuadPart = GetCursorPos();
LockFile(m_handle, cursorPos.LowPart, cursorPos.HighPart, size, 0); LockFile(m_handle, cursorPos.LowPart, cursorPos.HighPart, static_cast<DWORD>(size), 0);
WriteFile(m_handle, buffer, size, &written, nullptr); WriteFile(m_handle, buffer, static_cast<DWORD>(size), &written, nullptr);
UnlockFile(m_handle, cursorPos.LowPart, cursorPos.HighPart, size, 0); UnlockFile(m_handle, cursorPos.LowPart, cursorPos.HighPart, static_cast<DWORD>(size), 0);
m_endOfFileUpdated = false; m_endOfFileUpdated = false;

View File

@ -24,7 +24,7 @@ namespace Nz
} }
#endif #endif
s_workerCount = workerCount; s_workerCount = static_cast<DWORD>(workerCount);
s_doneEvents.reset(new HANDLE[workerCount]); s_doneEvents.reset(new HANDLE[workerCount]);
s_workers.reset(new Worker[workerCount]); s_workers.reset(new Worker[workerCount]);
s_workerThreads.reset(new HANDLE[workerCount]); s_workerThreads.reset(new HANDLE[workerCount]);
@ -64,7 +64,7 @@ namespace Nz
// On s'assure que des tâches ne sont pas déjà en cours // On s'assure que des tâches ne sont pas déjà en cours
WaitForMultipleObjects(s_workerCount, &s_doneEvents[0], true, INFINITE); WaitForMultipleObjects(s_workerCount, &s_doneEvents[0], true, INFINITE);
std::ldiv_t div = std::ldiv(count, s_workerCount); // Division et modulo en une opération, y'a pas de petit profit std::lldiv_t div = std::lldiv(count, s_workerCount); // Division et modulo en une opération, y'a pas de petit profit
for (std::size_t i = 0; i < s_workerCount; ++i) for (std::size_t i = 0; i < s_workerCount; ++i)
{ {
// On va maintenant répartir les tâches entre chaque worker et les envoyer dans la queue de chacun // On va maintenant répartir les tâches entre chaque worker et les envoyer dans la queue de chacun
@ -78,7 +78,7 @@ namespace Nz
} }
// On les lance une fois qu'ils sont tous initialisés (pour éviter qu'un worker ne passe en pause détectant une absence de travaux) // On les lance une fois qu'ils sont tous initialisés (pour éviter qu'un worker ne passe en pause détectant une absence de travaux)
for (unsigned int i = 0; i < s_workerCount; ++i) for (std::size_t i = 0; i < s_workerCount; ++i)
{ {
ResetEvent(s_doneEvents[i]); ResetEvent(s_doneEvents[i]);
SetEvent(s_workers[i].wakeEvent); SetEvent(s_workers[i].wakeEvent);
@ -244,5 +244,5 @@ namespace Nz
std::unique_ptr<HANDLE[]> TaskSchedulerImpl::s_doneEvents; // Doivent être contigus std::unique_ptr<HANDLE[]> TaskSchedulerImpl::s_doneEvents; // Doivent être contigus
std::unique_ptr<TaskSchedulerImpl::Worker[]> TaskSchedulerImpl::s_workers; std::unique_ptr<TaskSchedulerImpl::Worker[]> TaskSchedulerImpl::s_workers;
std::unique_ptr<HANDLE[]> TaskSchedulerImpl::s_workerThreads; // Doivent être contigus std::unique_ptr<HANDLE[]> TaskSchedulerImpl::s_workerThreads; // Doivent être contigus
std::size_t TaskSchedulerImpl::s_workerCount; DWORD TaskSchedulerImpl::s_workerCount;
} }

View File

@ -44,7 +44,7 @@ namespace Nz
static std::unique_ptr<HANDLE[]> s_doneEvents; // Doivent être contigus static std::unique_ptr<HANDLE[]> s_doneEvents; // Doivent être contigus
static std::unique_ptr<Worker[]> s_workers; static std::unique_ptr<Worker[]> s_workers;
static std::unique_ptr<HANDLE[]> s_workerThreads; // Doivent être contigus static std::unique_ptr<HANDLE[]> s_workerThreads; // Doivent être contigus
static std::size_t s_workerCount; static DWORD s_workerCount;
}; };
} }

View File

@ -64,8 +64,8 @@ namespace Nz
pair.second.used = false; pair.second.used = false;
// ... until they are marked as used by the drawer // ... until they are marked as used by the drawer
unsigned int fontCount = drawer.GetFontCount(); std::size_t fontCount = drawer.GetFontCount();
for (unsigned int i = 0; i < fontCount; ++i) for (std::size_t i = 0; i < fontCount; ++i)
{ {
Font* font = drawer.GetFont(i); Font* font = drawer.GetFont(i);
const AbstractAtlas* atlas = font->GetAtlas().get(); const AbstractAtlas* atlas = font->GetAtlas().get();
@ -95,7 +95,7 @@ namespace Nz
++atlasIt; ++atlasIt;
} }
unsigned int glyphCount = drawer.GetGlyphCount(); std::size_t glyphCount = drawer.GetGlyphCount();
m_localVertices.resize(glyphCount * 4); m_localVertices.resize(glyphCount * 4);
// Reset glyph count for every texture to zero // Reset glyph count for every texture to zero
@ -105,7 +105,7 @@ namespace Nz
// Count glyph count for each texture // Count glyph count for each texture
Texture* lastTexture = nullptr; Texture* lastTexture = nullptr;
unsigned int* count = nullptr; unsigned int* count = nullptr;
for (unsigned int i = 0; i < glyphCount; ++i) for (std::size_t i = 0; i < glyphCount; ++i)
{ {
const AbstractTextDrawer::Glyph& glyph = drawer.GetGlyph(i); const AbstractTextDrawer::Glyph& glyph = drawer.GetGlyph(i);

View File

@ -401,7 +401,7 @@ namespace Nz
return false; return false;
} }
unsigned int length = static_cast<unsigned int>(file.GetSize()); std::size_t length = static_cast<std::size_t>(file.GetSize());
String source(length, '\0'); String source(length, '\0');
@ -416,7 +416,7 @@ namespace Nz
return Execute(source); return Execute(source);
} }
bool LuaInstance::ExecuteFromMemory(const void* data, unsigned int size) bool LuaInstance::ExecuteFromMemory(const void* data, std::size_t size)
{ {
MemoryView stream(data, size); MemoryView stream(data, size);
return ExecuteFromStream(stream); return ExecuteFromStream(stream);
@ -679,7 +679,7 @@ namespace Nz
lua_pushstring(m_state, str); lua_pushstring(m_state, str);
} }
void LuaInstance::PushString(const char* str, unsigned int size) const void LuaInstance::PushString(const char* str, std::size_t size) const
{ {
lua_pushlstring(m_state, str, size); lua_pushlstring(m_state, str, size);
} }
@ -694,7 +694,7 @@ namespace Nz
lua_createtable(m_state, sequenceElementCount, arrayElementCount); lua_createtable(m_state, sequenceElementCount, arrayElementCount);
} }
void* LuaInstance::PushUserdata(unsigned int size) const void* LuaInstance::PushUserdata(std::size_t size) const
{ {
return lua_newuserdata(m_state, size); return lua_newuserdata(m_state, size);
} }
@ -749,7 +749,7 @@ namespace Nz
lua_setmetatable(m_state, index); lua_setmetatable(m_state, index);
} }
void LuaInstance::SetMemoryLimit(UInt32 memoryLimit) void LuaInstance::SetMemoryLimit(std::size_t memoryLimit)
{ {
m_memoryLimit = memoryLimit; m_memoryLimit = memoryLimit;
} }
@ -860,8 +860,8 @@ namespace Nz
void* LuaInstance::MemoryAllocator(void* ud, void* ptr, std::size_t osize, std::size_t nsize) void* LuaInstance::MemoryAllocator(void* ud, void* ptr, std::size_t osize, std::size_t nsize)
{ {
LuaInstance* instance = static_cast<LuaInstance*>(ud); LuaInstance* instance = static_cast<LuaInstance*>(ud);
UInt32& memoryLimit = instance->m_memoryLimit; std::size_t& memoryLimit = instance->m_memoryLimit;
UInt32& memoryUsage = instance->m_memoryUsage; std::size_t& memoryUsage = instance->m_memoryUsage;
if (nsize == 0) if (nsize == 0)
{ {
@ -872,7 +872,7 @@ namespace Nz
} }
else else
{ {
UInt32 usage = memoryUsage + nsize; std::size_t usage = memoryUsage + nsize;
if (ptr) if (ptr)
usage -= osize; usage -= osize;

View File

@ -56,7 +56,7 @@ namespace Nz
std::array<char, NI_MAXHOST> hostnameBuffer; std::array<char, NI_MAXHOST> hostnameBuffer;
std::array<char, NI_MAXSERV> serviceBuffer; std::array<char, NI_MAXSERV> serviceBuffer;
int result = getnameinfo(socketAddress, socketLen, hostnameBuffer.data(), hostnameBuffer.size(), serviceBuffer.data(), serviceBuffer.size(), flags); int result = getnameinfo(socketAddress, socketLen, hostnameBuffer.data(), static_cast<std::size_t>(hostnameBuffer.size()), serviceBuffer.data(), static_cast<std::size_t>(serviceBuffer.size()), flags);
if (result == 0) if (result == 0)
{ {
if (hostname) if (hostname)

View File

@ -328,7 +328,7 @@ namespace Nz
return code == TRUE; return code == TRUE;
} }
unsigned int SocketImpl::QueryMaxDatagramSize(SocketHandle handle, SocketError* error) std::size_t SocketImpl::QueryMaxDatagramSize(SocketHandle handle, SocketError* error)
{ {
unsigned int code; unsigned int code;
int codeLength = sizeof(code); int codeLength = sizeof(code);

View File

@ -227,7 +227,8 @@ namespace Nz
} }
GLenum type; GLenum type;
UInt8* offset = reinterpret_cast<UInt8*>(s_indexBuffer->GetStartOffset()); UInt8* offset = nullptr;
offset += s_indexBuffer->GetStartOffset();
if (s_indexBuffer->HasLargeIndices()) if (s_indexBuffer->HasLargeIndices())
{ {
@ -290,7 +291,8 @@ namespace Nz
} }
GLenum type; GLenum type;
UInt8* offset = reinterpret_cast<UInt8*>(s_indexBuffer->GetStartOffset()); UInt8* offset = nullptr;
offset += s_indexBuffer->GetStartOffset();
if (s_indexBuffer->HasLargeIndices()) if (s_indexBuffer->HasLargeIndices())
{ {

View File

@ -364,7 +364,7 @@ namespace Nz
return Image::GetMaxLevel(m_impl->type, m_impl->width, m_impl->height, m_impl->depth); return Image::GetMaxLevel(m_impl->type, m_impl->width, m_impl->height, m_impl->depth);
} }
unsigned int Texture::GetMemoryUsage() const std::size_t Texture::GetMemoryUsage() const
{ {
#if NAZARA_RENDERER_SAFE #if NAZARA_RENDERER_SAFE
if (!m_impl) if (!m_impl)
@ -399,7 +399,7 @@ namespace Nz
return size * PixelFormat::GetBytesPerPixel(m_impl->format); return size * PixelFormat::GetBytesPerPixel(m_impl->format);
} }
unsigned int Texture::GetMemoryUsage(UInt8 level) const std::size_t Texture::GetMemoryUsage(UInt8 level) const
{ {
#if NAZARA_UTILITY_SAFE #if NAZARA_UTILITY_SAFE
if (!m_impl) if (!m_impl)

View File

@ -127,7 +127,7 @@ namespace Nz
return m_atlas; return m_atlas;
} }
unsigned int Font::GetCachedGlyphCount(unsigned int characterSize, UInt32 style) const std::size_t Font::GetCachedGlyphCount(unsigned int characterSize, UInt32 style) const
{ {
UInt64 key = ComputeKey(characterSize, style); UInt64 key = ComputeKey(characterSize, style);
auto it = m_glyphes.find(key); auto it = m_glyphes.find(key);
@ -137,9 +137,9 @@ namespace Nz
return it->second.size(); return it->second.size();
} }
unsigned int Font::GetCachedGlyphCount() const std::size_t Font::GetCachedGlyphCount() const
{ {
unsigned int count = 0; std::size_t count = 0;
for (auto& pair : m_glyphes) for (auto& pair : m_glyphes)
count += pair.second.size(); count += pair.second.size();

View File

@ -37,10 +37,10 @@ namespace Nz
} }
const MD5AnimParser::Frame* frames = parser.GetFrames(); const MD5AnimParser::Frame* frames = parser.GetFrames();
unsigned int frameCount = parser.GetFrameCount(); std::size_t frameCount = parser.GetFrameCount();
unsigned int frameRate = parser.GetFrameRate(); std::size_t frameRate = parser.GetFrameRate();
const MD5AnimParser::Joint* joints = parser.GetJoints(); const MD5AnimParser::Joint* joints = parser.GetJoints();
unsigned int jointCount = parser.GetJointCount(); std::size_t jointCount = parser.GetJointCount();
// À ce stade, nous sommes censés avoir assez d'informations pour créer l'animation // À ce stade, nous sommes censés avoir assez d'informations pour créer l'animation
animation->CreateSkeletal(frameCount, jointCount); animation->CreateSkeletal(frameCount, jointCount);
@ -59,10 +59,10 @@ namespace Nz
Quaternionf rotationQuat = Quaternionf::RotationBetween(Vector3f::UnitX(), Vector3f::Forward()) * Quaternionf rotationQuat = Quaternionf::RotationBetween(Vector3f::UnitX(), Vector3f::Forward()) *
Quaternionf::RotationBetween(Vector3f::UnitZ(), Vector3f::Up()); Quaternionf::RotationBetween(Vector3f::UnitZ(), Vector3f::Up());
for (unsigned int i = 0; i < jointCount; ++i) for (std::size_t i = 0; i < jointCount; ++i)
{ {
int parent = joints[i].parent; int parent = joints[i].parent;
for (unsigned int j = 0; j < frameCount; ++j) for (std::size_t j = 0; j < frameCount; ++j)
{ {
SequenceJoint& sequenceJoint = sequenceJoints[j*jointCount + i]; SequenceJoint& sequenceJoint = sequenceJoints[j*jointCount + i];

View File

@ -48,7 +48,7 @@ namespace Nz
return Ternary_False; return Ternary_False;
} }
unsigned int MD5AnimParser::GetAnimatedComponentCount() const std::size_t MD5AnimParser::GetAnimatedComponentCount() const
{ {
return m_animatedComponents.size(); return m_animatedComponents.size();
} }
@ -58,12 +58,12 @@ namespace Nz
return m_frames.data(); return m_frames.data();
} }
unsigned int MD5AnimParser::GetFrameCount() const std::size_t MD5AnimParser::GetFrameCount() const
{ {
return m_frames.size(); return m_frames.size();
} }
unsigned int MD5AnimParser::GetFrameRate() const std::size_t MD5AnimParser::GetFrameRate() const
{ {
return m_frameRate; return m_frameRate;
} }
@ -73,7 +73,7 @@ namespace Nz
return m_joints.data(); return m_joints.data();
} }
unsigned int MD5AnimParser::GetJointCount() const std::size_t MD5AnimParser::GetJointCount() const
{ {
return m_joints.size(); return m_joints.size();
} }

View File

@ -53,15 +53,15 @@ namespace Nz
const MD5MeshParser::Joint* joints = parser.GetJoints(); const MD5MeshParser::Joint* joints = parser.GetJoints();
const MD5MeshParser::Mesh* meshes = parser.GetMeshes(); const MD5MeshParser::Mesh* meshes = parser.GetMeshes();
unsigned int jointCount = parser.GetJointCount(); std::size_t jointCount = parser.GetJointCount();
unsigned int meshCount = parser.GetMeshCount(); std::size_t meshCount = parser.GetMeshCount();
if (parameters.animated) if (parameters.animated)
{ {
mesh->CreateSkeletal(jointCount); mesh->CreateSkeletal(jointCount);
Skeleton* skeleton = mesh->GetSkeleton(); Skeleton* skeleton = mesh->GetSkeleton();
for (unsigned int i = 0; i < jointCount; ++i) for (std::size_t i = 0; i < jointCount; ++i)
{ {
Joint* joint = skeleton->GetJoint(i); Joint* joint = skeleton->GetJoint(i);
@ -82,12 +82,12 @@ namespace Nz
} }
mesh->SetMaterialCount(meshCount); mesh->SetMaterialCount(meshCount);
for (unsigned int i = 0; i < meshCount; ++i) for (std::size_t i = 0; i < meshCount; ++i)
{ {
const MD5MeshParser::Mesh& md5Mesh = meshes[i]; const MD5MeshParser::Mesh& md5Mesh = meshes[i];
unsigned int indexCount = md5Mesh.triangles.size()*3; std::size_t indexCount = md5Mesh.triangles.size()*3;
unsigned int vertexCount = md5Mesh.vertices.size(); std::size_t vertexCount = md5Mesh.vertices.size();
bool largeIndices = (vertexCount > std::numeric_limits<UInt16>::max()); bool largeIndices = (vertexCount > std::numeric_limits<UInt16>::max());
@ -227,11 +227,11 @@ namespace Nz
} }
mesh->SetMaterialCount(meshCount); mesh->SetMaterialCount(meshCount);
for (unsigned int i = 0; i < meshCount; ++i) for (std::size_t i = 0; i < meshCount; ++i)
{ {
const MD5MeshParser::Mesh& md5Mesh = meshes[i]; const MD5MeshParser::Mesh& md5Mesh = meshes[i];
unsigned int indexCount = md5Mesh.triangles.size()*3; std::size_t indexCount = md5Mesh.triangles.size()*3;
unsigned int vertexCount = md5Mesh.vertices.size(); std::size_t vertexCount = md5Mesh.vertices.size();
// Index buffer // Index buffer
bool largeIndices = (vertexCount > std::numeric_limits<UInt16>::max()); bool largeIndices = (vertexCount > std::numeric_limits<UInt16>::max());

View File

@ -58,7 +58,7 @@ namespace Nz
return m_joints.data(); return m_joints.data();
} }
unsigned int MD5MeshParser::GetJointCount() const std::size_t MD5MeshParser::GetJointCount() const
{ {
return m_joints.size(); return m_joints.size();
} }
@ -68,7 +68,7 @@ namespace Nz
return m_meshes.data(); return m_meshes.data();
} }
unsigned int MD5MeshParser::GetMeshCount() const std::size_t MD5MeshParser::GetMeshCount() const
{ {
return m_meshes.size(); return m_meshes.size();
} }

View File

@ -70,7 +70,7 @@ namespace Nz
return layer.image.get(); return layer.image.get();
} }
unsigned int GuillotineImageAtlas::GetLayerCount() const std::size_t GuillotineImageAtlas::GetLayerCount() const
{ {
return m_layers.size(); return m_layers.size();
} }

View File

@ -666,7 +666,7 @@ namespace Nz
return GetMaxLevel(m_sharedImage->type, m_sharedImage->width, m_sharedImage->height, m_sharedImage->depth); return GetMaxLevel(m_sharedImage->type, m_sharedImage->width, m_sharedImage->height, m_sharedImage->depth);
} }
unsigned int Image::GetMemoryUsage() const std::size_t Image::GetMemoryUsage() const
{ {
unsigned int width = m_sharedImage->width; unsigned int width = m_sharedImage->width;
unsigned int height = m_sharedImage->height; unsigned int height = m_sharedImage->height;
@ -693,7 +693,7 @@ namespace Nz
return size * PixelFormat::GetBytesPerPixel(m_sharedImage->format); return size * PixelFormat::GetBytesPerPixel(m_sharedImage->format);
} }
unsigned int Image::GetMemoryUsage(UInt8 level) const std::size_t Image::GetMemoryUsage(UInt8 level) const
{ {
return PixelFormat::ComputeSize(m_sharedImage->format, GetLevelSize(m_sharedImage->width, level), GetLevelSize(m_sharedImage->height, level), ((m_sharedImage->type == ImageType_Cubemap) ? 6 : GetLevelSize(m_sharedImage->depth, level))); return PixelFormat::ComputeSize(m_sharedImage->format, GetLevelSize(m_sharedImage->width, level), GetLevelSize(m_sharedImage->height, level), ((m_sharedImage->type == ImageType_Cubemap) ? 6 : GetLevelSize(m_sharedImage->depth, level)));
} }

View File

@ -72,19 +72,19 @@ namespace Nz
return m_font; return m_font;
} }
Font* SimpleTextDrawer::GetFont(unsigned int index) const Font* SimpleTextDrawer::GetFont(std::size_t index) const
{ {
NazaraAssert(index == 0, "Font index out of range"); NazaraAssert(index == 0, "Font index out of range");
return m_font; return m_font;
} }
unsigned int SimpleTextDrawer::GetFontCount() const std::size_t SimpleTextDrawer::GetFontCount() const
{ {
return 1; return 1;
} }
const AbstractTextDrawer::Glyph& SimpleTextDrawer::GetGlyph(unsigned int index) const const AbstractTextDrawer::Glyph& SimpleTextDrawer::GetGlyph(std::size_t index) const
{ {
if (!m_glyphUpdated) if (!m_glyphUpdated)
UpdateGlyphs(); UpdateGlyphs();
@ -94,7 +94,7 @@ namespace Nz
return m_glyphs[index]; return m_glyphs[index];
} }
unsigned int SimpleTextDrawer::GetGlyphCount() const std::size_t SimpleTextDrawer::GetGlyphCount() const
{ {
if (!m_glyphUpdated) if (!m_glyphUpdated)
UpdateGlyphs(); UpdateGlyphs();

View File

@ -394,7 +394,7 @@ namespace Nz
void WindowImpl::SetMaximumSize(int width, int height) void WindowImpl::SetMaximumSize(int width, int height)
{ {
RECT rect = {0, 0, width, height}; RECT rect = {0, 0, width, height};
AdjustWindowRect(&rect, GetWindowLongPtr(m_handle, GWL_STYLE), false); AdjustWindowRect(&rect, static_cast<DWORD>(GetWindowLongPtr(m_handle, GWL_STYLE)), false);
if (width != -1) if (width != -1)
m_maxSize.x = rect.right-rect.left; m_maxSize.x = rect.right-rect.left;
@ -410,7 +410,7 @@ namespace Nz
void WindowImpl::SetMinimumSize(int width, int height) void WindowImpl::SetMinimumSize(int width, int height)
{ {
RECT rect = {0, 0, width, height}; RECT rect = {0, 0, width, height};
AdjustWindowRect(&rect, GetWindowLongPtr(m_handle, GWL_STYLE), false); AdjustWindowRect(&rect, static_cast<DWORD>(GetWindowLongPtr(m_handle, GWL_STYLE)), false);
if (width != -1) if (width != -1)
m_minSize.x = rect.right-rect.left; m_minSize.x = rect.right-rect.left;
@ -432,7 +432,7 @@ namespace Nz
{ {
// SetWindowPos demande la taille totale de la fenêtre // SetWindowPos demande la taille totale de la fenêtre
RECT rect = {0, 0, static_cast<LONG>(width), static_cast<LONG>(height)}; RECT rect = {0, 0, static_cast<LONG>(width), static_cast<LONG>(height)};
AdjustWindowRect(&rect, GetWindowLongPtr(m_handle, GWL_STYLE), false); AdjustWindowRect(&rect, static_cast<DWORD>(GetWindowLongPtr(m_handle, GWL_STYLE)), false);
SetWindowPos(m_handle, nullptr, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE | SWP_NOZORDER); SetWindowPos(m_handle, nullptr, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE | SWP_NOZORDER);
} }