Home | History | Annotate | Download | only in d3d9
      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