1 // 2 // Copyright 2013 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // formatutils9.h: Queries for GL image formats and their translations to D3D9 8 // formats. 9 10 #ifndef LIBANGLE_RENDERER_D3D_D3D9_FORMATUTILS9_H_ 11 #define LIBANGLE_RENDERER_D3D_D3D9_FORMATUTILS9_H_ 12 13 #include <map> 14 15 #include "common/platform.h" 16 #include "libANGLE/angletypes.h" 17 #include "libANGLE/formatutils.h" 18 #include "libANGLE/renderer/Format.h" 19 #include "libANGLE/renderer/copyvertex.h" 20 #include "libANGLE/renderer/d3d/formatutilsD3D.h" 21 #include "libANGLE/renderer/d3d_format.h" 22 #include "libANGLE/renderer/renderer_utils.h" 23 24 namespace rx 25 { 26 27 class Renderer9; 28 29 namespace d3d9 30 { 31 32 struct VertexFormat 33 { 34 VertexFormat(); 35 36 VertexConversionType conversionType; 37 size_t outputElementSize; 38 VertexCopyFunction copyFunction; 39 D3DDECLTYPE nativeFormat; 40 GLenum componentType; 41 }; 42 const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, angle::FormatID vertexFormatID); 43 44 struct TextureFormat 45 { 46 TextureFormat(); 47 48 D3DFORMAT texFormat; 49 D3DFORMAT renderFormat; 50 51 InitializeTextureDataFunction dataInitializerFunction; 52 53 LoadImageFunction loadFunction; 54 }; 55 const TextureFormat &GetTextureFormatInfo(GLenum internalFormat); 56 } // namespace d3d9 57 } // namespace rx 58 59 #endif // LIBANGLE_RENDERER_D3D_D3D9_FORMATUTILS9_H_ 60