Jamma Tino Schwarze
cEnvTextureMaterial.hh

  • Willkommen
  • Wer ich bin
  • Was ich tue
  • Was ich tat (Archiv)
    • Abitur
    • Studium
      • Arbeiten
      • Computergrafik
    • Aktivitäten
    • Software
    • Wohnen
    • Sonstiges
  • Links
  • Kontakt / Impressum
/* (c) 1999-2000 Tino Schwarze, see COPYING for details */ /**@pkg cObject.cMaterial.cTextureMaterial.cEnvTextureMaterial*/ /** * class for representing an OpenGL 2D textured material * which provides environment mapping * * #include "cEnvTextureMaterial.hh" * * -lMesaGL or -lGL * * A cTextureMaterial object can be used the same way as a * cMaterial object. * * 1D textures are not supported. * * @see cMaterial * * @pkgdoc cObject.cMaterial.cTextureMaterial.cEnvTextureMaterial */ #ifndef cEnvTextureMaterial_hh #define cEnvTextureMaterial_hh #include #include "cTextureMaterial.hh" #include "common.hh" /** * a class for representation of an OpenGL texture material with * environment mapping * * It's only slightly different to cTextureMaterial. */ class cEnvTextureMaterial : public cTextureMaterial { public: // LIFETIME /** * default constructor * @param name optional name of object */ cEnvTextureMaterial (const char *name = NULL); /** * constructor with initialization * @param color material's color (cADSEColor object) * @param shininess how shiny is the surface (0..128) * @param name optional name of object */ cEnvTextureMaterial ( const cADSEColor &color = cADSEColor (), const int shininess = 0, const char *name = NULL); /** * constructor with initialization * @param texture file name of texture to load * The texture is loaded by Init(). Only JPEG files are supported. * @param color material's color (cADSEColor object) * @param shininess how shiny is the surface (0..128) * @param name optional name of object */ cEnvTextureMaterial ( const char *texture, const cADSEColor &color, const int shininess, const char *name = NULL); // if constructors could be inherited... /** * constructor with initialization * @param texture file name of texture to load * The texture is loaded by Init(). Only JPEG files are supported. * @param usemipmaps enable mipmapping? * @param color material's color (cADSEColor object) * @param shininess how shiny is the surface (0..128) * @param name optional name of object */ cEnvTextureMaterial ( const char *texture, bool usemipmaps, const cADSEColor &color, const int shininess, const char *name = NULL); /** * copy constructor - important! */ cEnvTextureMaterial (const cEnvTextureMaterial &ctm); /** * destructor */ virtual ~cEnvTextureMaterial (); /** * initialization: loads texture */ virtual int Init (); /* we inherit: SetMipmapping, IsMipmapped */ /** * start using the material's properties * * This is only neccessary to embed a cMaterial into a * cVisibleObject. We cannot use Activate() there since * it will call cObject::Activate() which in turn calls * Deactivate() so the material settings are undone before * the object gets drawn. */ virtual void StartMaterialUse (); /** * end using the material's properties */ virtual void EndMaterialUse (); /* we inherit: * - LoadTexture * - UseTexture * - SetTextureParameters */ protected: // PROTECTED METHODS virtual const char *GetDefaultName () const { return "cEnvTextureMaterial"; } /* we inherit: * - UpdateTexture * - Activate * - Deactivate * - AllocateTextureName */ // PROTECTED DATA // we need to save state between StartMaterialUse() and // EndMaterialUse () GLint mOldSMode, mOldTMode; GLboolean mOldSState, mOldTState; }; #endif // ifndef cEnvTextureMaterial_hh
Copyright © 2025 Jamma Tino Schwarze