Open3D (C++ API)  0.18.0
Loading...
Searching...
No Matches
BitmapWindowSystem.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2023 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include <functional>
11#include <memory>
12
14
15namespace open3d {
16
17namespace core {
18class Tensor;
19}
20
21namespace visualization {
22namespace gui {
23
24struct MouseEvent;
25struct KeyEvent;
26struct TextInputEvent;
27
29public:
30 enum class Rendering {
31 NORMAL, // normal OpenGL rendering, requires X11, Win32, or Cocoa
32 HEADLESS // uses EGL, does not require the OS to have a window system.
33 // (Linux only)
34 };
37
38 void Initialize() override;
39 void Uninitialize() override;
40
42 std::function<void(Window*, std::shared_ptr<core::Tensor>)>;
44
45 void WaitEventsTimeout(double timeout_secs) override;
46
48 int width,
49 int height,
50 const char* title,
51 int flags) override;
52 void DestroyWindow(OSWindow w) override;
53
54 Size GetScreenSize(OSWindow w) override;
55
56 void PostRedrawEvent(OSWindow w) override;
57 void PostMouseEvent(OSWindow w, const MouseEvent& e);
58 void PostKeyEvent(OSWindow w, const KeyEvent& e);
60
61 bool GetWindowIsVisible(OSWindow w) const override;
62 void ShowWindow(OSWindow w, bool show) override;
63
64 void RaiseWindowToTop(OSWindow w) override;
65 bool IsActiveWindow(OSWindow w) const override;
66
67 Point GetWindowPos(OSWindow w) const override;
68 void SetWindowPos(OSWindow w, int x, int y) override;
69
70 Size GetWindowSize(OSWindow w) const override;
71 void SetWindowSize(OSWindow w, int width, int height) override;
72
73 Size GetWindowSizePixels(OSWindow w) const override;
74 void SetWindowSizePixels(OSWindow w, const Size& size) override;
75
76 float GetWindowScaleFactor(OSWindow w) const override;
77 float GetUIScaleFactor(OSWindow w) const override;
78
79 void SetWindowTitle(OSWindow w, const char* title) override;
80
81 Point GetMousePosInWindow(OSWindow w) const override;
82 int GetMouseButtons(OSWindow w) const override;
83
84 void CancelUserClose(OSWindow w) override;
85
86 void* GetNativeDrawable(OSWindow w) override;
87
89
91 rendering::FilamentRenderer* renderer) override;
92
93 MenuBase* CreateOSMenu() override;
94
95private:
96 struct Impl;
97 std::unique_ptr<Impl> impl_;
98};
99
100} // namespace gui
101} // namespace visualization
102} // namespace open3d
Window * o3d_window
Definition BitmapWindowSystem.cpp:29
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition FilamentRenderer.cpp:182
Definition BitmapWindowSystem.h:28
void SetWindowSizePixels(OSWindow w, const Size &size) override
Definition BitmapWindowSystem.cpp:257
rendering::FilamentRenderer * CreateRenderer(OSWindow w) override
Definition BitmapWindowSystem.cpp:281
void SetWindowTitle(OSWindow w, const char *title) override
Definition BitmapWindowSystem.cpp:267
void Uninitialize() override
Definition BitmapWindowSystem.cpp:147
float GetUIScaleFactor(OSWindow w) const override
Definition BitmapWindowSystem.cpp:265
void ResizeRenderer(OSWindow w, rendering::FilamentRenderer *renderer) override
Definition BitmapWindowSystem.cpp:306
bool GetWindowIsVisible(OSWindow w) const override
Definition BitmapWindowSystem.cpp:224
void PostKeyEvent(OSWindow w, const KeyEvent &e)
Definition BitmapWindowSystem.cpp:213
bool IsActiveWindow(OSWindow w) const override
Definition BitmapWindowSystem.cpp:230
void SetWindowSize(OSWindow w, int width, int height) override
Definition BitmapWindowSystem.cpp:246
Size GetScreenSize(OSWindow w) override
Definition BitmapWindowSystem.cpp:165
void ShowWindow(OSWindow w, bool show) override
Definition BitmapWindowSystem.cpp:226
OSWindow CreateOSWindow(Window *o3d_window, int width, int height, const char *title, int flags) override
Definition BitmapWindowSystem.cpp:169
Rendering
Definition BitmapWindowSystem.h:30
int GetMouseButtons(OSWindow w) const override
Definition BitmapWindowSystem.cpp:273
~BitmapWindowSystem()
Definition BitmapWindowSystem.cpp:143
void RaiseWindowToTop(OSWindow w) override
Definition BitmapWindowSystem.cpp:228
std::function< void(Window *, std::shared_ptr< core::Tensor >)> OnDrawCallback
Definition BitmapWindowSystem.h:42
void DestroyWindow(OSWindow w) override
Definition BitmapWindowSystem.cpp:178
Size GetWindowSizePixels(OSWindow w) const override
Definition BitmapWindowSystem.cpp:253
void PostMouseEvent(OSWindow w, const MouseEvent &e)
Definition BitmapWindowSystem.cpp:208
void WaitEventsTimeout(double timeout_secs) override
Definition BitmapWindowSystem.cpp:154
Point GetWindowPos(OSWindow w) const override
Definition BitmapWindowSystem.cpp:232
void SetWindowPos(OSWindow w, int x, int y) override
Definition BitmapWindowSystem.cpp:236
void * GetNativeDrawable(OSWindow w) override
Definition BitmapWindowSystem.cpp:279
Point GetMousePosInWindow(OSWindow w) const override
Definition BitmapWindowSystem.cpp:269
void SetOnWindowDraw(OnDrawCallback callback)
Definition BitmapWindowSystem.cpp:149
float GetWindowScaleFactor(OSWindow w) const override
Definition BitmapWindowSystem.cpp:261
void Initialize() override
Definition BitmapWindowSystem.cpp:145
MenuBase * CreateOSMenu() override
Definition BitmapWindowSystem.cpp:312
Size GetWindowSize(OSWindow w) const override
Definition BitmapWindowSystem.cpp:241
void CancelUserClose(OSWindow w) override
Definition BitmapWindowSystem.cpp:277
void PostTextInputEvent(OSWindow w, const TextInputEvent &e)
Definition BitmapWindowSystem.cpp:218
void PostRedrawEvent(OSWindow w) override
Definition BitmapWindowSystem.cpp:203
Definition MenuBase.h:26
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
Definition PinholeCameraIntrinsic.cpp:16
Definition BitmapWindowSystem.cpp:126