1 // 2 // Copyright (c) 2013-2014 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 LIBGLESV2_RENDERER_FORMATUTILS9_H_ 11 #define LIBGLESV2_RENDERER_FORMATUTILS9_H_ 12 13 #include "libGLESv2/formatutils.h" 14 15 #include <map> 16 17 namespace rx 18 { 19 20 class Renderer9; 21 22 namespace d3d9 23 { 24 25 typedef std::map<std::pair<GLenum, GLenum>, ColorCopyFunction> FastCopyFunctionMap; 26 27 struct D3DFormat 28 { 29 D3DFormat(); 30 31 GLuint pixelBytes; 32 GLuint blockWidth; 33 GLuint blockHeight; 34 35 GLenum internalFormat; 36 37 MipGenerationFunction mipGenerationFunction; 38 ColorReadFunction colorReadFunction; 39 40 FastCopyFunctionMap fastCopyFunctions; 41 ColorCopyFunction getFastCopyFunction(GLenum format, GLenum type) const; 42 }; 43 const D3DFormat &GetD3DFormatInfo(D3DFORMAT format); 44 45 struct VertexFormat 46 { 47 VertexFormat(); 48 49 VertexConversionType conversionType; 50 size_t outputElementSize; 51 VertexCopyFunction copyFunction; 52 D3DDECLTYPE nativeFormat; 53 GLenum componentType; 54 }; 55 const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, const gl::VertexFormat &vertexFormat); 56 57 struct TextureFormat 58 { 59 TextureFormat(); 60 61 D3DFORMAT texFormat; 62 D3DFORMAT renderFormat; 63 64 InitializeTextureDataFunction dataInitializerFunction; 65 66 LoadImageFunction loadFunction; 67 }; 68 const TextureFormat &GetTextureFormatInfo(GLenum internalFormat); 69 70 } 71 72 } 73 74 #endif // LIBGLESV2_RENDERER_FORMATUTILS9_H_ 75