25 : m_nativePixel(
false),
28 m_displayManager(nullptr),
29 m_timerManager(nullptr),
30 m_windowManager(nullptr),
31 m_eventManager(nullptr),
33 m_ndofManager(nullptr),
35 m_preFullScreenSetting{0},
36 m_multitouchGestures(
true),
38 m_is_debug_enabled(
false)
127 const bool stereoVisual)
153 GHOST_PRINT(
"GHOST_System::beginFullScreen(): could not enter full-screen mode\n");
209 std::vector<GHOST_IWindow *>::reverse_iterator iwindow_iter;
214 for (iwindow_iter = windows.rbegin(); iwindow_iter != windows.rend(); ++iwindow_iter) {
224 if (
bounds.isInside(x, y)) {
234#ifdef WITH_INPUT_NDOF
237 m_ndofManager->sendMotionEvent();
314 isDown = keys.
get(mask);
326 isDown = buttons.
get(mask);
351#ifdef WITH_INPUT_NDOF
352void GHOST_System::setNDOFDeadZone(
float deadzone)
354 if (this->m_ndofManager) {
355 this->m_ndofManager->setDeadZone(deadzone);
366#ifdef WITH_GHOST_DEBUG
397#ifdef WITH_INPUT_NDOF
398 delete m_ndofManager;
399 m_ndofManager =
nullptr;
407 const bool stereoVisual)
414#if defined(WITH_OPENGL_BACKEND)
415 gpuSettings.
context_type = GHOST_kDrawingContextTypeOpenGL;
416#elif defined(WITH_METAL_BACKEND)
417 gpuSettings.
context_type = GHOST_kDrawingContextTypeMetal;
418#elif defined(WITH_VULKAN_BACKEND)
419 gpuSettings.
context_type = GHOST_kDrawingContextTypeVulkan;
426 "GHOST_System::createFullScreenWindow(): invalid display manager");
#define GHOST_ASSERT(x, info)
@ GHOST_kWindowStateMinimized
@ GHOST_kWindowStateNormal
void * GHOST_TUserDataPtr
void(* GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
virtual GHOST_TSuccess setCurrentDisplaySetting(uint8_t display, const GHOST_DisplaySetting &setting)
virtual GHOST_TSuccess getCurrentDisplaySetting(uint8_t display, GHOST_DisplaySetting &setting) const
GHOST_TSuccess addConsumer(GHOST_IEventConsumer *consumer)
GHOST_TSuccess removeConsumer(GHOST_IEventConsumer *consumer)
GHOST_TSuccess pushEvent(const GHOST_IEvent *event)
void removeWindowEvents(const GHOST_IWindow *window)
virtual GHOST_TSuccess getCursorPosition(int32_t &x, int32_t &y) const =0
virtual GHOST_IWindow * createWindow(const char *title, int32_t left, int32_t top, uint32_t width, uint32_t height, GHOST_TWindowState state, GHOST_GPUSettings gpuSettings, const bool exclusive=false, const bool is_dialog=false, const GHOST_IWindow *parentWindow=nullptr)=0
virtual uint64_t getMilliSeconds() const =0
virtual GHOST_TSuccess setCursorPosition(int32_t x, int32_t y)=0
virtual void getClientBounds(GHOST_Rect &bounds) const =0
virtual void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual GHOST_TWindowState getState() const =0
virtual GHOST_TSuccess getButtons(GHOST_Buttons &buttons) const =0
GHOST_TTabletAPI getTabletAPI()
GHOST_TSuccess putClipboardImage(uint *rgba, int width, int height) const
GHOST_DisplaySetting m_preFullScreenSetting
GHOST_TSuccess hasClipboardImage() const
void setAutoFocus(const bool auto_focus)
void useWindowFocus(const bool use_focus)
GHOST_TSuccess beginFullScreen(const GHOST_DisplaySetting &setting, GHOST_IWindow **window, const bool stereoVisual)
GHOST_TSuccess removeTimer(GHOST_ITimerTask *timerTask)
virtual bool isDebugEnabled()
virtual GHOST_TSuccess exit()
uint * getClipboardImage(int *r_width, int *r_height) const
GHOST_TSuccess getPixelAtCursor(float r_color[3]) const
GHOST_TSuccess pushEvent(const GHOST_IEvent *event)
bool m_multitouchGestures
virtual GHOST_TSuccess init()
virtual void setTabletAPI(GHOST_TTabletAPI api)
GHOST_TSuccess getButtonState(GHOST_TButton mask, bool &isDown) const
GHOST_TSuccess getModifierKeyState(GHOST_TModifierKey mask, bool &isDown) const
GHOST_TSuccess disposeWindow(GHOST_IWindow *window)
GHOST_IWindow * getWindowUnderCursor(int32_t x, int32_t y)
void setMultitouchGestures(const bool use)
GHOST_TSuccess endFullScreen()
GHOST_WindowManager * m_windowManager
virtual void initDebug(GHOST_Debug debug)
GHOST_TSuccess getCursorPositionClientRelative(const GHOST_IWindow *window, int32_t &x, int32_t &y) const
bool validWindow(GHOST_IWindow *window)
GHOST_TimerManager * m_timerManager
GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer *consumer)
GHOST_TSuccess setCursorPositionClientRelative(GHOST_IWindow *window, int32_t x, int32_t y)
GHOST_DisplayManager * m_displayManager
GHOST_TTabletAPI m_tabletAPI
GHOST_EventManager * m_eventManager
virtual GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys &keys) const =0
GHOST_ITimerTask * installTimer(uint64_t delay, uint64_t interval, GHOST_TimerProcPtr timerProc, GHOST_TUserDataPtr userData=nullptr)
GHOST_TSuccess createFullScreenWindow(GHOST_Window **window, const GHOST_DisplaySetting &settings, const bool stereoVisual)
GHOST_TSuccess updateFullScreen(const GHOST_DisplaySetting &setting, GHOST_IWindow **window)
GHOST_TSuccess removeEventConsumer(GHOST_IEventConsumer *consumer)
bool fireTimers(uint64_t time)
GHOST_TSuccess removeTimer(GHOST_TimerTask *timer)
GHOST_TSuccess addTimer(GHOST_TimerTask *timer)
GHOST_TSuccess endFullScreen()
bool getFullScreen() const
GHOST_TSuccess removeWindow(const GHOST_IWindow *window)
const std::vector< GHOST_IWindow * > & getWindows() const
GHOST_TSuccess beginFullScreen(GHOST_IWindow *window, const bool stereoVisual)
GHOST_IWindow * getFullScreenWindow() const
bool getWindowFound(const GHOST_IWindow *window) const
unsigned __int64 uint64_t
GHOST_TDrawingContextType context_type
bool get(GHOST_TModifierKey mask) const