Browse Source

SHADOWCMP must only be define when direct3d is used and Graphics::GetHardwareShadowSupport() returns false

Xavier Maupeu 10 years ago
parent
commit
583542bb19
1 changed files with 10 additions and 4 deletions
  1. 10 4
      Source/Urho3D/Graphics/Renderer.cpp

+ 10 - 4
Source/Urho3D/Graphics/Renderer.cpp

@@ -249,7 +249,7 @@ Renderer::Renderer(Context* context) :
     textureQuality_(QUALITY_HIGH),
     textureQuality_(QUALITY_HIGH),
     materialQuality_(QUALITY_HIGH),
     materialQuality_(QUALITY_HIGH),
     shadowMapSize_(1024),
     shadowMapSize_(1024),
-    shadowQuality_(SHADOWQUALITY_VSM),
+    shadowQuality_(SHADOWQUALITY_PCF_16BIT),
     maxShadowMaps_(1),
     maxShadowMaps_(1),
     minInstances_(2),
     minInstances_(2),
     maxSortedInstances_(1000),
     maxSortedInstances_(1000),
@@ -1835,15 +1835,21 @@ String Renderer::GetShadowVariations() const
         #ifdef URHO3D_OPENGL
         #ifdef URHO3D_OPENGL
             return "SIMPLE_SHADOW ";
             return "SIMPLE_SHADOW ";
         #else
         #else
-            return "SIMPLE_SHADOW SHADOWCMP ";
+            if (graphics_->GetHardwareShadowSupport())
+                return "SIMPLE_SHADOW ";
+            else
+                return "SIMPLE_SHADOW SHADOWCMP ";
         #endif
         #endif
         case SHADOWQUALITY_SIMPLE_24BIT:
         case SHADOWQUALITY_SIMPLE_24BIT:
             return "SIMPLE_SHADOW ";
             return "SIMPLE_SHADOW ";
         case SHADOWQUALITY_PCF_16BIT:
         case SHADOWQUALITY_PCF_16BIT:
         #ifdef URHO3D_OPENGL
         #ifdef URHO3D_OPENGL
-            return "PCF_SHADOW";
+            return "PCF_SHADOW ";
         #else
         #else
-            return "PCF_SHADOW SHADOWCMP ";
+            if (graphics_->GetHardwareShadowSupport())
+                return "PCF_SHADOW ";
+            else
+                return "PCF_SHADOW SHADOWCMP ";
         #endif
         #endif
         case SHADOWQUALITY_PCF_24BIT:
         case SHADOWQUALITY_PCF_24BIT:
             return "PCF_SHADOW ";
             return "PCF_SHADOW ";