41 #define PACKETDATA (PK_BUTTONS | PK_NORMAL_PRESSURE | PK_ORIENTATION | PK_CURSOR)
42 #define PACKETMODE PK_BUTTONS
61 #ifndef USER_DEFAULT_SCREEN_DPI
62 # define USER_DEFAULT_SCREEN_DPI 96
71 #if (WINVER >= 0x0603)
93 #define POINTER_FLAG_NONE 0x00000000
94 #define POINTER_FLAG_NEW 0x00000001
95 #define POINTER_FLAG_INRANGE 0x00000002
96 #define POINTER_FLAG_INCONTACT 0x00000004
97 #define POINTER_FLAG_FIRSTBUTTON 0x00000010
98 #define POINTER_FLAG_SECONDBUTTON 0x00000020
99 #define POINTER_FLAG_THIRDBUTTON 0x00000040
100 #define POINTER_FLAG_FOURTHBUTTON 0x00000080
101 #define POINTER_FLAG_FIFTHBUTTON 0x00000100
102 #define POINTER_FLAG_PRIMARY 0x00002000
103 #define POINTER_FLAG_CONFIDENCE 0x000004000
104 #define POINTER_FLAG_CANCELED 0x000008000
105 #define POINTER_FLAG_DOWN 0x00010000
106 #define POINTER_FLAG_UPDATE 0x00020000
107 #define POINTER_FLAG_UP 0x00040000
108 #define POINTER_FLAG_WHEEL 0x00080000
109 #define POINTER_FLAG_HWHEEL 0x00100000
110 #define POINTER_FLAG_CAPTURECHANGED 0x00200000
111 #define POINTER_FLAG_HASTRANSFORM 0x00400000
133 #define PEN_FLAG_NONE 0x00000000
134 #define PEN_FLAG_BARREL 0x00000001
135 #define PEN_FLAG_INVERTED 0x00000002
136 #define PEN_FLAG_ERASER 0x00000004
139 #define PEN_MASK_NONE 0x00000000
140 #define PEN_MASK_PRESSURE 0x00000001
141 #define PEN_MASK_ROTATION 0x00000002
142 #define PEN_MASK_TILT_X 0x00000004
143 #define PEN_MASK_TILT_Y 0x00000008
158 #define POINTER_MESSAGE_FLAG_NEW 0x00000001
159 #define POINTER_MESSAGE_FLAG_INRANGE 0x00000002
160 #define POINTER_MESSAGE_FLAG_INCONTACT 0x00000004
161 #define POINTER_MESSAGE_FLAG_FIRSTBUTTON 0x00000010
162 #define POINTER_MESSAGE_FLAG_SECONDBUTTON 0x00000020
163 #define POINTER_MESSAGE_FLAG_THIRDBUTTON 0x00000040
164 #define POINTER_MESSAGE_FLAG_FOURTHBUTTON 0x00000080
165 #define POINTER_MESSAGE_FLAG_FIFTHBUTTON 0x00000100
166 #define POINTER_MESSAGE_FLAG_PRIMARY 0x00002000
167 #define POINTER_MESSAGE_FLAG_CONFIDENCE \
169 #define POINTER_MESSAGE_FLAG_CANCELED 0x00008000
172 #define TOUCH_FLAG_NONE 0x00000000
175 #define TOUCH_MASK_NONE 0x00000000
176 #define TOUCH_MASK_CONTACTAREA 0x00000001
177 #define TOUCH_MASK_ORIENTATION 0x00000002
178 #define TOUCH_MASK_PRESSURE 0x00000004
193 #define GET_POINTERID_WPARAM(wParam) (LOWORD(wParam))
194 #define IS_POINTER_FLAG_SET_WPARAM(wParam, flag) (((DWORD)HIWORD(wParam) & (flag)) == (flag))
195 #define IS_POINTER_NEW_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_NEW)
196 #define IS_POINTER_INRANGE_WPARAM(wParam) \
197 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INRANGE)
198 #define IS_POINTER_INCONTACT_WPARAM(wParam) \
199 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INCONTACT)
200 #define IS_POINTER_FIRSTBUTTON_WPARAM(wParam) \
201 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIRSTBUTTON)
202 #define IS_POINTER_SECONDBUTTON_WPARAM(wParam) \
203 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_SECONDBUTTON)
204 #define IS_POINTER_THIRDBUTTON_WPARAM(wParam) \
205 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_THIRDBUTTON)
206 #define IS_POINTER_FOURTHBUTTON_WPARAM(wParam) \
207 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FOURTHBUTTON)
208 #define IS_POINTER_FIFTHBUTTON_WPARAM(wParam) \
209 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIFTHBUTTON)
210 #define IS_POINTER_PRIMARY_WPARAM(wParam) \
211 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_PRIMARY)
212 #define HAS_POINTER_CONFIDENCE_WPARAM(wParam) \
213 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CONFIDENCE)
214 #define IS_POINTER_CANCELED_WPARAM(wParam) \
215 IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CANCELED)
218 UINT32 *entriesCount,
221 UINT32 *entriesCount,
224 UINT32 *entriesCount,
271 bool wantStereoVisual =
false,
272 bool alphaBackground =
false,
274 bool is_debug =
false,
275 bool dialog =
false);
472 #ifdef WITH_INPUT_IME
473 GHOST_ImeWin32 *getImeInput()
520 bool canInvertColor);
534 bool m_hasMouseCaptured;
541 int m_nPressedButtons;
543 HCURSOR m_customCursor;
545 bool m_wantAlphaBackground;
550 static const wchar_t *s_windowClassName;
551 static const int s_maxTitleLength;
583 HWND m_parentWindowHwnd;
585 #ifdef WITH_INPUT_IME
587 GHOST_ImeWin32 m_imeInput;
589 bool m_debug_context;
unsigned int GHOST_TUns32
unsigned long long GHOST_TUns64
unsigned short GHOST_TUns16
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeNone
unsigned char GHOST_TUns8
BOOL(API * GHOST_WIN32_WTOverlap)(HCTX, BOOL)
BOOL(API * GHOST_WIN32_WTEnable)(HCTX, BOOL)
UINT(API * GHOST_WIN32_GetDpiForWindow)(HWND)
enum tagPOINTER_BUTTON_CHANGE_TYPE POINTER_BUTTON_CHANGE_TYPE
HCTX(API * GHOST_WIN32_WTOpen)(HWND, LPLOGCONTEXTA, BOOL)
BOOL(API * GHOST_WIN32_WTClose)(HCTX)
struct tagPOINTER_PEN_INFO POINTER_PEN_INFO
tagPOINTER_BUTTON_CHANGE_TYPE
@ POINTER_CHANGE_THIRDBUTTON_UP
@ POINTER_CHANGE_FIFTHBUTTON_UP
@ POINTER_CHANGE_FIRSTBUTTON_DOWN
@ POINTER_CHANGE_SECONDBUTTON_DOWN
@ POINTER_CHANGE_FOURTHBUTTON_DOWN
@ POINTER_CHANGE_FIFTHBUTTON_DOWN
@ POINTER_CHANGE_FOURTHBUTTON_UP
@ POINTER_CHANGE_THIRDBUTTON_DOWN
@ POINTER_CHANGE_SECONDBUTTON_UP
@ POINTER_CHANGE_FIRSTBUTTON_UP
BOOL(WINAPI * GHOST_WIN32_GetPointerPenInfoHistory)(UINT32 pointerId, UINT32 *entriesCount, POINTER_PEN_INFO *penInfo)
BOOL(WINAPI * GHOST_WIN32_GetPointerInfoHistory)(UINT32 pointerId, UINT32 *entriesCount, POINTER_INFO *pointerInfo)
BOOL(API * GHOST_WIN32_RegisterTouchWindow)(HWND hwnd, ULONG ulFlags)
struct tagPOINTER_INFO POINTER_INFO
struct tagPOINTER_TOUCH_INFO POINTER_TOUCH_INFO
GHOST_MouseCaptureEventWin32
BOOL(API * GHOST_WIN32_WTPacket)(HCTX, UINT, LPVOID)
BOOL(WINAPI * GHOST_WIN32_GetPointerTouchInfoHistory)(UINT32 pointerId, UINT32 *entriesCount, POINTER_TOUCH_INFO *touchInfo)
_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 type
_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 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
_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 GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint order
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
GHOST_TSuccess invalidate()
GHOST_WIN32_WTOverlap overlap
GHOST_TUns16 getDPIHint() override
GHOST_WIN32_WTEnable enable
GHOST_WindowWin32(GHOST_SystemWin32 *system, const char *title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type=GHOST_kDrawingContextTypeNone, bool wantStereoVisual=false, bool alphaBackground=false, GHOST_WindowWin32 *parentWindow=0, bool is_debug=false, bool dialog=false)
void processWin32TabletActivateEvent(WORD state)
GHOST_TSuccess setOrder(GHOST_TWindowOrder order)
GHOST_TSuccess setProgressBar(float progress)
void processWin32TabletInitEvent()
void setTitle(const char *title)
std::string getTitle() const
GHOST_WIN32_WTClose close
void loadCursor(bool visible, GHOST_TStandardCursor cursorShape) const
GHOST_TSuccess getPointerInfo(std::vector< GHOST_PointerInfoWin32 > &outPointerInfo, WPARAM wParam, LPARAM lParam)
GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height)
const GHOST_TabletData & getTabletData()
void bringTabletContextToFront()
void processWin32TabletEvent(WPARAM wParam, LPARAM lParam)
HCURSOR getStandardCursor(GHOST_TStandardCursor shape) const
void updateMouseCapture(GHOST_MouseCaptureEventWin32 event)
GHOST_TSuccess setState(GHOST_TWindowState state)
void getWindowBounds(GHOST_Rect &bounds) const
void getClientBounds(GHOST_Rect &bounds) const
GHOST_TSuccess beginFullScreen() const
void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32 &outX, GHOST_TInt32 &outY) const
GHOST_TSuccess setClientHeight(GHOST_TUns32 height)
GHOST_TSuccess endProgressBar()
GHOST_TWindowState getState() const
void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32 &outX, GHOST_TInt32 &outY) const
bool useTabletAPI(GHOST_TTabletAPI api) const
GHOST_WIN32_WTPacket packet
GHOST_TSuccess endFullScreen() const
GHOST_TSuccess setClientWidth(GHOST_TUns32 width)
static const VertexNature POINT
GHOST_TabletData tabletData
GHOST_TButtonMask buttonMask
POINT ptHimetricLocationRaw
POINTER_INPUT_TYPE pointerType
POINTER_FLAGS pointerFlags
POINTER_BUTTON_CHANGE_TYPE ButtonChangeType
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)