diff options
author | Hans Lambermont <hans@lambermont.dyndns.org> | 2002-10-12 15:37:38 +0400 |
---|---|---|
committer | Hans Lambermont <hans@lambermont.dyndns.org> | 2002-10-12 15:37:38 +0400 |
commit | 12315f4d0e0ae993805f141f64cb8c73c5297311 (patch) | |
tree | 59b45827cd8293cfb727758989c7a74b40183974 /source/gameengine/GamePlayer/common/GPC_Engine.h |
Initial revisionv2.25
Diffstat (limited to 'source/gameengine/GamePlayer/common/GPC_Engine.h')
-rw-r--r-- | source/gameengine/GamePlayer/common/GPC_Engine.h | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/source/gameengine/GamePlayer/common/GPC_Engine.h b/source/gameengine/GamePlayer/common/GPC_Engine.h new file mode 100644 index 00000000000..ccf2997eba6 --- /dev/null +++ b/source/gameengine/GamePlayer/common/GPC_Engine.h @@ -0,0 +1,130 @@ +/** + * $Id$ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#ifndef __GPC_ENGINE_H +#define __GPC_ENGINE_H + + +#include "GPC_Canvas.h" +#include "GPC_System.h" + +class GPC_KeyboardDevice; +class GPC_MouseDevice; + +class RAS_IRenderTools; +class KetsjiPortal; +class KX_ISceneConverter; +class NG_LoopBackNetworkDeviceInterface; +class SND_IAudioDevice; +class GPC_RawImage; + + +class GPC_Engine +{ +//protected: +public: + /** Engine construction state. */ + bool m_initialized; + /** Engine state. */ + bool m_running; + /** loading state, ie a file is requested and is being loaded. Different + * from initialized and/or running */ + bool m_loading; + + bool m_customLoadingAnimation; + + /** Last file download progress measurement. */ + float m_previousProgress; + + /** The game engine's system abstraction. */ + GPC_System* m_system; + /** The game engine's keyboard abstraction. */ + GPC_KeyboardDevice* m_keyboarddev; + /** The game engine's mouse abstraction. */ + GPC_MouseDevice* m_mousedev; + /** The game engine's canvas abstraction. */ + GPC_Canvas* m_canvas; + /** The game engine's platform dependent render tools. */ + RAS_IRenderTools* m_rendertools; + /** The portal used to start the engine. */ + KetsjiPortal* m_portal; + /** Converts Blender data files. */ + KX_ISceneConverter* m_sceneconverter; + /** Network interface. */ + NG_LoopBackNetworkDeviceInterface* m_networkdev; + /** Audiodevice interface */ + SND_IAudioDevice* m_audiodevice; + + struct ScrArea *m_curarea; // for future use, not used yet + + char *m_customLoadingAnimationURL; + int m_foregroundColor; + int m_backgroundColor; + int m_frameRate; + + GPC_RawImage *m_BlenderLogo; + GPC_Canvas::TBannerId m_BlenderLogoId; + GPC_RawImage *m_Blender3DLogo; + GPC_Canvas::TBannerId m_Blender3DLogoId; +#if 0 + GPC_RawImage *m_NaNLogo; + GPC_Canvas::TBannerId m_NaNLogoId; +#endif + +public: + GPC_Engine(char *customLoadingAnimation, + int foregroundColor, int backgroundColor, int frameRate); + ~GPC_Engine(); + // Initialize() functions are not put here since they have + // different prototypes for Unix and Windows + void StartLoadingAnimation(); + bool Start(char *filename); // file-on-disk starter + bool Start(unsigned char *blenderDataBuffer, + unsigned int blenderDataBufferSize); // file-in-memory starter + + void Stop(); + virtual void Exit(); + + bool Initialized(void) {return m_initialized;} + bool Loading(void) {return m_loading;} + bool Running(void) const {return m_running;} + + virtual float DetermineProgress(void); // will be platform dependant + void UpdateLoadingAnimation(void); + +private: + bool StartKetsji(void); + +}; + + +#endif // __GPC_ENGINE_H |