Detect L8 and A8L8 texture support.

TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@455 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent fafd033e
...@@ -590,6 +590,22 @@ bool Display::getHalfFloatTextureSupport(bool *filtering, bool *renderable) ...@@ -590,6 +590,22 @@ bool Display::getHalfFloatTextureSupport(bool *filtering, bool *renderable)
} }
} }
bool Display::getLuminanceTextureSupport()
{
D3DDISPLAYMODE currentDisplayMode;
mD3d9->GetAdapterDisplayMode(mAdapter, &currentDisplayMode);
return SUCCEEDED(mD3d9->CheckDeviceFormat(mAdapter, mDeviceType, currentDisplayMode.Format, 0, D3DRTYPE_TEXTURE, D3DFMT_L8));
}
bool Display::getLuminanceAlphaTextureSupport()
{
D3DDISPLAYMODE currentDisplayMode;
mD3d9->GetAdapterDisplayMode(mAdapter, &currentDisplayMode);
return SUCCEEDED(mD3d9->CheckDeviceFormat(mAdapter, mDeviceType, currentDisplayMode.Format, 0, D3DRTYPE_TEXTURE, D3DFMT_A8L8));
}
bool Display::getEventQuerySupport() bool Display::getEventQuerySupport()
{ {
IDirect3DQuery9 *query; IDirect3DQuery9 *query;
......
...@@ -64,6 +64,8 @@ class Display ...@@ -64,6 +64,8 @@ class Display
virtual bool getEventQuerySupport(); virtual bool getEventQuerySupport();
virtual bool getFloatTextureSupport(bool *filtering, bool *renderable); virtual bool getFloatTextureSupport(bool *filtering, bool *renderable);
virtual bool getHalfFloatTextureSupport(bool *filtering, bool *renderable); virtual bool getHalfFloatTextureSupport(bool *filtering, bool *renderable);
virtual bool getLuminanceTextureSupport();
virtual bool getLuminanceAlphaTextureSupport();
private: private:
DISALLOW_COPY_AND_ASSIGN(Display); DISALLOW_COPY_AND_ASSIGN(Display);
......
...@@ -280,6 +280,8 @@ void Context::makeCurrent(egl::Display *display, egl::Surface *surface) ...@@ -280,6 +280,8 @@ void Context::makeCurrent(egl::Display *display, egl::Surface *surface)
mSupportsCompressedTextures = display->getCompressedTextureSupport(); mSupportsCompressedTextures = display->getCompressedTextureSupport();
mSupportsFloatTextures = display->getFloatTextureSupport(&mSupportsFloatLinearFilter, &mSupportsFloatRenderableTextures); mSupportsFloatTextures = display->getFloatTextureSupport(&mSupportsFloatLinearFilter, &mSupportsFloatRenderableTextures);
mSupportsHalfFloatTextures = display->getHalfFloatTextureSupport(&mSupportsHalfFloatLinearFilter, &mSupportsHalfFloatRenderableTextures); mSupportsHalfFloatTextures = display->getHalfFloatTextureSupport(&mSupportsHalfFloatLinearFilter, &mSupportsHalfFloatRenderableTextures);
mSupportsLuminanceTextures = display->getLuminanceTextureSupport();
mSupportsLuminanceAlphaTextures = display->getLuminanceAlphaTextureSupport();
initExtensionString(); initExtensionString();
...@@ -2982,6 +2984,16 @@ int Context::getMaximumTextureLevel() const ...@@ -2982,6 +2984,16 @@ int Context::getMaximumTextureLevel() const
return mMaxTextureLevel; return mMaxTextureLevel;
} }
bool Context::supportsLuminanceTextures() const
{
return mSupportsLuminanceTextures;
}
bool Context::supportsLuminanceAlphaTextures() const
{
return mSupportsLuminanceAlphaTextures;
}
void Context::detachBuffer(GLuint buffer) void Context::detachBuffer(GLuint buffer)
{ {
// [OpenGL ES 2.0.24] section 2.9 page 22: // [OpenGL ES 2.0.24] section 2.9 page 22:
......
...@@ -397,6 +397,8 @@ class Context ...@@ -397,6 +397,8 @@ class Context
bool supportsHalfFloatTextures() const; bool supportsHalfFloatTextures() const;
bool supportsHalfFloatLinearFilter() const; bool supportsHalfFloatLinearFilter() const;
bool supportsHalfFloatRenderableTextures() const; bool supportsHalfFloatRenderableTextures() const;
bool supportsLuminanceTextures() const;
bool supportsLuminanceAlphaTextures() const;
void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
...@@ -476,6 +478,8 @@ class Context ...@@ -476,6 +478,8 @@ class Context
bool mSupportsHalfFloatTextures; bool mSupportsHalfFloatTextures;
bool mSupportsHalfFloatLinearFilter; bool mSupportsHalfFloatLinearFilter;
bool mSupportsHalfFloatRenderableTextures; bool mSupportsHalfFloatRenderableTextures;
bool mSupportsLuminanceTextures;
bool mSupportsLuminanceAlphaTextures;
// state caching flags // state caching flags
bool mClearStateDirty; bool mClearStateDirty;
......
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