/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/Platform/Win/MessageLoop_Platform.h
50 строк
1 KB
Jan Krassnigg
Further refactor of platform specific code (2) (#1416)
25 окт 2024, 17:01
Не верифицирован
25 окт 2024, 17:01
b3eeda7
Код
Авторство
О чём код?
#pragma once #include <Foundation/FoundationInternal.h> EZ_FOUNDATION_INTERNAL_HEADER #if EZ_ENABLED(EZ_PLATFORM_WINDOWS_DESKTOP) # include <Foundation/Basics.h> # include <Foundation/Communication/Implementation/MessageLoop.h> # include <Foundation/Platform/Win/Utils/IncludeWindows.h> class ezIpcChannel; struct IOContext; class EZ_FOUNDATION_DLL ezMessageLoop_win : public ezMessageLoop { public: struct IOItem { EZ_DECLARE_POD_TYPE(); ezIpcChannel* pChannel; IOContext* pContext; DWORD uiBytesTransfered; DWORD uiError; }; public: ezMessageLoop_win(); ~ezMessageLoop_win(); HANDLE GetPort() const { return m_hPort; } protected: virtual void WakeUp() override; virtual bool WaitForMessages(ezInt32 iTimeout, ezIpcChannel* pFilter) override; bool GetIOItem(ezInt32 iTimeout, IOItem* pItem); bool ProcessInternalIOItem(const IOItem& item); bool MatchCompletedIOItem(ezIpcChannel* pFilter, IOItem* pItem); private: ezDynamicArray<IOItem> m_CompletedIO; LONG m_iHaveWork = 0; HANDLE m_hPort = INVALID_HANDLE_VALUE; }; using ezMessageLoop_Platform = ezMessageLoop_win; #endif