EMaterialFlags.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Copyright (C) 2002-2012 Nikolaus Gebhardt
  2. // This file is part of the "Irrlicht Engine".
  3. // For conditions of distribution and use, see copyright notice in irrlicht.h
  4. #ifndef __E_MATERIAL_FLAGS_H_INCLUDED__
  5. #define __E_MATERIAL_FLAGS_H_INCLUDED__
  6. namespace irr
  7. {
  8. namespace video
  9. {
  10. //! Material flags
  11. enum E_MATERIAL_FLAG
  12. {
  13. //! Draw as wireframe or filled triangles? Default: false
  14. EMF_WIREFRAME = 0x1,
  15. //! Draw as point cloud or filled triangles? Default: false
  16. EMF_POINTCLOUD = 0x2,
  17. //! Flat or Gouraud shading? Default: true
  18. EMF_GOURAUD_SHADING = 0x4,
  19. //! Will this material be lighted? Default: true
  20. EMF_LIGHTING = 0x8,
  21. //! Is the ZBuffer enabled? Default: true
  22. EMF_ZBUFFER = 0x10,
  23. //! May be written to the zbuffer or is it readonly. Default: true
  24. /** This flag is ignored, if the material type is a transparent type. */
  25. EMF_ZWRITE_ENABLE = 0x20,
  26. //! Is backface culling enabled? Default: true
  27. EMF_BACK_FACE_CULLING = 0x40,
  28. //! Is frontface culling enabled? Default: false
  29. /** Overrides EMF_BACK_FACE_CULLING if both are enabled. */
  30. EMF_FRONT_FACE_CULLING = 0x80,
  31. //! Is bilinear filtering enabled? Default: true
  32. EMF_BILINEAR_FILTER = 0x100,
  33. //! Is trilinear filtering enabled? Default: false
  34. /** If the trilinear filter flag is enabled,
  35. the bilinear filtering flag is ignored. */
  36. EMF_TRILINEAR_FILTER = 0x200,
  37. //! Is anisotropic filtering? Default: false
  38. /** In Irrlicht you can use anisotropic texture filtering in
  39. conjunction with bilinear or trilinear texture filtering
  40. to improve rendering results. Primitives will look less
  41. blurry with this flag switched on. */
  42. EMF_ANISOTROPIC_FILTER = 0x400,
  43. //! Is fog enabled? Default: false
  44. EMF_FOG_ENABLE = 0x800,
  45. //! Normalizes normals. Default: false
  46. /** You can enable this if you need to scale a dynamic lighted
  47. model. Usually, its normals will get scaled too then and it
  48. will get darker. If you enable the EMF_NORMALIZE_NORMALS flag,
  49. the normals will be normalized again, and the model will look
  50. as bright as it should. */
  51. EMF_NORMALIZE_NORMALS = 0x1000,
  52. //! Access to all layers texture wrap settings. Overwrites separate layer settings.
  53. EMF_TEXTURE_WRAP = 0x2000,
  54. //! AntiAliasing mode
  55. EMF_ANTI_ALIASING = 0x4000,
  56. //! ColorMask bits, for enabling the color planes
  57. EMF_COLOR_MASK = 0x8000,
  58. //! ColorMaterial enum for vertex color interpretation
  59. EMF_COLOR_MATERIAL = 0x10000,
  60. //! Flag for enabling/disabling mipmap usage
  61. EMF_USE_MIP_MAPS = 0x20000,
  62. //! Flag for blend operation
  63. EMF_BLEND_OPERATION = 0x40000,
  64. //! Flag for polygon offset
  65. EMF_POLYGON_OFFSET = 0x80000,
  66. //! MaterialType override
  67. EMF_MATERIAL_TYPE = 0x100000,
  68. //! Texture
  69. EMF_TEXTURE0 = 0x200000,
  70. //! Texture
  71. EMF_TEXTURE1 = 0x400000,
  72. //! Texture
  73. EMF_TEXTURE2 = 0x800000,
  74. };
  75. } // end namespace video
  76. } // end namespace irr
  77. #endif // __E_MATERIAL_FLAGS_H_INCLUDED__