use floating point for mouse coordinates

pull/3471/head
kallaballa 2 years ago
parent 6e62bc860d
commit c02bb65341
  1. 6
      modules/v4d/include/opencv2/v4d/v4d.hpp
  2. 2
      modules/v4d/src/detail/framebuffercontext.cpp
  3. 7
      modules/v4d/src/v4d.cpp

@ -126,7 +126,7 @@ class CV_EXPORTS V4D {
std::future<void> futureWriter_; std::future<void> futureWriter_;
std::function<bool(int key, int scancode, int action, int modifiers)> keyEventCb_; std::function<bool(int key, int scancode, int action, int modifiers)> keyEventCb_;
std::function<void(int button, int action, int modifiers)> mouseEventCb_; std::function<void(int button, int action, int modifiers)> mouseEventCb_;
cv::Point mousePos_; cv::Point2f mousePos_;
uint64_t frameCnt_ = 0; uint64_t frameCnt_ = 0;
bool showFPS_ = true; bool showFPS_ = true;
bool printFPS_ = true; bool printFPS_ = true;
@ -386,8 +386,8 @@ private:
void mouse_button_event(int button, int action, int modifiers); void mouse_button_event(int button, int action, int modifiers);
bool keyboard_event(int key, int scancode, int action, int modifiers); bool keyboard_event(int key, int scancode, int action, int modifiers);
cv::Point getMousePosition(); cv::Point2f getMousePosition();
void setMousePosition(const cv::Point& pt); void setMousePosition(const cv::Point2f& pt);
FrameBufferContext& fbCtx(); FrameBufferContext& fbCtx();
CLVAContext& clvaCtx(); CLVAContext& clvaCtx();

@ -309,7 +309,7 @@ void FrameBufferContext::init() {
v4d->nguiCtx().screen().cursor_pos_callback_event(x, y); v4d->nguiCtx().screen().cursor_pos_callback_event(x, y);
} }
v4d->setMousePosition(cv::Point{x, y}); v4d->setMousePosition(cv::Point2f(float(x), float(y)));
} }
); );
glfwSetMouseButtonCallback(getGLFWWindow(), glfwSetMouseButtonCallback(getGLFWWindow(),

@ -81,11 +81,11 @@ bool V4D::keyboard_event(int key, int scancode, int action, int modifiers) {
return nguiCtx().screen().keyboard_event(key, scancode, action, modifiers); return nguiCtx().screen().keyboard_event(key, scancode, action, modifiers);
} }
cv::Point V4D::getMousePosition() { cv::Point2f V4D::getMousePosition() {
return mousePos_; return mousePos_;
} }
void V4D::setMousePosition(const cv::Point& pt) { void V4D::setMousePosition(const cv::Point2f& pt) {
mousePos_ = pt; mousePos_ = pt;
} }
@ -118,7 +118,6 @@ GLContext& V4D::glCtx(uint32_t idx) {
glContexts_.insert({idx, ctx}); glContexts_.insert({idx, ctx});
return *ctx; return *ctx;
} }
} }
bool V4D::hasFbCtx() { bool V4D::hasFbCtx() {
@ -494,7 +493,7 @@ bool V4D::display() {
// swapContextBuffers(); // swapContextBuffers();
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
nguiCtx().render(printFPS_, showFPS_); nguiCtx().render(printFPS_, showFPS_, showTracking_);
#endif #endif
run_sync_on_main<6>([&, this](){ run_sync_on_main<6>([&, this](){
{ {

Loading…
Cancel
Save