Home | History | Annotate | Download | only in d3d11
      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 // formatutils11.h: Queries for GL image formats and their translations to D3D11
      8 // formats.
      9 
     10 #ifndef LIBGLESV2_RENDERER_FORMATUTILS11_H_
     11 #define LIBGLESV2_RENDERER_FORMATUTILS11_H_
     12 
     13 #include "libGLESv2/formatutils.h"
     14 
     15 #include <map>
     16 
     17 namespace rx
     18 {
     19 
     20 namespace d3d11
     21 {
     22 
     23 typedef std::map<std::pair<GLenum, GLenum>, ColorCopyFunction> FastCopyFunctionMap;
     24 
     25 struct DXGIFormat
     26 {
     27     DXGIFormat();
     28 
     29     GLuint pixelBytes;
     30     GLuint blockWidth;
     31     GLuint blockHeight;
     32 
     33     GLuint depthBits;
     34     GLuint depthOffset;
     35     GLuint stencilBits;
     36     GLuint stencilOffset;
     37 
     38     GLenum internalFormat;
     39     GLenum componentType;
     40 
     41     MipGenerationFunction mipGenerationFunction;
     42     ColorReadFunction colorReadFunction;
     43 
     44     FastCopyFunctionMap fastCopyFunctions;
     45     ColorCopyFunction getFastCopyFunction(GLenum format, GLenum type) const;
     46 };
     47 const DXGIFormat &GetDXGIFormatInfo(DXGI_FORMAT format);
     48 
     49 struct TextureFormat
     50 {
     51     TextureFormat();
     52 
     53     DXGI_FORMAT texFormat;
     54     DXGI_FORMAT srvFormat;
     55     DXGI_FORMAT rtvFormat;
     56     DXGI_FORMAT dsvFormat;
     57     DXGI_FORMAT renderFormat;
     58 
     59     DXGI_FORMAT swizzleTexFormat;
     60     DXGI_FORMAT swizzleSRVFormat;
     61     DXGI_FORMAT swizzleRTVFormat;
     62 
     63     InitializeTextureDataFunction dataInitializerFunction;
     64 
     65     typedef std::map<GLenum, LoadImageFunction> LoadFunctionMap;
     66     LoadFunctionMap loadFunctions;
     67 };
     68 const TextureFormat &GetTextureFormatInfo(GLenum internalFormat);
     69 
     70 struct VertexFormat
     71 {
     72     VertexFormat();
     73 
     74     VertexConversionType conversionType;
     75     DXGI_FORMAT nativeFormat;
     76     VertexCopyFunction copyFunction;
     77 };
     78 const VertexFormat &GetVertexFormatInfo(const gl::VertexFormat &vertexFormat);
     79 
     80 }
     81 
     82 }
     83 
     84 #endif // LIBGLESV2_RENDERER_FORMATUTILS11_H_
     85