Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/GamePlayer/common/GPC_Engine.h')
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Engine.h130
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