1 // 2 // Copyright (c) 2002-2012 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 // renderer9_utils.h: Conversion functions and other utility routines 8 // specific to the D3D9 renderer 9 10 #ifndef LIBGLESV2_RENDERER_RENDERER9_UTILS_H 11 #define LIBGLESV2_RENDERER_RENDERER9_UTILS_H 12 13 #include "libGLESv2/utilities.h" 14 15 const D3DFORMAT D3DFMT_INTZ = ((D3DFORMAT)(MAKEFOURCC('I','N','T','Z'))); 16 const D3DFORMAT D3DFMT_NULL = ((D3DFORMAT)(MAKEFOURCC('N','U','L','L'))); 17 18 namespace gl_d3d9 19 { 20 21 D3DCMPFUNC ConvertComparison(GLenum comparison); 22 D3DCOLOR ConvertColor(gl::Color color); 23 D3DBLEND ConvertBlendFunc(GLenum blend); 24 D3DBLENDOP ConvertBlendOp(GLenum blendOp); 25 D3DSTENCILOP ConvertStencilOp(GLenum stencilOp); 26 D3DTEXTUREADDRESS ConvertTextureWrap(GLenum wrap); 27 D3DCULL ConvertCullMode(GLenum cullFace, GLenum frontFace); 28 D3DCUBEMAP_FACES ConvertCubeFace(GLenum cubeFace); 29 DWORD ConvertColorMask(bool red, bool green, bool blue, bool alpha); 30 D3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter, float maxAnisotropy); 31 void ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter, float maxAnisotropy); 32 D3DFORMAT ConvertRenderbufferFormat(GLenum format); 33 D3DMULTISAMPLE_TYPE GetMultisampleTypeFromSamples(GLsizei samples); 34 35 } 36 37 namespace d3d9_gl 38 { 39 40 GLuint GetAlphaSize(D3DFORMAT colorFormat); 41 GLuint GetStencilSize(D3DFORMAT stencilFormat); 42 43 GLsizei GetSamplesFromMultisampleType(D3DMULTISAMPLE_TYPE type); 44 45 bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format); 46 GLenum ConvertBackBufferFormat(D3DFORMAT format); 47 GLenum ConvertDepthStencilFormat(D3DFORMAT format); 48 GLenum ConvertRenderTargetFormat(D3DFORMAT format); 49 GLenum GetEquivalentFormat(D3DFORMAT format); 50 51 } 52 53 namespace d3d9 54 { 55 bool IsCompressedFormat(D3DFORMAT format); 56 size_t ComputeRowSize(D3DFORMAT format, unsigned int width); 57 58 inline bool isDeviceLostError(HRESULT errorCode) 59 { 60 switch (errorCode) 61 { 62 case D3DERR_DRIVERINTERNALERROR: 63 case D3DERR_DEVICELOST: 64 case D3DERR_DEVICEHUNG: 65 case D3DERR_DEVICEREMOVED: 66 return true; 67 default: 68 return false; 69 } 70 } 71 72 } 73 74 #endif // LIBGLESV2_RENDERER_RENDERER9_UTILS_H 75