Menu work, move VOS queue interface

This commit is contained in:
elasota
2019-12-24 02:35:24 -05:00
parent 4c743c90b1
commit 3111609536
34 changed files with 828 additions and 92 deletions

View File

@@ -4,6 +4,7 @@
struct IGpDisplayDriver;
struct IGpFiber;
struct IGpVOSEventQueue;
struct GpDisplayDriverProperties
{
@@ -29,4 +30,6 @@ struct GpDisplayDriverProperties
RenderFunc_t m_renderFunc;
void *m_renderFuncContext;
IGpVOSEventQueue *m_eventQueue;
};

View File

@@ -1,5 +1,14 @@
#pragma once
namespace GpKeyModifiers
{
enum GpKeyModifier
{
kShift,
kCtrl,
};
}
namespace GpKeyIDSubsets
{
enum GpKeyIDSubset
@@ -43,9 +52,9 @@ namespace GpKeySpecials
typedef GpKeySpecials::GpKeySpecial GpKeySpecial_t;
namespace GpInputEventTypes
namespace GpKeyboardInputEventTypes
{
enum GpInputEventType
enum GpKeyboardInputEventType
{
kDown,
kUp,
@@ -53,19 +62,9 @@ namespace GpInputEventTypes
};
}
typedef GpInputEventTypes::GpInputEventType GpInputEventType_t;
typedef GpKeyboardInputEventTypes::GpKeyboardInputEventType GpKeyboardInputEventType_t;
namespace GpVOSEventTypes
{
enum GpVOSEventType
{
kInput,
};
}
typedef GpVOSEventTypes::GpVOSEventType GpVOSEventType_t;
struct GpInputEvent
struct GpKeyboardInputEvent
{
union KeyUnion
{
@@ -73,17 +72,66 @@ struct GpInputEvent
char m_asciiChar;
};
GpInputEventType_t m_eventType;
GpKeyboardInputEventType_t m_eventType;
GpKeyIDSubset_t m_keyIDSubset;
KeyUnion m_key;
};
namespace GpMouseEventTypes
{
enum GpMouseEventType
{
kUp,
kDown,
kMove,
kLeave,
};
}
typedef GpMouseEventTypes::GpMouseEventType GpMouseEventType_t;
namespace GpMouseButtons
{
enum GpMouseButton
{
kNone,
kLeft,
kMiddle,
kRight,
kX1,
kX2,
};
}
typedef GpMouseButtons::GpMouseButton GpMouseButton_t;
struct GpMouseInputEvent
{
int32_t m_x;
int32_t m_y;
GpMouseEventType_t m_eventType;
GpMouseButton_t m_button;
};
namespace GpVOSEventTypes
{
enum GpVOSEventType
{
kKeyboardInput,
kMouseInput,
};
}
typedef GpVOSEventTypes::GpVOSEventType GpVOSEventType_t;
struct GpVOSEvent
{
union EventUnion
{
GpInputEvent m_inputEvent;
GpKeyboardInputEvent m_keyboardInputEvent;
GpMouseInputEvent m_mouseInputEvent;
};
EventUnion m_event;
GpVOSEventType_t m_eventType;
};

View File

@@ -10,6 +10,7 @@
struct IGpFiber;
struct IGpColorCursor_Win32;
struct IGpVOSEventQueue;
struct GpWindowsGlobals
{
@@ -21,5 +22,6 @@ struct GpWindowsGlobals
IGpFiber *(*m_createFiberFunc)(LPVOID fiber);
IGpColorCursor_Win32 *(*m_loadColorCursorFunc)(const wchar_t *path);
void (*m_translateWindowsMessageFunc)(const MSG *msg, IGpVOSEventQueue *eventQueue);
};

View File

@@ -0,0 +1,11 @@
#pragma once
struct GpVOSEvent;
struct IGpVOSEventQueue
{
virtual const GpVOSEvent *GetNext() = 0;
virtual void DischargeOne() = 0;
virtual GpVOSEvent *QueueEvent() = 0;
};