;-------------------------------------------
; OpenGL specific stuff
;-------------------------------------------

;;; Canvas settings

; Alpha bits (default 8)
;Video.OpenGL.AlphaBits = 0
; Depth bits (default 32)
;Video.OpenGL.DepthBits = 0
; Stencil bits (default 8)
;Video.OpenGL.StencilBits = 0
; Accum buffer color bits (default 0)
;Video.OpenGL.AccumColorBits = 0
; Accum buffer alpha bits (default 0)
;Video.OpenGL.AccumAlphaBits = 0

; Whether full (ie ICD on Win32) or generic (ie MCD on Win32) acceleration
; should be used. Default is 'full'. However, some features (e.g. accum
; buffer) may only be available with generic acceleration.
;Video.OpenGL.FullAcceleration = false

; Order in which the GL pixel format picker reduces settings until an
; accelerated mode is found.
;  c - Color
;  d - depth
;  a - alpha
;  s - stencil
;  m - multisamples, 
;  C - accum color
;  A - accum alpha
Video.OpenGL.FormatPicker.ReductionOrder = ACmasdc

; Alternate values to try.
; The picker first looks for the value closest to the setting requested by
; the user. Then, the respective lists are iterated rightwards. The value that
; is changed is determined by the current reduction order.
Video.OpenGL.FormatPicker.ColorBits = 32,24,16,15,12,0
Video.OpenGL.FormatPicker.DepthBits = 32,24,16,0
Video.OpenGL.FormatPicker.AlphaBits = 8,0
Video.OpenGL.FormatPicker.StencilBits = 8,1,0
Video.OpenGL.FormatPicker.AccumColorBits = 32,24,16,15,12,0
Video.OpenGL.FormatPicker.AccumAlphaBits = 8,0
Video.OpenGL.FormatPicker.MultiSamples = 16,8,6,4,2,0

; There are currently 3 ways to draw text:
; 1) Using a special multitexture setup that blends the FG and BG color.
;    Preferred, as we save the texture environment switch.
;    Obviously requires MT.
; 2) Using ARB_fragment_program.
;    This is a workaround for a bug in some ATI drivers that seem to garble
;    text drawing under certain circumstances, which is avoided by using an
;    AFP instead of a multitexturing setup.
; 3) Using "Blend" environment which has the same effect as (1).
;    Not all HW properly supports this.
; 4) Most ugly: separate passes for FG and BG - needs two textures (one 
;    with background, one with foreground transparency), and doesn't always 
;    look right with AA! (We ignore that until someone complains.)
; Tweaking of these options is usually done via the driver DB.

; Enable method 1.
Video.OpenGL.FontCache.UseMultiTexturing = yes
; Don't use method 2 by default.
Video.OpenGL.FontCache.UseAFP = no
; Disable method 3, as a number HW/drivers don't seem to grok it.
Video.OpenGL.FontCache.UseIntensityBlend = no

; Multisample samples; 0 = disabled
Video.OpenGL.MultiSamples = 0
; Multisample: whether favor quality over speed
; not supported by all drivers/cards
Video.OpenGL.MultisampleFavorQuality = false
; Anisotropic filtering. Enabled by anything > 1.0
Video.OpenGL.TextureFilterAnisotropy = 1.0

; Width and height of the texture(s) used for font glyph caching.
;Video.OpenGL.FontCache.TextureSize = 256
; Number of textures used for font glyph caching.
;Video.OpenGL.FontCache.MaxTextureNum = 16
; How many vertices are cached between draw calls. 
;Video.OpenGL.FontCache.VertexCache = 128

; Mesa DRI drivers don't support S3TC compressed textures entirely, only
; upload. This behaviour is not conform to the specification for the
; texture compression spec, so the ext is not reported by default.
; However, it can nevertheless be activated by setting the 
; "force_s3tc_enable" env var to true.
; To have that done by CS enable the option below, the upload-only support
; can then be taken advantage of.
; NOTE: this is *not* driverdb configurable, unfortunately
Video.OpenGL.MesaForceS3TCEnable = yes

;;; Renderer settings

;Video.OpenGL.Canvas = crystalspace.graphics2d.glx
;Video.OpenGL.Canvas = crystalspace.graphics2d.glwin32
;Video.OpenGL.Canvas = crystalspace.graphics2d.glmac

; Override the detected graphics capabilities. 
; For broken drivers or unknown cards you can uncomment and set
; the following values. If commented, a nice default will be used instead.
;Video.OpenGL.Caps.MaxTextureSize = 1024

;Video.OpenGL.TextureLODBias = 16
; Scale down textures by the factor 2^(n-1). Usually set in case all textures 
; don't fit into the gfx card memory
Video.OpenGL.TextureDownsample = 0
; Sharpen mipmaps to less blurry. May or may not improve visual quality, 
; depends on textures.
; Set to 0 to turn it off.
Video.OpenGL.SharpenMipmaps = 256

