Blender  V3.3
GHOST_ISystem.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
11 #pragma once
12 
13 #include <stdlib.h>
14 
15 #include "GHOST_IContext.h"
16 #include "GHOST_ITimerTask.h"
17 #include "GHOST_IWindow.h"
18 #include "GHOST_Types.h"
19 
21 
117  public:
122  static GHOST_TSuccess createSystem();
123 
128  static GHOST_TSuccess disposeSystem();
129 
134  static GHOST_ISystem *getSystem();
135 
137  static void setBacktraceFn(GHOST_TBacktraceFn backtrace_fn);
138 
139  protected:
145  {
146  }
147 
152  virtual ~GHOST_ISystem()
153  {
154  }
155 
156  public:
157  /***************************************************************************************
158  * Time(r) functionality
159  ***************************************************************************************/
160 
167  virtual uint64_t getMilliSeconds() const = 0;
168 
180  uint64_t interval,
181  GHOST_TimerProcPtr timerProc,
182  GHOST_TUserDataPtr userData = NULL) = 0;
183 
189  virtual GHOST_TSuccess removeTimer(GHOST_ITimerTask *timerTask) = 0;
190 
191  /***************************************************************************************
192  * Display/window management functionality
193  ***************************************************************************************/
194 
199  virtual uint8_t getNumDisplays() const = 0;
200 
206 
212 
231  virtual GHOST_IWindow *createWindow(const char *title,
232  int32_t left,
233  int32_t top,
234  uint32_t width,
238  GHOST_GLSettings glSettings,
239  const bool exclusive = false,
240  const bool is_dialog = false,
241  const GHOST_IWindow *parentWindow = NULL) = 0;
242 
249 
256 
263 
269  virtual bool validWindow(GHOST_IWindow *window) = 0;
270 
279  GHOST_IWindow **window,
280  const bool stereoVisual,
281  const bool alphaBackground = 0) = 0;
282 
291  GHOST_IWindow **window) = 0;
292 
297  virtual GHOST_TSuccess endFullScreen(void) = 0;
298 
303  virtual bool getFullScreen(void) = 0;
304 
308  virtual bool useNativePixel(void) = 0;
309 
313  virtual bool supportsCursorWarp() = 0;
314 
318  virtual bool supportsWindowPosition() = 0;
319 
323  virtual void useWindowFocus(const bool use_focus) = 0;
324 
332 
333  /***************************************************************************************
334  * Event management functionality
335  ***************************************************************************************/
336 
342  virtual bool processEvents(bool waitForEvent) = 0;
343 
347  virtual void dispatchEvents() = 0;
348 
355 
362 
363  /***************************************************************************************
364  * Cursor management functionality
365  ***************************************************************************************/
366 
374  int32_t &x,
375  int32_t &y) const = 0;
383  int32_t x,
384  int32_t y) = 0;
385 
393 
402 
403  /***************************************************************************************
404  * Access to mouse button and keyboard states.
405  ***************************************************************************************/
406 
413  virtual GHOST_TSuccess getModifierKeyState(GHOST_TModifierKey mask, bool &isDown) const = 0;
414 
421  virtual GHOST_TSuccess getButtonState(GHOST_TButton mask, bool &isDown) const = 0;
422 
427  virtual void setMultitouchGestures(const bool use) = 0;
428 
433  virtual void setTabletAPI(GHOST_TTabletAPI api) = 0;
434 
435 #ifdef WITH_INPUT_NDOF
440  virtual void setNDOFDeadZone(float deadzone) = 0;
441 #endif
442 
449 
450  /***************************************************************************************
451  * Access to clipboard.
452  ***************************************************************************************/
453 
459  virtual char *getClipboard(bool selection) const = 0;
460 
464  virtual void putClipboard(const char *buffer, bool selection) const = 0;
465 
466  /***************************************************************************************
467  * System Message Box.
468  ***************************************************************************************/
469 
480  virtual GHOST_TSuccess showMessageBox(const char * /*title*/,
481  const char * /*message*/,
482  const char * /*help_label*/,
483  const char * /*continue_label*/,
484  const char * /*link*/,
485  GHOST_DialogOptions /*dialog_options*/) const = 0;
486 
487  /***************************************************************************************
488  * Debugging
489  ***************************************************************************************/
490 
495  virtual void initDebug(GHOST_Debug debug) = 0;
496 
500  virtual bool isDebugEnabled() = 0;
501 
502  protected:
507  virtual GHOST_TSuccess init() = 0;
508 
513  virtual GHOST_TSuccess exit() = 0;
514 
517 
520 
521 #ifdef WITH_CXX_GUARDEDALLOC
522  MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ISystem")
523 #endif
524 };
GHOST_TWindowState
Definition: GHOST_Types.h:129
void * GHOST_TUserDataPtr
Definition: GHOST_Types.h:72
void(* GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, uint64_t time)
Definition: GHOST_Types.h:614
GHOST_TDrawingContextType
Definition: GHOST_Types.h:148
GHOST_TModifierKey
Definition: GHOST_Types.h:118
GHOST_TSuccess
Definition: GHOST_Types.h:74
void(* GHOST_TBacktraceFn)(void *file_handle)
Definition: GHOST_Types.h:45
GHOST_TButton
Definition: GHOST_Types.h:156
GHOST_TConsoleWindowState
Definition: GHOST_Types.h:139
GHOST_TTabletAPI
Definition: GHOST_Types.h:89
GHOST_DialogOptions
Definition: GHOST_Types.h:67
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble top
static GHOST_ISystem * getSystem()
virtual void putClipboard(const char *buffer, bool selection) const =0
virtual int setConsoleWindowState(GHOST_TConsoleWindowState action)=0
static GHOST_TBacktraceFn getBacktraceFn()
virtual bool supportsWindowPosition()=0
static void setBacktraceFn(GHOST_TBacktraceFn backtrace_fn)
virtual GHOST_TSuccess showMessageBox(const char *, const char *, const char *, const char *, const char *, GHOST_DialogOptions) const =0
virtual void initDebug(GHOST_Debug debug)=0
virtual void setTabletAPI(GHOST_TTabletAPI api)=0
virtual bool supportsCursorWarp()=0
virtual GHOST_TSuccess setCursorPositionClientRelative(GHOST_IWindow *window, int32_t x, int32_t y)=0
virtual void getMainDisplayDimensions(uint32_t &width, uint32_t &height) const =0
virtual GHOST_TSuccess beginFullScreen(const GHOST_DisplaySetting &setting, GHOST_IWindow **window, const bool stereoVisual, const bool alphaBackground=0)=0
virtual ~GHOST_ISystem()
virtual GHOST_IWindow * getWindowUnderCursor(int32_t x, int32_t y)=0
virtual bool validWindow(GHOST_IWindow *window)=0
virtual GHOST_TSuccess getCursorPosition(int32_t &x, int32_t &y) const =0
virtual void getAllDisplayDimensions(uint32_t &width, uint32_t &height) const =0
virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer *consumer)=0
virtual GHOST_TSuccess exit()=0
virtual GHOST_IContext * createOffscreenContext(GHOST_GLSettings glSettings)=0
virtual GHOST_TSuccess getModifierKeyState(GHOST_TModifierKey mask, bool &isDown) const =0
virtual bool isDebugEnabled()=0
virtual void useWindowFocus(const bool use_focus)=0
virtual char * getClipboard(bool selection) const =0
virtual GHOST_TSuccess disposeContext(GHOST_IContext *context)=0
virtual GHOST_TSuccess removeTimer(GHOST_ITimerTask *timerTask)=0
static GHOST_TSuccess disposeSystem()
virtual bool getFullScreen(void)=0
virtual uint8_t getNumDisplays() const =0
virtual void setMultitouchGestures(const bool use)=0
static GHOST_TSuccess createSystem()
virtual void dispatchEvents()=0
virtual GHOST_IWindow * createWindow(const char *title, int32_t left, int32_t top, uint32_t width, uint32_t height, GHOST_TWindowState state, GHOST_TDrawingContextType type, GHOST_GLSettings glSettings, const bool exclusive=false, const bool is_dialog=false, const GHOST_IWindow *parentWindow=NULL)=0
virtual GHOST_TSuccess endFullScreen(void)=0
virtual GHOST_ITimerTask * installTimer(uint64_t delay, uint64_t interval, GHOST_TimerProcPtr timerProc, GHOST_TUserDataPtr userData=NULL)=0
static GHOST_ISystem * m_system
virtual GHOST_TSuccess updateFullScreen(const GHOST_DisplaySetting &setting, GHOST_IWindow **window)=0
static GHOST_TBacktraceFn m_backtrace_fn
virtual GHOST_TSuccess getCursorPositionClientRelative(const GHOST_IWindow *window, int32_t &x, int32_t &y) const =0
virtual GHOST_TSuccess getButtonState(GHOST_TButton mask, bool &isDown) const =0
virtual uint64_t getMilliSeconds() const =0
virtual bool useNativePixel(void)=0
virtual GHOST_TSuccess disposeWindow(GHOST_IWindow *window)=0
virtual GHOST_TSuccess setCursorPosition(int32_t x, int32_t y)=0
virtual GHOST_TSuccess removeEventConsumer(GHOST_IEventConsumer *consumer)=0
virtual bool processEvents(bool waitForEvent)=0
virtual GHOST_TSuccess init()=0
ccl_global float * buffer
const int state
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
Definition: math_float4.h:513
static int left
unsigned int uint32_t
Definition: stdint.h:80
signed int int32_t
Definition: stdint.h:77
unsigned char uint8_t
Definition: stdint.h:78
unsigned __int64 uint64_t
Definition: stdint.h:90