Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Destiny3D.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file Destiny3D.hpp
    00003 ///
    00004 /// @brief Destiny3D Engine Library For Applications
    00005 ///
    00006 /// @author Hootie
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Oct 2001
    00023 /// @author Hootie
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DESTINY3D_HPP
    00029 #define DESTINY3D_HPP
    00030
    00031 #if defined(DESTINY3D_DLL_EXPORTS) || defined(DESTINY3D_EXPORT_ALL)
    00032 #   define DESTINY3D_API extern "C" DEDLL_EXPORT
    00033 #elif defined(DESTINY3D_STATIC_LINK)
    00034 #   define DESTINY3D_API extern "C"
    00035 #else
    00036 #   define DESTINY3D_API extern "C" DEDLL_IMPORT
    00037 #endif
    00038
    00039 #if !defined(DESTINY3D_EXPORT_ALL) && !defined(DESTINY3D_DLL_EXPORTS)
    00040 #   if defined(USING_DESTINY3D_DLL)
    00041 #       undef USING_DESTINY3D
    00042 #       ifdef _DEBUG
    00043 #           pragma comment(lib, "_Destiny3D_sdlld")
    00044 #       else
    00045 #           pragma comment(lib, "_Destiny3D_sdll")
    00046 #       endif //_DEBUG
    00047 #   elif defined(USING_DESTINY3D)
    00048 #       ifdef _DEBUG
    00049 #           ifdef DESTINY3D_STATIC_LINK
    00050 #               pragma comment(lib, "_Destiny3D_sd")
    00051 #           else
    00052 #               pragma comment(lib, "_Destiny3Dd")
    00053 #           endif //DESTINY3D_STATIC_LINK
    00054 #       else
    00055 #           ifdef DESTINY3D_STATIC_LINK
    00056 #               pragma comment(lib, "_Destiny3D_s")
    00057 #           else
    00058 #               pragma comment(lib, "_Destiny3D")
    00059 #           endif //DESTINY3D_STATIC_LINK
    00060 #       endif //_DEBUG
    00061 #   endif //USING_DESTINY3D
    00062 #endif //!defined(DESTINY3D_EXPORT_ALL) && !defined(DESTINY3D_DLL_EXPORTS)
    00063
    00064 //=================================================================================
    00065 // Includes
    00066 //=================================================================================
    00067
    00068 #include "deGlobalTypes.hpp"
    00069 #include "deDriver.hpp"
    00070 #include "deThread.hpp"
    00071
    00072
    00073 //=================================================================================
    00074 // Function Prototypes
    00075 //=================================================================================
    00076
    00077 class IDestiny3DFactory;
    00078
    00079 DESTINY3D_API deBoolean Destiny3D_Init(const char *AppName = NULL);
    00080 DESTINY3D_API deBoolean Destiny3D_ShutDown(void);
    00081
    00082 DESTINY3D_API IDestiny3DFactory* Destiny3D_GetFactory();
    00083
    00084 class IdeResourceManager;
    00085 class IdeSceneGraph;
    00086 class Ide2DCollection;
    00087 class IdeFont;
    00088 class IdeBitmap;
    00089 class IdeBitmapProxy;
    00090 class IdeResourceBase;
    00091 class IdeDriverLoad;
    00092 class IdeVertexBuffer;
    00093 class IdeSurface;
    00094 class IdeRenderTexture;
    00095 class IdeRenderMaterial;
    00096 class IdeRenderLight;
    00097 class IdeFileMemory;
    00098 class IdeFilePlugin;
    00099 class IdeFSReal;
    00100 class IdeFSVirtual;
    00101 class IdePluginTwofish;
    00102 class IdePluginRijndael;
    00103 class IdePluginZLib;
    00104 class IdePluginSHA1;
    00105 class IdeRender;
    00106 class IdeCamera;
    00107 class IdePlaneFrustum;
    00108 class IdePortal;
    00109 class IdeCollision;
    00110 class IdeSceneRoom;
    00111 class IdeSceneABT;
    00112 class IdeSceneActor;
    00113 class IdeSceneSky;
    00114 class IdeSceneStaticMesh;
    00115 class IdeSceneTerrain;
    00116 class IdeSceneLight;
    00117 class IdeWorldManager;
    00118 class IdeMesh;
    00119 class IdeThread;
    00120 class IdeThreadLock;
    00121 class IdeThreadPool;
    00122
    00123 DE3D_INTERFACE_(IDestiny3DFactory)
    00124 {
    00125 protected:
    00126     virtual ~IDestiny3DFactory() {}
    00127 public:
    00128     virtual void                ShutDown() = 0;
    00129
    00130     // interface queries
    00131     virtual long                GetIdeBitmapRscInterfaceID() = 0;
    00132     virtual long                GetIdeBitmapProxyWOInterfaceID() = 0;
    00133     virtual long                GetIdeAnimatedMeshRscInterfaceID() = 0;
    00134     virtual long                GetIdeSurfaceWOInterfaceID() = 0;
    00135     virtual long                GetIdeRenderStateWOInterfaceID() = 0;
    00136     virtual long                GetIdeSceneRoomWOInterfaceID() = 0;
    00137     virtual long                GetIdeSceneObjectWOInterfaceID() = 0;
    00138     virtual long                GetIdeMeshWOInterfaceID() = 0;
    00139
    00140     // singletons
    00141     virtual IdeResourceManager* GetIdeResourceManager() = 0;
    00142     virtual IdeRender*          GetIdeRender() = 0;
    00143     virtual IdeSceneGraph*      GetIdeSceneGraph() = 0;
    00144     virtual IdeWorldManager*    GetIdeWorldManager() = 0;
    00145     virtual IdeThreadPool*      GetIdeThreadPool(u32 minThreadCount) = 0;
    00146
    00147     // creators
    00148     virtual Ide2DCollection*    CreateIde2DCollection() = 0;
    00149     virtual IdeFont*            CreateIdeFont() = 0;
    00150     virtual IdeBitmap*          CreateIdeBitmap() = 0;
    00151     virtual IdeBitmap*          CreateIdeBitmapWithInfo(s32 Width, s32 Height, IdeDriver::BPP Format, deBoolean CubeMap = deFALSE) = 0;
    00152     virtual IdeBitmapProxy*     CreateIdeBitmapProxy(IdeResourceBase* FromBitmap = NULL) = 0;
    00153     virtual IdeMesh*            CreateIdeMesh() = 0;
    00154     virtual IdeDriverLoad*      CreateIdeDriverLoad(char const * path) = 0;
    00155     virtual IdeVertexBuffer*    CreateIdeVertexBuffer() = 0;
    00156     virtual IdeSurface*         CreateIdeSurface() = 0;
    00157     virtual IdeRenderTexture*   CreateIdeRenderTexture() = 0;
    00158     virtual IdeRenderMaterial*  CreateIdeRenderMaterial() = 0;
    00159     virtual IdeRenderLight*     CreateIdeRenderLight() = 0;
    00160     virtual IdeFileMemory*      CreateIdeFileMemory() = 0;
    00161     virtual IdeFilePlugin*      CreateIdeFilePlugin() = 0;
    00162     virtual IdeFSReal*          CreateIdeFSReal() = 0;
    00163     virtual IdeFSVirtual*       CreateIdeFSVirtual() = 0;
    00164     virtual IdePluginTwofish*   CreateIdePluginTwofish() = 0;
    00165     virtual IdePluginRijndael*  CreateIdePluginRijndael() = 0;
    00166     virtual IdePluginZLib*      CreateIdePluginZLib() = 0;
    00167     virtual IdePluginSHA1*      CreateIdePluginSHA1() = 0;
    00168     virtual IdeCamera*          CreateIdeCamera() = 0;
    00169     virtual IdePlaneFrustum*    CreateIdePlaneFrustum() = 0;
    00170     virtual IdePortal*          CreateIdePortal() = 0;
    00171     virtual IdeCollision*       CreateIdeCollision() = 0;
    00172     virtual IdeSceneRoom*       CreateIdeSceneRoom() = 0;
    00173     virtual IdeSceneABT *       CreateIdeSceneABT() = 0;
    00174     virtual IdeSceneActor*      CreateIdeSceneActor() = 0;
    00175     virtual IdeSceneSky *       CreateIdeSceneSky() = 0;
    00176     virtual IdeSceneStaticMesh* CreateIdeSceneStaticMesh() = 0;
    00177     virtual IdeSceneTerrain*    CreateIdeSceneTerrain() = 0;
    00178     virtual IdeSceneLight*      CreateIdeSceneLight() = 0;
    00179     virtual IdeThread*          CreateIdeThread(IdeThread::ThreadProc threadProc) = 0;
    00180     virtual IdeThreadLock*      CreateIdeThreadLock(u32 spinCount = 1024) = 0;
    00181 };
    00182
    00183 #endif  //End DESTINY3D_HPP
    00184