Refactored Math::IntPoint in CInput and CImage

dev
Tomasz Kapuściński 2021-12-23 23:36:30 +01:00
parent 0ef4579da8
commit 60deb0328a
4 changed files with 19 additions and 18 deletions

View File

@ -201,7 +201,7 @@ void CInput::EventProcess(Event& event)
event.cameraInput = Math::Clamp(m_joyMotionCam + m_cameraKeyMotion, Math::Vector(-1.0f, -1.0f, -1.0f), Math::Vector(1.0f, 1.0f, 1.0f)); event.cameraInput = Math::Clamp(m_joyMotionCam + m_cameraKeyMotion, Math::Vector(-1.0f, -1.0f, -1.0f), Math::Vector(1.0f, 1.0f, 1.0f));
} }
void CInput::MouseMove(Math::IntPoint pos) void CInput::MouseMove(const glm::ivec2& pos)
{ {
m_mousePos = Gfx::CEngine::GetInstancePointer()->WindowToInterfaceCoords(pos); m_mousePos = Gfx::CEngine::GetInstancePointer()->WindowToInterfaceCoords(pos);
} }

View File

@ -27,10 +27,11 @@
#include "common/key.h" #include "common/key.h"
#include "common/singleton.h" #include "common/singleton.h"
#include "math/intpoint.h"
#include "math/point.h" #include "math/point.h"
#include "math/vector.h" #include "math/vector.h"
#include <glm/glm.hpp>
#include <map> #include <map>
struct Event; struct Event;
@ -78,7 +79,7 @@ public:
void EventProcess(Event &event); void EventProcess(Event &event);
//! Called by CApplication on SDL MOUSE_MOTION event //! Called by CApplication on SDL MOUSE_MOTION event
void MouseMove(Math::IntPoint pos); void MouseMove(const glm::ivec2& pos);
//! Returns whether the key is pressed //! Returns whether the key is pressed

View File

@ -169,7 +169,7 @@ CImage::CImage()
m_data = nullptr; m_data = nullptr;
} }
CImage::CImage(Math::IntPoint size) CImage::CImage(const glm::ivec2& size)
{ {
m_data = MakeUnique<ImageData>(); m_data = MakeUnique<ImageData>();
m_data->surface = SDL_CreateRGBSurface(0, size.x, size.y, 32, m_data->surface = SDL_CreateRGBSurface(0, size.x, size.y, 32,
@ -204,12 +204,12 @@ ImageData* CImage::GetData()
return m_data.get(); return m_data.get();
} }
Math::IntPoint CImage::GetSize() const glm::ivec2 CImage::GetSize() const
{ {
if (m_data == nullptr) if (m_data == nullptr)
return Math::IntPoint(); return { 0, 0 };
return Math::IntPoint(m_data->surface->w, m_data->surface->h); return { m_data->surface->w, m_data->surface->h };
} }
/** Image must be valid. */ /** Image must be valid. */
@ -268,7 +268,7 @@ void CImage::BlitToNewRGBASurface(int width, int height)
* \param pixel pixel coords (range x: 0..width-1 y: 0..height-1) * \param pixel pixel coords (range x: 0..width-1 y: 0..height-1)
* \returns color * \returns color
*/ */
Gfx::IntColor CImage::GetPixelInt(Math::IntPoint pixel) Gfx::IntColor CImage::GetPixelInt(const glm::ivec2& pixel)
{ {
assert(m_data != nullptr); assert(m_data != nullptr);
assert(pixel.x >= 0 && pixel.x < m_data->surface->w); assert(pixel.x >= 0 && pixel.x < m_data->surface->w);
@ -316,7 +316,7 @@ Gfx::IntColor CImage::GetPixelInt(Math::IntPoint pixel)
* \param pixel pixel coords (range x: 0..width-1 y: 0..height-1) * \param pixel pixel coords (range x: 0..width-1 y: 0..height-1)
* \returns color * \returns color
*/ */
Gfx::Color CImage::GetPixel(Math::IntPoint pixel) Gfx::Color CImage::GetPixel(const glm::ivec2& pixel)
{ {
return Gfx::IntColorToColor(GetPixelInt(pixel)); return Gfx::IntColorToColor(GetPixelInt(pixel));
} }
@ -328,7 +328,7 @@ Gfx::Color CImage::GetPixel(Math::IntPoint pixel)
* \param pixel pixel coords (range x: 0..width-1 y: 0..height-1) * \param pixel pixel coords (range x: 0..width-1 y: 0..height-1)
* \param color color * \param color color
*/ */
void CImage::SetPixelInt(Math::IntPoint pixel, Gfx::IntColor color) void CImage::SetPixelInt(const glm::ivec2& pixel, Gfx::IntColor color)
{ {
assert(m_data != nullptr); assert(m_data != nullptr);
assert(pixel.x >= 0 && pixel.x < m_data->surface->w); assert(pixel.x >= 0 && pixel.x < m_data->surface->w);
@ -380,7 +380,7 @@ void CImage::SetPixelInt(Math::IntPoint pixel, Gfx::IntColor color)
* \param pixel pixel coords (range x: 0..width-1 y: 0..height-1) * \param pixel pixel coords (range x: 0..width-1 y: 0..height-1)
* \param color color * \param color color
*/ */
void CImage::SetPixel(Math::IntPoint pixel, Gfx::Color color) void CImage::SetPixel(const glm::ivec2& pixel, Gfx::Color color)
{ {
SetPixelInt(pixel, Gfx::ColorToIntColor(color)); SetPixelInt(pixel, Gfx::ColorToIntColor(color));
} }

View File

@ -26,7 +26,7 @@
#include "graphics/core/color.h" #include "graphics/core/color.h"
#include "math/intpoint.h" #include <glm/glm.hpp>
#include <memory> #include <memory>
#include <string> #include <string>
@ -57,7 +57,7 @@ public:
//! Constructs empty image (with nullptr data) //! Constructs empty image (with nullptr data)
CImage(); CImage();
//! Constructs a RGBA image of given size //! Constructs a RGBA image of given size
CImage(Math::IntPoint size); CImage(const glm::ivec2& size);
//! Destroys image, calling Free() //! Destroys image, calling Free()
virtual ~CImage(); virtual ~CImage();
@ -74,22 +74,22 @@ public:
ImageData* GetData(); ImageData* GetData();
//! Returns the image size //! Returns the image size
Math::IntPoint GetSize() const; glm::ivec2 GetSize() const;
//! Fills the whole image with given color //! Fills the whole image with given color
void Fill(Gfx::IntColor color); void Fill(Gfx::IntColor color);
//! Sets the color at given pixel //! Sets the color at given pixel
void SetPixel(Math::IntPoint pixel, Gfx::Color color); void SetPixel(const glm::ivec2& pixel, Gfx::Color color);
//! Sets the precise color at given pixel //! Sets the precise color at given pixel
void SetPixelInt(Math::IntPoint pixel, Gfx::IntColor color); void SetPixelInt(const glm::ivec2& pixel, Gfx::IntColor color);
//! Returns the color at given pixel //! Returns the color at given pixel
Gfx::Color GetPixel(Math::IntPoint pixel); Gfx::Color GetPixel(const glm::ivec2& pixel);
//! Returns the precise color at given pixel //! Returns the precise color at given pixel
Gfx::IntColor GetPixelInt(Math::IntPoint pixel); Gfx::IntColor GetPixelInt(const glm::ivec2& pixel);
//! Pads the image to nearest power of 2 dimensions //! Pads the image to nearest power of 2 dimensions
void PadToNearestPowerOfTwo(); void PadToNearestPowerOfTwo();