Opengl 1.4 added stencil wrap support as per directx (also in the
GL_EXT_stencil_wrap extension).
This commit is contained in:
parent
3cae8cfa69
commit
84cd1925fe
|
@ -391,8 +391,6 @@ HRESULT WINAPI IDirect3D8Impl_GetDeviceCaps (LPDIRECT3D8 iface,
|
|||
ICOM_THIS(IDirect3D8Impl,iface);
|
||||
TRACE("(%p)->(Adptr:%d, DevType: %x, pCaps: %p)\n", This, Adapter, DeviceType, pCaps);
|
||||
|
||||
|
||||
/* NOTE: Most of the values here are complete garbage for now */
|
||||
pCaps->DeviceType = (DeviceType == D3DDEVTYPE_HAL) ? D3DDEVTYPE_HAL : D3DDEVTYPE_REF; /* Not quite true, but use h/w supported by opengl I suppose */
|
||||
pCaps->AdapterOrdinal = Adapter;
|
||||
|
||||
|
@ -508,15 +506,16 @@ HRESULT WINAPI IDirect3D8Impl_GetDeviceCaps (LPDIRECT3D8 iface,
|
|||
|
||||
pCaps->ExtentsAdjust = 0;
|
||||
|
||||
pCaps->StencilCaps = D3DSTENCILCAPS_DECRSAT |
|
||||
D3DSTENCILCAPS_INCRSAT |
|
||||
D3DSTENCILCAPS_INVERT |
|
||||
D3DSTENCILCAPS_KEEP |
|
||||
D3DSTENCILCAPS_REPLACE |
|
||||
D3DSTENCILCAPS_ZERO;
|
||||
/* FIXME: Add
|
||||
D3DSTENCILCAPS_DECR
|
||||
D3DSTENCILCAPS_INCR */
|
||||
pCaps->StencilCaps = D3DSTENCILCAPS_DECRSAT |
|
||||
D3DSTENCILCAPS_INCRSAT |
|
||||
D3DSTENCILCAPS_INVERT |
|
||||
D3DSTENCILCAPS_KEEP |
|
||||
D3DSTENCILCAPS_REPLACE |
|
||||
D3DSTENCILCAPS_ZERO;
|
||||
#if defined(GL_VERSION_1_4) || defined(GL_EXT_stencil_wrap)
|
||||
pCaps->StencilCaps |= D3DSTENCILCAPS_DECR |
|
||||
D3DSTENCILCAPS_INCR;
|
||||
#endif
|
||||
|
||||
pCaps->FVFCaps = D3DFVFCAPS_PSIZE | 0x80000;
|
||||
|
||||
|
|
|
@ -407,11 +407,19 @@ GLenum StencilOp(DWORD op) {
|
|||
case D3DSTENCILOP_REPLACE : return GL_REPLACE;
|
||||
case D3DSTENCILOP_INCRSAT : return GL_INCR;
|
||||
case D3DSTENCILOP_DECRSAT : return GL_DECR;
|
||||
case D3DSTENCILOP_INVERT : return GL_INVERT;
|
||||
case D3DSTENCILOP_INVERT : return GL_INVERT;
|
||||
#if defined(GL_VERSION_1_4)
|
||||
case D3DSTENCILOP_INCR : return GL_INCR_WRAP;
|
||||
case D3DSTENCILOP_DECR : return GL_DECR_WRAP;
|
||||
#elif defined(GL_EXT_stencil_wrap)
|
||||
case D3DSTENCILOP_INCR : return GL_INCR_WRAP_EXT;
|
||||
case D3DSTENCILOP_DECR : return GL_DECR_WRAP_EXT;
|
||||
#else
|
||||
case D3DSTENCILOP_INCR : FIXME("Unsupported stencil op D3DSTENCILOP_INCR\n");
|
||||
return GL_INCR; /* Fixme - needs to support wrap */
|
||||
case D3DSTENCILOP_DECR : FIXME("Unsupported stencil op D3DSTENCILOP_DECR\n");
|
||||
return GL_DECR; /* Fixme - needs to support wrap */
|
||||
#endif
|
||||
default:
|
||||
FIXME("Invalid stencil op %ld\n", op);
|
||||
return GL_ALWAYS;
|
||||
|
|
Loading…
Reference in New Issue