NVIDIA DeepStream SDK API Reference

9.2 Release
sources/libs/ds3d/glprocess/window.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef DS3D_GLPROCESS_GL_WINDOW_H
19 #define DS3D_GLPROCESS_GL_WINDOW_H
20 
21 #include "ds3d/common/common.h"
22 #include "ds3d/common/hpp/obj.hpp"
23 #include "ds3d/common/hpp/datarender.hpp"
24 
25 namespace ds3d { namespace glfw {
26 class WindowImpl;
27 }} // namespace ds3d::glfw
28 
29 namespace ds3d { namespace gl {
30 
31 class Window: public abiWindow {
32 public:
33  virtual void setSize(uint32_t width, uint32_t height) = 0;
34  virtual void setTitle(const char* t) = 0;
35  virtual void getSize(uint32_t& width, uint32_t& height) const = 0;
36  virtual std::string getTitle() const = 0;
37  virtual ErrCode makeCurrent() = 0;
38  virtual void closeCurrent() = 0;
39  virtual ErrCode run(std::function<ErrCode()> loopRender) = 0;
40  virtual ErrCode runOnce(std::function<ErrCode()> rendering) = 0;
41  virtual ErrCode close() = 0;
42  virtual ErrCode getFrameBufferSize(uint32_t& width, uint32_t& height) = 0;
43  virtual ErrCode getWindowSize(uint32_t& width, uint32_t& height) = 0;
44 };
45 
46 class GWindow : public Window {
47  friend class glfw::WindowImpl;
48 
49 public:
50  GWindow();
51  virtual ~GWindow();
52 
53  void setSize(uint32_t width, uint32_t height) override;
54  void setTitle(const char* t) override;
55  void getSize(uint32_t& width, uint32_t& height) const override;
56  std::string getTitle() const override;
57  ErrCode create();
58  ErrCode makeCurrent() override;
59  void closeCurrent() override;
60  ErrCode run(std::function<ErrCode()> loopRender) override;
61  ErrCode runOnce(std::function<ErrCode()> rendering) override;
62  ErrCode close() override;
63  ErrCode destroy();
64 
65  ErrCode getFrameBufferSize(uint32_t& width, uint32_t& height) override;
66  ErrCode getWindowSize(uint32_t& width, uint32_t& height) override;
67 
68 public:
69  // inherited interface
70  void* getNativeWindow() override;
71  void setCloseCallback(const CloseCB* closeCb) override;
72  void setKeyPressCallback(const KeyPressCB* keyCb) override;
73  void setFbSizeChangedCallback(const FbSizeChangedCB* sizeChangedCb) override;
74  void setMouseChangedCallback(const MouseChangedCB* mouseChangedCb) override;
75  void appendMouseChangedCallback(const MouseChangedCB* mouseChangedCb) override;
76 
77 protected:
79 };
80 
81 } // namespace gl
82 
85 
86 } // namespace ds3d
87 
90  uint32_t width, uint32_t height, const char* title);
92 
93 
94 #endif // DS3D_GLPROCESS_GL_WINDOW_H
ds3d::gl::GWindow::setMouseChangedCallback
void setMouseChangedCallback(const MouseChangedCB *mouseChangedCb) override
ds3d::gl::GWindow
Definition: sources/libs/ds3d/glprocess/window.h:46
ds3d::GuardGlWindow
GuardDataT< gl::Window > GuardGlWindow
Definition: sources/libs/ds3d/glprocess/window.h:84
width
JDIMENSION JDIMENSION * width
Definition: sources/libs/nvll_batch_jpeg_encode/oss/jpeglib.h:1001
ds3d::gl::Window::setSize
virtual void setSize(uint32_t width, uint32_t height)=0
ds3d::gl::GWindow::destroy
ErrCode destroy()
ds3d::gl::Window::run
virtual ErrCode run(std::function< ErrCode()> loopRender)=0
ds3d::gl::Window::getWindowSize
virtual ErrCode getWindowSize(uint32_t &width, uint32_t &height)=0
ds3d::gl::GWindow::GWindow
GWindow()
ds3d::gl::Window::getTitle
virtual std::string getTitle() const =0
ds3d::gl::Window::makeCurrent
virtual ErrCode makeCurrent()=0
ds3d::gl::GWindow::getNativeWindow
void * getNativeWindow() override
ds3d::gl::GWindow::setKeyPressCallback
void setKeyPressCallback(const KeyPressCB *keyCb) override
NvDs3D_CreateGlfwWindow
DS3D_EXTERN_C_BEGIN DS3D_EXPORT_API ds3d::abiRefGlWindow * NvDs3D_CreateGlfwWindow(uint32_t width, uint32_t height, const char *title)
ds3d::gl::GWindow::appendMouseChangedCallback
void appendMouseChangedCallback(const MouseChangedCB *mouseChangedCb) override
ds3d::abiRefT< gl::Window >
ds3d::abiRefGlWindow
abiRefT< gl::Window > abiRefGlWindow
Definition: sources/libs/ds3d/glprocess/window.h:83
ds3d::gl::GWindow::WindowImpl
friend class glfw::WindowImpl
Definition: sources/libs/ds3d/glprocess/window.h:47
ds3d::gl::GWindow::setSize
void setSize(uint32_t width, uint32_t height) override
ds3d::ErrCode
ErrCode
Definition: includes/ds3d/common/common.h:47
ds3d::gl::Window::runOnce
virtual ErrCode runOnce(std::function< ErrCode()> rendering)=0
ds3d::gl::GWindow::setFbSizeChangedCallback
void setFbSizeChangedCallback(const FbSizeChangedCB *sizeChangedCb) override
ds3d::GuardDataT< gl::Window >
DS3D_EXTERN_C_BEGIN
#define DS3D_EXTERN_C_BEGIN
Definition: includes/ds3d/common/defines.h:130
ds3d::gl::Window::setTitle
virtual void setTitle(const char *t)=0
ds3d::gl::GWindow::getFrameBufferSize
ErrCode getFrameBufferSize(uint32_t &width, uint32_t &height) override
ds3d::gl::Window::getSize
virtual void getSize(uint32_t &width, uint32_t &height) const =0
ds3d::gl::GWindow::~GWindow
virtual ~GWindow()
ds3d::gl::GWindow::getTitle
std::string getTitle() const override
ds3d::gl::GWindow::runOnce
ErrCode runOnce(std::function< ErrCode()> rendering) override
ds3d::gl::GWindow::closeCurrent
void closeCurrent() override
ds3d::gl::GWindow::makeCurrent
ErrCode makeCurrent() override
ds3d::gl::Window
Definition: sources/libs/ds3d/glprocess/window.h:31
ds3d::gl::GWindow::setTitle
void setTitle(const char *t) override
ds3d::gl::Window::closeCurrent
virtual void closeCurrent()=0
ds3d::gl::GWindow::create
ErrCode create()
ds3d::gl::GWindow::getWindowSize
ErrCode getWindowSize(uint32_t &width, uint32_t &height) override
ds3d::gl::GWindow::getSize
void getSize(uint32_t &width, uint32_t &height) const override
DS3D_EXPORT_API
#define DS3D_EXPORT_API
Definition: includes/ds3d/common/defines.h:129
ds3d::abiWindow
Definition: includes/ds3d/common/abi_window.h:28
ds3d::gl::GWindow::close
ErrCode close() override
ds3d::gl::GWindow::setCloseCallback
void setCloseCallback(const CloseCB *closeCb) override
ds3d
Definition: includes/ds3d/common/abi_dataprocess.h:25
ds3d::gl::GWindow::run
ErrCode run(std::function< ErrCode()> loopRender) override
ds3d::abiCallBackT
Definition: includes/ds3d/common/abi_obj.h:75
DS3D_EXTERN_C_END
#define DS3D_EXTERN_C_END
Definition: includes/ds3d/common/defines.h:131
ds3d::gl::Window::close
virtual ErrCode close()=0
ds3d::gl::GWindow::_impl
glfw::WindowImpl * _impl
Definition: sources/libs/ds3d/glprocess/window.h:78
ds3d::gl::Window::getFrameBufferSize
virtual ErrCode getFrameBufferSize(uint32_t &width, uint32_t &height)=0