OROCHI
 
Loading...
Searching...
No Matches
GxSysMain.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12#include "flag.h"
13#if GX_DEVELOP
14#include "developFlag.h"
15#endif //GX_DEVELOP
16#if defined(_WINDOWS)
17#if GX_DEVELOP
18#if _MSC_VER >= 1900
19#pragma warning(disable:4091) // VS2015 patch
20#endif //_MSC_VER
21#include <dbghelp.h>
22#if _MSC_VER >= 1900
23#pragma warning(default:4091)
24#endif //_MSC_VER
25#endif //GX_DEVELOP
26#endif //_WINDOWS
27
28GX_CORE_NAMESPACE_BEGIN()
29class GxRenderDevice;
30class GxProfiler;
31class GxSysRenderBase;
32class GxSysShader;
33class GxSysFilterBase;
34class GxSysResource;
37class GxSysPrimitive;
39class GxSysFile;
41class GxSysUnit;
42class GxSysStage;
43class GxSysInput;
45class GxSysLightBase;
47class GxSysGpgpu;
52class GxSysP2PBase;
54#if GX_DEVELOP
55class GxSysTool;
56class GxSysDebugCommunication;
57class GxToolInitialInformation;
58class GxDebugCommunicationInitialInformation;
59class GxSysThread;
60#endif //GX_DEVELOP
61class GxSysEffectBase;
64class GxSysSoundBase;
69class GxSysMovieBase;
71class GxSysFont;
73
74//===========================================================================
76//===========================================================================
78{
79 //-----------------------------------------------------------
81 //-----------------------------------------------------------
83public:
84 // RTTI定義
86 // GxClassBase継承クラス用禁止宣言
88
89
90 //-------------------------------------------------------------
92 //-------------------------------------------------------------
94public:
97 GxStageInitialInformationBase* pStageInitialInformation,
98 GxRenderInitialInformation* pRenderInitialInformation,
99 GxPrimitiveInitialInformation* pPrimitiveInitialInformation,
100 GxResourceInitialInformation* pResourceInitialInformation,
101 GxEffectInitialInformationBase* pEffectInitialInformation,
102 GxFilterInitialInformationBase* pFilterInitialInformation,
103 GxInputInitialInformation* pInputInitialInformation,
104 GxCollisionInitialInformationBase* pCollisionInitialInformation,
105 GxDynamicsInitialInformationBase* pDynamicsInitialInformation,
106 GxNetworkInitialInformation* pNetworkInitialInformation,
107 GxUnitInitialInformation* pUnitInitialInformation,
108 GxSoundInitialInformationBase* pSoundInitialInformation,
109 GxMovieInitialInformationBase* pMovieInitialInformation,
110 GxFontInitialInformation* pFontInitialInformation
111#if GX_DEVELOP
112 , GxToolInitialInformation* pToolInitialInformation
113 , GxDebugCommunicationInitialInformation* pDebugCommunicationInitialInformation = nullptr
114#endif //GX_DEVELOP
115 );
116
117private:
120
122 //-------------------------------------------------------------
124 //-------------------------------------------------------------
126public:
128 void loadJson(GX_CSTR path);
130 void loadJson(const GxJson::GxJsonNode& jsonNode);
131
132#if GX_DEVELOP
134 static GxGuiBase* createGui(GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, u32 index);
135#endif // GX_DEVELOP
136
138 //-------------------------------------------------------------
140 //-------------------------------------------------------------
142
144 GX_FORCE_INLINE void setUserAllocatorInformationArray(GxAllocatorList::GxCreateInformation* pUserAllocatorInformationArray, u32 count)
145 {
146 _pUserAllocatorInformationArray = pUserAllocatorInformationArray;
147 _userAllocatorInformationCount = count;
148 }
150 constexpr GxAllocatorList::GxCreateInformation* getUserAllocatorInformationArray(void) const { return _pUserAllocatorInformationArray; }
152 constexpr u32 getUserAllocatorInformationCount(void) const { return _userAllocatorInformationCount; }
154 constexpr GxStageInitialInformationBase* getStageInitialInformation(void) const { return _pStageInitialInformation; }
156 constexpr GxRenderInitialInformation* getRenderInitialInformation(void) const { return _pRenderInitialInformation; }
158 constexpr GxPrimitiveInitialInformation* getPrimitiveInitialInformation(void) const { return _pPrimitiveInitialInformation; }
160 constexpr GxResourceInitialInformation* getResourceInitialInformation(void) const { return _pResourceInitialInformation; }
162 constexpr GxEffectInitialInformationBase* getEffectInitialInformation(void) const { return _pEffectInitialInformation; }
164 constexpr GxFilterInitialInformationBase* getFilterInitialInformation(void) const { return _pFilterInitialInformation; }
166 constexpr GxInputInitialInformation* getInputInitialInformation(void) const { return _pInputInitialInformation; }
168 constexpr GxCollisionInitialInformationBase* getCollisionInitialInformation(void) const { return _pCollisionInitialInformation; }
170 constexpr GxDynamicsInitialInformationBase* getDynamicsInitialInformation(void) const { return _pDynamicsInitialInformation; }
172 constexpr GxNetworkInitialInformation* getNetworkInitialInformation(void) const { return _pNetworkInitialInformation; }
174 constexpr GxUnitInitialInformation* getUnitInitialInformation(void) const { return _pUnitInitialInformation; }
176 constexpr GxSoundInitialInformationBase* getSoundInitialInformation(void) const { return _pSoundInitialInformation; }
178 constexpr GxMovieInitialInformationBase* getMovieInitialInformation(void) const { return _pMovieInitialInformation; }
180 constexpr GxFontInitialInformation* getFontInitialInformation(void) const { return _pFontInitialInformation; }
181#if GX_DEVELOP
183 constexpr GxToolInitialInformation* getToolInitialInformation(void) const { return _pToolInitialInformation; }
185 constexpr GxDebugCommunicationInitialInformation* getDebugCommunicationInitialInformation(void) const { return _pDebugCommunicationInitialInformation; }
186
188 constexpr GX_CSTR getInitialLoadPath( void ) { return _initialLoadPath; }
190 constexpr GX_CSTR getLoadPath( void ) const { return _loadPath.getString(); }
192 constexpr GX_CSTR getPlatformName( void ) const { return _platformName.getString(); }
193#endif //GX_DEVELOP
194
196 //-------------------------------------------------------------
198 //-------------------------------------------------------------
200
203
204#if defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
205 u32 _saveDataSize;
206#if defined(_PS4) || defined(_PS5)
207 b32 _isCopySaveDataIcon;
208#endif // _PS4 || _PS5
209#endif // _PS4 || _PS5 || _XBOX_XS
210
211#if defined(_PS4) || defined(_PS5)
212 b32 _isFixMainThreadCpuIndex;
213#elif defined(_XBOX_XS)
214 GxString _scid;
215#elif defined(_WINDOWS)
216 b32 _useSteamSDK;
217 u32 _steamAppId;
218#endif //_WINDOWS
219#if GX_DEVELOP
220 u32 _xmlReadSize;
221 b32 _deserializeSafety;
222#if defined(_WINDOWS)
223 b32 _menuBarEnable;
224 b32 _toolBarEnable;
225#endif //_WINDOWS
226#endif //GX_DEVELOP
228#if GX_USE_UNIT_PROFILE
229 b32 _useUnitProfile;
230#endif //GX_USE_UNIT_PROFILE
233
234private:
235 GxAllocatorList::GxCreateInformation* _pUserAllocatorInformationArray;
236 u32 _userAllocatorInformationCount;
237 GxStageInitialInformationBase* _pStageInitialInformation;
238 GxRenderInitialInformation* _pRenderInitialInformation;
239 GxPrimitiveInitialInformation* _pPrimitiveInitialInformation;
240 GxResourceInitialInformation* _pResourceInitialInformation;
241 GxEffectInitialInformationBase* _pEffectInitialInformation;
242 GxFilterInitialInformationBase* _pFilterInitialInformation;
243 GxInputInitialInformation* _pInputInitialInformation;
244 GxCollisionInitialInformationBase* _pCollisionInitialInformation;
245 GxDynamicsInitialInformationBase* _pDynamicsInitialInformation;
246 GxNetworkInitialInformation* _pNetworkInitialInformation;
247 GxUnitInitialInformation* _pUnitInitialInformation;
248 GxSoundInitialInformationBase* _pSoundInitialInformation;
249 GxMovieInitialInformationBase* _pMovieInitialInformation;
250 GxFontInitialInformation* _pFontInitialInformation;
251#if GX_DEVELOP
252 GxToolInitialInformation* _pToolInitialInformation;
253 GxDebugCommunicationInitialInformation* _pDebugCommunicationInitialInformation;
254
255 GX_CSTR _initialLoadPath;
256 GxString _loadPath;
257 GxString _platformName;
258#endif //GX_DEVELOP
259
261};
262
263//===========================================================================
265//===========================================================================
266class GxSysMain : public GxSysBase, public SingletonBase<GxSysMain>
267{
268 //-------------------------------------------------------------
270 //-------------------------------------------------------------
272public:
273 GX_RTTI_ABSTRACT_CLASS(GxSysMain, GxSysBase)
274 // GxClassBase継承クラス用禁止宣言
276
280 enum class EXIT_CODE
281 {
282 NORMAL,
283 ERROR_,
284 };
285
288 {
289 FAIL,
290 SUCCESS,
291 FINISH,
292 };
293
296 {
297 SYS_FILE,
299 SYS_INPUT,
300#if GX_DEVELOP
301 SYS_DEBUG_COMMUNICATION,
302#endif //GX_DEVELOP
303 SYS_SHADER,
305 SYS_RENDER,
307 SYS_EFFECT,
308 SYS_LIGHT,
310 SYS_GPGPU,
313 SYS_UNIT,
315 SYS_P2P,
316 SYS_FONT,
317#if GX_DEVELOP
318 SYS_TOOL,
319 SYS_THREAD,
320#endif //GX_DEVELOP
321 SYS_STAGE,
323 SYS_FILTER,
324 SYS_SOUND,
325 SYS_MOVIE,
326 FINISH,
327 };
328
329#if defined(_WINDOWS)
331 enum class WINDOW_MODE
332 {
333 WINDOW,
334 BORDER_LESS,
335 FULL_SCREEN,
336 MAX,
337 };
338#if GX_DEVELOP
340 GX_ENUM_TABLE_MAX(WINDOW_MODE)
341#endif //GX_DEVELOP
342#endif //_WINDOWS
343
345 enum class PLAY_MODE
346 {
347 STOP = 0,
348 PAUSE,
349 PLAY,
350 };
351
352#if GX_ASSERT_ENABLE
354 enum class GX_ASSERT_MODE
355 {
356 BREAK = 0,
357 END,
358 };
359#endif // GX_ASSERT_ENABLE
360
363 {
364 GX_CSTR _name;
365 u32 _value;
366 };
367
369 static constexpr u32 SYSTEM_FLAG_NUM = GxMath::VALUE_2K / 32;
371 static constexpr u32 SYSTEM_FLAG_MAX = SYSTEM_FLAG_NUM * 32; // (32bit × u32 work num)
372
374 static constexpr u32 DEVELOP_FLAG_NUM = GxMath::VALUE_1K / 32;
376 static constexpr u32 DEVELOP_FLAG_MAX = DEVELOP_FLAG_NUM * 32;
377
384#if defined(_WINDOWS)
386 static GX_CSTR BOOT_ARGUMENT_AUTO_FINALIZE_FBX;
387#endif //_WINDOWS
388
389protected:
390#if GX_DEVELOP
391#if defined(_WINDOWS)
393 struct ICON_RESOURCE
394 {
395 GX_HANDLE _handleIcon;
396 HBITMAP _handleBitmap;
397 GxSize _bitmapSize;
398 };
399#endif //_WINDOWS
400#endif //GX_DEVELOP
401
403 //-------------------------------------------------------------
405 //-------------------------------------------------------------
407public:
409 GxSysMain(void);
411 ~GxSysMain(void) override {}
413 b32 initialize(const GxClassBase* pInitialInformation) override;
415 void terminate(void) override;
417 void forceExit( EXIT_CODE code );
419 GX_FORCE_INLINE b32 isExiting(void) const { return !_enable; }
420
421protected:
423 virtual GxSysRenderBase* createSysRender(void);
425 virtual GxSysShader* createSysShader(void);
427 virtual GxSysFilterBase* createSysFilter(void);
429 virtual GxSysResource* createSysResource(void);
431 virtual GxSysPrimitive* createSysPrimitive(void);
433 virtual GxSysFile* createSysFile(void);
435 virtual GxSysUnit* createSysUnit(void);
437 virtual GxSysStage* createSysStage(void);
439 virtual GxSysInput* createSysInput(void);
441 virtual GxSysLightBase* createSysLight(void);
445 virtual GxSysGpgpu* createSysGpGpu(void);
451 virtual GxSysP2PBase* createSysP2P(void);
453 virtual GxSysFontBmpBase* createSysFontBmp(void);
455 virtual GxSysFont* createSysFont(void);
456#if GX_DEVELOP
458 virtual GxSysTool* createSysTool(void);
460 virtual GxSysDebugCommunication* createSysDebugCommunication(void);
461#endif //GX_DEVELOP
463 virtual GxSysEffectBase* createSysEffect(void);
465 virtual GxSysSoundBase* createSysSound(void);
467 virtual GxSysMovieBase* createSysMovie(void);
469 virtual GxSysNetworkBase* createSysNetwork(void);
470
472 //-------------------------------------------------------------
474 //-------------------------------------------------------------
476public:
477#if defined(_WINDOWS)
478#if GX_DEVELOP
480 void createMenuBar(void);
482 void releaseMenuBar(void);
484 void createToolBar(void);
486 void releaseToolBar(void);
488 void setToolBarButtonOn(u32 index, b32 on);
490 void releaseMenubarAndToolbarBitmap(void);
491#endif //GX_DEVELOP
493 WINDOW_MODE getWindowMode(void);
495 void setWindowMode(WINDOW_MODE windowMode);
496#endif //_WINDOWS
497protected:
499 virtual void loadModule(void);
501 virtual void unloadModule(void);
503 INITIALIZE_APPLICATION_RESULT initializeApplication(const GxMainInitialInformation* pMainInitialInformation, u32 initializeSequence);
505 virtual void terminateApplication(void);
507 virtual void initializeModule(const GxMainInitialInformation* pMainInitialInformation);
509 virtual void terminateModule(void);
511 virtual void releaseAllocator(void);
513 b32 initializeLoop(const GxMainInitialInformation* pMainInitialInformation);
515 virtual void callUsage(void) {}
516
517private:
519 void createSystem(void);
520#if defined(_WINDOWS)
521#if GX_DEVELOP
523 u32 createSubMenuBar(HMENU hMenu, u32 tableIndex, GxPropertyTable& table);
525 MENUITEMINFOW createMenuItemInfoSeparator(void);
527 MENUITEMINFOW createMenuItemInfoNormalW(GX_WSTR name, u32 id, GX_HANDLE iconHandle = 0);
529 MENUITEMINFOW createMenuItemInfoCheckmarkW(GX_WSTR name, u32 id, b32 value, GX_HANDLE iconHandle = 0);
531 MENUITEMINFOW createMenuItemInfoPopupW(GX_WSTR name, u32 id, GX_HANDLE iconHandle = 0);
533 HBITMAP searchOrCreateHbitmapFromIconHandle(GX_HANDLE iconHandle, GxSize* outBitMapSize = nullptr);
535 HBITMAP createHbitmapFromIconHandle(GX_HANDLE iconHandle);
537 u32 searchResourceIdFromIconHandle(GX_HANDLE iconHandle);
538#endif //GX_DEVELOP
539#endif //_WINDOWS
540
541public:
543 EXIT_CODE mainLoop(void);
544
547
548protected:
550 void update(void) override;
551private:
553 void updateDeltaTime(void);
554
555#if defined(_WINDOWS)
556public:
558 static GX_CSTR CLASS_NAME;
560 static constexpr u32 WINDOW_NAME_LENGTH = GxMath::VALUE_128;
562 void getWindowName(GX_STR name);
564 void setWindowName(GX_CSTR name);
566 // style は WNDCLASSEXW.style を設定する。
567 // style = 0xffffffff の場合、標準的な組み合わせとして
568 // (CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS) が設定される
569 b32 createWindow(const GxSize& size, b32 isFullScreen, GX_CSTR captionName = "", WORD iconResourceId = 0, GX_CSTR className = CLASS_NAME, UINT style = 0xffffffff);
571 void storeWindowState(void);
573 void restoreWindowState(void);
575 GX_FORCE_INLINE HINSTANCE getInstance(void) const { return GetModuleHandle(nullptr); }
577 constexpr HWND getHwnd(void) const { return _handleWindow; }
579 constexpr HANDLE getCurrentProcess(void) const { return _handleProcess; }
581 constexpr HWND getHwndParent(void) const { return _handleWindowParent; }
583 constexpr HWND getHwndRoot(void) const { return (_handleWindowParent != nullptr) ? _handleWindowParent : _handleWindow; }
585 HWND getHwndSelected(void) const;
587 b32 setClientSize(const GxSize& size);
588#if GX_DEVELOP
590 constexpr HMENU getHmenu(void) const { return _handleMenu; }
592 constexpr HWND getHwndToolbar(void) const { return _handleWindowToolbar; }
594 constexpr GX_FORCE_INLINE PIMAGEHLP_SYMBOL getSymbolBuffer(void) const { return _pSymbolBuffer; }
596 GxRect getToolAppWindowRect(void);
597#endif //GX_DEVELOP
599 GX_FORCE_INLINE const GxSize& getClientSize(void) const { return _clientSize; }
601 void doEvents(void);
603 GX_FORCE_INLINE b32 isActive(void) const { return _isActive; }
605 GX_FORCE_INLINE const GxSize& getMaxClientSize(void) const { return _maxClientSize; }
607 virtual void updateMaxClientSize(void);
609 GX_FORCE_INLINE b32 isClipCursor(void) const { return _isClipCursor; }
611 GX_FORCE_INLINE void setClipCursor(b32 enable) { _isClipCursor = enable; }
612protected:
614 virtual LRESULT wndProc(HWND handleWindow, UINT uMessage, WPARAM wParam, LPARAM lParam);
616 virtual LRESULT wndProcFullScreen(HWND handleWindow, UINT uMessage, WPARAM wParam, LPARAM lParam);
618 // ウインドウメッセージはプリプロセッサの定義に関わらずワイド文字で処理していますので
619 // ...W 付の関数を使用してください。
620 GX_FORCE_INLINE virtual LRESULT wndProcUser(HWND handleWindow, UINT uMessage, WPARAM wParam, LPARAM lParam, b32& inTextEdit)
621 {
622 if (inTextEdit)
623 { // Text入力中の場合は inTextEdit に true が入ってくる(他のイベントを無視したい)
624 // ここの DefWindowProcW() の戻り値を winProc の戻り値とします
625 return DefWindowProcW(handleWindow, uMessage, wParam, lParam);
626 }
627 // OROCHI 標準の winProc に処理を渡したくない場合は inTextEdit に true を代入して返す
628 // さらに DefWindowProcW() が呼ばれて欲しくない場合は独自の戻り値を返す
629 return 0; // 戻り値は inTextEdit が true の場合のみ意味がある
630 }
632 static LRESULT CALLBACK wndProcInner(HWND handleWindow, UINT uMessage, WPARAM wParam, LPARAM lParam);
633#elif defined(_XBOX_XS)
635 b32 createWindow(HINSTANCE handleInstance, s32 nCmdShow);
637 static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
638#endif //_XBOX_XS
639
640public:
642 constexpr u32 getBootArgumentCount(void) const { return _bootArgumentCount; }
644 GX_CSTR getBootArgument(u32 index) const;
646 s32 findBootArgumentIndex(GX_CSTR string) const;
648 void analyzeBootCommandLine(s32 argc = 0, GX_CSTR argv[] = nullptr);
649
651 void initializeBootConfig(GX_CSTR fname, void* pBootIniContents);
653 b32 setBootConfigReadSection(GX_CSTR name);
655 void getBootConfigValueString(GX_CSTR name, u32 index, GX_CSTR* pValue, GX_CSTR defaultValue);
657 void getBootConfigValueU64(GX_CSTR name, u32 index, u64* pValue, u64 defaultValue);
659 void getBootConfigValueS64(GX_CSTR name, u32 index, s64* pValue, s64 defaultValue);
661 void getBootConfigValueF64(GX_CSTR name, u32 index, f64* pValue, f64 defaultValue);
663 void getBootConfigValueB32(GX_CSTR name, u32 index, b32* pValue, b32 defaultValue);
665 void getBootConfigValueByte(GX_CSTR name, u32 index, u64* pValue, u64 defaultValue);
667 void getBootConfigValueSize(GX_CSTR name, u32 index, GxSize* pValue, const GxSize& defaultValue);
669 void getBootConfigValueEnum(GX_CSTR name, u32 index, u32* pValue, const BootConfigEnumMap* pMapList);
670
672 //-------------------------------------------------------------
674 //-------------------------------------------------------------
676public:
678 GX_FORCE_INLINE b32 isInitialized(void) const { return _isInitialized; }
680 constexpr u32 getWorkerStackSize(void) const { return _workerStackSize; }
682 constexpr void setWorkerStackSize(u32 size){ _workerStackSize = size; }
683
685 constexpr GxSequentialThreadManagerMain* getSequentialThreadManager(void) const { return _pSequentialThreadManager; }
687 void setPlay(b32 flag, GxRtti* pStageRtti = nullptr);
689 GX_FORCE_INLINE b32 isPlay(void) const { return (_playMode == PLAY_MODE::PLAY || _singleStepFlag); }
691 GX_FORCE_INLINE b32 isStop(void) const { return (_playMode == PLAY_MODE::STOP) && !_singleStepFlag; }
693 GX_FORCE_INLINE b32 isPause(void) const { return (_playMode == PLAY_MODE::PAUSE && !_singleStepFlag); }
695 void setPause(b32 flag);
696
698 GX_FORCE_INLINE b32 isSingleStep(void) const { return _singleStepFlag; }
700 GX_FORCE_INLINE void setSingleStep(b32 singleStep){ _singleStepFlag = singleStep; }
701
703 GX_FORCE_INLINE b32 isConstFrameRate(void) const { return _constFrameRateFlag; }
705 GX_FORCE_INLINE void setConstFrameRate(b32 flag){ _constFrameRateFlag = flag; }
707 constexpr f32 getDeltaTimeFactor(void) const { return _deltaTimeFactor; }
709 constexpr void setDeltaTimeFactor(f32 deltaTimeFactor){ _deltaTimeFactor = deltaTimeFactor; }
711 constexpr f32 getDeltaTime(void) const { return _deltaTime; }
713 constexpr void setDeltaTime(f32 deltaTime){ _deltaTime = deltaTime; }
715 constexpr f32 getDeltaTimeRatio(void) const { return _deltaTimeRatio; }
717 constexpr void setDeltaTimeRatio(f32 deltaTimeRatio){ _deltaTimeRatio = deltaTimeRatio; }
719 constexpr f32 getVariableFrameLowerLimit(void) const { return _variableFrameLowerLimit; }
721 constexpr void setVariableFrameLowerLimit(f32 lowerLimit){ _variableFrameLowerLimit = lowerLimit; }
722
723#if GX_ASSERT_ENABLE
725 constexpr GX_ASSERT_MODE getAssertMode(void) const { return _assertMode; }
727 constexpr void setAssertMode(GX_ASSERT_MODE mode) { _assertMode = mode; }
728#endif // GX_ASSERT_ENABLE
729
730#if defined(_PS4) || defined(_PS5)
732 GX_FORCE_INLINE b32 isFixMainThreadCpuIndex(void) const { return _isFixMainThreadCpuIndex; }
733#endif //_PS4 || _PS5
734#if defined(_PS4) || defined(_PS5) || defined(_NX64)
736 GX_FORCE_INLINE const GxNativeUserId& getUserId(void) const { return _userId; }
737#endif // _PS4 || _PS5 || _NX64
738#if defined(_XBOX_XS)
740 GX_FORCE_INLINE XGameSaveProviderHandle getProviderHandle(void) const { return _pProviderHandle; }
741#endif // _XBOX_XS
742
743#if GX_DEVELOP
745 constexpr u32 getXmlReadSize(void){ return _xmlReadSize; }
747 GX_FORCE_INLINE b32 isDeserializeSafety(void){ return _deserializeSafety; }
749 GX_FORCE_INLINE b32 isUseCoreProfile(void){ return _useCoreProfile; }
751 GX_FORCE_INLINE void setUseCoreProfile(b32 useProfile){ _useCoreProfile = useProfile; }
752#endif //GX_DEVELOP
753#if GX_USE_UNIT_PROFILE
755 GX_FORCE_INLINE b32 getUseUnitProfile(void){ return _useUnitProfile; }
756#endif //GX_USE_UNIT_PROFILE
757
759
760#if defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
762 GX_FORCE_INLINE u32 getSaveDataSize(void) const { return _saveDataSize; }
763#if defined(_PS4) || defined(_PS5)
765 GX_FORCE_INLINE b32 isCopySaveDataIcon(void) const { return _isCopySaveDataIcon; }
766#endif // _PS4 || _PS5
767#endif // _PS4 || _PS5 || _XBOX_XS
768
769#if defined(_PS4) || defined(_PS5)
770protected:
772 void setMainThreadCpuIndex( s32 cpuIndex );
773#endif // _PS4 || _PS5
774
775public:
777 GX_FORCE_INLINE void setSystemFlag(u32 flag, b32 enable = true){ GxFlag32Array::setFlag( &_systemFlag[0], flag, enable ); }
779 GX_FORCE_INLINE b32 isOnSystemFlag(u32 flagIndex) const { return GxFlag32Array::isFlag(&_systemFlag[0], flagIndex); }
780#if GX_DEVELOP
782 GX_FORCE_INLINE void setDevelopFlag(u32 flag, b32 enable = true){ GxFlag32Array::setFlag( &_developFlag[0], flag, enable); }
784 GX_FORCE_INLINE b32 isOnDevelopFlag(u32 flagIndex) const { return GxFlag32Array::isFlag(&_developFlag[0], flagIndex); }
786 GX_FORCE_INLINE u32* getSystemFlagAddress(void){ return( &_systemFlag[0] ); }
788 constexpr u32 getSystemFlagSize(void) const { return( sizeof(_systemFlag) ); }
789
791 constexpr GxMainInitialInformation* getMainInitialInformation( void ) { return _pMainInitialInformation; }
792#endif //GX_DEVELOP
793
795 //-------------------------------------------------------------
797 //-------------------------------------------------------------
799protected:
818#if GX_DEVELOP
819 GxSysTool* _pTool;
820 GxSysDebugCommunication* _pDebugCommunication;
821 GxProfiler* _pProfiler;
822 GxSysThread* _pThread;
823#endif //GX_DEVELOP
828private:
829 b32 _isInitialized;
830 b32 _enable;
831 EXIT_CODE _exitCode;
832 u32 _workerStackSize;
833 GxSequentialThreadManagerMain* _pSequentialThreadManager;
834 PLAY_MODE _playMode;
835 b32 _singleStepFlag;
836 b32 _constFrameRateFlag;
837 f32 _deltaTimeFactor;
838 f32 _deltaTime;
839 f32 _deltaTimeRatio;
840 f32 _variableFrameLowerLimit;
841
842#if GX_DEVELOP
843 GxMainInitialInformation* _pMainInitialInformation;
844#endif //GX_DEVELOP
845
846#if defined(_WINDOWS)
847 HWND _handleWindow;
848 HWND _handleWindowParent;
849 HANDLE _handleProcess;
850#if GX_DEVELOP
851 PIMAGEHLP_SYMBOL _pSymbolBuffer;
852 HMENU _handleMenu;
853 GxPropertyTable _propertyTableMenubar;
854 GxPropertyTable _propertyTableToolbar;
855 HWND _handleWindowToolbar;
856 HWND _handleWindowToolbarTip;
857 GxArray* _pIconResourceList;
858#endif //GX_DEVELOP
859 GxSize _clientSize;
860 GX_WCHAR _className[128];
861 u32 _storedWindowStyle;
862 WINDOWPLACEMENT _storedWindowPlacement;
863 b32 _isFullScreen;
864 b32 _isActive;
865 GxSize _maxClientSize;
866 b32 _isClipCursor;
867#elif defined(_XBOX_XS)
868 HANDLE _handleSuspendComplete;
869 HANDLE _handleSignalResume;
870#endif //_XBOX_XS
871
872 // 各種フラグ
873 u32 _systemFlag[ SYSTEM_FLAG_NUM ];
874#if GX_DEVELOP
875 u32 _developFlag[ DEVELOP_FLAG_NUM ];
876 u32 _xmlReadSize;
877 b32 _deserializeSafety;
878 b32 _useCoreProfile;
879#endif //GX_DEVELOP
880
881 GX_CHAR _bootCommandLine[ BOOT_COMMAND_LINE_MAX ];
882 GX_CSTR _bootArgumentPointerArray[ BOOT_COMMAND_LINE_ARGUMENT_MAX ];
883 u32 _bootArgumentCount;
884 void* _pBootConfigBinary;
885 GX_HANDLE _currentSectionBootConfig;
886
887#if GX_USE_UNIT_PROFILE
888 b32 _useUnitProfile;
889#endif //GX_USE_UNIT_PROFILE
890 b32 _useSequentialThreadManagerPrecede;
891
892#if GX_ASSERT_ENABLE
893 GX_ASSERT_MODE _assertMode;
894#endif // GX_ASSERT_ENABLE
895
896#if defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
897 u32 _saveDataSize;
898#if defined(_PS4) || defined(_PS5)
899 b32 _isCopySaveDataIcon;
900#endif // _PS4 || _PS5
901#endif // _PS4 || _PS5 || _XBOX_XS
902
903#if defined(_PS4) || defined(_PS5)
904 b32 _isFixMainThreadCpuIndex;
905#endif //_PS4 || _PS5
906#if defined(_PS4) || defined(_PS5) || defined(_NX64)
907 GxNativeUserId _userId;
908#endif //_PS4 || _PS5 || _NX64
909#if defined(_NX64) || defined(_XBOX_XS)
910 GxNativeUserHandle _userHandle;
911#endif //_NX64 || _XBOX_XS
912#if defined(_XBOX_XS)
913 GxNativeProviderHandle _pProviderHandle;
914 GxNativeTaskQueueHandle _pTaskQueue;
915#endif // _XBOX_XS
916
917#if GX_OCTREE_INFO
918public:
919 static u32 _numCriticalSectionAll;
920 static u32 _numCriticalSectionFrustumCulling;
921#endif // GX_OCTREE_INFO
922
924};
925
926//===========================================================================
928//===========================================================================
930{
931 //-------------------------------------------------------------
933 //-------------------------------------------------------------
935public:
937 // GxClassBase継承クラス用禁止宣言
939
940
941 //-------------------------------------------------------------
943 //-------------------------------------------------------------
945
949 GxSequentialThreadManagerMain(b32 useMainThreadFlag) : GxSequentialThreadManager(useMainThreadFlag){}
950protected:
952 void initializeThreadLocalStorage(void) override;
953
955};
956
957//===========================================================================
959//===========================================================================
961{
962 //-------------------------------------------------------------
964 //-------------------------------------------------------------
966public:
968 // GxClassBase継承クラス用禁止宣言
970
971
972 enum class PRECEDE_STATE
973 {
974 NONE,
975 BEGIN,
977 };
978
980 //-------------------------------------------------------------
982 //-------------------------------------------------------------
984
987 : _isEnablePrecedeStartJob( false )
988 , _precedeState( PRECEDE_STATE::NONE )
989 , _numJobDiffOfPrecedingStart( 5 )
990 , _numJobDiffOfPrecedingWait( 10 )
991 {}
994 : GxSequentialThreadManagerMain(useMainThreadFlag)
995 , _isEnablePrecedeStartJob( false )
996 , _precedeState( PRECEDE_STATE::NONE )
997 , _numJobDiffOfPrecedingStart( 5 )
998 , _numJobDiffOfPrecedingWait( 10 )
999 {}
1000
1002 //-------------------------------------------------------------
1004 //-------------------------------------------------------------
1006public:
1008 GX_FORCE_INLINE virtual b32 isEnablePrecedeStartJob(void) const { return _isEnablePrecedeStartJob; }
1010 GX_FORCE_INLINE virtual void setEnablePrecedeStartJob( b32 enable ) { _isEnablePrecedeStartJob = enable; }
1012 GX_FORCE_INLINE virtual s32 getNumJobDiffOfPrecedingStart(void) const { return _numJobDiffOfPrecedingStart; }
1014 GX_FORCE_INLINE virtual void setNumJobDiffOfPrecedingStart( s32 num ) { _numJobDiffOfPrecedingStart = num; }
1016 GX_FORCE_INLINE virtual s32 getNumJobDiffOfPrecedingWait(void) const { return _numJobDiffOfPrecedingWait; }
1018 GX_FORCE_INLINE virtual void setNumJobDiffOfPrecedingWait( s32 num ) { _numJobDiffOfPrecedingWait = num; }
1019
1021 //-------------------------------------------------------------
1023 //-------------------------------------------------------------
1025
1027 s32 addJob(GxClassBaseRoot* pObject, GX_OBJECT_FUNCTION pFunction) override;
1029 s32 addJob(GxClassBaseRoot* pObject, GX_OBJECT_FUNCTION_PARAM pFunction, u32 argument, ARGUMENT_TYPE argumentType = ARGUMENT_TYPE::U32) override;
1031 s32 addJob(GxClassBaseRoot* pObject, GX_OBJECT_FUNCTION_POINTER pFunction, void* pArgument) override;
1033 void startJob(void) override;
1034
1035protected:
1037 void executeJob(GxThread* pThread) override;
1039 void startWorkerThreadAll(void) override;
1041 GX_FORCE_INLINE b32 isComplete(void) override;
1042
1044 virtual void precedeStartJob(void);
1046 GX_FORCE_INLINE virtual b32 isPrecedingStartJob(void) const { return _precedeState != PRECEDE_STATE::NONE; }
1048 GX_FORCE_INLINE virtual b32 isPrecedeStateBegin(void) const { return _precedeState == PRECEDE_STATE::BEGIN; }
1050 GX_FORCE_INLINE virtual b32 isWaitingCompleteInStartJob(void) const { return _precedeState == PRECEDE_STATE::WAIT_COMPLETE; }
1051
1053 //-------------------------------------------------------------
1055 //-------------------------------------------------------------
1057private:
1058 b32 _isEnablePrecedeStartJob;
1059 PRECEDE_STATE _precedeState;
1060 s32 _numJobDiffOfPrecedingStart;
1061 s32 _numJobDiffOfPrecedingWait;
1062
1064};
1065
1066//===========================================================================
1068//===========================================================================
1069#define GX_BOOTCONFIG_CURRENT_SECTION(_section) getGxSysMain()->setBootConfigReadSection(_section)
1070
1072#define GX_BOOTCONFIG_STRING(_Type, _Name, _Index, _Value) { \
1073 GX_CSTR strVal_BCFG_, strDefaultVal_BCFG_ = (GX_CSTR) _Value; \
1074 getGxSysMain()->getBootConfigValueString(_Name, _Index, &strVal_BCFG_, strDefaultVal_BCFG_); \
1075 _Value = (_Type) strVal_BCFG_; }
1076
1077#define GX_BOOTCONFIG_UINT(_Type, _Name, _Index, _Value) { \
1078 u64 uiVal_BCFG_, uiDefaultVal_BCFG_ = (u64) _Value; \
1079 getGxSysMain()->getBootConfigValueU64(_Name, _Index, &uiVal_BCFG_, uiDefaultVal_BCFG_); \
1080 _Value = (_Type) uiVal_BCFG_; }
1081
1082#define GX_BOOTCONFIG_INT(_Type, _Name, _Index, _Value) { \
1083 s64 iVal_BCFG_, iDefaultVal_BCFG_ = (s64) _Value; \
1084 getGxSysMain()->getBootConfigValueS64(_Name, _Index, &iVal_BCFG_, iDefaultVal_BCFG_); \
1085 _Value = (_Type) iVal_BCFG_; }
1086
1087#define GX_BOOTCONFIG_FLOAT(_Type, _Name, _Index, _Value) { \
1088 f64 fVal_BCFG_, fDefaultVal_BCFG_ = (f64) _Value; \
1089 getGxSysMain()->getBootConfigValueF64(_Name, _Index, &fVal_BCFG_, fDefaultVal_BCFG_); \
1090 _Value = (_Type) fVal_BCFG_; }
1091
1092#define GX_BOOTCONFIG_BOOL(_Type, _Name, _Index, _Value) { \
1093 b32 boolVal_BCFG_, boolDefaultVal_BCFG_ = (b32) _Value; \
1094 getGxSysMain()->getBootConfigValueB32(_Name, _Index, &boolVal_BCFG_, boolDefaultVal_BCFG_); \
1095 _Value = (_Type) boolVal_BCFG_; }
1096
1097#define GX_BOOTCONFIG_BYTE(_Type, _Name, _Index, _Value) { \
1098 u64 uiVal_BCFG_, uiDefaultVal_BCFG_ = (u64) _Value; \
1099 getGxSysMain()->getBootConfigValueByte(_Name, _Index, &uiVal_BCFG_, uiDefaultVal_BCFG_); \
1100 _Value = (_Type) uiVal_BCFG_; }
1101
1102#define GX_BOOTCONFIG_SIZE(_Type, _Name, _Index, _Value) { \
1103 GxSize sizeVal_BCFG_, sizeDefaultVal_BCFG_ = _Value; \
1104 getGxSysMain()->getBootConfigValueSize(_Name, _Index, &sizeVal_BCFG_, sizeDefaultVal_BCFG_); \
1105 _Value = sizeVal_BCFG_; }
1106
1107#define GX_BOOTCONFIG_ENUM(_Type, _Name, _Index, _Value, _enumMap) { \
1108 u32 enumVal_BCFG_, enumDefaultVal_BCFG_ = _Value; \
1109 _enumMap[(sizeof(_enumMap)/sizeof(GxSysMain::BootConfigEnumMap))-1]._value = enumDefaultVal_BCFG_; \
1110 getGxSysMain()->getBootConfigValueEnum(_Name, _Index, &enumVal_BCFG_, _enumMap); \
1111 _Value = (_Type) enumVal_BCFG_; }
1112
1114#define GX_BOOTCONFIG_STRUCT_STRING(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_STRING(_Type, #_NameValue, 0, _StructBase._NameValue)
1115#define GX_BOOTCONFIG_STRUCT_UINT(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_UINT(_Type, #_NameValue, 0, _StructBase._NameValue)
1116#define GX_BOOTCONFIG_STRUCT_INT(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_INT(_Type, #_NameValue, 0, _StructBase._NameValue)
1117#define GX_BOOTCONFIG_STRUCT_FLOAT(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_FLOAT(_Type, #_NameValue, 0, _StructBase._NameValue)
1118#define GX_BOOTCONFIG_STRUCT_BOOL(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_BOOL(_Type, #_NameValue, 0, _StructBase._NameValue)
1119#define GX_BOOTCONFIG_STRUCT_BYTE(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_BYTE(_Type, #_NameValue, 0, _StructBase._NameValue)
1120#define GX_BOOTCONFIG_STRUCT_SIZE(_Type, _StructBase, _NameValue) GX_BOOTCONFIG_SIZE(_Type, #_NameValue, 0, _StructBase._NameValue)
1121#define GX_BOOTCONFIG_STRUCT_ENUM(_Type, _StructBase, _NameValue, _enumMap) GX_BOOTCONFIG_ENUM(_Type, #_NameValue, 0, _StructBase._NameValue, _enumMap)
1122
1123// アクセスインターフェース
1124GX_FORCE_INLINE GxSysMain* getGxSysMain(void){ return GxSysMain::getSingletonPointer(); }
1125
1126GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
@ MAX
定義数
void GxTypedObject
その他
Definition GxDefine.h:213
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
@ SYSTEM_MAX
システム定義アロケータ数
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
基底クラス
Definition GxBase.h:51
初期化クラス
Definition GxSysCollisionBase.h:17
初期化クラス
Definition GxSysDynamicsBase.h:18
初期化クラス
Definition GxSysEffectBase.h:19
初期化クラス
Definition GxSysFilterBase.h:18
初期化クラス
Definition GxSysFont.h:49
初期化クラス
Definition GxSysInput.h:20
JSON解析用ノード
Definition GxJson.h:108
初期化クラス
Definition GxSysMain.h:78
constexpr u32 getUserAllocatorInformationCount(void) const
アロケータ初期化情報数取得
Definition GxSysMain.h:152
constexpr GxStageInitialInformationBase * getStageInitialInformation(void) const
ステージ初期化情報取得
Definition GxSysMain.h:154
u32 _systemAllocatorSize[static_cast< u32 >(GxAllocatorList::ALLOCATOR_TYPE::SYSTEM_MAX)]
システムアロケータのサイズ
Definition GxSysMain.h:232
constexpr GxRenderInitialInformation * getRenderInitialInformation(void) const
描画初期化情報取得
Definition GxSysMain.h:156
constexpr GxInputInitialInformation * getInputInitialInformation(void) const
入力初期化情報取得
Definition GxSysMain.h:166
constexpr GxNetworkInitialInformation * getNetworkInitialInformation(void) const
ネットワーク初期化情報取得
Definition GxSysMain.h:172
constexpr GxSoundInitialInformationBase * getSoundInitialInformation(void) const
サウンド初期化情報取得
Definition GxSysMain.h:176
GxThread::PRIORITY _threadPriority
スレッドプライオリティ
Definition GxSysMain.h:227
constexpr GxFontInitialInformation * getFontInitialInformation(void) const
フォント初期化情報取得
Definition GxSysMain.h:180
b32 _fixThreadFlag
スレッドを固定する
Definition GxSysMain.h:202
b32 _useSequentialThreadManagerPrecede
スレッドマネージャを使うかフラグ
Definition GxSysMain.h:231
constexpr GxCollisionInitialInformationBase * getCollisionInitialInformation(void) const
コリジョン初期化情報取得
Definition GxSysMain.h:168
constexpr GxDynamicsInitialInformationBase * getDynamicsInitialInformation(void) const
物理初期化情報取得
Definition GxSysMain.h:170
constexpr GxAllocatorList::GxCreateInformation * getUserAllocatorInformationArray(void) const
アロケータ初期化情報取得
Definition GxSysMain.h:150
constexpr GxResourceInitialInformation * getResourceInitialInformation(void) const
リソース初期化情報取得
Definition GxSysMain.h:160
GxMainInitialInformation(GxStageInitialInformationBase *pStageInitialInformation, GxRenderInitialInformation *pRenderInitialInformation, GxPrimitiveInitialInformation *pPrimitiveInitialInformation, GxResourceInitialInformation *pResourceInitialInformation, GxEffectInitialInformationBase *pEffectInitialInformation, GxFilterInitialInformationBase *pFilterInitialInformation, GxInputInitialInformation *pInputInitialInformation, GxCollisionInitialInformationBase *pCollisionInitialInformation, GxDynamicsInitialInformationBase *pDynamicsInitialInformation, GxNetworkInitialInformation *pNetworkInitialInformation, GxUnitInitialInformation *pUnitInitialInformation, GxSoundInitialInformationBase *pSoundInitialInformation, GxMovieInitialInformationBase *pMovieInitialInformation, GxFontInitialInformation *pFontInitialInformation)
コンストラクタ
constexpr GxFilterInitialInformationBase * getFilterInitialInformation(void) const
フィルター初期化情報取得
Definition GxSysMain.h:164
s32 _threadJobMax
マルチスレッドのジョブの最大数
Definition GxSysMain.h:201
constexpr GxEffectInitialInformationBase * getEffectInitialInformation(void) const
エフェクト初期化情報取得
Definition GxSysMain.h:162
constexpr GxMovieInitialInformationBase * getMovieInitialInformation(void) const
ムービー初期化情報取得
Definition GxSysMain.h:178
constexpr GxPrimitiveInitialInformation * getPrimitiveInitialInformation(void) const
プリミティブ初期化情報取得
Definition GxSysMain.h:158
GX_FORCE_INLINE void setUserAllocatorInformationArray(GxAllocatorList::GxCreateInformation *pUserAllocatorInformationArray, u32 count)
ユーザーアロケータ初期化情報設定
Definition GxSysMain.h:144
void loadJson(GX_CSTR path)
JSONから読み込み
Definition GxSysMain.cpp:294
constexpr GxUnitInitialInformation * getUnitInitialInformation(void) const
ユニット初期化情報取得
Definition GxSysMain.h:174
static constexpr u32 VALUE_32
32
Definition GxMath.h:124
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
static constexpr u32 VALUE_2K
2K
Definition GxMath.h:130
static constexpr u32 VALUE_128
128
Definition GxMath.h:126
初期化クラス
Definition GxSysMovieBase.h:19
初期化クラス
Definition GxSysNetworkBase.h:19
初期化クラス
Definition GxSysPrimitive.h:20
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
描画関連の依存をこのクラスで吸収します
Definition GxRenderDevice.h:450
初期化クラス
Definition GxSysRenderBase.h:35
初期化クラス
Definition GxSysResource.h:115
実行時型情報クラス
Definition GxRtti.h:154
同期実行ワーカースレッド管理クラス
Definition GxThread.h:571
初期化クラス
Definition GxSysSoundBase.h:19
初期化クラス
Definition GxSysStage.h:21
システム基底クラス
Definition GxSysBase.h:18
コリジョンシステムクラス
Definition GxSysCollisionBase.h:53
物理システムクラス
Definition GxSysDynamicsBase.h:54
エフェクトシステム基礎クラス
Definition GxSysEffectBase.h:55
環境システムクラス
Definition GxSysEnvironment.h:910
ファイルシステムクラス
Definition GxSysFile.h:19
フィルタシステムクラス
Definition GxSysFilterBase.h:54
BMPフォントシステム基礎クラス
Definition GxSysFontBmpBase.h:18
フォントシステム基礎クラス
Definition GxSysFont.h:104
GPGPUシステムクラス
Definition GxSysEnvironment.h:247
入力システムクラス
Definition GxSysInput.h:217
ライトシステムクラス
Definition GxSysLightBase.h:19
同期スレッド管理クラス
Definition GxSysMain.h:930
void initializeThreadLocalStorage(void) override
TLSの初期化
Definition GxSysMain.cpp:4526
GxSequentialThreadManagerMain(b32 useMainThreadFlag)
コンストラクタ
Definition GxSysMain.h:949
同期スレッド管理クラス(ジョブ先行開始対応)
Definition GxSysMain.h:961
void startJob(void) override
ジョブ実行開始
Definition GxSysMain.cpp:4641
virtual void precedeStartJob(void)
ジョブ先行実行開始
Definition GxSysMain.cpp:4615
PRECEDE_STATE
選考状態定義
Definition GxSysMain.h:973
GxSequentialThreadManagerMainPrecede(void)
デフォルトコンストラクタ
Definition GxSysMain.h:986
virtual GX_FORCE_INLINE void setNumJobDiffOfPrecedingStart(s32 num)
ジョブ先行開始するジョブ数の差を設定
Definition GxSysMain.h:1014
virtual GX_FORCE_INLINE void setNumJobDiffOfPrecedingWait(s32 num)
ジョブ先行開始が待機するジョブ数の差を設定
Definition GxSysMain.h:1018
GxSequentialThreadManagerMainPrecede(b32 useMainThreadFlag)
コンストラクタ
Definition GxSysMain.h:993
GX_FORCE_INLINE b32 isComplete(void) override
全てのジョブが完了したか
Definition GxSysMain.cpp:4716
s32 addJob(GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION pFunction) override
ジョブ追加
Definition GxSysMain.cpp:4558
virtual GX_FORCE_INLINE s32 getNumJobDiffOfPrecedingStart(void) const
ジョブ先行開始するジョブ数の差を取得
Definition GxSysMain.h:1012
void executeJob(GxThread *pThread) override
ジョブ実行
Definition GxSysMain.cpp:4674
virtual GX_FORCE_INLINE b32 isEnablePrecedeStartJob(void) const
ジョブ先行開始が有効判定
Definition GxSysMain.h:1008
virtual GX_FORCE_INLINE s32 getNumJobDiffOfPrecedingWait(void) const
ジョブ先行開始が待機するジョブ数の差を取得
Definition GxSysMain.h:1016
virtual GX_FORCE_INLINE b32 isWaitingCompleteInStartJob(void) const
startJob内で全てのジョブの完了待ち中かを取得
Definition GxSysMain.h:1050
virtual GX_FORCE_INLINE void setEnablePrecedeStartJob(b32 enable)
ジョブ先行開始が有効設定
Definition GxSysMain.h:1010
void startWorkerThreadAll(void) override
ワーカースレッド実行開始
Definition GxSysMain.cpp:4651
virtual GX_FORCE_INLINE b32 isPrecedingStartJob(void) const
ジョブ先行開始中かを取得
Definition GxSysMain.h:1046
virtual GX_FORCE_INLINE b32 isPrecedeStateBegin(void) const
startJob未実行かつジョブ先行開始中かを取得
Definition GxSysMain.h:1048
メインループシステムクラス
Definition GxSysMain.h:267
GxSysUnit * _pUnit
ユニットシステム
Definition GxSysMain.h:807
constexpr f32 getDeltaTime(void) const
デルタタイム取得
Definition GxSysMain.h:711
virtual GxSysSoundBase * createSysSound(void)
サウンドシステム作成
Definition GxSysMain.cpp:1368
void forceExit(EXIT_CODE code)
強制終了(メインループの停止)
Definition GxSysMain.cpp:1176
INITIALIZE_APPLICATION_RESULT
アプリケーション用初期化リザルトコード
Definition GxSysMain.h:288
static constexpr u32 BOOT_COMMAND_LINE_ARGUMENT_MAX
起動時コマンドライン最大要素数
Definition GxSysMain.h:381
void getBootConfigValueU64(GX_CSTR name, u32 index, u64 *pValue, u64 defaultValue)
現在のセクション内のパラメータ値を取得する (u64)
Definition GxSysMain.cpp:4264
static constexpr u32 SYSTEM_FLAG_NUM
システムフラグの個数
Definition GxSysMain.h:369
void analyzeBootCommandLine(s32 argc=0, GX_CSTR argv[]=nullptr)
起動時コマンドライン分析。Windowsの場合 argc, argv は無視される
Definition GxSysMain.cpp:3632
static constexpr u32 BOOT_COMMAND_LINE_MAX
起動時コマンドライン最大文字列数
Definition GxSysMain.h:379
GxSysFile * _pFile
ファイルシステム
Definition GxSysMain.h:806
void getBootConfigValueSize(GX_CSTR name, u32 index, GxSize *pValue, const GxSize &defaultValue)
現在のセクション内のパラメータ値を取得する (GxSize) index に _width, index + 1 に _height を設定
Definition GxSysMain.cpp:4396
virtual GxSysPrimitive * createSysPrimitive(void)
プリミティブ描画システム作成
Definition GxSysMain.cpp:1222
~GxSysMain(void) override
デストラクタ
Definition GxSysMain.h:411
GX_FORCE_INLINE b32 isInitialized(void) const
初期化済み判定
Definition GxSysMain.h:678
virtual void unloadModule(void)
モジュールのアンロード
Definition GxSysMain.cpp:1741
GxSysCollisionBase * _pCollision
コリジョンシステム
Definition GxSysMain.h:813
virtual void loadModule(void)
モジュールのロード
Definition GxSysMain.cpp:1727
GxSysFont * _pFont
フォントシステム
Definition GxSysMain.h:817
EXIT_CODE
アプリケーション終了コード
Definition GxSysMain.h:281
@ ERROR_
エラー終了
@ NORMAL
正常終了
GxSysGpgpu * _pGpgpu
GPGPUシステム
Definition GxSysMain.h:812
GX_FORCE_INLINE void setConstFrameRate(b32 flag)
固定フレームレートの設定
Definition GxSysMain.h:705
static constexpr u32 DEVELOP_FLAG_NUM
開発用フラグの個数
Definition GxSysMain.h:374
GxSysRenderBase * _pRender
描画システム
Definition GxSysMain.h:801
PLAY_MODE
プレイモード定義
Definition GxSysMain.h:346
@ PAUSE
ポーズ中
GxSysLightBase * _pLight
ライトシステム
Definition GxSysMain.h:810
virtual GxSysLightBase * createSysLight(void)
ライトシステム作成
Definition GxSysMain.cpp:1267
void getBootConfigValueByte(GX_CSTR name, u32 index, u64 *pValue, u64 defaultValue)
現在のセクション内のパラメータ値を取得する (バイト) 10K, 10M, 10G など指定可能
Definition GxSysMain.cpp:4348
virtual GxSysUnit * createSysUnit(void)
ユニットシステム作成
Definition GxSysMain.cpp:1240
GX_FORCE_INLINE b32 isPlay(void) const
再生中判定
Definition GxSysMain.h:689
GxSysP2PBase * _pP2P
P2P通信システム
Definition GxSysMain.h:815
b32 setBootConfigReadSection(GX_CSTR name)
アクセス先のセクションを設定。存在した場合は true を返す
Definition GxSysMain.cpp:4200
constexpr f32 getDeltaTimeFactor(void) const
デルタタイム係数取得
Definition GxSysMain.h:707
virtual GxSysCollisionBase * createSysCollision(void)
コリジョンシステム作成
Definition GxSysMain.cpp:1294
b32 initialize(const GxClassBase *pInitialInformation) override
初期化
Definition GxSysMain.cpp:697
GX_INITIALIZE_APPLICATION_SEQUENCE
アプリケーション用初期化順
Definition GxSysMain.h:296
@ SYS_PRIMITIVE
プリミティブシステム
@ SYS_NETWORK
ネットワークシステム
@ SYS_COLLISION
コリジョンシステム
@ SYS_FONT_BMP
BMPフォントシステム
@ SYS_SHADER
シェーダーシステム
@ SYS_FILTER
フィルターシステム
@ SYS_EFFECT
エフェクトシステム
virtual GxSysDynamicsBase * createSysDynamics(void)
物理システム作成
Definition GxSysMain.cpp:1303
constexpr f32 getDeltaTimeRatio(void) const
デルタタイム比率取得(目標時間に対する実時間の割合)
Definition GxSysMain.h:715
GX_FORCE_INLINE b32 isPause(void) const
一時停止中判定
Definition GxSysMain.h:693
void getBootConfigValueEnum(GX_CSTR name, u32 index, u32 *pValue, const BootConfigEnumMap *pMapList)
現在のセクション内のパラメータ値を取得する (enum map)
Definition GxSysMain.cpp:4428
GxSysFilterBase * _pFilter
フィルターシステム
Definition GxSysMain.h:803
constexpr void setDeltaTimeRatio(f32 deltaTimeRatio)
デルタタイム比率設定
Definition GxSysMain.h:717
GxSysFontBmpBase * _pFontBmp
BMPフォントシステム
Definition GxSysMain.h:816
constexpr void setDeltaTime(f32 deltaTime)
デルタタイム設定
Definition GxSysMain.h:713
virtual GxSysFile * createSysFile(void)
ファイルシステム作成
Definition GxSysMain.cpp:1231
GX_FORCE_INLINE b32 isStop(void) const
停止中判定
Definition GxSysMain.h:691
virtual void callUsage(void)
最適化で消されないための呼び出し
Definition GxSysMain.h:515
virtual GxSysEnvironment * createSysEnvironment(void)
環境システム作成
Definition GxSysMain.cpp:1276
s32 findBootArgumentIndex(GX_CSTR string) const
起動時引数の位置取得
Definition GxSysMain.cpp:3708
static constexpr u32 SYSTEM_FLAG_MAX
システムフラグの最大数
Definition GxSysMain.h:371
virtual GxSysRenderBase * createSysRender(void)
描画システム作成
Definition GxSysMain.cpp:1186
GxSysResource * _pResource
リソースシステム
Definition GxSysMain.h:804
void initializeBootConfig(GX_CSTR fname, void *pBootIniContents)
設定ファイルの読み込み。pBootIniContents が nullptr 以外の場合は fname は無視される。
Definition GxSysMain.cpp:4067
constexpr f32 getVariableFrameLowerLimit(void) const
可変フレームレート時の下限を取得
Definition GxSysMain.h:719
constexpr u32 getWorkerStackSize(void) const
ワーカースレッドのスタックサイズを取得する
Definition GxSysMain.h:680
static GX_CSTR BOOT_ARGUMENT_AUTO_FINALIZE
起動時引数(オートファイナライズ)
Definition GxSysMain.h:383
void terminate(void) override
終了処理
Definition GxSysMain.cpp:1029
virtual void initializeModule(const GxMainInitialInformation *pMainInitialInformation)
アロケータ初期化直後に呼ばれる。アロケータを必要とするプラットフォーム固有の初期化などを行う。
Definition GxSysMain.cpp:1652
void setPlay(b32 flag, GxRtti *pStageRtti=nullptr)
再生/停止を設定
Definition GxSysMain.cpp:4462
virtual GxSysFontBmpBase * createSysFontBmp(void)
BMPフォントシステム作成
Definition GxSysMain.cpp:1321
GX_CSTR getBootArgument(u32 index) const
起動時引数取得
Definition GxSysMain.cpp:3691
void getBootConfigValueS64(GX_CSTR name, u32 index, s64 *pValue, s64 defaultValue)
現在のセクション内のパラメータ値を取得する (s64)
Definition GxSysMain.cpp:4281
virtual GxSysInput * createSysInput(void)
入力システム作成
Definition GxSysMain.cpp:1258
constexpr GxSequentialThreadManagerMain * getSequentialThreadManager(void) const
同期スレッド管理を取得
Definition GxSysMain.h:685
virtual GxSysFilterBase * createSysFilter(void)
フィルターシステム作成
Definition GxSysMain.cpp:1204
virtual GxSysGpgpu * createSysGpGpu(void)
GPGPUシステム作成
Definition GxSysMain.cpp:1285
GxSysSoundBase * _pSound
サウンドシステム
Definition GxSysMain.h:825
b32 dispatchQuitMessage(void)
各OSからの終了メッセージを検知する
Definition GxSysMain.cpp:2867
virtual GxSysResource * createSysResource(void)
リソースシステム作成
Definition GxSysMain.cpp:1213
GX_FORCE_INLINE void setSingleStep(b32 singleStep)
コマ送り設定
Definition GxSysMain.h:700
GxSysPrimitive * _pPrimitive
プリミティブ描画システム
Definition GxSysMain.h:805
GxSysMovieBase * _pMovie
ムービーシステム
Definition GxSysMain.h:826
GxSysShader * _pShader
シェーダシステム
Definition GxSysMain.h:802
GxSysDynamicsBase * _pDynamics
物理システム
Definition GxSysMain.h:814
EXIT_CODE mainLoop(void)
メイン処理実行
Definition GxSysMain.cpp:2652
virtual GxSysMovieBase * createSysMovie(void)
ムービーシステム作成
Definition GxSysMain.cpp:1377
GxSysMain(void)
コンストラクタ
Definition GxSysMain.cpp:586
constexpr void setVariableFrameLowerLimit(f32 lowerLimit)
可変フレームレート時の下限の設定
Definition GxSysMain.h:721
INITIALIZE_APPLICATION_RESULT initializeApplication(const GxMainInitialInformation *pMainInitialInformation, u32 initializeSequence)
アプリケーション用初期化
Definition GxSysMain.cpp:1758
GX_FORCE_INLINE void setSystemFlag(u32 flag, b32 enable=true)
フラグセット
Definition GxSysMain.h:777
GX_FORCE_INLINE b32 isOnSystemFlag(u32 flagIndex) const
フラグチェック
Definition GxSysMain.h:779
constexpr u32 getBootArgumentCount(void) const
起動時引数要素数取得
Definition GxSysMain.h:642
b32 initializeLoop(const GxMainInitialInformation *pMainInitialInformation)
初期化ループ
Definition GxSysMain.cpp:2120
GxSysEffectBase * _pEffect
エフェクトシステム
Definition GxSysMain.h:824
virtual GxSysShader * createSysShader(void)
シェーダーシステム作成
Definition GxSysMain.cpp:1195
GX_FORCE_INLINE b32 isExiting(void) const
終了中かどうか
Definition GxSysMain.h:419
GX_FORCE_INLINE b32 isSingleStep(void) const
1コマ進めるかどうか
Definition GxSysMain.h:698
virtual GxSysFont * createSysFont(void)
フォントシステム作成
Definition GxSysMain.cpp:1330
void getBootConfigValueString(GX_CSTR name, u32 index, GX_CSTR *pValue, GX_CSTR defaultValue)
現在のセクション内のパラメータ値を取得する (文字列)
Definition GxSysMain.cpp:4227
GxSysNetworkBase * _pNetwork
ネットワークシステム
Definition GxSysMain.h:827
virtual void terminateApplication(void)
アプリケーション用終了処理
Definition GxSysMain.cpp:1952
virtual GxSysNetworkBase * createSysNetwork(void)
ネットワークシステム作成
Definition GxSysMain.cpp:1386
virtual GxSysStage * createSysStage(void)
ステージシステム作成
Definition GxSysMain.cpp:1249
void update(void) override
システム実行
Definition GxSysMain.cpp:2712
void getBootConfigValueF64(GX_CSTR name, u32 index, f64 *pValue, f64 defaultValue)
現在のセクション内のパラメータ値を取得する (f64)
Definition GxSysMain.cpp:4298
GxSysEnvironment * _pEnvironment
環境システム
Definition GxSysMain.h:811
GxRenderDevice * _pRenderDevice
描画デバイス
Definition GxSysMain.h:800
virtual GxSysP2PBase * createSysP2P(void)
P2P通信システム作成
Definition GxSysMain.cpp:1312
void getBootConfigValueB32(GX_CSTR name, u32 index, b32 *pValue, b32 defaultValue)
現在のセクション内のパラメータ値を取得する (b32)
Definition GxSysMain.cpp:4315
void setPause(b32 flag)
一時停止を設定
Definition GxSysMain.cpp:4503
constexpr void setWorkerStackSize(u32 size)
ワーカースレッドのスタックサイズを設定する
Definition GxSysMain.h:682
GX_FORCE_INLINE b32 isConstFrameRate(void) const
固定フレームレートか判定
Definition GxSysMain.h:703
GxSysInput * _pInput
入力システム
Definition GxSysMain.h:809
static constexpr u32 DEVELOP_FLAG_MAX
開発用フラグの最大数
Definition GxSysMain.h:376
virtual void terminateModule(void)
アロケータ解放直前に呼ばれる。アロケータを必要とするプラットフォーム固有の終了処理などを行う。
Definition GxSysMain.cpp:1713
GxSysStage * _pStage
ステージシステム
Definition GxSysMain.h:808
constexpr void setDeltaTimeFactor(f32 deltaTimeFactor)
デルタタイム係数設定
Definition GxSysMain.h:709
virtual void releaseAllocator(void)
アロケータの解放
Definition GxSysMain.cpp:2109
Movieシステム基底クラス
Definition GxSysMovieBase.h:67
PlayStationNetwork, XboxLIVE ネットワークシステム基底クラス
Definition GxSysNetworkBase.h:73
P2P通信システム基底クラス
Definition GxSysP2PBase.h:19
プリミティブ描画システムクラス
Definition GxSysPrimitive.h:144
描画システムクラス
Definition GxSysRenderBase.h:115
リソース管理システムクラス
Definition GxSysResource.h:1092
シェーダシステムクラス
Definition GxSysShader.h:21
サウンドシステム基底クラス
Definition GxSysSoundBase.h:55
ステージシステムクラス
Definition GxSysStage.h:69
ユニットシステムクラス
Definition GxSysUnit.h:64
スレッドクラス
Definition GxThread.h:177
PRIORITY
優先度
Definition GxThread.h:199
初期化クラス
Definition GxSysUnit.h:18
ARGUMENT_TYPE
引数の種別
Definition GxThread.h:471
シングルトン基礎クラス
Definition GxSingleton.h:19
static constexpr GxSysMain * getSingletonPointer(void)
Definition GxSingleton.h:59
フラグ定義
アロケータ生成情報
Definition GxAllocator.h:385
GX_FORCE_INLINE b32 isFlag(u32 flagIndex) const
フラグを判定
Definition GxStruct.h:1406
GX_FORCE_INLINE void setFlag(u32 flagIndex, b32 enable=true)
フラグを設定
Definition GxStruct.h:1403
矩形
Definition GxStruct.h:951
サイズ
Definition GxStruct.h:730
文字列型クラス
Definition GxString.h:18
BootConfig 名前と値のマップ用。終端は _name == nullptr, _value はデフォルト値
Definition GxSysMain.h:363
u32 _value
Definition GxSysMain.h:365
GX_CSTR _name
名前
Definition GxSysMain.h:364
32bitブーリアン
Definition GxDefine.h:173