diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h | 71 |
1 files changed, 34 insertions, 37 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h index 26388794e0..f26fe43b36 100644 --- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h +++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h @@ -12,6 +12,8 @@ #include "libGLESv2/formatutils.h" +#include <map> + namespace rx { @@ -20,55 +22,50 @@ class Renderer9; namespace d3d9 { -typedef std::set<D3DFORMAT> D3DFormatSet; - -MipGenerationFunction GetMipGenerationFunction(D3DFORMAT format); -LoadImageFunction GetImageLoadFunction(GLenum internalFormat); - -GLuint GetFormatPixelBytes(D3DFORMAT format); -GLuint GetBlockWidth(D3DFORMAT format); -GLuint GetBlockHeight(D3DFORMAT format); -GLuint GetBlockSize(D3DFORMAT format, GLuint width, GLuint height); +typedef std::map<std::pair<GLenum, GLenum>, ColorCopyFunction> FastCopyFunctionMap; -void MakeValidSize(bool isImage, D3DFORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset); - -const D3DFormatSet &GetAllUsedD3DFormats(); +struct D3DFormat +{ + D3DFormat(); -ColorReadFunction GetColorReadFunction(D3DFORMAT format); -ColorCopyFunction GetFastCopyFunction(D3DFORMAT sourceFormat, GLenum destFormat, GLenum destType); + GLuint pixelBytes; + GLuint blockWidth; + GLuint blockHeight; -VertexCopyFunction GetVertexCopyFunction(const gl::VertexFormat &vertexFormat); -size_t GetVertexElementSize(const gl::VertexFormat &vertexFormat); -VertexConversionType GetVertexConversionType(const gl::VertexFormat &vertexFormat); -D3DDECLTYPE GetNativeVertexFormat(const gl::VertexFormat &vertexFormat); + GLenum internalFormat; -GLenum GetDeclTypeComponentType(D3DDECLTYPE declType); -int GetDeclTypeComponentCount(D3DDECLTYPE declType); -bool IsDeclTypeNormalized(D3DDECLTYPE declType); + MipGenerationFunction mipGenerationFunction; + ColorReadFunction colorReadFunction; -void InitializeVertexTranslations(const rx::Renderer9 *renderer); + FastCopyFunctionMap fastCopyFunctions; + ColorCopyFunction getFastCopyFunction(GLenum format, GLenum type) const; +}; +const D3DFormat &GetD3DFormatInfo(D3DFORMAT format); -} - -namespace gl_d3d9 +struct VertexFormat { + VertexFormat(); -D3DFORMAT GetTextureFormat(GLenum internalForma); -D3DFORMAT GetRenderFormat(GLenum internalFormat); + VertexConversionType conversionType; + size_t outputElementSize; + VertexCopyFunction copyFunction; + D3DDECLTYPE nativeFormat; + GLenum componentType; +}; +const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, const gl::VertexFormat &vertexFormat); -D3DMULTISAMPLE_TYPE GetMultisampleType(GLsizei samples); +struct TextureFormat +{ + TextureFormat(); -bool RequiresTextureDataInitialization(GLint internalFormat); -InitializeTextureDataFunction GetTextureDataInitializationFunction(GLint internalFormat); + D3DFORMAT texFormat; + D3DFORMAT renderFormat; -} - -namespace d3d9_gl -{ + InitializeTextureDataFunction dataInitializerFunction; -GLenum GetInternalFormat(D3DFORMAT format); -GLsizei GetSamplesCount(D3DMULTISAMPLE_TYPE type); -bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format); + LoadImageFunction loadFunction; +}; +const TextureFormat &GetTextureFormatInfo(GLenum internalFormat); } |