EMaterialFlags.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 IRR_E_MATERIAL_FLAGS_H_INCLUDED
  5. #define IRR_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. /** Note that if you want to change TextureWrapU, TextureWrapV, TextureWrapW
  54. independently, then you can't work with this flag, but will have to set the variables
  55. directly. */
  56. EMF_TEXTURE_WRAP = 0x2000,
  57. //! AntiAliasing mode
  58. EMF_ANTI_ALIASING = 0x4000,
  59. //! ColorMask bits, for enabling the color planes
  60. EMF_COLOR_MASK = 0x8000,
  61. //! ColorMaterial enum for vertex color interpretation
  62. EMF_COLOR_MATERIAL = 0x10000,
  63. //! Flag for enabling/disabling mipmap usage
  64. EMF_USE_MIP_MAPS = 0x20000,
  65. //! Flag for blend operation
  66. EMF_BLEND_OPERATION = 0x40000,
  67. //! Flag for polygon offset
  68. EMF_POLYGON_OFFSET = 0x80000,
  69. //! Flag for blend factor
  70. EMF_BLEND_FACTOR = 0x160000
  71. };
  72. } // end namespace video
  73. } // end namespace irr
  74. #endif // IRR_E_MATERIAL_FLAGS_H_INCLUDED