tree: d084433c5ba0d7a5cd8734c13892e5aba05098b5 [path history] [tgz]
  1. cl/
  2. d3d/
  3. gl/
  4. metal/
  5. null/
  6. vulkan/
  7. wgpu/
  8. angle_cl_format_map.json
  9. angle_format.py
  10. angle_format_data.json
  11. angle_format_map.json
  12. BufferImpl.cpp
  13. BufferImpl.h
  14. BufferImpl_mock.h
  15. cl_types.h
  16. CLCommandQueueImpl.cpp
  17. CLCommandQueueImpl.h
  18. CLContextImpl.cpp
  19. CLContextImpl.h
  20. CLDeviceImpl.cpp
  21. CLDeviceImpl.h
  22. CLEventImpl.cpp
  23. CLEventImpl.h
  24. CLExtensions.cpp
  25. CLExtensions.h
  26. CLKernelImpl.cpp
  27. CLKernelImpl.h
  28. CLMemoryImpl.cpp
  29. CLMemoryImpl.h
  30. CLPlatformImpl.cpp
  31. CLPlatformImpl.h
  32. CLProgramImpl.cpp
  33. CLProgramImpl.h
  34. CLSamplerImpl.cpp
  35. CLSamplerImpl.h
  36. CompilerImpl.h
  37. ContextImpl.cpp
  38. ContextImpl.h
  39. copyvertex.h
  40. copyvertex.inc.h
  41. d3d_format.cpp
  42. d3d_format.h
  43. DeviceImpl.cpp
  44. DeviceImpl.h
  45. DisplayImpl.cpp
  46. DisplayImpl.h
  47. driver_utils.cpp
  48. driver_utils.h
  49. driver_utils_ios.mm
  50. driver_utils_mac.mm
  51. dxgi_format_data.json
  52. dxgi_format_map.h
  53. dxgi_format_map_autogen.cpp
  54. dxgi_support_data.json
  55. dxgi_support_table.h
  56. dxgi_support_table_autogen.cpp
  57. EGLImplFactory.h
  58. EGLReusableSync.cpp
  59. EGLReusableSync.h
  60. EGLSyncImpl.cpp
  61. EGLSyncImpl.h
  62. FenceNVImpl.h
  63. Format.h
  64. Format_table_autogen.cpp
  65. FormatID_autogen.h
  66. FramebufferAttachmentObjectImpl.h
  67. FramebufferImpl.cpp
  68. FramebufferImpl.h
  69. FramebufferImpl_mock.h
  70. gen_angle_format_table.py
  71. gen_dxgi_format_table.py
  72. gen_dxgi_support_tables.py
  73. gen_load_functions_table.py
  74. GLImplFactory.h
  75. ImageImpl.cpp
  76. ImageImpl.h
  77. ImageImpl_mock.h
  78. load_functions_data.json
  79. load_functions_table.h
  80. load_functions_table_autogen.cpp
  81. MemoryObjectImpl.h
  82. OverlayImpl.h
  83. ProgramExecutableImpl.h
  84. ProgramImpl.cpp
  85. ProgramImpl.h
  86. ProgramImpl_mock.h
  87. ProgramPipelineImpl.cpp
  88. ProgramPipelineImpl.h
  89. QueryImpl.cpp
  90. QueryImpl.h
  91. README.md
  92. RenderbufferImpl.cpp
  93. RenderbufferImpl.h
  94. RenderbufferImpl_mock.h
  95. renderer_utils.cpp
  96. renderer_utils.h
  97. RenderTargetCache.h
  98. SamplerImpl.h
  99. SemaphoreImpl.h
  100. serial_utils.h
  101. serial_utils_unittest.cpp
  102. ShaderImpl.cpp
  103. ShaderImpl.h
  104. ShareGroupImpl.h
  105. StreamProducerImpl.h
  106. SurfaceImpl.cpp
  107. SurfaceImpl.h
  108. SyncImpl.h
  109. TextureImpl.cpp
  110. TextureImpl.h
  111. TextureImpl_mock.h
  112. TransformFeedbackImpl.cpp
  113. TransformFeedbackImpl.h
  114. TransformFeedbackImpl_mock.h
  115. VertexArrayImpl.cpp
  116. VertexArrayImpl.h
src/libANGLE/renderer/README.md

ANGLE back-ends

This folder contains shared back-end-specific implementation files. The classes and types in renderer are not specified by GLES. They instead are common to all the various ANGLE implementations.

See renderer_utils.h for various cross back-end utilties.

ANGLE Formats

The ANGLE format class, angle::Format, works as a union between GLES and all the various back-end formats. It can represent any type of format in ANGLE. e.g. Formats in Vulkan that don‘t exist in GLES, or DXGI formats that don’t exist in GLES, or Windows/Android surface configs that don't exist anywhere else.

The glInternalFormat member of angle::Format represents the “closest” GL format for an ANGLE format. For formats that don't exist in GLES this will not be exactly what the format represents.

The back-ends also define their own format tables. See the Vulkan Format table docs and the [D3D11 format table docs][D23D11FormatDocs].

DXGI Format Info

DXGI formats are used in both the GL and D3D11 back-end. Therefore the generated info table lives in this common shared location.

The DXGI info table is generated by gen_dxgi_format_table.py and sources data from dxgi_format_data.json. The main purpose of the table is to convert from a DXGI format to an ANGLE format, where the ANGLE format should have all the necessary information.