Commit 493f688f authored by hybrid's avatar hybrid

Added a driver feature check for non-square textures (which some d3d drivers...

Added a driver feature check for non-square textures (which some d3d drivers don't seem to support...). It's not yet used in size calculations, though.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1612 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 0879f07b
...@@ -73,6 +73,9 @@ namespace video ...@@ -73,6 +73,9 @@ namespace video
//! Is HLSL supported? //! Is HLSL supported?
EVDF_HLSL, EVDF_HLSL,
//! Are non-square textures supported?
EVDF_TEXTURE_NSQUARE,
//! Are non-power-of-two textures supported? //! Are non-power-of-two textures supported?
EVDF_TEXTURE_NPOT, EVDF_TEXTURE_NPOT,
......
...@@ -544,6 +544,8 @@ bool CD3D8Driver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const ...@@ -544,6 +544,8 @@ bool CD3D8Driver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
return Caps.PixelShaderVersion >= D3DPS_VERSION(2,0); return Caps.PixelShaderVersion >= D3DPS_VERSION(2,0);
case EVDF_PIXEL_SHADER_3_0: case EVDF_PIXEL_SHADER_3_0:
return Caps.PixelShaderVersion >= D3DPS_VERSION(3,0); return Caps.PixelShaderVersion >= D3DPS_VERSION(3,0);
case EVDF_TEXTURE_NSQUARE:
return (Caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY) == 0;
case EVDF_TEXTURE_NPOT: case EVDF_TEXTURE_NPOT:
return (Caps.TextureCaps & D3DPTEXTURECAPS_POW2) == 0; return (Caps.TextureCaps & D3DPTEXTURECAPS_POW2) == 0;
default: default:
......
...@@ -589,6 +589,8 @@ bool CD3D9Driver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const ...@@ -589,6 +589,8 @@ bool CD3D9Driver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
return Caps.PixelShaderVersion >= D3DPS_VERSION(3,0); return Caps.PixelShaderVersion >= D3DPS_VERSION(3,0);
case EVDF_HLSL: case EVDF_HLSL:
return Caps.VertexShaderVersion >= D3DVS_VERSION(1,1); return Caps.VertexShaderVersion >= D3DVS_VERSION(1,1);
case EVDF_TEXTURE_NSQUARE:
return (Caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY) == 0;
case EVDF_TEXTURE_NPOT: case EVDF_TEXTURE_NPOT:
return (Caps.TextureCaps & D3DPTEXTURECAPS_POW2) == 0; return (Caps.TextureCaps & D3DPTEXTURECAPS_POW2) == 0;
default: default:
......
...@@ -466,6 +466,8 @@ bool COpenGLExtensionHandler::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const ...@@ -466,6 +466,8 @@ bool COpenGLExtensionHandler::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
return FeatureAvailable[IRR_ARB_fragment_program]; return FeatureAvailable[IRR_ARB_fragment_program];
case EVDF_ARB_GLSL: case EVDF_ARB_GLSL:
return (FeatureAvailable[IRR_ARB_shading_language_100]||Version>=200); return (FeatureAvailable[IRR_ARB_shading_language_100]||Version>=200);
case EVDF_TEXTURE_NSQUARE:
return true; // non-square is always supported
case EVDF_TEXTURE_NPOT: case EVDF_TEXTURE_NPOT:
// Some ATI cards seem to have only SW support in OpenGL 2.0 // Some ATI cards seem to have only SW support in OpenGL 2.0
// drivers if the extension is not exposed, so we skip this // drivers if the extension is not exposed, so we skip this
......
...@@ -160,6 +160,7 @@ bool CSoftwareDriver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const ...@@ -160,6 +160,7 @@ bool CSoftwareDriver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
switch (feature) switch (feature)
{ {
case EVDF_RENDER_TO_TARGET: case EVDF_RENDER_TO_TARGET:
case EVDF_TEXTURE_NSQUARE:
return FeatureEnabled[feature]; return FeatureEnabled[feature];
default: default:
return false; return false;
......
...@@ -293,6 +293,7 @@ bool CBurningVideoDriver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const ...@@ -293,6 +293,7 @@ bool CBurningVideoDriver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
case EVDF_RENDER_TO_TARGET: case EVDF_RENDER_TO_TARGET:
case EVDF_MULTITEXTURE: case EVDF_MULTITEXTURE:
case EVDF_HARDWARE_TL: case EVDF_HARDWARE_TL:
case EVDF_TEXTURE_NSQUARE:
return true; return true;
default: default:
......
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