Blender V4.5
GHOST_IWindow.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9
10#pragma once
11
12#include "GHOST_Rect.hh"
13#include "GHOST_Types.h"
14
15#include <cstdlib>
16#include <string>
17
18class GHOST_IContext;
19
35 public:
39 virtual ~GHOST_IWindow() = default;
40
45 virtual bool getValid() const = 0;
46
51 virtual void *getOSWindow() const = 0;
52
58
65
71
76 virtual void setTitle(const char *title) = 0;
77
82 virtual std::string getTitle() const = 0;
83
88 virtual GHOST_TSuccess setPath(const char *filepath) = 0;
89
94
100
106 GHOST_WindowDecorationStyleSettings decorationSettings) = 0;
107
112
118 virtual void getWindowBounds(GHOST_Rect &bounds) const = 0;
119
125 virtual void getClientBounds(GHOST_Rect &bounds) const = 0;
126
131 virtual GHOST_TSuccess setClientWidth(uint32_t width) = 0;
132
137 virtual GHOST_TSuccess setClientHeight(uint32_t height) = 0;
138
144 virtual GHOST_TSuccess setClientSize(uint32_t width, uint32_t height) = 0;
145
153 virtual void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const = 0;
154
162 virtual void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const = 0;
163
167 virtual void setAcceptDragOperation(bool canAccept) = 0;
168
173 virtual bool canAcceptDragOperation() const = 0;
174
179 virtual GHOST_TWindowState getState() const = 0;
180
187
193 virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges) = 0;
194
199 virtual bool getModifiedState() = 0;
200
207
213
219 virtual GHOST_TSuccess setSwapInterval(int interval) = 0;
220
227 virtual GHOST_TSuccess getSwapInterval(int &intervalOut) = 0;
228
234
239 virtual unsigned int getDefaultFramebuffer() = 0;
240
241#ifdef WITH_VULKAN_BACKEND
242 virtual GHOST_TSuccess getVulkanSwapChainFormat(
243 GHOST_VulkanSwapChainData *r_swap_chain_data) = 0;
244#endif
245
251
256 virtual GHOST_TUserDataPtr getUserData() const = 0;
257
262 virtual void setUserData(const GHOST_TUserDataPtr userData) = 0;
263
264 virtual bool isDialog() const = 0;
265
266 /***************************************************************************************
267 * Progress bar functionality
268 ***************************************************************************************/
269
275
280
281 /***************************************************************************************
282 * Cursor management functionality
283 ***************************************************************************************/
284
290
297
299
301 GHOST_TAxisFlag &axis_flag,
303 bool &use_software_cursor) = 0;
304
306
312
321 virtual GHOST_TSuccess setCustomCursorShape(uint8_t *bitmap,
322 uint8_t *mask,
323 int sizex,
324 int sizey,
325 int hotX,
326 int hotY,
327 bool canInvertColor) = 0;
328
330
335 virtual bool getCursorVisibility() const = 0;
336
342 virtual GHOST_TSuccess setCursorVisibility(bool visible) = 0;
343
350 GHOST_TAxisFlag /*wrap_axis*/,
351 GHOST_Rect * /*bounds*/,
352 int32_t /*mouse_ungrab_xy*/[2])
353 {
354 return GHOST_kSuccess;
355 }
356
357 virtual float getNativePixelSize() = 0;
358
363 virtual uint16_t getDPIHint() = 0;
364
365#ifdef WITH_INPUT_IME
377 virtual void beginIME(int32_t x, int32_t y, int32_t w, int32_t h, bool completed) = 0;
378
383 virtual void endIME() = 0;
384#endif /* WITH_INPUT_IME */
385
386 MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IWindow")
387};
GHOST_TWindowState
void * GHOST_TUserDataPtr
Definition GHOST_Types.h:78
GHOST_TStandardCursor
GHOST_TAxisFlag
GHOST_TDrawingContextType
GHOST_TWindowOrder
GHOST_TSuccess
Definition GHOST_Types.h:80
@ GHOST_kSuccess
Definition GHOST_Types.h:80
GHOST_TGrabCursorMode
GHOST_TWindowDecorationStyleFlags
float progress
Definition WM_types.hh:1019
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
Definition btDbvt.cpp:299
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition btQuadWord.h:119
virtual void setTitle(const char *title)=0
virtual void getClientBounds(GHOST_Rect &bounds) const =0
virtual void setAcceptDragOperation(bool canAccept)=0
virtual GHOST_TSuccess activateDrawingContext()=0
virtual bool getModifiedState()=0
virtual GHOST_TSuccess getCursorBitmap(GHOST_CursorBitmapRef *bitmap)=0
virtual GHOST_TSuccess endProgressBar()=0
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order)=0
virtual void setWindowDecorationStyleFlags(GHOST_TWindowDecorationStyleFlags styleFlags)=0
virtual bool canAcceptDragOperation() const =0
virtual ~GHOST_IWindow()=default
virtual void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual GHOST_TSuccess setClientHeight(uint32_t height)=0
virtual GHOST_TSuccess setProgressBar(float progress)=0
virtual bool isDialog() const =0
virtual std::string getTitle() const =0
virtual GHOST_TSuccess setClientSize(uint32_t width, uint32_t height)=0
virtual GHOST_TSuccess applyWindowDecorationStyle()=0
virtual GHOST_TSuccess setState(GHOST_TWindowState state)=0
virtual void * getOSWindow() const =0
virtual GHOST_TSuccess getSwapInterval(int &intervalOut)=0
virtual GHOST_TSuccess setCursorShape(GHOST_TStandardCursor cursorShape)=0
virtual bool getCursorGrabUseSoftwareDisplay()=0
virtual GHOST_TSuccess setClientWidth(uint32_t width)=0
virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges)=0
virtual float getNativePixelSize()=0
virtual GHOST_IContext * getDrawingContext()=0
virtual GHOST_TSuccess setCursorVisibility(bool visible)=0
virtual void getCursorGrabState(GHOST_TGrabCursorMode &mode, GHOST_TAxisFlag &axis_flag, GHOST_Rect &bounds, bool &use_software_cursor)=0
virtual void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual GHOST_TSuccess getCursorGrabBounds(GHOST_Rect &bounds) const =0
virtual void getWindowBounds(GHOST_Rect &bounds) const =0
virtual GHOST_TSuccess hasCursorShape(GHOST_TStandardCursor cursorShape)=0
virtual bool getCursorVisibility() const =0
virtual GHOST_TSuccess setPath(const char *filepath)=0
virtual GHOST_TWindowDecorationStyleFlags getWindowDecorationStyleFlags()=0
virtual GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type)=0
virtual bool getValid() const =0
virtual GHOST_TSuccess setSwapInterval(int interval)=0
virtual GHOST_TUserDataPtr getUserData() const =0
virtual GHOST_TSuccess invalidate()=0
virtual void setUserData(const GHOST_TUserDataPtr userData)=0
virtual GHOST_TDrawingContextType getDrawingContextType()=0
virtual GHOST_TSuccess swapBuffers()=0
virtual void setWindowDecorationStyleSettings(GHOST_WindowDecorationStyleSettings decorationSettings)=0
virtual GHOST_TStandardCursor getCursorShape() const =0
virtual uint16_t getDPIHint()=0
virtual GHOST_TWindowState getState() const =0
virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode, GHOST_TAxisFlag, GHOST_Rect *, int32_t[2])
virtual GHOST_TSuccess setCustomCursorShape(uint8_t *bitmap, uint8_t *mask, int sizex, int sizey, int hotX, int hotY, bool canInvertColor)=0
virtual unsigned int getDefaultFramebuffer()=0
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static ulong state[N]