webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
renderer9_utils.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-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 // renderer9_utils.h: Conversion functions and other utility routines
8 // specific to the D3D9 renderer
9 
10 #ifndef LIBANGLE_RENDERER_D3D_D3D9_RENDERER9UTILS_H_
11 #define LIBANGLE_RENDERER_D3D_D3D9_RENDERER9UTILS_H_
12 
13 #include "common/Color.h"
14 #include "libANGLE/Caps.h"
15 #include "libANGLE/Error.h"
16 
17 namespace gl
18 {
19 class FramebufferAttachment;
20 }
21 
22 namespace rx
23 {
24 class RenderTarget9;
25 struct WorkaroundsD3D;
26 
27 namespace gl_d3d9
28 {
29 
30 D3DCMPFUNC ConvertComparison(GLenum comparison);
31 D3DCOLOR ConvertColor(gl::ColorF color);
32 D3DBLEND ConvertBlendFunc(GLenum blend);
33 D3DBLENDOP ConvertBlendOp(GLenum blendOp);
34 D3DSTENCILOP ConvertStencilOp(GLenum stencilOp);
35 D3DTEXTUREADDRESS ConvertTextureWrap(GLenum wrap);
36 D3DCULL ConvertCullMode(GLenum cullFace, GLenum frontFace);
37 D3DCUBEMAP_FACES ConvertCubeFace(GLenum cubeFace);
38 DWORD ConvertColorMask(bool red, bool green, bool blue, bool alpha);
39 D3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter, float maxAnisotropy);
40 void ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter,
41  float *d3dLodBias, float maxAnisotropy, size_t baseLevel);
42 D3DQUERYTYPE ConvertQueryType(GLenum queryType);
43 
44 D3DMULTISAMPLE_TYPE GetMultisampleType(GLuint samples);
45 
46 }
47 
48 namespace d3d9_gl
49 {
50 
51 unsigned int GetReservedVertexUniformVectors();
52 
54 
55 GLsizei GetSamplesCount(D3DMULTISAMPLE_TYPE type);
56 
57 bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format);
58 
59 void GenerateCaps(IDirect3D9 *d3d9,
60  IDirect3DDevice9 *device,
61  D3DDEVTYPE deviceType,
62  UINT adapter,
63  gl::Caps *caps,
64  gl::TextureCapsMap *textureCapsMap,
65  gl::Extensions *extensions,
66  gl::Limitations *limitations);
67 }
68 
69 namespace d3d9
70 {
71 
73 
74 void MakeValidSize(bool isImage, D3DFORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset);
75 
77 {
78  switch (errorCode)
79  {
80  case D3DERR_DRIVERINTERNALERROR:
81  case D3DERR_DEVICELOST:
82  case D3DERR_DEVICEHUNG:
83  case D3DERR_DEVICEREMOVED:
84  return true;
85  default:
86  return false;
87  }
88 }
89 
91 }
92 
93 }
94 
95 #endif // LIBANGLE_RENDERER_D3D_D3D9_RENDERER9UTILS_H_
void GenerateCaps(ID3D11Device *device, ID3D11DeviceContext *deviceContext, const Renderer11DeviceCaps &renderer11DeviceCaps, gl::Caps *caps, gl::TextureCapsMap *textureCapsMap, gl::Extensions *extensions, gl::Limitations *limitations)
Definition: renderer11_utils.cpp:1046
void ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter, float *d3dLodBias, float maxAnisotropy, size_t baseLevel)
Definition: renderer9_utils.cpp:212
EGLSurface EGLint EGLint EGLint EGLint height
Definition: eglext.h:950
GLint GLint GLint GLsizei GLsizei GLenum format
Definition: gl2.h:403
D3D11_COMPARISON_FUNC ConvertComparison(GLenum comparison)
Definition: renderer11_utils.cpp:1394
D3D11_BLEND_OP ConvertBlendOp(GLenum glBlendOp)
Definition: renderer11_utils.cpp:1315
EGLSurface EGLint EGLint EGLint width
Definition: eglext.h:950
D3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter, float maxAnisotropy)
Definition: renderer9_utils.cpp:194
D3D11_CULL_MODE ConvertCullMode(bool cullEnabled, GLenum cullMode)
Definition: renderer11_utils.cpp:1365
unsigned int GLenum
Definition: gl2.h:69
bool isDeviceLostError(HRESULT errorCode)
Definition: renderer9_utils.h:76
GLfloat green
Definition: gl2.h:388
HRESULT
Definition: RenderThemeWin.cpp:150
int blend(int from, int to, double progress)
Definition: AnimationUtilities.h:34
bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format)
Definition: renderer9_utils.cpp:307
D3D11_TEXTURE_ADDRESS_MODE ConvertTextureWrap(GLenum wrap)
Definition: renderer11_utils.cpp:1540
Definition: WorkaroundsD3D.h:27
D3D11_STENCIL_OP ConvertStencilOp(GLenum stencilOp)
Definition: renderer11_utils.cpp:1440
D3DCOLOR ConvertColor(gl::ColorF color)
Definition: renderer9_utils.cpp:49
D3DCUBEMAP_FACES ConvertCubeFace(GLenum cubeFace)
Definition: renderer9_utils.cpp:156
GLfloat GLfloat blue
Definition: gl2.h:388
Definition: mathutil.h:804
GLsizei GetSamplesCount(D3DMULTISAMPLE_TYPE type)
Definition: renderer9_utils.cpp:302
D3DMULTISAMPLE_TYPE GetMultisampleType(GLuint samples)
Definition: renderer9_utils.cpp:282
GLuint color
Definition: gl2ext.h:1371
Definition: Caps.h:341
Definition: Caps.h:48
unsigned int GLuint
Definition: gl2.h:70
Definition: Color.h:16
GLfloat GLfloat GLfloat alpha
Definition: gl2.h:388
typename lazy::wrap< A, B >::type wrap
Definition: Brigand.h:87
EGLenum type
Definition: eglext.h:63
D3D11_QUERY ConvertQueryType(GLenum queryType)
Definition: renderer11_utils.cpp:1562
Definition: Caps.h:379
GLsizei samples
Definition: gl2ext.h:707
WorkaroundsD3D GenerateWorkarounds(const Renderer11DeviceCaps &deviceCaps, const DXGI_ADAPTER_DESC &adapterDesc)
Definition: renderer11_utils.cpp:1820
D3D11_BLEND ConvertBlendFunc(GLenum glBlend, bool isAlpha)
Definition: renderer11_utils.cpp:1257
GLuint ComputeBlockSize(D3DFORMAT format, GLuint width, GLuint height)
Definition: renderer9_utils.cpp:616
unsigned int GetReservedVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel)
Definition: renderer11_utils.cpp:983
int GLsizei
Definition: gl2.h:78
void MakeValidSize(bool isImage, DXGI_FORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset)
Definition: renderer11_utils.cpp:1653
unsigned int GetReservedFragmentUniformVectors(D3D_FEATURE_LEVEL featureLevel)
Definition: renderer11_utils.cpp:1004
#define errorCode
Definition: xmlparse.c:612
Definition: Caps.h:69
Definition: entry_points_gles_2_0.h:15
UINT8 ConvertColorMask(bool red, bool green, bool blue, bool alpha)
Definition: renderer11_utils.cpp:1343