6#ifndef MATERIALX_WINDOWWRAPPER_H
7#define MATERIALX_WINDOWWRAPPER_H
10#define WIN32_LEAN_AND_MEAN
12#elif defined(__linux__)
15using Widget =
struct _WidgetRec*;
25using ExternalWindowHandle = HWND;
27using InternalWindowHandle = HDC;
29using DisplayHandle =
void*;
30#elif defined(__linux__)
32using ExternalWindowHandle = Widget;
34using InternalWindowHandle = Window;
36using DisplayHandle = Display*;
38using Widget =
struct _WidgetRec*;
39#elif defined(__APPLE__)
41using ExternalWindowHandle =
void*;
43using InternalWindowHandle =
void*;
45using DisplayHandle =
void*;
48using ExternalWindowHandle =
void*;
49using InternalWindowHandle =
void*;
50using DisplayHandle =
void*;
54using WindowWrapperPtr = std::shared_ptr<class WindowWrapper>;
66 DisplayHandle display = {});
74 return _externalHandle;
80 return _internalHandle;
87 return _internalHandle != 0;
95 Display* getXDisplay()
const
104 DisplayHandle display);
107 ExternalWindowHandle _externalHandle;
108 InternalWindowHandle _internalHandle;
110#if defined(__linux__)
112 Window _framebufferWindow;
Generic wrapper for encapsulating a "window" construct.
Definition: WindowWrapper.h:61
void release()
Release resources stored in wrapper.
bool isValid() const
Check that there is a valid OS handle set.
Definition: WindowWrapper.h:85
static WindowWrapperPtr create(ExternalWindowHandle externalHandle={}, InternalWindowHandle internalHandle={}, DisplayHandle display={})
Create a new WindowWrapper.
Definition: WindowWrapper.cpp:110
ExternalWindowHandle externalHandle() const
Return "external" handle.
Definition: WindowWrapper.h:72
InternalWindowHandle internalHandle() const
Return "internal" handle.
Definition: WindowWrapper.h:78