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

# deSurface.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file deSurface.hpp
    00003 ///
    00004 /// @brief Surface attributes for rendering with
    00005 ///
    00006 /// @author Assassin
    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 June 2003
    00023 /// @author Assassin
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DESURFACE_HPP
    00029 #define DESURFACE_HPP
    00030
    00031 #include "deRenderStates.hpp"
    00032 #include "deWorld.hpp"
    00033
    00034 #ifdef USING_DESTINY3D
    00035 #ifdef _DEBUG
    00036 #   ifdef DESTINY3D_STATIC_LINK
    00037 #       pragma comment(lib, "deDriver_sd")
    00038 #   else
    00039 #       pragma comment(lib, "deDriverd")
    00040 #   endif //DESTINY3D_STATIC_LINK
    00041 #else
    00042 #   ifdef DESTINY3D_STATIC_LINK
    00043 #       pragma comment(lib, "deDriver_s")
    00044 #   else
    00045 #       pragma comment(lib, "deDriver")
    00046 #   endif //DESTINY3D_STATIC_LINK
    00047 #endif //_DEBUG
    00048 #endif //USING_DESTINY3D
    00049
    00050 class IdeSurface;
    00051
    00052 // C export factory functions
    00053 /// Create an instance of IdeSurface
    00054 RENDERSTATE_API IdeSurface* IdeSurface_CreateSurface();
    00055 /// Get the IdeSurface WorldObject interface ID
    00056 RENDERSTATE_API long IdeSurface_GetWOInterfaceID();
    00057
    00058 /// Container & processing class for handling surface attributes of geometry.
    00059 /// Related functions: IdeSurface_CreateSurface, IdeSurface_GetWOInterfaceID
    00060 //class IdeSurface : virtual public IdeWorldObject
    00061 DE3D_INTERFACE(IdeSurface, IdeWorldObject)
    00062 {
    00063 protected:
    00064     virtual ~IdeSurface() {}
    00065 public:
    00066
    00067     /// set an IdeRenderTexture (placeholder method while refactoring)
    00068     virtual void    SetRenderTexture(IdeRenderTexture* pRT) = 0;
    00069     /// set an IdeRenderMaterial (placeholder method while refactoring)
    00070     virtual void    SetRenderMaterial(IdeRenderMaterial* pRM) = 0;
    00071
    00072     virtual IdeRenderTexture*   GetRenderTexture() = 0;
    00073     virtual IdeRenderMaterial*  GetRenderMaterial() = 0;
    00074 };
    00075
    00076 //DE3D_INTERFACE(IdeTextureSet, IdeWorldObject)
    00077 DE3D_INTERFACE(IdeTextureSet, IdeRefCountBase)
    00078 {
    00079 protected:
    00080     virtual ~IdeTextureSet() {}
    00081 public:
    00082
    00083     virtual u32 GetNumTextures() const = 0;
    00084     virtual const char* GetNameByIndex(s32 index) const = 0;
    00085     virtual s32 GetIndexByName(const char* name) const = 0;
    00086     virtual IdeBitmapProxy* GetTextureByIndex(s32 index) const = 0;
    00087     virtual IdeBitmapProxy* GetTextureByName(const char* name) const = 0;
    00088
    00089     virtual deBoolean AddTextureName(const char* name, s32* index) = 0;
    00090     virtual deBoolean SetTextureByIndex(s32 index, IdeBitmapProxy* tex) = 0;
    00091     virtual deBoolean SetTextureByName(const char* name, IdeBitmapProxy* tex) = 0;
    00092
    00093     virtual IdeTextureSet*  CloneTextureSet(const char** names) = 0;
    00094 };
    00095
    00096 #endif //DESURFACE_HPP
    00097