wined3d: Make adapter partially responsible for filling wined3d caps.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6d45ce4e5a
commit
f9fe725361
|
@ -4246,9 +4246,155 @@ static void wined3d_adapter_init_fb_cfgs(struct wined3d_adapter *adapter, HDC dc
|
|||
}
|
||||
}
|
||||
|
||||
static void adapter_gl_get_wined3d_caps(const struct wined3d_adapter *adapter, struct wined3d_caps *caps)
|
||||
{
|
||||
const struct wined3d_d3d_info *d3d_info = &adapter->d3d_info;
|
||||
const struct wined3d_gl_info *gl_info = &adapter->gl_info;
|
||||
|
||||
if (gl_info->supported[ARB_FRAMEBUFFER_OBJECT] || gl_info->supported[EXT_FRAMEBUFFER_OBJECT])
|
||||
caps->Caps2 |= WINED3DCAPS2_CANGENMIPMAP;
|
||||
|
||||
if (gl_info->supported[WINED3D_GL_BLEND_EQUATION])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_BLENDOP;
|
||||
if (gl_info->supported[EXT_BLEND_EQUATION_SEPARATE] && gl_info->supported[EXT_BLEND_FUNC_SEPARATE])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_SEPARATEALPHABLEND;
|
||||
if (gl_info->supported[EXT_DRAW_BUFFERS2])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS;
|
||||
if (gl_info->supported[ARB_FRAMEBUFFER_SRGB])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_POSTBLENDSRGBCONVERT;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->RasterCaps |= WINED3DPRASTERCAPS_ANISOTROPY
|
||||
| WINED3DPRASTERCAPS_ZBIAS
|
||||
| WINED3DPRASTERCAPS_MIPMAPLODBIAS;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_BLEND_FUNC_EXTENDED])
|
||||
caps->DestBlendCaps |= WINED3DPBLENDCAPS_SRCALPHASAT;
|
||||
|
||||
if (gl_info->supported[EXT_BLEND_COLOR])
|
||||
{
|
||||
caps->SrcBlendCaps |= WINED3DPBLENDCAPS_BLENDFACTOR;
|
||||
caps->DestBlendCaps |= WINED3DPBLENDCAPS_BLENDFACTOR;
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_VOLUMEMAP
|
||||
| WINED3DPTEXTURECAPS_MIPVOLUMEMAP;
|
||||
if (!d3d_info->texture_npot)
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_VOLUMEMAP_POW2;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
|
||||
{
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_CUBEMAP
|
||||
| WINED3DPTEXTURECAPS_MIPCUBEMAP;
|
||||
if (!d3d_info->texture_npot)
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_CUBEMAP_POW2;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->TextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFANISOTROPIC
|
||||
| WINED3DPTFILTERCAPS_MINFANISOTROPIC;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
|
||||
{
|
||||
caps->CubeTextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MAGFPOINT
|
||||
| WINED3DPTFILTERCAPS_MINFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MINFPOINT
|
||||
| WINED3DPTFILTERCAPS_MIPFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MIPFPOINT
|
||||
| WINED3DPTFILTERCAPS_LINEAR
|
||||
| WINED3DPTFILTERCAPS_LINEARMIPLINEAR
|
||||
| WINED3DPTFILTERCAPS_LINEARMIPNEAREST
|
||||
| WINED3DPTFILTERCAPS_MIPLINEAR
|
||||
| WINED3DPTFILTERCAPS_MIPNEAREST
|
||||
| WINED3DPTFILTERCAPS_NEAREST;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->CubeTextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFANISOTROPIC
|
||||
| WINED3DPTFILTERCAPS_MINFANISOTROPIC;
|
||||
}
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->VolumeTextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MAGFPOINT
|
||||
| WINED3DPTFILTERCAPS_MINFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MINFPOINT
|
||||
| WINED3DPTFILTERCAPS_MIPFLINEAR
|
||||
| WINED3DPTFILTERCAPS_MIPFPOINT
|
||||
| WINED3DPTFILTERCAPS_LINEAR
|
||||
| WINED3DPTFILTERCAPS_LINEARMIPLINEAR
|
||||
| WINED3DPTFILTERCAPS_LINEARMIPNEAREST
|
||||
| WINED3DPTFILTERCAPS_MIPLINEAR
|
||||
| WINED3DPTFILTERCAPS_MIPNEAREST
|
||||
| WINED3DPTFILTERCAPS_NEAREST;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_BORDER_CLAMP])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_BORDER;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRRORED_REPEAT])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRROR;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRRORONCE;
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_INDEPENDENTUV
|
||||
| WINED3DPTADDRESSCAPS_CLAMP
|
||||
| WINED3DPTADDRESSCAPS_WRAP;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_BORDER_CLAMP])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_BORDER;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRRORED_REPEAT])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRROR;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRRORONCE;
|
||||
}
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
caps->MaxVolumeExtent = gl_info->limits.texture3d_size;
|
||||
|
||||
if (gl_info->supported[EXT_STENCIL_WRAP])
|
||||
{
|
||||
caps->StencilCaps |= WINED3DSTENCILCAPS_DECR
|
||||
| WINED3DSTENCILCAPS_INCR;
|
||||
}
|
||||
|
||||
if (gl_info->supported[WINED3D_GL_VERSION_2_0]
|
||||
|| gl_info->supported[EXT_STENCIL_TWO_SIDE]
|
||||
|| gl_info->supported[ATI_SEPARATE_STENCIL])
|
||||
{
|
||||
caps->StencilCaps |= WINED3DSTENCILCAPS_TWOSIDED;
|
||||
}
|
||||
|
||||
caps->MaxAnisotropy = gl_info->limits.anisotropy;
|
||||
}
|
||||
|
||||
static const struct wined3d_adapter_ops wined3d_adapter_gl_ops =
|
||||
{
|
||||
wined3d_adapter_gl_create_context,
|
||||
adapter_gl_get_wined3d_caps,
|
||||
};
|
||||
|
||||
BOOL wined3d_adapter_gl_init(struct wined3d_adapter *adapter, DWORD wined3d_creation_flags)
|
||||
|
|
|
@ -1871,7 +1871,7 @@ HRESULT CDECL wined3d_check_device_type(const struct wined3d *wined3d, UINT adap
|
|||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx,
|
||||
HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, unsigned int adapter_idx,
|
||||
enum wined3d_device_type device_type, struct wined3d_caps *caps)
|
||||
{
|
||||
const struct wined3d_adapter *adapter = &wined3d->adapters[adapter_idx];
|
||||
|
@ -1895,8 +1895,6 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
caps->Caps2 = WINED3DCAPS2_CANRENDERWINDOWED |
|
||||
WINED3DCAPS2_FULLSCREENGAMMA |
|
||||
WINED3DCAPS2_DYNAMICTEXTURES;
|
||||
if (gl_info->supported[ARB_FRAMEBUFFER_OBJECT] || gl_info->supported[EXT_FRAMEBUFFER_OBJECT])
|
||||
caps->Caps2 |= WINED3DCAPS2_CANGENMIPMAP;
|
||||
|
||||
caps->Caps3 = WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD |
|
||||
WINED3DCAPS3_COPY_TO_VIDMEM |
|
||||
|
@ -1934,15 +1932,6 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS
|
||||
WINED3DPMISCCAPS_FOGVERTEXCLAMPED */
|
||||
|
||||
if (gl_info->supported[WINED3D_GL_BLEND_EQUATION])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_BLENDOP;
|
||||
if (gl_info->supported[EXT_BLEND_EQUATION_SEPARATE] && gl_info->supported[EXT_BLEND_FUNC_SEPARATE])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_SEPARATEALPHABLEND;
|
||||
if (gl_info->supported[EXT_DRAW_BUFFERS2])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS;
|
||||
if (gl_info->supported[ARB_FRAMEBUFFER_SRGB])
|
||||
caps->PrimitiveMiscCaps |= WINED3DPMISCCAPS_POSTBLENDSRGBCONVERT;
|
||||
|
||||
caps->RasterCaps = WINED3DPRASTERCAPS_DITHER |
|
||||
WINED3DPRASTERCAPS_PAT |
|
||||
WINED3DPRASTERCAPS_WFOG |
|
||||
|
@ -1956,13 +1945,6 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS |
|
||||
WINED3DPRASTERCAPS_DEPTHBIAS;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->RasterCaps |= WINED3DPRASTERCAPS_ANISOTROPY |
|
||||
WINED3DPRASTERCAPS_ZBIAS |
|
||||
WINED3DPRASTERCAPS_MIPMAPLODBIAS;
|
||||
}
|
||||
|
||||
caps->ZCmpCaps = WINED3DPCMPCAPS_ALWAYS |
|
||||
WINED3DPCMPCAPS_EQUAL |
|
||||
WINED3DPCMPCAPS_GREATER |
|
||||
|
@ -1999,16 +1981,6 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
WINED3DPBLENDCAPS_SRCCOLOR |
|
||||
WINED3DPBLENDCAPS_ZERO;
|
||||
|
||||
if (gl_info->supported[ARB_BLEND_FUNC_EXTENDED])
|
||||
caps->DestBlendCaps |= WINED3DPBLENDCAPS_SRCALPHASAT;
|
||||
|
||||
if (gl_info->supported[EXT_BLEND_COLOR])
|
||||
{
|
||||
caps->SrcBlendCaps |= WINED3DPBLENDCAPS_BLENDFACTOR;
|
||||
caps->DestBlendCaps |= WINED3DPBLENDCAPS_BLENDFACTOR;
|
||||
}
|
||||
|
||||
|
||||
caps->AlphaCmpCaps = WINED3DPCMPCAPS_ALWAYS |
|
||||
WINED3DPCMPCAPS_EQUAL |
|
||||
WINED3DPCMPCAPS_GREATER |
|
||||
|
@ -2042,22 +2014,6 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
caps->TextureCaps |= WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL;
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_VOLUMEMAP
|
||||
| WINED3DPTEXTURECAPS_MIPVOLUMEMAP;
|
||||
if (!d3d_info->texture_npot)
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_VOLUMEMAP_POW2;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
|
||||
{
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_CUBEMAP
|
||||
| WINED3DPTEXTURECAPS_MIPCUBEMAP;
|
||||
if (!d3d_info->texture_npot)
|
||||
caps->TextureCaps |= WINED3DPTEXTURECAPS_CUBEMAP_POW2;
|
||||
}
|
||||
|
||||
caps->TextureFilterCaps = WINED3DPTFILTERCAPS_MAGFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MAGFPOINT |
|
||||
WINED3DPTFILTERCAPS_MINFLINEAR |
|
||||
|
@ -2071,97 +2027,14 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
WINED3DPTFILTERCAPS_MIPNEAREST |
|
||||
WINED3DPTFILTERCAPS_NEAREST;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->TextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFANISOTROPIC |
|
||||
WINED3DPTFILTERCAPS_MINFANISOTROPIC;
|
||||
}
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
|
||||
{
|
||||
caps->CubeTextureFilterCaps = WINED3DPTFILTERCAPS_MAGFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MAGFPOINT |
|
||||
WINED3DPTFILTERCAPS_MINFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MINFPOINT |
|
||||
WINED3DPTFILTERCAPS_MIPFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MIPFPOINT |
|
||||
WINED3DPTFILTERCAPS_LINEAR |
|
||||
WINED3DPTFILTERCAPS_LINEARMIPLINEAR |
|
||||
WINED3DPTFILTERCAPS_LINEARMIPNEAREST |
|
||||
WINED3DPTFILTERCAPS_MIPLINEAR |
|
||||
WINED3DPTFILTERCAPS_MIPNEAREST |
|
||||
WINED3DPTFILTERCAPS_NEAREST;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_FILTER_ANISOTROPIC])
|
||||
{
|
||||
caps->CubeTextureFilterCaps |= WINED3DPTFILTERCAPS_MAGFANISOTROPIC |
|
||||
WINED3DPTFILTERCAPS_MINFANISOTROPIC;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
caps->CubeTextureFilterCaps = 0;
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->VolumeTextureFilterCaps = WINED3DPTFILTERCAPS_MAGFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MAGFPOINT |
|
||||
WINED3DPTFILTERCAPS_MINFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MINFPOINT |
|
||||
WINED3DPTFILTERCAPS_MIPFLINEAR |
|
||||
WINED3DPTFILTERCAPS_MIPFPOINT |
|
||||
WINED3DPTFILTERCAPS_LINEAR |
|
||||
WINED3DPTFILTERCAPS_LINEARMIPLINEAR |
|
||||
WINED3DPTFILTERCAPS_LINEARMIPNEAREST |
|
||||
WINED3DPTFILTERCAPS_MIPLINEAR |
|
||||
WINED3DPTFILTERCAPS_MIPNEAREST |
|
||||
WINED3DPTFILTERCAPS_NEAREST;
|
||||
}
|
||||
else
|
||||
{
|
||||
caps->VolumeTextureFilterCaps = 0;
|
||||
}
|
||||
caps->CubeTextureFilterCaps = 0;
|
||||
caps->VolumeTextureFilterCaps = 0;
|
||||
|
||||
caps->TextureAddressCaps = WINED3DPTADDRESSCAPS_INDEPENDENTUV |
|
||||
WINED3DPTADDRESSCAPS_CLAMP |
|
||||
WINED3DPTADDRESSCAPS_WRAP;
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_BORDER_CLAMP])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_BORDER;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRRORED_REPEAT])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRROR;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE])
|
||||
{
|
||||
caps->TextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRRORONCE;
|
||||
}
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps = WINED3DPTADDRESSCAPS_INDEPENDENTUV |
|
||||
WINED3DPTADDRESSCAPS_CLAMP |
|
||||
WINED3DPTADDRESSCAPS_WRAP;
|
||||
if (gl_info->supported[ARB_TEXTURE_BORDER_CLAMP])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_BORDER;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRRORED_REPEAT])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRROR;
|
||||
}
|
||||
if (gl_info->supported[ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE])
|
||||
{
|
||||
caps->VolumeTextureAddressCaps |= WINED3DPTADDRESSCAPS_MIRRORONCE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
caps->VolumeTextureAddressCaps = 0;
|
||||
}
|
||||
caps->VolumeTextureAddressCaps = 0;
|
||||
|
||||
caps->LineCaps = WINED3DLINECAPS_TEXTURE |
|
||||
WINED3DLINECAPS_ZTEST |
|
||||
|
@ -2175,10 +2048,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
caps->MaxTextureWidth = d3d_info->limits.texture_size;
|
||||
caps->MaxTextureHeight = d3d_info->limits.texture_size;
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE3D])
|
||||
caps->MaxVolumeExtent = gl_info->limits.texture3d_size;
|
||||
else
|
||||
caps->MaxVolumeExtent = 0;
|
||||
caps->MaxVolumeExtent = 0;
|
||||
|
||||
caps->MaxTextureRepeat = 32768;
|
||||
caps->MaxTextureAspectRatio = d3d_info->limits.texture_size;
|
||||
|
@ -2197,18 +2067,8 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
WINED3DSTENCILCAPS_KEEP |
|
||||
WINED3DSTENCILCAPS_REPLACE |
|
||||
WINED3DSTENCILCAPS_ZERO;
|
||||
if (gl_info->supported[EXT_STENCIL_WRAP])
|
||||
{
|
||||
caps->StencilCaps |= WINED3DSTENCILCAPS_DECR |
|
||||
WINED3DSTENCILCAPS_INCR;
|
||||
}
|
||||
if (gl_info->supported[WINED3D_GL_VERSION_2_0] || gl_info->supported[EXT_STENCIL_TWO_SIDE]
|
||||
|| gl_info->supported[ATI_SEPARATE_STENCIL])
|
||||
{
|
||||
caps->StencilCaps |= WINED3DSTENCILCAPS_TWOSIDED;
|
||||
}
|
||||
|
||||
caps->MaxAnisotropy = gl_info->limits.anisotropy;
|
||||
caps->MaxAnisotropy = 0;
|
||||
caps->MaxPointSize = d3d_info->limits.pointsize_max;
|
||||
|
||||
caps->MaxPrimitiveCount = 0x555555; /* Taken from an AMD Radeon HD 5700 (Evergreen) GPU. */
|
||||
|
@ -2446,6 +2306,8 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
|||
|
||||
caps->max_feature_level = d3d_info->feature_level;
|
||||
|
||||
adapter->adapter_ops->adapter_get_wined3d_caps(adapter, caps);
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
|
@ -2491,9 +2353,14 @@ static BOOL wined3d_adapter_no3d_create_context(struct wined3d_context *context,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void adapter_no3d_get_wined3d_caps(const struct wined3d_adapter *adapter, struct wined3d_caps *caps)
|
||||
{
|
||||
}
|
||||
|
||||
static const struct wined3d_adapter_ops wined3d_adapter_no3d_ops =
|
||||
{
|
||||
wined3d_adapter_no3d_create_context,
|
||||
adapter_no3d_get_wined3d_caps,
|
||||
};
|
||||
|
||||
static void wined3d_adapter_no3d_init_d3d_info(struct wined3d_adapter *adapter, DWORD wined3d_creation_flags)
|
||||
|
|
|
@ -73,6 +73,7 @@
|
|||
#define WINED3D_QUIRK_BROKEN_ARB_FOG 0x00000200
|
||||
|
||||
struct fragment_pipeline;
|
||||
struct wined3d_adapter;
|
||||
struct wined3d_context;
|
||||
struct wined3d_state;
|
||||
struct wined3d_texture_gl;
|
||||
|
@ -2678,6 +2679,7 @@ struct wined3d_adapter_ops
|
|||
{
|
||||
BOOL (*adapter_create_context)(struct wined3d_context *context,
|
||||
struct wined3d_texture *target, const struct wined3d_format *ds_format);
|
||||
void (*adapter_get_wined3d_caps)(const struct wined3d_adapter *adapter, struct wined3d_caps *caps);
|
||||
};
|
||||
|
||||
BOOL wined3d_adapter_gl_create_context(struct wined3d_context *context,
|
||||
|
|
|
@ -2206,7 +2206,7 @@ UINT __cdecl wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT
|
|||
enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering);
|
||||
HRESULT __cdecl wined3d_get_adapter_raster_status(const struct wined3d *wined3d, UINT adapter_idx,
|
||||
struct wined3d_raster_status *raster_status);
|
||||
HRESULT __cdecl wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx,
|
||||
HRESULT __cdecl wined3d_get_device_caps(const struct wined3d *wined3d, unsigned int adapter_idx,
|
||||
enum wined3d_device_type device_type, struct wined3d_caps *caps);
|
||||
HRESULT __cdecl wined3d_get_output_desc(const struct wined3d *wined3d, unsigned int adapter_idx,
|
||||
struct wined3d_output_desc *desc);
|
||||
|
|
Loading…
Reference in New Issue