SDLPP: mouse position functions
This commit is contained in:
parent
90dc26251b
commit
4f20274f11
@ -28,7 +28,7 @@ SDLPPLIBRARY = libsdlpp.dll
|
||||
LIBRARYFLAGS =
|
||||
endif
|
||||
|
||||
OBJECTFILES = sdlpp_circlecolider.${OBJEXT} sdlpp_circlerenderer.${OBJEXT} sdlpp_collision.${OBJEXT} sdlpp_common.${OBJEXT} sdlpp_font.${OBJEXT} sdlpp_linerenderer.${OBJEXT} sdlpp_rectcolider.${OBJEXT} sdlpp_rectrenderer.${OBJEXT} sdlpp_renderer.${OBJEXT} sdlpp_renderobject.${OBJEXT} sdlpp_scene.${OBJEXT} sdlpp_textrenderer.${OBJEXT} sdlpp_texture.${OBJEXT} sdlpp_window.${OBJEXT} sdlpp_fontconfiguration.${OBJEXT}
|
||||
OBJECTFILES = sdlpp_circlecolider.${OBJEXT} sdlpp_circlerenderer.${OBJEXT} sdlpp_collision.${OBJEXT} sdlpp_common.${OBJEXT} sdlpp_font.${OBJEXT} sdlpp_linerenderer.${OBJEXT} sdlpp_rectcolider.${OBJEXT} sdlpp_rectrenderer.${OBJEXT} sdlpp_renderer.${OBJEXT} sdlpp_renderobject.${OBJEXT} sdlpp_scene.${OBJEXT} sdlpp_textrenderer.${OBJEXT} sdlpp_texture.${OBJEXT} sdlpp_window.${OBJEXT} sdlpp_fontconfiguration.${OBJEXT} sdlpp_mouse.${OBJEXT}
|
||||
|
||||
all: ${SDLPPLIBRARY}
|
||||
|
||||
|
31
sdlpp/sdlpp_mouse.cpp
Normal file
31
sdlpp/sdlpp_mouse.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
#include "sdlpp_mouse.hpp"
|
||||
#include "sdlpp_renderobject.hpp"
|
||||
|
||||
SDLPP::Vec2D< int > SDLPP::Mouse::getMousePosition() {
|
||||
int x, y;
|
||||
SDL_GetMouseState( &x, &y );
|
||||
return { x, y };
|
||||
}
|
||||
|
||||
SDLPP::Vec2D< double >
|
||||
SDLPP::Mouse::getMousePositionDouble( const SDLPP::Renderer &r,
|
||||
SDLPP::ObjectAlignment alignment_x,
|
||||
SDLPP::ObjectAlignment alignment_y ) {
|
||||
auto pixel_pos = getMousePosition();
|
||||
auto smaller = r.getSmallerSide();
|
||||
Vec2D< double > ret = { static_cast< double >( pixel_pos.getX() ) / smaller,
|
||||
static_cast< double >( pixel_pos.getY() ) /
|
||||
smaller };
|
||||
Vec2D< double > additions =
|
||||
( r.getDoubleDimensions() - Vec2D< double >( 1.0, 1.0 ) ) / 2;
|
||||
switch ( alignment_x ) {
|
||||
case SDLPP::OBJ_CENTER:
|
||||
ret -= additions;
|
||||
break;
|
||||
case SDLPP::OBJ_END:
|
||||
ret -= 2 * additions;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
19
sdlpp/sdlpp_mouse.hpp
Normal file
19
sdlpp/sdlpp_mouse.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef SDLPP_HPP_MOUSE
|
||||
#define SDLPP_HPP_MOUSE
|
||||
|
||||
#include "sdlpp_common.hpp"
|
||||
#include "sdlpp_renderer.hpp"
|
||||
#include "sdlpp_renderobject.hpp"
|
||||
#include "sdlpp_vector.hpp"
|
||||
|
||||
namespace SDLPP {
|
||||
class SDLPPSCOPE Mouse {
|
||||
public:
|
||||
static Vec2D< int > getMousePosition();
|
||||
static Vec2D< double >
|
||||
getMousePositionDouble( const Renderer &r, ObjectAlignment alignment_x,
|
||||
ObjectAlignment alignment_y );
|
||||
};
|
||||
} // end of namespace SDLPP
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user