;;; Default blend efficiencies.
;;; Heavily favor GPU skinning for unknown hardware.
SETTINGS {
    CPUVertexBlendEfficiency = 1.2
    GPUVertexShaderPerfRating = 4.0
    GPUTLPerfRating = 1.0

    ; This tells Alchemy to release its references to images
    ; once they are loaded into texture memory.  The only draw-back
    ; to doing this is that igVisualContext::getTextureSource() no longer
    ; works.
    discardOriginalTextureImages = true

    ; Enable texture pooling in the visual context.  Configure the pool to hold
    ; at most 128 textures and accept textures no smaller than 32x32 and no
    ; larger than 256x256.
    enableTexturePooling = true
    texturePoolCapacity = 128
    texturePoolMinDimension = 32
    texturePoolMaxDimension = 256

    ; Enable hardware compression for images.
    Render/hardwareTextureCompression = true
    ; Use un-simplified water shader for desktop
    Render/useSimplifiedWaterShader=false

    useSoftwareVertexBlendingForCustomShaders = false

    ; This controls the building parameters if performance quality
    ; is enabled. It is disabled by default.
    PerformanceQuality/minNumBuildings = 50
    PerformanceQuality/minBuildingPerfScore = 0.5
    PerformanceQuality/maxNumBuildings = 150
    PerformanceQuality/maxBuildingPerfScore = 2.0
    PerformanceQuality/buildingScalingPower  = 1

    Maps/docsAutoUploadEnabled = true

    ; Use GLSL shaders and fixed-function in Alchemy emulation.
    ; Platforms that don't support GLSL will fall back to ARB shaders
    ; and/or normal OGL fixed-function.
    emulateFixedFunctionWithGL2Shaders = true
    Render/enableGLSLShaders = true

    enableMipmaps = true

    ; Turn on VBO support for OGL.
    enableVertexBufferObjects = true
    ; Only use VBOs for some of the vertex arrays.
    geometryUsesVBOByDefault = false
}

OS = linux {
    SETTINGS {
        onlyOGL = true

        ; Use point and line smoothing only on Linux, since it doesn’t
        ; work well with multisampling and we don’t support multisampling
        ; on Linux yet.
        Render/pointAndLineSmoothEnable = true
    }

    ; OpenGl version 2.0 or newer is needed for GLSL shaders, so display an
    ; error message if only version 1.x is available.
    ; NOTE: PLATFORM_VERSION is checked using a string compare (as opposed
    ; to a numerical compare).  The >= operator checks that the version
    ; string begins with "1.".
    PLATFORM_VERSION >= 1. {
        SETTINGS {
            cantRun = true
        }
    }
}


OS = macos {
    SETTINGS {
        onlyOGL = true
    }
}


OS = win_nt {
    ;=============================================================================
    ; OPENGL
    ;=============================================================================

    PLATFORM = ogl {
        ; OpenGl version 2.0 or newer is needed for GLSL shaders, so force
        ; 1.X versions of OGL into DX mode.
        ; NOTE: PLATFORM_VERSION is checked using a string compare (as opposed
        ; to a numerical compare).  The >= operator checks that the version
        ; string begins with "1.".
        PLATFORM_VERSION >= 1. {
            SETTINGS {
                forceDX = true
            }
        }

        GFX_CAPABILITY(IG_GFX_CAPABILITY_GL2_SHADERS_SUPPORTED) = 0 {
          SETTINGS {
            cantRun = true
            recommendDX = true
          }
        }
    }

    ;=============================================================================
    ; OPENGL ES 2.0
    ;=============================================================================
    PLATFORM = ogles20 {
        GFX_CAPABILITY(IG_GFX_CAPABILITY_GL2_SHADERS_SUPPORTED) = 0 {
          SETTINGS {
            cantRun = true
            recommendOGL = true
          }
        }
    }
} ; END of win_nt

