EDriverFeatures.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. #pragma once
  5. namespace irr
  6. {
  7. namespace video
  8. {
  9. //! enumeration for querying features of the video driver.
  10. enum E_VIDEO_DRIVER_FEATURE
  11. {
  12. //! Is driver able to render to a surface?
  13. EVDF_RENDER_TO_TARGET = 0,
  14. //! Is hardware transform and lighting supported?
  15. EVDF_HARDWARE_TL,
  16. //! Are multiple textures per material possible?
  17. EVDF_MULTITEXTURE,
  18. //! Is driver able to render with a bilinear filter applied?
  19. EVDF_BILINEAR_FILTER,
  20. //! Can the driver handle mip maps?
  21. EVDF_MIP_MAP,
  22. //! Can the driver update mip maps automatically?
  23. EVDF_MIP_MAP_AUTO_UPDATE,
  24. //! Are stencilbuffers switched on and does the device support stencil buffers?
  25. EVDF_STENCIL_BUFFER,
  26. //! Is Vertex Shader 1.1 supported?
  27. EVDF_VERTEX_SHADER_1_1,
  28. //! Is Vertex Shader 2.0 supported?
  29. EVDF_VERTEX_SHADER_2_0,
  30. //! Is Vertex Shader 3.0 supported?
  31. EVDF_VERTEX_SHADER_3_0,
  32. //! Is Pixel Shader 1.1 supported?
  33. EVDF_PIXEL_SHADER_1_1,
  34. //! Is Pixel Shader 1.2 supported?
  35. EVDF_PIXEL_SHADER_1_2,
  36. //! Is Pixel Shader 1.3 supported?
  37. EVDF_PIXEL_SHADER_1_3,
  38. //! Is Pixel Shader 1.4 supported?
  39. EVDF_PIXEL_SHADER_1_4,
  40. //! Is Pixel Shader 2.0 supported?
  41. EVDF_PIXEL_SHADER_2_0,
  42. //! Is Pixel Shader 3.0 supported?
  43. EVDF_PIXEL_SHADER_3_0,
  44. //! Are ARB vertex programs v1.0 supported?
  45. EVDF_ARB_VERTEX_PROGRAM_1,
  46. //! Are ARB fragment programs v1.0 supported?
  47. EVDF_ARB_FRAGMENT_PROGRAM_1,
  48. //! Is GLSL supported?
  49. EVDF_ARB_GLSL,
  50. //! Is HLSL supported?
  51. EVDF_HLSL,
  52. //! Are non-square textures supported?
  53. EVDF_TEXTURE_NSQUARE,
  54. //! Are non-power-of-two textures supported?
  55. EVDF_TEXTURE_NPOT,
  56. //! Are framebuffer objects supported?
  57. EVDF_FRAMEBUFFER_OBJECT,
  58. //! Are vertex buffer objects supported?
  59. EVDF_VERTEX_BUFFER_OBJECT,
  60. //! Supports Alpha To Coverage
  61. EVDF_ALPHA_TO_COVERAGE,
  62. //! Supports Color masks (disabling color planes in output)
  63. EVDF_COLOR_MASK,
  64. //! Supports multiple render targets at once
  65. EVDF_MULTIPLE_RENDER_TARGETS,
  66. //! Supports separate blend settings for multiple render targets
  67. EVDF_MRT_BLEND,
  68. //! Supports separate color masks for multiple render targets
  69. EVDF_MRT_COLOR_MASK,
  70. //! Supports separate blend functions for multiple render targets
  71. EVDF_MRT_BLEND_FUNC,
  72. //! Supports geometry shaders
  73. EVDF_GEOMETRY_SHADER,
  74. //! Supports occlusion queries
  75. EVDF_OCCLUSION_QUERY,
  76. //! Supports polygon offset/depth bias for avoiding z-fighting
  77. EVDF_POLYGON_OFFSET,
  78. //! Support for different blend functions. Without, only ADD is available
  79. EVDF_BLEND_OPERATIONS,
  80. //! Support for separate blending for RGB and Alpha.
  81. EVDF_BLEND_SEPARATE,
  82. //! Support for texture coord transformation via texture matrix
  83. EVDF_TEXTURE_MATRIX,
  84. //! Support for cube map textures.
  85. EVDF_TEXTURE_CUBEMAP,
  86. //! Support for filtering across different faces of the cubemap
  87. EVDF_TEXTURE_CUBEMAP_SEAMLESS,
  88. //! Support for clamping vertices beyond far-plane to depth instead of capping them.
  89. EVDF_DEPTH_CLAMP,
  90. //! Support for multisample textures.
  91. EVDF_TEXTURE_MULTISAMPLE,
  92. //! Only used for counting the elements of this enum
  93. EVDF_COUNT
  94. };
  95. } // end namespace video
  96. } // end namespace irr