Blender V5.0
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 decoration_settings) = 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 can_accept) = 0;
168
173 virtual bool canAcceptDragOperation() const = 0;
174
179 virtual GHOST_TWindowState getState() const = 0;
180
187
193 virtual GHOST_TSuccess setModifiedState(bool is_unsaved_changes) = 0;
194
199 virtual bool getModifiedState() = 0;
200
207
213
219
225 virtual GHOST_TSuccess setSwapInterval(int interval) = 0;
226
233 virtual GHOST_TSuccess getSwapInterval(int &interval_out) = 0;
234
240
245 virtual unsigned int getDefaultFramebuffer() = 0;
246
247#ifdef WITH_VULKAN_BACKEND
249 virtual GHOST_TSuccess getVulkanSwapChainFormat(
250 GHOST_VulkanSwapChainData *r_swap_chain_data) = 0;
251#endif
252
258
263 virtual GHOST_TUserDataPtr getUserData() const = 0;
264
269 virtual void setUserData(const GHOST_TUserDataPtr user_data) = 0;
270
271 virtual bool isDialog() const = 0;
272
273 /***************************************************************************************
274 * Progress bar functionality
275 ***************************************************************************************/
276
281 virtual GHOST_TSuccess setProgressBar(float progress) = 0;
282
287
288 /***************************************************************************************
289 * Cursor management functionality
290 ***************************************************************************************/
291
297
304
310
312 GHOST_TAxisFlag &axis_flag,
314 bool &use_software_cursor) = 0;
315
320
326
335 virtual GHOST_TSuccess setCustomCursorShape(const uint8_t *bitmap,
336 const uint8_t *mask,
337 const int size[2],
338 const int hot_spot[2],
339 bool can_invert_color) = 0;
340
348
350
355 virtual bool getCursorVisibility() const = 0;
356
362 virtual GHOST_TSuccess setCursorVisibility(bool visible) = 0;
363
370 GHOST_TAxisFlag /*wrap_axis*/,
371 GHOST_Rect * /*bounds*/,
372 int32_t /*mouse_ungrab_xy*/[2])
373 {
374 return GHOST_kSuccess;
375 }
376
380 virtual float getNativePixelSize() = 0;
381
386 virtual uint16_t getDPIHint() = 0;
387
393
394#ifdef WITH_INPUT_IME
406 virtual void beginIME(int32_t x, int32_t y, int32_t w, int32_t h, bool completed) = 0;
407
412 virtual void endIME() = 0;
413#endif /* WITH_INPUT_IME */
414
415 MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IWindow")
416};
GHOST_TWindowState
void * GHOST_TUserDataPtr
Definition GHOST_Types.h:55
GHOST_TStandardCursor
GHOST_TAxisFlag
GHOST_TDrawingContextType
GHOST_TWindowOrder
GHOST_TSuccess
Definition GHOST_Types.h:57
@ GHOST_kSuccess
Definition GHOST_Types.h:57
GHOST_TGrabCursorMode
GHOST_TWindowDecorationStyleFlags
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
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 GHOST_TSuccess activateDrawingContext()=0
virtual bool getModifiedState()=0
virtual GHOST_TSuccess getCursorBitmap(GHOST_CursorBitmapRef *bitmap)=0
virtual GHOST_TSuccess endProgressBar()=0
virtual GHOST_TSuccess setCursorShape(GHOST_TStandardCursor cursor_shape)=0
virtual void setWindowDecorationStyleSettings(GHOST_WindowDecorationStyleSettings decoration_settings)=0
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order)=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 GHOST_TSuccess setCustomCursorShape(const uint8_t *bitmap, const uint8_t *mask, const int size[2], const int hot_spot[2], bool can_invert_color)=0
virtual GHOST_TSuccess swapBufferRelease()=0
virtual bool isDialog() const =0
virtual GHOST_WindowHDRInfo getHDRInfo()=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 bool getCursorGrabUseSoftwareDisplay()=0
virtual GHOST_TSuccess setClientWidth(uint32_t width)=0
virtual float getNativePixelSize()=0
virtual GHOST_IContext * getDrawingContext()=0
virtual GHOST_TSuccess setCursorVisibility(bool visible)=0
virtual GHOST_TSuccess getSwapInterval(int &interval_out)=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 swapBufferAcquire()=0
virtual GHOST_TSuccess getCursorGrabBounds(GHOST_Rect &bounds) const =0
virtual void getWindowBounds(GHOST_Rect &bounds) const =0
virtual void setUserData(const GHOST_TUserDataPtr user_data)=0
virtual bool getCursorVisibility() const =0
virtual GHOST_TSuccess setPath(const char *filepath)=0
virtual GHOST_TWindowDecorationStyleFlags getWindowDecorationStyleFlags()=0
virtual void setAcceptDragOperation(bool can_accept)=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 void setWindowDecorationStyleFlags(GHOST_TWindowDecorationStyleFlags style_flags)=0
virtual GHOST_TSuccess invalidate()=0
virtual GHOST_TDrawingContextType getDrawingContextType()=0
virtual GHOST_TSuccess setCustomCursorGenerator(GHOST_CursorGenerator *cursor_generator)=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 setModifiedState(bool is_unsaved_changes)=0
virtual unsigned int getDefaultFramebuffer()=0
virtual GHOST_TSuccess hasCursorShape(GHOST_TStandardCursor cursor_shape)=0
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static ulong state[N]