Open3D (C++ API)  0.19.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-2024 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 // Not needed anymore - may be removed
31 enum class Rendering {
32 NORMAL, // normal OpenGL rendering, requires X11, Win32, or Cocoa
33 HEADLESS // uses EGL, does not require the OS to have a window system.
34 // (Linux only)
35 };
38
39 void Initialize() override;
40 void Uninitialize() override;
41
43 std::function<void(Window*, std::shared_ptr<core::Tensor>)>;
45
46 void WaitEventsTimeout(double timeout_secs) override;
47
49 int width,
50 int height,
51 const char* title,
52 int flags) override;
53 void DestroyWindow(OSWindow w) override;
54
55 Size GetScreenSize(OSWindow w) override;
56
57 void PostRedrawEvent(OSWindow w) override;
58 void PostMouseEvent(OSWindow w, const MouseEvent& e);
59 void PostKeyEvent(OSWindow w, const KeyEvent& e);
61
62 bool GetWindowIsVisible(OSWindow w) const override;
63 void ShowWindow(OSWindow w, bool show) override;
64
65 void RaiseWindowToTop(OSWindow w) override;
66 bool IsActiveWindow(OSWindow w) const override;
67
68 Point GetWindowPos(OSWindow w) const override;
69 void SetWindowPos(OSWindow w, int x, int y) override;
70
71 Size GetWindowSize(OSWindow w) const override;
72 void SetWindowSize(OSWindow w, int width, int height) override;
73
74 Size GetWindowFrameSize(OSWindow w) const override;
75
76 Size GetWindowSizePixels(OSWindow w) const override;
77 void SetWindowSizePixels(OSWindow w, const Size& size) override;
78
79 float GetWindowScaleFactor(OSWindow w) const override;
80 float GetUIScaleFactor(OSWindow w) const override;
81
82 void SetWindowTitle(OSWindow w, const char* title) override;
83
84 Point GetMousePosInWindow(OSWindow w) const override;
85 int GetMouseButtons(OSWindow w) const override;
86
87 void CancelUserClose(OSWindow w) override;
88
89 void* GetNativeDrawable(OSWindow w) override;
90
92
94 rendering::FilamentRenderer* renderer) override;
95
96 MenuBase* CreateOSMenu() override;
97
98private:
99 struct Impl;
100 std::unique_ptr<Impl> impl_;
101};
102
103} // namespace gui
104} // namespace visualization
105} // namespace open3d
Window * o3d_window
Definition BitmapWindowSystem.cpp:30
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition FilamentRenderer.cpp:327
Definition BitmapWindowSystem.h:28
void SetWindowSizePixels(OSWindow w, const Size &size) override
Definition BitmapWindowSystem.cpp:357
rendering::FilamentRenderer * CreateRenderer(OSWindow w) override
Definition BitmapWindowSystem.cpp:381
void SetWindowTitle(OSWindow w, const char *title) override
Definition BitmapWindowSystem.cpp:367
void Uninitialize() override
Definition BitmapWindowSystem.cpp:228
float GetUIScaleFactor(OSWindow w) const override
Definition BitmapWindowSystem.cpp:365
void ResizeRenderer(OSWindow w, rendering::FilamentRenderer *renderer) override
Definition BitmapWindowSystem.cpp:406
bool GetWindowIsVisible(OSWindow w) const override
Definition BitmapWindowSystem.cpp:319
void PostKeyEvent(OSWindow w, const KeyEvent &e)
Definition BitmapWindowSystem.cpp:308
bool IsActiveWindow(OSWindow w) const override
Definition BitmapWindowSystem.cpp:325
void SetWindowSize(OSWindow w, int width, int height) override
Definition BitmapWindowSystem.cpp:341
Size GetScreenSize(OSWindow w) override
Definition BitmapWindowSystem.cpp:246
void ShowWindow(OSWindow w, bool show) override
Definition BitmapWindowSystem.cpp:321
OSWindow CreateOSWindow(Window *o3d_window, int width, int height, const char *title, int flags) override
Definition BitmapWindowSystem.cpp:250
Rendering
Definition BitmapWindowSystem.h:31
int GetMouseButtons(OSWindow w) const override
Definition BitmapWindowSystem.cpp:373
~BitmapWindowSystem()
Definition BitmapWindowSystem.cpp:224
void RaiseWindowToTop(OSWindow w) override
Definition BitmapWindowSystem.cpp:323
std::function< void(Window *, std::shared_ptr< core::Tensor >)> OnDrawCallback
Definition BitmapWindowSystem.h:43
void DestroyWindow(OSWindow w) override
Definition BitmapWindowSystem.cpp:259
Size GetWindowSizePixels(OSWindow w) const override
Definition BitmapWindowSystem.cpp:353
void PostMouseEvent(OSWindow w, const MouseEvent &e)
Definition BitmapWindowSystem.cpp:295
void WaitEventsTimeout(double timeout_secs) override
Definition BitmapWindowSystem.cpp:235
Point GetWindowPos(OSWindow w) const override
Definition BitmapWindowSystem.cpp:327
void SetWindowPos(OSWindow w, int x, int y) override
Definition BitmapWindowSystem.cpp:331
void * GetNativeDrawable(OSWindow w) override
Definition BitmapWindowSystem.cpp:379
Size GetWindowFrameSize(OSWindow w) const override
Definition BitmapWindowSystem.cpp:348
Point GetMousePosInWindow(OSWindow w) const override
Definition BitmapWindowSystem.cpp:369
void SetOnWindowDraw(OnDrawCallback callback)
Definition BitmapWindowSystem.cpp:230
float GetWindowScaleFactor(OSWindow w) const override
Definition BitmapWindowSystem.cpp:361
void Initialize() override
Definition BitmapWindowSystem.cpp:226
MenuBase * CreateOSMenu() override
Definition BitmapWindowSystem.cpp:412
Size GetWindowSize(OSWindow w) const override
Definition BitmapWindowSystem.cpp:336
void CancelUserClose(OSWindow w) override
Definition BitmapWindowSystem.cpp:377
void PostTextInputEvent(OSWindow w, const TextInputEvent &e)
Definition BitmapWindowSystem.cpp:313
void PostRedrawEvent(OSWindow w) override
Definition BitmapWindowSystem.cpp:287
Definition MenuBase.h:26
Definition WindowSystem.h:29
void * OSWindow
Definition WindowSystem.h:31
int width
Definition FilePCD.cpp:53
int size
Definition FilePCD.cpp:41
int height
Definition FilePCD.cpp:54
Definition PinholeCameraIntrinsic.cpp:16
Definition BitmapWindowSystem.cpp:216