This commit is contained in:
2025-11-24 14:19:51 +05:30
commit f5c1412b28
6734 changed files with 1527575 additions and 0 deletions

View File

@ -0,0 +1,71 @@
/*
* Copyright (c) 2014, Oculus VR, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* RakNet License.txt file in the licenses directory of this source tree. An additional grant
* of patent rights can be found in the RakNet Patents.txt file in the same directory.
*
* Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschr<68>nkt)
*
* This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
* license found in the license.txt file in the root directory of this source tree.
*/
#ifndef __APP_INTERFACE_H
#define __APP_INTERFACE_H
#include "AppTypes.h"
class FSM;
class RunnableState;
class AppInterface
{
public:
AppInterface();
virtual ~AppInterface();
// Called first to initialize memory
virtual void PreConfigure(void);
// Called after LoadDefaultResources. Return false to quit.
virtual bool Configure(void)=0;
// Called to do startup required after Configuration
virtual void PostConfigure(const char *defaultResourceConfigurationPath);
virtual void Update(AppTime curTimeMS,AppTime elapsedTimeMS);
virtual void OnAppShutdown(void);
// Logging, lifetime may be ignored
virtual void DebugOut(unsigned int lifetimeMS, const char *format, ...);
// Like focus in windows - start and stop rendering but don't necessarily stop running.
bool HasFocus(void) const;
virtual void SetFocus(bool focus);
// Built-in state machine
void AllocateStates(int numStates);
virtual void SetState(int stateType, RunnableState* state);
RunnableState* GetState(int stateType) const;
RunnableState* GetCurrentState(void) const;
void PushState(RunnableState* state);
void PushState(int stateType);
void PopState(int popCount=1);
int GetStateHistorySize(void) const;
// Just setting a flag
virtual bool ShouldQuit(void) const;
void Quit(void);
AppTime GetLastCurrentTime(void) const;
AppTime GetLastElapsedTime(void) const;
protected:
// Allocated in PostConfigure
FSM *primaryFSM;
// Up to the derived class to allocate this using allocateStates
RunnableState **primaryStates;
AppTime lastElapsedTimeMS, lastCurTimeMS;
int primaryStatesLength;
bool hasFocus;
bool quit;
};
#endif