michael@0: // michael@0: // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. michael@0: // Use of this source code is governed by a BSD-style license that can be michael@0: // found in the LICENSE file. michael@0: // michael@0: michael@0: // renderer9_utils.h: Conversion functions and other utility routines michael@0: // specific to the D3D9 renderer michael@0: michael@0: #ifndef LIBGLESV2_RENDERER_RENDERER9_UTILS_H michael@0: #define LIBGLESV2_RENDERER_RENDERER9_UTILS_H michael@0: michael@0: #include "libGLESv2/utilities.h" michael@0: michael@0: const D3DFORMAT D3DFMT_INTZ = ((D3DFORMAT)(MAKEFOURCC('I','N','T','Z'))); michael@0: const D3DFORMAT D3DFMT_NULL = ((D3DFORMAT)(MAKEFOURCC('N','U','L','L'))); michael@0: michael@0: namespace gl_d3d9 michael@0: { michael@0: michael@0: D3DCMPFUNC ConvertComparison(GLenum comparison); michael@0: D3DCOLOR ConvertColor(gl::Color color); michael@0: D3DBLEND ConvertBlendFunc(GLenum blend); michael@0: D3DBLENDOP ConvertBlendOp(GLenum blendOp); michael@0: D3DSTENCILOP ConvertStencilOp(GLenum stencilOp); michael@0: D3DTEXTUREADDRESS ConvertTextureWrap(GLenum wrap); michael@0: D3DCULL ConvertCullMode(GLenum cullFace, GLenum frontFace); michael@0: D3DCUBEMAP_FACES ConvertCubeFace(GLenum cubeFace); michael@0: DWORD ConvertColorMask(bool red, bool green, bool blue, bool alpha); michael@0: D3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter, float maxAnisotropy); michael@0: void ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter, float maxAnisotropy); michael@0: D3DFORMAT ConvertRenderbufferFormat(GLenum format); michael@0: D3DMULTISAMPLE_TYPE GetMultisampleTypeFromSamples(GLsizei samples); michael@0: michael@0: } michael@0: michael@0: namespace d3d9_gl michael@0: { michael@0: michael@0: GLuint GetAlphaSize(D3DFORMAT colorFormat); michael@0: GLuint GetStencilSize(D3DFORMAT stencilFormat); michael@0: michael@0: GLsizei GetSamplesFromMultisampleType(D3DMULTISAMPLE_TYPE type); michael@0: michael@0: bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format); michael@0: GLenum ConvertBackBufferFormat(D3DFORMAT format); michael@0: GLenum ConvertDepthStencilFormat(D3DFORMAT format); michael@0: GLenum ConvertRenderTargetFormat(D3DFORMAT format); michael@0: GLenum GetEquivalentFormat(D3DFORMAT format); michael@0: michael@0: } michael@0: michael@0: namespace d3d9 michael@0: { michael@0: bool IsCompressedFormat(D3DFORMAT format); michael@0: size_t ComputeRowSize(D3DFORMAT format, unsigned int width); michael@0: michael@0: inline bool isDeviceLostError(HRESULT errorCode) michael@0: { michael@0: switch (errorCode) michael@0: { michael@0: case D3DERR_DRIVERINTERNALERROR: michael@0: case D3DERR_DEVICELOST: michael@0: case D3DERR_DEVICEHUNG: michael@0: case D3DERR_DEVICEREMOVED: michael@0: return true; michael@0: default: michael@0: return false; michael@0: } michael@0: } michael@0: michael@0: } michael@0: michael@0: #endif // LIBGLESV2_RENDERER_RENDERER9_UTILS_H