Merge branch 'master' into reflection-mapping
This commit is contained in:
commit
496cdfd32c
|
|
@ -10,8 +10,8 @@ namespace Ndk
|
|||
{
|
||||
inline BaseWidget::BaseWidget() :
|
||||
m_canvasIndex(InvalidCanvasIndex),
|
||||
m_backgroundColor(Nz::Color(230, 230, 230, 255)),
|
||||
m_canvas(nullptr),
|
||||
m_backgroundColor(Nz::Color(230, 230, 230, 255)),
|
||||
m_cursor(Nz::SystemCursor_Default),
|
||||
m_contentSize(50.f, 50.f),
|
||||
m_widgetParent(nullptr),
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ namespace Ndk
|
|||
inline CameraComponent::CameraComponent(const CameraComponent& camera) :
|
||||
Component(camera),
|
||||
AbstractViewer(camera),
|
||||
HandledObject(camera),
|
||||
m_visibilityHash(camera.m_visibilityHash),
|
||||
m_projectionType(camera.m_projectionType),
|
||||
m_targetRegion(camera.m_targetRegion),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Ndk
|
|||
|
||||
//virtual ButtonWidget* Clone() const = 0;
|
||||
|
||||
void ResizeToContent();
|
||||
void ResizeToContent() override;
|
||||
|
||||
inline void UpdateText(const Nz::AbstractTextDrawer& drawer);
|
||||
|
||||
|
|
@ -40,7 +40,6 @@ namespace Ndk
|
|||
void Layout() override;
|
||||
|
||||
void OnMouseEnter() override;
|
||||
void OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
|
||||
void OnMouseButtonRelease(int x, int y, Nz::Mouse::Button button) override;
|
||||
void OnMouseExit() override;
|
||||
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ namespace Ndk
|
|||
void Console::ExecuteInput()
|
||||
{
|
||||
Nz::String input = m_inputDrawer.GetText();
|
||||
Nz::String inputCmd = input.SubString(s_inputPrefixSize);;
|
||||
Nz::String inputCmd = input.SubString(s_inputPrefixSize);
|
||||
m_inputDrawer.SetText(s_inputPrefix);
|
||||
|
||||
if (m_commandHistory.empty() || m_commandHistory.back() != inputCmd)
|
||||
|
|
|
|||
|
|
@ -96,23 +96,23 @@ namespace Ndk
|
|||
|
||||
entity.BindMethod("AddComponent", [this] (Nz::LuaInstance& instance, EntityHandle& handle, std::size_t /*argumentCount*/) -> int
|
||||
{
|
||||
LuaBinding::ComponentBinding* binding = m_binding.QueryComponentIndex(instance);
|
||||
LuaBinding::ComponentBinding* bindingComponent = m_binding.QueryComponentIndex(instance);
|
||||
|
||||
return binding->adder(instance, handle);
|
||||
return bindingComponent->adder(instance, handle);
|
||||
});
|
||||
|
||||
entity.BindMethod("GetComponent", [this] (Nz::LuaInstance& instance, EntityHandle& handle, std::size_t /*argumentCount*/) -> int
|
||||
{
|
||||
LuaBinding::ComponentBinding* binding = m_binding.QueryComponentIndex(instance);
|
||||
LuaBinding::ComponentBinding* bindingComponent = m_binding.QueryComponentIndex(instance);
|
||||
|
||||
return binding->getter(instance, handle->GetComponent(binding->index));
|
||||
return bindingComponent->getter(instance, handle->GetComponent(bindingComponent->index));
|
||||
});
|
||||
|
||||
entity.BindMethod("RemoveComponent", [this] (Nz::LuaInstance& instance, EntityHandle& handle, std::size_t /*argumentCount*/) -> int
|
||||
{
|
||||
LuaBinding::ComponentBinding* binding = m_binding.QueryComponentIndex(instance);
|
||||
LuaBinding::ComponentBinding* bindingComponent = m_binding.QueryComponentIndex(instance);
|
||||
|
||||
handle->RemoveComponent(binding->index);
|
||||
handle->RemoveComponent(bindingComponent->index);
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,10 +61,7 @@ namespace Ndk
|
|||
m_gradientSprite->SetColor(Nz::Color(128, 128, 128));
|
||||
}
|
||||
|
||||
void ButtonWidget::OnMouseMoved(int x, int y, int deltaX, int deltaY)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void ButtonWidget::OnMouseExit()
|
||||
{
|
||||
m_gradientSprite->SetColor(Nz::Color(74, 74, 74));
|
||||
|
|
|
|||
|
|
@ -43,27 +43,27 @@ namespace Nz
|
|||
bool Create(SoundStream* soundStream);
|
||||
void Destroy();
|
||||
|
||||
void EnableLooping(bool loop);
|
||||
void EnableLooping(bool loop) override;
|
||||
|
||||
UInt32 GetDuration() const;
|
||||
UInt32 GetDuration() const override;
|
||||
AudioFormat GetFormat() const;
|
||||
UInt32 GetPlayingOffset() const;
|
||||
UInt32 GetPlayingOffset() const override;
|
||||
UInt64 GetSampleCount() const;
|
||||
UInt32 GetSampleRate() const;
|
||||
SoundStatus GetStatus() const;
|
||||
SoundStatus GetStatus() const override;
|
||||
|
||||
bool IsLooping() const;
|
||||
bool IsLooping() const override;
|
||||
|
||||
bool OpenFromFile(const String& filePath, const MusicParams& params = MusicParams());
|
||||
bool OpenFromMemory(const void* data, std::size_t size, const MusicParams& params = MusicParams());
|
||||
bool OpenFromStream(Stream& stream, const MusicParams& params = MusicParams());
|
||||
|
||||
void Pause();
|
||||
void Play();
|
||||
void Pause() override;
|
||||
void Play() override;
|
||||
|
||||
void SetPlayingOffset(UInt32 offset);
|
||||
|
||||
void Stop();
|
||||
void Stop() override;
|
||||
|
||||
Music& operator=(const Music&) = delete;
|
||||
Music& operator=(Music&&) = delete; ///TODO
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ namespace Nz
|
|||
Sound(Sound&&) = default;
|
||||
~Sound();
|
||||
|
||||
void EnableLooping(bool loop);
|
||||
void EnableLooping(bool loop) override;
|
||||
|
||||
const SoundBuffer* GetBuffer() const;
|
||||
UInt32 GetDuration() const;
|
||||
UInt32 GetPlayingOffset() const;
|
||||
SoundStatus GetStatus() const;
|
||||
UInt32 GetDuration() const override;
|
||||
UInt32 GetPlayingOffset() const override;
|
||||
SoundStatus GetStatus() const override;
|
||||
|
||||
bool IsLooping() const;
|
||||
bool IsLooping() const override;
|
||||
bool IsPlayable() const;
|
||||
bool IsPlaying() const;
|
||||
|
||||
|
|
@ -38,13 +38,13 @@ namespace Nz
|
|||
bool LoadFromMemory(const void* data, std::size_t size, const SoundBufferParams& params = SoundBufferParams());
|
||||
bool LoadFromStream(Stream& stream, const SoundBufferParams& params = SoundBufferParams());
|
||||
|
||||
void Pause();
|
||||
void Play();
|
||||
void Pause() override;
|
||||
void Play() override;
|
||||
|
||||
void SetBuffer(const SoundBuffer* buffer);
|
||||
void SetPlayingOffset(UInt32 offset);
|
||||
|
||||
void Stop();
|
||||
void Stop() override;
|
||||
|
||||
Sound& operator=(const Sound&) = delete; ///TODO?
|
||||
Sound& operator=(Sound&&) = default;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Nz
|
|||
ByteStream(const void* ptr, Nz::UInt64 size);
|
||||
ByteStream(const ByteStream&) = delete;
|
||||
inline ByteStream(ByteStream&& stream);
|
||||
~ByteStream();
|
||||
virtual ~ByteStream();
|
||||
|
||||
inline Endianness GetDataEndianness() const;
|
||||
inline Nz::UInt64 GetSize() const;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace Nz
|
|||
{
|
||||
FunctorWithoutArgs(F func);
|
||||
|
||||
void Run();
|
||||
void Run() override;
|
||||
|
||||
private:
|
||||
F m_func;
|
||||
|
|
@ -36,7 +36,7 @@ namespace Nz
|
|||
{
|
||||
FunctorWithArgs(F func, Args&&... args);
|
||||
|
||||
void Run();
|
||||
void Run() override;
|
||||
|
||||
private:
|
||||
F m_func;
|
||||
|
|
@ -48,7 +48,7 @@ namespace Nz
|
|||
{
|
||||
MemberWithoutArgs(void (C::*func)(), C* object);
|
||||
|
||||
void Run();
|
||||
void Run() override;
|
||||
|
||||
private:
|
||||
void (C::*m_func)();
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ namespace Nz
|
|||
ColorBackground(const ColorBackground&) = default;
|
||||
ColorBackground(ColorBackground&&) = delete;
|
||||
|
||||
void Draw(const AbstractViewer* viewer) const;
|
||||
void Draw(const AbstractViewer* viewer) const override;
|
||||
|
||||
BackgroundType GetBackgroundType() const;
|
||||
BackgroundType GetBackgroundType() const override;
|
||||
Color GetColor() const;
|
||||
|
||||
void SetColor(const Color& color);
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ namespace Nz
|
|||
float GetBrightThreshold() const;
|
||||
Texture* GetTexture(unsigned int i) const;
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Resize(const Vector2ui& dimensions);
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
bool Resize(const Vector2ui& dimensions) override;
|
||||
|
||||
void SetBlurPassCount(unsigned int passCount);
|
||||
void SetBrightLuminance(float luminance);
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ namespace Nz
|
|||
DeferredDOFPass();
|
||||
virtual ~DeferredDOFPass();
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Resize(const Vector2ui& dimensions);
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
bool Resize(const Vector2ui& dimensions) override;
|
||||
|
||||
protected:
|
||||
RenderTexture m_dofRTT;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Nz
|
|||
DeferredFXAAPass();
|
||||
virtual ~DeferredFXAAPass();
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
|
||||
protected:
|
||||
RenderStates m_states;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Nz
|
|||
DeferredFinalPass();
|
||||
virtual ~DeferredFinalPass();
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
|
||||
protected:
|
||||
RenderStates m_states;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Nz
|
|||
DeferredFogPass();
|
||||
virtual ~DeferredFogPass();
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
|
||||
protected:
|
||||
RenderStates m_states;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ namespace Nz
|
|||
DeferredForwardPass();
|
||||
virtual ~DeferredForwardPass();
|
||||
|
||||
void Initialize(DeferredRenderTechnique* technique);
|
||||
bool Process(const SceneData& sceneData, unsigned int workTexture, unsigned int sceneTexture) const;
|
||||
void Initialize(DeferredRenderTechnique* technique) override;
|
||||
bool Process(const SceneData& sceneData, unsigned int workTexture, unsigned int sceneTexture) const override;
|
||||
|
||||
protected:
|
||||
const ForwardRenderTechnique* m_forwardTechnique;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ namespace Nz
|
|||
DeferredGeometryPass();
|
||||
virtual ~DeferredGeometryPass();
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Resize(const Vector2ui& dimensions);
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
bool Resize(const Vector2ui& dimensions) override;
|
||||
|
||||
protected:
|
||||
struct ShaderUniforms;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Nz
|
|||
|
||||
bool IsLightMeshesDrawingEnabled() const;
|
||||
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const;
|
||||
bool Process(const SceneData& sceneData, unsigned int firstWorkTexture, unsigned int secondWorkTexture) const override;
|
||||
|
||||
protected:
|
||||
LightUniforms m_directionalLightUniforms;
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ namespace Nz
|
|||
public:
|
||||
TextureBackground(TextureRef texture = TextureRef());
|
||||
|
||||
void Draw(const AbstractViewer* viewer) const;
|
||||
void Draw(const AbstractViewer* viewer) const override;
|
||||
|
||||
BackgroundType GetBackgroundType() const;
|
||||
BackgroundType GetBackgroundType() const override;
|
||||
inline const TextureRef& GetTexture() const;
|
||||
|
||||
inline void SetTexture(TextureRef texture);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Nz
|
|||
{
|
||||
public:
|
||||
MixerBase();
|
||||
~MixerBase() = default;
|
||||
virtual ~MixerBase() = default;
|
||||
|
||||
virtual float Get(float x, float y, float scale) const = 0;
|
||||
virtual float Get(float x, float y, float z, float scale) const = 0;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Nz
|
|||
{
|
||||
public:
|
||||
NoiseBase(unsigned int seed = 0);
|
||||
~NoiseBase() = default;
|
||||
virtual ~NoiseBase() = default;
|
||||
|
||||
virtual float Get(float x, float y, float scale) const = 0;
|
||||
virtual float Get(float x, float y, float z, float scale) const = 0;
|
||||
|
|
|
|||
|
|
@ -35,15 +35,22 @@ namespace Nz
|
|||
friend RigidBody2D;
|
||||
|
||||
public:
|
||||
Collider2D() = default;
|
||||
inline Collider2D();
|
||||
Collider2D(const Collider2D&) = delete;
|
||||
Collider2D(Collider2D&&) = delete;
|
||||
virtual ~Collider2D();
|
||||
|
||||
virtual float ComputeInertialMatrix(float mass) const = 0;
|
||||
|
||||
inline unsigned int GetCollisionId() const;
|
||||
|
||||
virtual ColliderType2D GetType() const = 0;
|
||||
|
||||
inline bool IsTrigger() const;
|
||||
|
||||
inline void SetCollisionId(unsigned long typeId);
|
||||
inline void SetTrigger(bool trigger);
|
||||
|
||||
Collider2D& operator=(const Collider2D&) = delete;
|
||||
Collider2D& operator=(Collider2D&&) = delete;
|
||||
|
||||
|
|
@ -53,6 +60,12 @@ namespace Nz
|
|||
protected:
|
||||
virtual std::vector<cpShape*> CreateShapes(RigidBody2D* body) const = 0;
|
||||
|
||||
bool m_trigger;
|
||||
unsigned int m_collisionId;
|
||||
|
||||
private:
|
||||
virtual std::vector<cpShape*> GenerateShapes(RigidBody2D* body) const;
|
||||
|
||||
static Collider2DLibrary::LibraryMap s_library;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,32 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
inline Collider2D::Collider2D() :
|
||||
m_collisionId(0),
|
||||
m_trigger(false)
|
||||
{
|
||||
}
|
||||
|
||||
inline unsigned int Collider2D::GetCollisionId() const
|
||||
{
|
||||
return m_collisionId;
|
||||
}
|
||||
|
||||
inline bool Collider2D::IsTrigger() const
|
||||
{
|
||||
return m_trigger;
|
||||
}
|
||||
|
||||
inline void Collider2D::SetCollisionId(unsigned long typeId)
|
||||
{
|
||||
m_collisionId = typeId;
|
||||
}
|
||||
|
||||
inline void Collider2D::SetTrigger(bool trigger)
|
||||
{
|
||||
m_trigger = trigger;
|
||||
}
|
||||
|
||||
inline const Rectf& BoxCollider2D::GetRect() const
|
||||
{
|
||||
return m_rect;
|
||||
|
|
@ -82,3 +108,4 @@ namespace Nz
|
|||
}
|
||||
|
||||
#include <Nazara/Physics2D/DebugOff.hpp>
|
||||
#include "Collider2D.hpp"
|
||||
|
|
|
|||
|
|
@ -10,14 +10,26 @@
|
|||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Math/Vector2.hpp>
|
||||
#include <Nazara/Physics2D/Config.hpp>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
|
||||
struct cpCollisionHandler;
|
||||
struct cpSpace;
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class RigidBody2D;
|
||||
|
||||
class NAZARA_PHYSICS2D_API PhysWorld2D
|
||||
{
|
||||
using ContactEndCallback = void(*)(PhysWorld2D& world, RigidBody2D& bodyA, RigidBody2D& bodyB, void* userdata);
|
||||
using ContactPreSolveCallback = bool(*)(PhysWorld2D& world, RigidBody2D& bodyA, RigidBody2D& bodyB, void* userdata);
|
||||
using ContactPostSolveCallback = void(*)(PhysWorld2D& world, RigidBody2D& bodyA, RigidBody2D& bodyB, void* userdata);
|
||||
using ContactStartCallback = bool(*)(PhysWorld2D& world, RigidBody2D& bodyA, RigidBody2D& bodyB, void* userdata);
|
||||
|
||||
public:
|
||||
struct Callback;
|
||||
|
||||
PhysWorld2D();
|
||||
PhysWorld2D(const PhysWorld2D&) = delete;
|
||||
PhysWorld2D(PhysWorld2D&&) = delete; ///TODO
|
||||
|
|
@ -27,8 +39,10 @@ namespace Nz
|
|||
cpSpace* GetHandle() const;
|
||||
float GetStepSize() const;
|
||||
|
||||
void RegisterCallbacks(unsigned int collisionId, const Callback& callbacks);
|
||||
void RegisterCallbacks(unsigned int collisionIdA, unsigned int collisionIdB, const Callback& callbacks);
|
||||
|
||||
void SetGravity(const Vector2f& gravity);
|
||||
void SetSolverModel(unsigned int model);
|
||||
void SetStepSize(float stepSize);
|
||||
|
||||
void Step(float timestep);
|
||||
|
|
@ -36,7 +50,19 @@ namespace Nz
|
|||
PhysWorld2D& operator=(const PhysWorld2D&) = delete;
|
||||
PhysWorld2D& operator=(PhysWorld2D&&) = delete; ///TODO
|
||||
|
||||
struct Callback
|
||||
{
|
||||
ContactEndCallback endCallback;
|
||||
ContactPreSolveCallback preSolveCallback;
|
||||
ContactPostSolveCallback postSolveCallback;
|
||||
ContactStartCallback startCallback;
|
||||
void* userdata;
|
||||
};
|
||||
|
||||
private:
|
||||
void InitCallbacks(cpCollisionHandler* handler, const Callback& callbacks);
|
||||
|
||||
std::unordered_map<cpCollisionHandler*, std::unique_ptr<Callback>> m_callbacks;
|
||||
cpSpace* m_handle;
|
||||
float m_stepSize;
|
||||
float m_timestepAccumulator;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Enums.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Math/Matrix4.hpp>
|
||||
#include <Nazara/Math/Quaternion.hpp>
|
||||
#include <Nazara/Math/Rect.hpp>
|
||||
|
|
@ -43,6 +44,7 @@ namespace Nz
|
|||
float GetMass() const;
|
||||
Vector2f GetPosition() const;
|
||||
float GetRotation() const;
|
||||
void* GetUserdata() const;
|
||||
Vector2f GetVelocity() const;
|
||||
|
||||
bool IsMoveable() const;
|
||||
|
|
@ -54,11 +56,15 @@ namespace Nz
|
|||
void SetMassCenter(const Vector2f& center);
|
||||
void SetPosition(const Vector2f& position);
|
||||
void SetRotation(float rotation);
|
||||
void SetUserdata(void* ud);
|
||||
void SetVelocity(const Vector2f& velocity);
|
||||
|
||||
RigidBody2D& operator=(const RigidBody2D& object);
|
||||
RigidBody2D& operator=(RigidBody2D&& object);
|
||||
|
||||
NazaraSignal(OnRigidBody2DMove, RigidBody2D* /*oldPointer*/, RigidBody2D* /*newPointer*/);
|
||||
NazaraSignal(OnRigidBody2DRelease, RigidBody2D* /*rigidBody*/);
|
||||
|
||||
private:
|
||||
void Create(float mass = 1.f, float moment = 1.f);
|
||||
void Destroy();
|
||||
|
|
@ -66,6 +72,7 @@ namespace Nz
|
|||
std::vector<cpShape*> m_shapes;
|
||||
Collider2DRef m_geom;
|
||||
cpBody* m_handle;
|
||||
void* m_userData;
|
||||
PhysWorld2D* m_world;
|
||||
float m_gravityFactor;
|
||||
float m_mass;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Nz
|
|||
UberShaderInstancePreprocessor(const Shader* shader);
|
||||
virtual ~UberShaderInstancePreprocessor();
|
||||
|
||||
bool Activate() const;
|
||||
bool Activate() const override;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Nz
|
|||
UberShaderPreprocessor() = default;
|
||||
~UberShaderPreprocessor();
|
||||
|
||||
UberShaderInstance* Get(const ParameterList& parameters) const;
|
||||
UberShaderInstance* Get(const ParameterList& parameters) const override;
|
||||
|
||||
void SetShader(ShaderStageType stage, const String& source, const String& shaderFlags, const String& requiredFlags = String());
|
||||
bool SetShaderFromFile(ShaderStageType stage, const String& filePath, const String& shaderFlags, const String& requiredFlags = String());
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
inline EventHandler::EventHandler(const EventHandler&)
|
||||
inline EventHandler::EventHandler(const EventHandler& other) :
|
||||
HandledObject(other)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -78,18 +78,18 @@ namespace Nz
|
|||
bool FlipVertically();
|
||||
|
||||
const UInt8* GetConstPixels(unsigned int x = 0, unsigned int y = 0, unsigned int z = 0, UInt8 level = 0) const;
|
||||
unsigned int GetDepth(UInt8 level = 0) const;
|
||||
PixelFormatType GetFormat() const;
|
||||
unsigned int GetHeight(UInt8 level = 0) const;
|
||||
UInt8 GetLevelCount() const;
|
||||
UInt8 GetMaxLevel() const;
|
||||
std::size_t GetMemoryUsage() const;
|
||||
std::size_t GetMemoryUsage(UInt8 level) const;
|
||||
unsigned int GetDepth(UInt8 level = 0) const override;
|
||||
PixelFormatType GetFormat() const override;
|
||||
unsigned int GetHeight(UInt8 level = 0) const override;
|
||||
UInt8 GetLevelCount() const override;
|
||||
UInt8 GetMaxLevel() const override;
|
||||
std::size_t GetMemoryUsage() const override;
|
||||
std::size_t GetMemoryUsage(UInt8 level) const override;
|
||||
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);
|
||||
Vector3ui GetSize(UInt8 level = 0) const;
|
||||
ImageType GetType() const;
|
||||
unsigned int GetWidth(UInt8 level = 0) const;
|
||||
Vector3ui GetSize(UInt8 level = 0) const override;
|
||||
ImageType GetType() const override;
|
||||
unsigned int GetWidth(UInt8 level = 0) const override;
|
||||
|
||||
bool HasAlpha() const;
|
||||
|
||||
|
|
@ -126,9 +126,9 @@ namespace Nz
|
|||
void SetLevelCount(UInt8 levelCount);
|
||||
bool SetPixelColor(const Color& color, unsigned int x, unsigned int y = 0, unsigned int z = 0);
|
||||
|
||||
bool Update(const UInt8* pixels, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0);
|
||||
bool Update(const UInt8* pixels, const Boxui& box, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0);
|
||||
bool Update(const UInt8* pixels, const Rectui& rect, unsigned int z = 0, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0);
|
||||
bool Update(const UInt8* pixels, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0) override;
|
||||
bool Update(const UInt8* pixels, const Boxui& box, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0) override;
|
||||
bool Update(const UInt8* pixels, const Rectui& rect, unsigned int z = 0, unsigned int srcWidth = 0, unsigned int srcHeight = 0, UInt8 level = 0) override;
|
||||
|
||||
Image& operator=(const Image& image);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Nz
|
|||
void SetName(const String& name);
|
||||
|
||||
private:
|
||||
void InvalidateNode();
|
||||
void InvalidateNode() override;
|
||||
void UpdateSkinningMatrix() const;
|
||||
|
||||
Matrix4f m_inverseBindMatrix;
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@ namespace Nz
|
|||
void Destroy();
|
||||
|
||||
const Boxf& GetAABB() const override;
|
||||
AnimationType GetAnimationType() const final;
|
||||
AnimationType GetAnimationType() const final override;
|
||||
const IndexBuffer* GetIndexBuffer() const override;
|
||||
VertexBuffer* GetVertexBuffer();
|
||||
const VertexBuffer* GetVertexBuffer() const;
|
||||
unsigned int GetVertexCount() const override;
|
||||
|
||||
bool IsAnimated() const final;
|
||||
bool IsAnimated() const final override;
|
||||
bool IsValid() const;
|
||||
|
||||
void SetAABB(const Boxf& aabb);
|
||||
|
|
|
|||
|
|
@ -32,13 +32,13 @@ namespace Nz
|
|||
bool GenerateAABB();
|
||||
|
||||
const Boxf& GetAABB() const override;
|
||||
AnimationType GetAnimationType() const final;
|
||||
AnimationType GetAnimationType() const final override;
|
||||
const IndexBuffer* GetIndexBuffer() const override;
|
||||
VertexBuffer* GetVertexBuffer();
|
||||
const VertexBuffer* GetVertexBuffer() const;
|
||||
unsigned int GetVertexCount() const override;
|
||||
|
||||
bool IsAnimated() const final;
|
||||
bool IsAnimated() const final override;
|
||||
bool IsValid() const;
|
||||
|
||||
void SetAABB(const Boxf& aabb);
|
||||
|
|
|
|||
|
|
@ -141,12 +141,12 @@ bool Load(Mesh* mesh, Stream& stream, const MeshParams& parameters)
|
|||
{
|
||||
for (unsigned int i = 0; i < scene->mNumMeshes; ++i)
|
||||
{
|
||||
aiMesh* mesh = scene->mMeshes[i];
|
||||
if (mesh->HasBones()) // Inline functions can be safely called
|
||||
aiMesh* currentMesh = scene->mMeshes[i];
|
||||
if (currentMesh->HasBones()) // Inline functions can be safely called
|
||||
{
|
||||
animatedMesh = true;
|
||||
for (unsigned int j = 0; j < mesh->mNumBones; ++j)
|
||||
joints.insert(mesh->mBones[j]->mName.C_Str());
|
||||
for (unsigned int j = 0; j < currentMesh->mNumBones; ++j)
|
||||
joints.insert(currentMesh->mBones[j]->mName.C_Str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -312,9 +312,9 @@ namespace Nz
|
|||
while (!remainingRects.empty())
|
||||
{
|
||||
// Stores the penalty score of the best rectangle placement - bigger=worse, smaller=better.
|
||||
bool bestFlipped;
|
||||
std::size_t bestFreeRect;
|
||||
std::size_t bestRect;
|
||||
bool bestFlipped = false;
|
||||
std::size_t bestFreeRect = m_freeRectangles.size();
|
||||
std::size_t bestRect = std::numeric_limits<int>::min();
|
||||
int bestScore = std::numeric_limits<int>::max();
|
||||
|
||||
for (std::size_t i = 0; i < m_freeRectangles.size(); ++i)
|
||||
|
|
|
|||
|
|
@ -413,9 +413,9 @@ namespace Nz
|
|||
while (ptr != &s_list)
|
||||
{
|
||||
if (ptr->file)
|
||||
std::fprintf(log, "-0x%p -> %zu bytes allocated at %s:%u\n", reinterpret_cast<UInt8*>(ptr) + sizeof(Block), ptr->size, ptr->file, ptr->line);
|
||||
std::fprintf(log, "-0x%s -> %zu bytes allocated at %s:%u\n", reinterpret_cast<UInt8*>(ptr) + sizeof(Block), ptr->size, ptr->file, ptr->line);
|
||||
else
|
||||
std::fprintf(log, "-0x%p -> %zu bytes allocated at unknown position\n", reinterpret_cast<UInt8*>(ptr) + sizeof(Block), ptr->size);
|
||||
std::fprintf(log, "-0x%s -> %zu bytes allocated at unknown position\n", reinterpret_cast<UInt8*>(ptr) + sizeof(Block), ptr->size);
|
||||
|
||||
void* pointer = ptr;
|
||||
ptr = ptr->next;
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@ namespace Nz
|
|||
*/
|
||||
|
||||
ParticleGroup::ParticleGroup(unsigned int maxParticleCount, ParticleDeclarationConstRef declaration) :
|
||||
m_declaration(std::move(declaration)),
|
||||
m_maxParticleCount(maxParticleCount),
|
||||
m_particleCount(0),
|
||||
m_declaration(std::move(declaration)),
|
||||
m_processing(false)
|
||||
{
|
||||
// In case of error, the constructor can only throw an exception
|
||||
|
|
@ -60,13 +60,13 @@ namespace Nz
|
|||
|
||||
ParticleGroup::ParticleGroup(const ParticleGroup& system) :
|
||||
Renderable(system),
|
||||
m_maxParticleCount(system.m_maxParticleCount),
|
||||
m_particleCount(system.m_particleCount),
|
||||
m_particleSize(system.m_particleSize),
|
||||
m_controllers(system.m_controllers),
|
||||
m_generators(system.m_generators),
|
||||
m_declaration(system.m_declaration),
|
||||
m_renderer(system.m_renderer),
|
||||
m_maxParticleCount(system.m_maxParticleCount),
|
||||
m_particleCount(system.m_particleCount),
|
||||
m_particleSize(system.m_particleSize),
|
||||
m_processing(false)
|
||||
{
|
||||
ErrorFlags flags(ErrorFlag_ThrowException, true);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,18 @@ namespace Nz
|
|||
{
|
||||
Collider2D::~Collider2D() = default;
|
||||
|
||||
std::vector<cpShape*> Collider2D::GenerateShapes(RigidBody2D* body) const
|
||||
{
|
||||
std::vector<cpShape*> shapes = CreateShapes(body);
|
||||
for (cpShape* shape : shapes)
|
||||
{
|
||||
cpShapeSetCollisionType(shape, m_collisionId);
|
||||
cpShapeSetSensor(shape, (m_trigger) ? cpTrue : cpFalse);
|
||||
}
|
||||
|
||||
return shapes;
|
||||
}
|
||||
|
||||
/******************************** BoxCollider2D *********************************/
|
||||
|
||||
BoxCollider2D::BoxCollider2D(const Vector2f& size, float radius) :
|
||||
|
|
|
|||
|
|
@ -37,6 +37,16 @@ namespace Nz
|
|||
return m_stepSize;
|
||||
}
|
||||
|
||||
void PhysWorld2D::RegisterCallbacks(unsigned int collisionId, const Callback& callbacks)
|
||||
{
|
||||
InitCallbacks(cpSpaceAddWildcardHandler(m_handle, collisionId), callbacks);
|
||||
}
|
||||
|
||||
void PhysWorld2D::RegisterCallbacks(unsigned int collisionIdA, unsigned int collisionIdB, const Callback& callbacks)
|
||||
{
|
||||
InitCallbacks(cpSpaceAddCollisionHandler(m_handle, collisionIdA, collisionIdB), callbacks);
|
||||
}
|
||||
|
||||
void PhysWorld2D::SetGravity(const Vector2f& gravity)
|
||||
{
|
||||
cpSpaceSetGravity(m_handle, cpv(gravity.x, gravity.y));
|
||||
|
|
@ -57,4 +67,99 @@ namespace Nz
|
|||
m_timestepAccumulator -= m_stepSize;
|
||||
}
|
||||
}
|
||||
|
||||
void PhysWorld2D::InitCallbacks(cpCollisionHandler* handler, const Callback& callbacks)
|
||||
{
|
||||
auto it = m_callbacks.emplace(handler, std::make_unique<Callback>(callbacks)).first;
|
||||
|
||||
handler->userData = it->second.get();
|
||||
|
||||
if (callbacks.startCallback)
|
||||
{
|
||||
handler->beginFunc = [](cpArbiter* arb, cpSpace* space, void *data) -> cpBool
|
||||
{
|
||||
cpBody* firstBody;
|
||||
cpBody* secondBody;
|
||||
cpArbiterGetBodies(arb, &firstBody, &secondBody);
|
||||
|
||||
PhysWorld2D* world = static_cast<PhysWorld2D*>(cpSpaceGetUserData(space));
|
||||
RigidBody2D* firstRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(firstBody));
|
||||
RigidBody2D* secondRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(secondBody));
|
||||
|
||||
const Callback* customCallbacks = static_cast<const Callback*>(data);
|
||||
if (customCallbacks->startCallback(*world, *firstRigidBody, *secondRigidBody, customCallbacks->userdata))
|
||||
{
|
||||
cpBool retA = cpArbiterCallWildcardBeginA(arb, space);
|
||||
cpBool retB = cpArbiterCallWildcardBeginB(arb, space);
|
||||
return retA && retB;
|
||||
}
|
||||
else
|
||||
return cpFalse;
|
||||
};
|
||||
}
|
||||
|
||||
if (callbacks.endCallback)
|
||||
{
|
||||
handler->separateFunc = [](cpArbiter* arb, cpSpace* space, void *data)
|
||||
{
|
||||
cpBody* firstBody;
|
||||
cpBody* secondBody;
|
||||
cpArbiterGetBodies(arb, &firstBody, &secondBody);
|
||||
|
||||
PhysWorld2D* world = static_cast<PhysWorld2D*>(cpSpaceGetUserData(space));
|
||||
RigidBody2D* firstRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(firstBody));
|
||||
RigidBody2D* secondRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(secondBody));
|
||||
|
||||
const Callback* customCallbacks = static_cast<const Callback*>(data);
|
||||
customCallbacks->endCallback(*world, *firstRigidBody, *secondRigidBody, customCallbacks->userdata);
|
||||
|
||||
cpArbiterCallWildcardSeparateA(arb, space);
|
||||
cpArbiterCallWildcardSeparateB(arb, space);
|
||||
};
|
||||
}
|
||||
|
||||
if (callbacks.preSolveCallback)
|
||||
{
|
||||
handler->preSolveFunc = [](cpArbiter* arb, cpSpace* space, void *data) -> cpBool
|
||||
{
|
||||
cpBody* firstBody;
|
||||
cpBody* secondBody;
|
||||
cpArbiterGetBodies(arb, &firstBody, &secondBody);
|
||||
|
||||
PhysWorld2D* world = static_cast<PhysWorld2D*>(cpSpaceGetUserData(space));
|
||||
RigidBody2D* firstRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(firstBody));
|
||||
RigidBody2D* secondRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(secondBody));
|
||||
|
||||
const Callback* customCallbacks = static_cast<const Callback*>(data);
|
||||
if (customCallbacks->preSolveCallback(*world, *firstRigidBody, *secondRigidBody, customCallbacks->userdata))
|
||||
{
|
||||
cpBool retA = cpArbiterCallWildcardPreSolveA(arb, space);
|
||||
cpBool retB = cpArbiterCallWildcardPreSolveB(arb, space);
|
||||
return retA && retB;
|
||||
}
|
||||
else
|
||||
return cpFalse;
|
||||
};
|
||||
}
|
||||
|
||||
if (callbacks.postSolveCallback)
|
||||
{
|
||||
handler->postSolveFunc = [](cpArbiter* arb, cpSpace* space, void *data)
|
||||
{
|
||||
cpBody* firstBody;
|
||||
cpBody* secondBody;
|
||||
cpArbiterGetBodies(arb, &firstBody, &secondBody);
|
||||
|
||||
PhysWorld2D* world = static_cast<PhysWorld2D*>(cpSpaceGetUserData(space));
|
||||
RigidBody2D* firstRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(firstBody));
|
||||
RigidBody2D* secondRigidBody = static_cast<RigidBody2D*>(cpBodyGetUserData(secondBody));
|
||||
|
||||
const Callback* customCallbacks = static_cast<const Callback*>(data);
|
||||
customCallbacks->postSolveCallback(*world, *firstRigidBody, *secondRigidBody, customCallbacks->userdata);
|
||||
|
||||
cpArbiterCallWildcardPostSolveA(arb, space);
|
||||
cpArbiterCallWildcardPostSolveB(arb, space);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ namespace Nz
|
|||
|
||||
RigidBody2D::RigidBody2D(PhysWorld2D* world, float mass, Collider2DRef geom) :
|
||||
m_geom(),
|
||||
m_userData(nullptr),
|
||||
m_world(world),
|
||||
m_gravityFactor(1.f),
|
||||
m_mass(1.f)
|
||||
|
|
@ -34,6 +35,7 @@ namespace Nz
|
|||
|
||||
RigidBody2D::RigidBody2D(const RigidBody2D& object) :
|
||||
m_geom(object.m_geom),
|
||||
m_userData(object.m_userData),
|
||||
m_world(object.m_world),
|
||||
m_gravityFactor(object.m_gravityFactor),
|
||||
m_mass(0.f)
|
||||
|
|
@ -48,18 +50,27 @@ namespace Nz
|
|||
}
|
||||
|
||||
RigidBody2D::RigidBody2D(RigidBody2D&& object) :
|
||||
OnRigidBody2DMove(std::move(object.OnRigidBody2DMove)),
|
||||
OnRigidBody2DRelease(std::move(object.OnRigidBody2DRelease)),
|
||||
m_shapes(std::move(object.m_shapes)),
|
||||
m_geom(std::move(object.m_geom)),
|
||||
m_userData(object.m_userData),
|
||||
m_handle(object.m_handle),
|
||||
m_world(object.m_world),
|
||||
m_gravityFactor(object.m_gravityFactor),
|
||||
m_mass(object.m_mass)
|
||||
{
|
||||
cpBodySetUserData(m_handle, this);
|
||||
|
||||
object.m_handle = nullptr;
|
||||
|
||||
OnRigidBody2DMove(&object, this);
|
||||
}
|
||||
|
||||
RigidBody2D::~RigidBody2D()
|
||||
{
|
||||
OnRigidBody2DRelease(this);
|
||||
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
|
@ -144,6 +155,11 @@ namespace Nz
|
|||
return static_cast<float>(cpBodyGetAngle(m_handle));
|
||||
}
|
||||
|
||||
void* RigidBody2D::GetUserdata() const
|
||||
{
|
||||
return m_userData;
|
||||
}
|
||||
|
||||
Vector2f RigidBody2D::GetVelocity() const
|
||||
{
|
||||
cpVect vel = cpBodyGetVelocity(m_handle);
|
||||
|
|
@ -190,7 +206,7 @@ namespace Nz
|
|||
else
|
||||
m_geom = NullCollider2D::New();
|
||||
|
||||
m_shapes = m_geom->CreateShapes(this);
|
||||
m_shapes = m_geom->GenerateShapes(this);
|
||||
|
||||
cpSpace* space = m_world->GetHandle();
|
||||
for (cpShape* shape : m_shapes)
|
||||
|
|
@ -242,6 +258,11 @@ namespace Nz
|
|||
cpBodySetAngle(m_handle, rotation);
|
||||
}
|
||||
|
||||
void RigidBody2D::SetUserdata(void* ud)
|
||||
{
|
||||
m_userData = ud;
|
||||
}
|
||||
|
||||
void RigidBody2D::SetVelocity(const Vector2f& velocity)
|
||||
{
|
||||
cpBodySetVelocity(m_handle, cpv(velocity.x, velocity.y));
|
||||
|
|
@ -257,15 +278,23 @@ namespace Nz
|
|||
{
|
||||
Destroy();
|
||||
|
||||
OnRigidBody2DMove = std::move(object.OnRigidBody2DMove);
|
||||
OnRigidBody2DRelease = std::move(object.OnRigidBody2DRelease);
|
||||
|
||||
m_handle = object.m_handle;
|
||||
m_geom = std::move(object.m_geom);
|
||||
m_gravityFactor = object.m_gravityFactor;
|
||||
m_mass = object.m_mass;
|
||||
m_shapes = std::move(object.m_shapes);
|
||||
m_userData = object.m_userData;
|
||||
m_world = object.m_world;
|
||||
|
||||
cpBodySetUserData(m_handle, this);
|
||||
|
||||
object.m_handle = nullptr;
|
||||
|
||||
OnRigidBody2DMove(&object, this);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,28 +8,28 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
// Version majeure d'OpenGL, initialisé par OpenGL::Initialize()
|
||||
// Major version of OpenGL, initialised by OpenGL::Initialize()
|
||||
UInt8 ContextParameters::defaultMajorVersion;
|
||||
|
||||
// Version majeure d'OpenGL, initialisé par OpenGL::Initialize()
|
||||
// Minor version of OpenGL, initialised by OpenGL::Initialize()
|
||||
UInt8 ContextParameters::defaultMinorVersion;
|
||||
|
||||
// Contexte de partage par défaut, initialisé par OpenGL::Initialize()
|
||||
// Context of default sharing, initialised by OpenGL::Initialize()
|
||||
const Context* ContextParameters::defaultShareContext = nullptr;
|
||||
|
||||
// Si possible, garder la compatibilité avec les fonctionnalités dépréciées
|
||||
// If it's possible, keep the compatibility with deprecated functionalities
|
||||
bool ContextParameters::defaultCompatibilityProfile = false;
|
||||
|
||||
// Mode debug d'OpenGL par défaut
|
||||
// Default debug mode of OpenGL
|
||||
#if NAZARA_RENDERER_OPENGL_DEBUG || defined(NAZARA_DEBUG)
|
||||
bool ContextParameters::defaultDebugMode = true;
|
||||
#else
|
||||
bool ContextParameters::defaultDebugMode = false;
|
||||
#endif
|
||||
|
||||
// Active le double-buffering sur les contextes
|
||||
// Enables double-buffering on contexts Active le double-buffering sur les contextes
|
||||
bool ContextParameters::defaultDoubleBuffered = false;
|
||||
|
||||
// Active le partage des ressources entre contextes (Via le defaultShareContext)
|
||||
// Enables ressource sharing on contexts (via defaultShareContext)
|
||||
bool ContextParameters::defaultShared = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ namespace Nz
|
|||
|
||||
if (s_useAnisotropicFilter)
|
||||
{
|
||||
for (const std::pair<UInt32, GLuint>& pair : s_samplers)
|
||||
for (const std::pair<const UInt32, GLuint>& pair : s_samplers)
|
||||
{
|
||||
if (((pair.first >> 5) & 0xFF) == 0)
|
||||
glSamplerParameterf(pair.second, GL_TEXTURE_MAX_ANISOTROPY_EXT, static_cast<float>(anisotropyLevel));
|
||||
|
|
@ -149,7 +149,7 @@ namespace Nz
|
|||
|
||||
s_defaultFilterMode = filterMode;
|
||||
|
||||
for (const std::pair<UInt32, GLuint>& pair : s_samplers)
|
||||
for (const std::pair<const UInt32, GLuint>& pair : s_samplers)
|
||||
{
|
||||
if (((pair.first >> 1) & 0x3) == SamplerFilter_Default)
|
||||
{
|
||||
|
|
@ -204,7 +204,7 @@ namespace Nz
|
|||
s_defaultWrapMode = wrapMode;
|
||||
|
||||
GLenum wrapEnum = OpenGL::SamplerWrapMode[wrapMode];
|
||||
for (const std::pair<UInt32, GLuint>& pair : s_samplers)
|
||||
for (const std::pair<const UInt32, GLuint>& pair : s_samplers)
|
||||
{
|
||||
if (((pair.first >> 3) & 0x3) == SamplerWrap_Default)
|
||||
{
|
||||
|
|
@ -380,7 +380,7 @@ namespace Nz
|
|||
if (!s_samplers.empty())
|
||||
{
|
||||
Context::EnsureContext();
|
||||
for (const std::pair<UInt32, GLuint>& pair : s_samplers)
|
||||
for (const std::pair<const UInt32, GLuint>& pair : s_samplers)
|
||||
OpenGL::DeleteSampler(pair.second);
|
||||
|
||||
s_samplers.clear();
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ namespace Nz
|
|||
if (!m_glyphs.empty())
|
||||
{
|
||||
Glyph& lastGlyph = m_glyphs.back();
|
||||
m_lines.back().bounds.ExtendTo(glyph.bounds);
|
||||
m_lines.back().bounds.ExtendTo(lastGlyph.bounds);
|
||||
}
|
||||
|
||||
// Reset cursor
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ void EventState::AddEvent(const Nz::WindowEvent& event)
|
|||
m_events.push_back(Nz::String::Number(m_count) + " - " + ToString(event));
|
||||
|
||||
Nz::String content;
|
||||
for (auto&& event : m_events)
|
||||
for (auto&& currentEvent : m_events)
|
||||
{
|
||||
content += event + "\n";
|
||||
content += currentEvent + "\n";
|
||||
}
|
||||
content += "\nM for Menu";
|
||||
m_text.SetContent(content, 36);
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ void KeyState::DrawMenu()
|
|||
m_text.SetContent("Clic on a key, this text should change !\nN for alternating event\nM for Menu");
|
||||
}
|
||||
|
||||
void KeyState::ManageInput(KeyStatus isKeyPressed, const Nz::WindowEvent::KeyEvent& key, Ndk::StateMachine& fsm)
|
||||
void KeyState::ManageInput(KeyStatus /*isKeyPressed*/, const Nz::WindowEvent::KeyEvent& key, Ndk::StateMachine& fsm)
|
||||
{
|
||||
if (key.code == Nz::Keyboard::Key::M && key.shift)
|
||||
fsm.ChangeState(StateFactory::Get(EventStatus::Menu));
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ void MouseClickState::DrawMenu()
|
|||
m_text.SetContent("Click in the windows, this text should change !\nM for Menu");
|
||||
}
|
||||
|
||||
void MouseClickState::ManageInput(MouseStatus mouseStatus, const Nz::WindowEvent::MouseButtonEvent& mouse, Ndk::StateMachine& fsm)
|
||||
void MouseClickState::ManageInput(MouseStatus mouseStatus, const Nz::WindowEvent::MouseButtonEvent& mouse, Ndk::StateMachine& /*fsm*/)
|
||||
{
|
||||
Nz::String content;
|
||||
if (mouseStatus == MouseStatus::Pressed)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Text::Text(StateContext& stateContext) :
|
|||
m_context(stateContext)
|
||||
{
|
||||
m_text = m_context.world.CreateEntity();
|
||||
Ndk::NodeComponent& nodeComponent = m_text->AddComponent<Ndk::NodeComponent>();
|
||||
m_text->AddComponent<Ndk::NodeComponent>();
|
||||
Ndk::GraphicsComponent& graphicsComponent = m_text->AddComponent<Ndk::GraphicsComponent>();
|
||||
|
||||
m_textSprite = Nz::TextSprite::New();
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ SCENARIO("EntityList", "[NDK][ENTITYLIST]")
|
|||
THEN("These results are expected")
|
||||
{
|
||||
REQUIRE(entityList.Has(entity->GetId()));
|
||||
const Ndk::EntityHandle& entity = world.CreateEntity();
|
||||
REQUIRE(!entityList.Has(entity->GetId()));
|
||||
const Ndk::EntityHandle& newEntity = world.CreateEntity();
|
||||
REQUIRE(!entityList.Has(newEntity->GetId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue