Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //==================================================================
- //
- // Project : LibEngine
- // File : Engine.idl
- // Created : 05.04.2011 15:56
- // Description :
- //==================================================================
- module engine
- {
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- /// <summary> Base engine exception class. </summary>
- ///
- /// <value> The en exception. </value>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- exception EngineException {
- };
- interface IContext;
- interface IWorld;
- interface IUIEngine;
- interface IInteractiveController;
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- /// <summary> Interface for Engine. </summary>
- ///
- /// <remarks> Khronos 666, 10.04.2011. </remarks>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- interface IEngine {
- void Initialize() raises( EngineException ); ///> Initialize engine, create all subsystems
- void LoadGameModule( in string name ) raises( EngineException ); ///> Load high level logic
- void UnloadGameModule() raises( EngineException );
- void Start() raises( EngineException ); ///> Start engine update threads
- void Pause() raises( EngineException );
- void Stop() raises( EngineException );
- void GetWorld( out IWorld world ); ///> Get world
- void GetUIEngine( out IUIEngine ui_engine );
- void GetInteractiveController( out IInteractiveController interactive_controller );
- typedef long long native_handle_t;
- void CreateContext( in native_handle_t native_window_handle, out IContext engine_context ) raises( EngineException ); ///> Create display(window) specific context
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- /// <summary> Interface for World. </summary>
- ///
- /// <remarks> Khronos 666, 10.04.2011. </remarks>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- interface IWorld {
- void LockWorld(); ///>Lock world for multithreaded operations
- void UnlockWorld();
- boolean TryLockWorld();
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- /// <summary> Interface for Context. </summary>
- ///
- /// <remarks> Khronos 666, 10.04.2011. </remarks>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- interface IContext {
- void StartRendering() raises( EngineException ); ///> Start parallel rendering
- void StopRendering() raises( EngineException );
- void RenderFrame() raises( EngineException ); ///> Render single frame
- void Update( in float dt ) raises( EngineException ); ///> Perform update(usually made by internal engine impl)
- void ResizeView( in unsigned long width, in unsigned long height );
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- /// <summary> Interface for Game implemantation. </summary>
- ///
- /// <remarks> Khronos 666, 10.04.2011. </remarks>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- interface IGame {
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement