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