packages feed

HGamer3D-Ogre-Binding-0.1.0: include/EnumShadowTechnique.h

// This source file is part of HGamer3D
// (A project to enable 3D game development in Haskell)
// For the latest info, see http://www.althainz.de/HGamer3D.html
// 
// Copyright 2011 Dr. Peter Althainz
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//     http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// 
// EnumShadowTechnique.h
// 
// 
// 
// 
// File for type, method, enum or function stubs  
// in: "..\OgreSDK_vc10_v1-7-3\include\OGRE\OgreCommon.h"
// 
// each stub combines the following files: 
//     a C++ implementation file, transforming cpp calls into C-functions
//     a C-header file, making this C-functions available for the C2HS parser
//     a chs file, give instructions to the C2HS parser.
// 
// 

#include "wchar.h"



//  enum from ..\OgreSDK_vc10_v1-7-3\include\OGRE\OgreCommon.h line:191
    enum EnumShadowTechnique
    {
        /** No shadows */
        SHADOWTYPE_NONE = 0x00,
		/** Mask for additive shadows (not for direct use, use  SHADOWTYPE_ enum instead)
		*/
		SHADOWDETAILTYPE_ADDITIVE = 0x01,
		/** Mask for modulative shadows (not for direct use, use  SHADOWTYPE_ enum instead)
		*/
		SHADOWDETAILTYPE_MODULATIVE = 0x02,
		/** Mask for integrated shadows (not for direct use, use SHADOWTYPE_ enum instead)
		*/
		SHADOWDETAILTYPE_INTEGRATED = 0x04,
		/** Mask for stencil shadows (not for direct use, use  SHADOWTYPE_ enum instead)
		*/
		SHADOWDETAILTYPE_STENCIL = 0x10,
		/** Mask for texture shadows (not for direct use, use  SHADOWTYPE_ enum instead)
		*/
		SHADOWDETAILTYPE_TEXTURE = 0x20,
		
        /** Stencil shadow technique which renders all shadow volumes as
            a modulation after all the non-transparent areas have been 
            rendered. This technique is considerably less fillrate intensive 
            than the additive stencil shadow approach when there are multiple
            lights, but is not an accurate model. 
        */
        SHADOWTYPE_STENCIL_MODULATIVE = 0x12,
        /** Stencil shadow technique which renders each light as a separate
            additive pass to the scene. This technique can be very fillrate
            intensive because it requires at least 2 passes of the entire
            scene, more if there are multiple lights. However, it is a more
            accurate model than the modulative stencil approach and this is
            especially apparent when using coloured lights or bump mapping.
        */
        SHADOWTYPE_STENCIL_ADDITIVE = 0x11,
        /** Texture-based shadow technique which involves a monochrome render-to-texture
            of the shadow caster and a projection of that texture onto the 
            shadow receivers as a modulative pass. 
        */
        SHADOWTYPE_TEXTURE_MODULATIVE = 0x22,
		
        /** Texture-based shadow technique which involves a render-to-texture
            of the shadow caster and a projection of that texture onto the 
            shadow receivers, built up per light as additive passes. 
			This technique can be very fillrate intensive because it requires numLights + 2 
			passes of the entire scene. However, it is a more accurate model than the 
			modulative approach and this is especially apparent when using coloured lights 
			or bump mapping.
        */
        SHADOWTYPE_TEXTURE_ADDITIVE = 0x21,

		/** Texture-based shadow technique which involves a render-to-texture
		of the shadow caster and a projection of that texture on to the shadow
		receivers, with the usage of those shadow textures completely controlled
		by the materials of the receivers.
		This technique is easily the most flexible of all techniques because 
		the material author is in complete control over how the shadows are
		combined with regular rendering. It can perform shadows as accurately
		as SHADOWTYPE_TEXTURE_ADDITIVE but more efficiently because it requires
		less passes. However it also requires more expertise to use, and 
		in almost all cases, shader capable hardware to really use to the full.
		@note The 'additive' part of this mode means that the colour of
		the rendered shadow texture is by default plain black. It does
		not mean it does the adding on your receivers automatically though, how you
		use that result is up to you.
		*/
		SHADOWTYPE_TEXTURE_ADDITIVE_INTEGRATED = 0x25,
		/** Texture-based shadow technique which involves a render-to-texture
			of the shadow caster and a projection of that texture on to the shadow
			receivers, with the usage of those shadow textures completely controlled
			by the materials of the receivers.
			This technique is easily the most flexible of all techniques because 
			the material author is in complete control over how the shadows are
			combined with regular rendering. It can perform shadows as accurately
			as SHADOWTYPE_TEXTURE_ADDITIVE but more efficiently because it requires
			less passes. However it also requires more expertise to use, and 
			in almost all cases, shader capable hardware to really use to the full.
			@note The 'modulative' part of this mode means that the colour of
			the rendered shadow texture is by default the 'shadow colour'. It does
			not mean it modulates on your receivers automatically though, how you
			use that result is up to you.
		*/
		SHADOWTYPE_TEXTURE_MODULATIVE_INTEGRATED = 0x26
    };