; This threshold is the number of triangles (for a single object) after
; which stencil clipping is prefered instead of plane clipping.
Video.OpenGL.StencilThreshold = 50
; Set to true if stencil clipping is broken.
;Video.OpenGL.BrokenStencil = true
; When clearing the stencil buffer is needed, also clear the Z buffer. 
; Possibly faster on some HW.
Video.OpenGL.StencilClearWithZ = yes

Video.OpenGL.DelaySwap = no

; disable the use of certain opengl extensions
;Video.OpenGL.UseExtension.GL_ARB_multitexture  = false
;Video.OpenGL.UseExtension.GL_ARB_texture_compression  = false
;Video.OpenGL.UseExtension.GL_SGIS_generate_mipmap = false
;Video.OpenGL.UseExtension.GL_EXT_texture_filter_anisotropic = false
;Video.OpenGL.UseExtension.GL_EXT_texture_lod_bias = false
Video.OpenGL.UseExtension.GL_ARB_vertex_buffer_object = true
Video.OpenGL.UseExtension.GL_EXT_framebuffer_object = false
;Video.OpenGL.UseExtension.GL_SGIS_generate_mipmap = false
Video.OpenGL.UseExtension.GL_ARB_point_sprite = false

Video.OpenGL.VBO.VBsize = 33554432
Video.OpenGL.VBO.IBsize = 16M

; Some ATI hardware (Radeon 9500+) has a "hidden" feature where you can specify
; NPOTS textures as 2D textures. (Normally they would have to be POTS.)
; NB: This feature should be activated through the driver DB.
Video.OpenGL.EnableNonPowerOfTwo2DTextures = false

; Some Mesa DRI drivers support upload of DXT-compressed textures, however,
; don't expose this as an extension since they don't support software
; compression/decompression of DXT textures (which is non-conformant
; behaviour). In other words, only precompressed textures are supported.
; Due the absence of the extension, CS however will uncompress the textures
; before upload. To avoid that, enable this setting to force the upload
; of DXT compressed textures as such, even with the S3TC ext being absent.
; NB: This feature should be activated through the driver DB.
Video.OpenGL.ForcePrecompressedDXTUpload = false

; Texture format configuration.
; You can explicitly tell what target format(ie, how is it stored in GL) for a 
; a texture class should be used. The default is to compress, if possible,
; otherwise the default format.
Video.OpenGL.TextureClass.default.FormatRGB = GL_COMPRESSED_RGB_ARB,GL_RGB
Video.OpenGL.TextureClass.default.FormatRGBA = GL_COMPRESSED_RGBA_ARB,GL_RGBA
; Whether precomputed (e.g. like in DDS) mipmaps should still be sharpened.
; Usually "no".
Video.OpenGL.TextureClass.default.SharpenPrecomputedMipmaps = no
; Whether image source data should always be converted to csRGBpixel data.
; Usually "no".
Video.OpenGL.TextureClass.default.ForceDecompress = no
; Whether the resolution of this texture can be reduced.
; Usually "yes".
Video.OpenGL.TextureClass.default.AllowDownsample = yes
; Whether (generated) mipmaps are sharpened.
; Usually "yes".
Video.OpenGL.TextureClass.default.AllowMipSharpen = yes

; Compressing normal maps makes them look ugly, so store them uncompressed.
Video.OpenGL.TextureClass.normalmap.FormatRGB = GL_RGB8
Video.OpenGL.TextureClass.normalmap.FormatRGBA = GL_RGBA8
Video.OpenGL.TextureClass.normalmap.AllowMipSharpen = no

; Certain data, e.g. some gradients, doesn't compress that well either
Video.OpenGL.TextureClass.nocompress.FormatRGB = GL_RGB8
Video.OpenGL.TextureClass.nocompress.FormatRGBA = GL_RGBA8

; Lightmaps does not like texture compression, it creates artifacts
Video.OpenGL.TextureClass.lightmap.FormatRGB = GL_RGB8
Video.OpenGL.TextureClass.lightmap.FormatRGBA = GL_RGBA8
Video.OpenGL.TextureClass.lightmap.AllowDownsample = no
Video.OpenGL.TextureClass.lightmap.AllowMipSharpen = no

; Same for textures with a look-up character.
; Also, always keep them at their original size.
Video.OpenGL.TextureClass.lookup.FormatRGB = GL_RGB8
Video.OpenGL.TextureClass.lookup.FormatRGBA = GL_RGBA8
Video.OpenGL.TextureClass.lookup.AllowDownsample = no
Video.OpenGL.TextureClass.lookup.AllowMipSharpen = no
