1#ifndef _ZFI_ZFMainEntry_sys_SDL_h_
2#define _ZFI_ZFMainEntry_sys_SDL_h_
5#include "ZFImpl_sys_SDL_ZF_impl.h"
15extern ZFLIB_ZF_impl SDL_Window *ZFImpl_sys_SDL_mainWindow(
void);
19extern ZFLIB_ZF_impl SDL_Renderer *ZFImpl_sys_SDL_mainRenderer(
void);
24extern ZFLIB_ZF_impl SDL_Window *ZFImpl_sys_SDL_CreateWindow(
void);
29extern ZFLIB_ZF_impl SDL_PixelFormat ZFImpl_sys_SDL_PixelFormatPreferred(
void);
36typedef void (*ZFImpl_sys_SDL_WindowLifeCycle)(
ZF_IN SDL_Window *owner);
42typedef void (*ZFImpl_sys_SDL_RendererLifeCycle)(
ZF_IN SDL_Renderer *owner);
45extern ZFLIB_ZF_impl void ZFImpl_sys_SDL_RendererNotifyCreate(
ZF_IN SDL_Renderer *owner);
46extern ZFLIB_ZF_impl void ZFImpl_sys_SDL_RendererNotifyDestroy(
ZF_IN SDL_Renderer *owner);
54typedef zfbool (*ZFImpl_sys_SDL_EventHandler)(
ZF_IN SDL_Event *event);
59 ,
ZF_IN ZFImpl_sys_SDL_EventHandler eventHandler
65 ,
ZF_IN ZFImpl_sys_SDL_EventHandler eventHandler
70 ZF_IN Sint32 userEventCode
71 ,
ZF_IN ZFImpl_sys_SDL_EventHandler eventHandler
75extern ZFLIB_ZF_impl void ZFImpl_sys_SDL_userEventHandlerRemove(
76 ZF_IN Sint32 userEventCode
77 ,
ZF_IN ZFImpl_sys_SDL_EventHandler eventHandler
93#define ZFIMPL_SYS_SDL_EVENT_HANDLER(name, sdlEventId, level) \
94 static zfbool _ZFP_SDLEventH_##name(ZF_IN SDL_Event *sdlEvent); \
95 ZF_GLOBAL_INITIALIZER_INIT_WITH_LEVEL(SDLEventReg_##name, ZFLevelZFFrameworkStatic) { \
96 ZFImpl_sys_SDL_eventHandlerAdd(sdlEventId, _ZFP_SDLEventH_##name, level); \
98 ZF_GLOBAL_INITIALIZER_DESTROY(SDLEventReg_##name) { \
99 ZFImpl_sys_SDL_eventHandlerRemove(sdlEventId, _ZFP_SDLEventH_##name); \
101 ZF_GLOBAL_INITIALIZER_END(SDLEventReg_##name) \
102 static zfbool _ZFP_SDLEventH_##name(ZF_IN SDL_Event *sdlEvent)
126#define ZFIMPL_SYS_SDL_USER_EVENT_HANDLER(name, level) \
127 ZFIDMAP_GLOBAL_REGISTER_DETAIL(_ZFP_SDLUEvent, name) \
128 static zfbool _ZFP_SDLUEventH_##name(ZF_IN SDL_Event *sdlEvent); \
129 ZF_GLOBAL_INITIALIZER_INIT_WITH_LEVEL(SDLEventReg_##name, ZFLevelZFFrameworkStatic) { \
130 ZFImpl_sys_SDL_userEventHandlerAdd(((Sint32)_ZFP_SDLUEvent##name()), _ZFP_SDLUEventH_##name, level); \
132 ZF_GLOBAL_INITIALIZER_DESTROY(SDLEventReg_##name) { \
133 ZFImpl_sys_SDL_userEventHandlerRemove(((Sint32)_ZFP_SDLUEvent##name()), _ZFP_SDLUEventH_##name); \
135 ZF_GLOBAL_INITIALIZER_END(SDLEventReg_##name) \
136 static zfbool _ZFP_SDLUEventH_##name(ZF_IN SDL_Event *sdlEvent)
140#define ZFIMPL_SYS_SDL_USER_EVENT(name) \
141 ((Sint32)_ZFP_SDLUEvent##name())
146#define ZFIMPL_SYS_SDL_USER_EVENT_POST(name, data1_, data2_) \
150 e.type = SDL_EVENT_USER; \
151 e.user.code = ZFIMPL_SYS_SDL_USER_EVENT(name); \
152 e.user.data1 = data1_; \
153 e.user.data2 = data2_; \
header file for ZFCore module
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:188
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
#define ZFLIB_ZF_impl
used to export symbols
Definition ZFImpl_ZF_impl.h:15
ZFLevel
level for logic which depends on order
Definition ZFLevel.h:17
@ ZFLevelAppNormal
app
Definition ZFLevel.h:26
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
light weight array
Definition ZFCoreArray.h:331