Open3D (C++ API)  0.19.0
GLFWWindowSystem.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
11 
12 struct GLFWwindow;
13 
14 namespace open3d {
15 namespace visualization {
16 namespace gui {
17 
19 public:
22 
23  void Initialize() override;
24  void Uninitialize() override;
25 
26  void WaitEventsTimeout(double timeout_secs) override;
27 
28  Size GetScreenSize(OSWindow w) override;
29 
31  int width,
32  int height,
33  const char* title,
34  int flags) override;
35  void DestroyWindow(OSWindow w) override;
36 
37  void PostRedrawEvent(OSWindow w) override;
38 
39  bool GetWindowIsVisible(OSWindow w) const override;
40  void ShowWindow(OSWindow w, bool show) override;
41 
42  void RaiseWindowToTop(OSWindow w) override;
43  bool IsActiveWindow(OSWindow w) const override;
44 
45  Point GetWindowPos(OSWindow w) const override;
46  void SetWindowPos(OSWindow w, int x, int y) override;
47 
48  Size GetWindowSize(OSWindow w) const override;
49  void SetWindowSize(OSWindow w, int width, int height) override;
50 
51  Size GetWindowFrameSize(OSWindow w) const override;
52 
53  Size GetWindowSizePixels(OSWindow w) const override;
54  void SetWindowSizePixels(OSWindow w, const Size& size) override;
55 
56  float GetWindowScaleFactor(OSWindow w) const override;
57  float GetUIScaleFactor(OSWindow w) const override;
58 
59  void SetWindowTitle(OSWindow w, const char* title) override;
60 
61  Point GetMousePosInWindow(OSWindow w) const override;
62  int GetMouseButtons(OSWindow w) const override;
63 
64  void CancelUserClose(OSWindow w) override;
65 
66  void* GetNativeDrawable(OSWindow w) override;
67 
69 
70  void ResizeRenderer(OSWindow w,
71  rendering::FilamentRenderer* renderer) override;
72 
73  MenuBase* CreateOSMenu() override;
74 
75  void SetClipboardText(OSWindow w, const char* text) override;
76 
77 private:
78  static void DrawCallback(GLFWwindow* window);
79  static void ResizeCallback(GLFWwindow* window, int os_width, int os_height);
80  static void WindowMovedCallback(GLFWwindow* window, int os_x, int os_y);
81  static void RescaleCallback(GLFWwindow* window, float xscale, float yscale);
82  static void MouseMoveCallback(GLFWwindow* window, double x, double y);
83  static void MouseButtonCallback(GLFWwindow* window,
84  int button,
85  int action,
86  int mods);
87  static void MouseScrollCallback(GLFWwindow* window, double dx, double dy);
88  static void KeyCallback(
89  GLFWwindow* window, int key, int scancode, int action, int mods);
90  static void CharCallback(GLFWwindow* window, unsigned int utf32char);
91  static void DragDropCallback(GLFWwindow*, int count, const char* paths[]);
92  static void CloseCallback(GLFWwindow* window);
93 };
94 
95 } // namespace gui
96 } // namespace visualization
97 } // namespace open3d
Window * o3d_window
Definition: BitmapWindowSystem.cpp:29
Definition: GLFWWindowSystem.h:18
Point GetWindowPos(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:232
void SetClipboardText(OSWindow w, const char *text) override
Definition: GLFWWindowSystem.cpp:580
Size GetWindowFrameSize(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:260
void WaitEventsTimeout(double timeout_secs) override
Definition: GLFWWindowSystem.cpp:134
Point GetMousePosInWindow(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:303
void SetWindowTitle(OSWindow w, const char *title) override
Definition: GLFWWindowSystem.cpp:299
bool IsActiveWindow(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:228
void SetWindowSize(OSWindow w, int width, int height) override
Definition: GLFWWindowSystem.cpp:256
void CancelUserClose(OSWindow w) override
Definition: GLFWWindowSystem.cpp:325
void * GetNativeDrawable(OSWindow w) override
Definition: GLFWWindowSystem.cpp:545
Size GetWindowSize(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:250
rendering::FilamentRenderer * CreateRenderer(OSWindow w) override
Definition: GLFWWindowSystem.cpp:549
bool GetWindowIsVisible(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:212
Size GetScreenSize(OSWindow w) override
Definition: GLFWWindowSystem.cpp:142
GLFWWindowSystem()
Definition: GLFWWindowSystem.cpp:98
void ShowWindow(OSWindow w, bool show) override
Definition: GLFWWindowSystem.cpp:216
~GLFWWindowSystem()
Definition: GLFWWindowSystem.cpp:100
void SetWindowSizePixels(OSWindow w, const Size &size) override
Definition: GLFWWindowSystem.cpp:273
void RaiseWindowToTop(OSWindow w) override
Definition: GLFWWindowSystem.cpp:224
void SetWindowPos(OSWindow w, int x, int y) override
Definition: GLFWWindowSystem.cpp:242
int GetMouseButtons(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:310
Size GetWindowSizePixels(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:267
void Initialize() override
Definition: GLFWWindowSystem.cpp:102
float GetUIScaleFactor(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:293
void ResizeRenderer(OSWindow w, rendering::FilamentRenderer *renderer) override
Definition: GLFWWindowSystem.cpp:555
void Uninitialize() override
Definition: GLFWWindowSystem.cpp:132
void PostRedrawEvent(OSWindow w) override
Definition: GLFWWindowSystem.cpp:194
float GetWindowScaleFactor(OSWindow w) const override
Definition: GLFWWindowSystem.cpp:278
MenuBase * CreateOSMenu() override
Definition: GLFWWindowSystem.cpp:572
OSWindow CreateOSWindow(Window *o3d_window, int width, int height, const char *title, int flags) override
Definition: GLFWWindowSystem.cpp:157
void DestroyWindow(OSWindow w) override
Definition: GLFWWindowSystem.cpp:190
Definition: MenuBase.h:26
Definition: Window.h:30
Definition: WindowSystem.h:27
void * OSWindow
Definition: WindowSystem.h:29
int width
Definition: FilePCD.cpp:52
int size
Definition: FilePCD.cpp:40
int height
Definition: FilePCD.cpp:53
int count
Definition: FilePCD.cpp:42
Definition: PinholeCameraIntrinsic.cpp:16