Advertise depthbuffer-less surface configs.

TRAC #16493 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@617 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 78624ca0
#define MAJOR_VERSION 0 #define MAJOR_VERSION 0
#define MINOR_VERSION 0 #define MINOR_VERSION 0
#define BUILD_VERSION 0 #define BUILD_VERSION 0
#define BUILD_REVISION 616 #define BUILD_REVISION 617
#define STRINGIFY(x) #x #define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x) #define MACRO_STRINGIFY(x) STRINGIFY(x)
......
...@@ -118,6 +118,10 @@ void Config::set(D3DDISPLAYMODE displayMode, EGLint minInterval, EGLint maxInter ...@@ -118,6 +118,10 @@ void Config::set(D3DDISPLAYMODE displayMode, EGLint minInterval, EGLint maxInter
switch (depthStencilFormat) switch (depthStencilFormat)
{ {
case D3DFMT_UNKNOWN:
mDepthSize = 0;
mStencilSize = 0;
break;
// case D3DFMT_D16_LOCKABLE: // case D3DFMT_D16_LOCKABLE:
// mDepthSize = 16; // mDepthSize = 16;
// mStencilSize = 0; // mStencilSize = 0;
......
...@@ -144,6 +144,7 @@ bool Display::initialize() ...@@ -144,6 +144,7 @@ bool Display::initialize()
const D3DFORMAT depthStencilFormats[] = const D3DFORMAT depthStencilFormats[] =
{ {
D3DFMT_UNKNOWN,
// D3DFMT_D16_LOCKABLE, // D3DFMT_D16_LOCKABLE,
D3DFMT_D32, D3DFMT_D32,
// D3DFMT_D15S1, // D3DFMT_D15S1,
...@@ -171,11 +172,19 @@ bool Display::initialize() ...@@ -171,11 +172,19 @@ bool Display::initialize()
for (int depthStencilIndex = 0; depthStencilIndex < sizeof(depthStencilFormats) / sizeof(D3DFORMAT); depthStencilIndex++) for (int depthStencilIndex = 0; depthStencilIndex < sizeof(depthStencilFormats) / sizeof(D3DFORMAT); depthStencilIndex++)
{ {
D3DFORMAT depthStencilFormat = depthStencilFormats[depthStencilIndex]; D3DFORMAT depthStencilFormat = depthStencilFormats[depthStencilIndex];
HRESULT result = mD3d9->CheckDeviceFormat(mAdapter, mDeviceType, currentDisplayMode.Format, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, depthStencilFormat); HRESULT result = D3D_OK;
if(depthStencilFormat != D3DFMT_UNKNOWN)
{
result = mD3d9->CheckDeviceFormat(mAdapter, mDeviceType, currentDisplayMode.Format, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, depthStencilFormat);
}
if (SUCCEEDED(result)) if (SUCCEEDED(result))
{ {
HRESULT result = mD3d9->CheckDepthStencilMatch(mAdapter, mDeviceType, currentDisplayMode.Format, renderTargetFormat, depthStencilFormat); if(depthStencilFormat != D3DFMT_UNKNOWN)
{
result = mD3d9->CheckDepthStencilMatch(mAdapter, mDeviceType, currentDisplayMode.Format, renderTargetFormat, depthStencilFormat);
}
if (SUCCEEDED(result)) if (SUCCEEDED(result))
{ {
......
...@@ -175,9 +175,12 @@ void Surface::resetSwapChain(int backbufferWidth, int backbufferHeight) ...@@ -175,9 +175,12 @@ void Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
return error(EGL_BAD_ALLOC); return error(EGL_BAD_ALLOC);
} }
result = device->CreateDepthStencilSurface(presentParameters.BackBufferWidth, presentParameters.BackBufferHeight, if (mConfig->mDepthStencilFormat != D3DFMT_UNKNOWN)
presentParameters.AutoDepthStencilFormat, presentParameters.MultiSampleType, {
presentParameters.MultiSampleQuality, FALSE, &mDepthStencil, NULL); result = device->CreateDepthStencilSurface(presentParameters.BackBufferWidth, presentParameters.BackBufferHeight,
presentParameters.AutoDepthStencilFormat, presentParameters.MultiSampleType,
presentParameters.MultiSampleQuality, FALSE, &mDepthStencil, NULL);
}
if (FAILED(result)) if (FAILED(result))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment