// 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 // // (c) 2011 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. // // EnumAutoConstantType.h // // // // // File for type, method, enum or function stubs // in: "Dep-OgreSDK/include/OGRE\OgreGpuProgramParams.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 Dep-OgreSDK/include/OGRE\OgreGpuProgramParams.h line:590 enum EnumAutoConstantType { /// The current world matrix ACT_WORLD_MATRIX, /// The current world matrix, inverted ACT_INVERSE_WORLD_MATRIX, /** Provides transpose of world matrix. Equivalent to RenderMonkey's "WorldTranspose". */ ACT_TRANSPOSE_WORLD_MATRIX, /// The current world matrix, inverted & transposed ACT_INVERSE_TRANSPOSE_WORLD_MATRIX, /// The current array of world matrices, as a 3x4 matrix, used for blending ACT_WORLD_MATRIX_ARRAY_3x4, /// The current array of world matrices, used for blending ACT_WORLD_MATRIX_ARRAY, /// The current view matrix ACT_VIEW_MATRIX, /// The current view matrix, inverted ACT_INVERSE_VIEW_MATRIX, /** Provides transpose of view matrix. Equivalent to RenderMonkey's "ViewTranspose". */ ACT_TRANSPOSE_VIEW_MATRIX, /** Provides inverse transpose of view matrix. Equivalent to RenderMonkey's "ViewInverseTranspose". */ ACT_INVERSE_TRANSPOSE_VIEW_MATRIX, /// The current projection matrix ACT_PROJECTION_MATRIX, /** Provides inverse of projection matrix. Equivalent to RenderMonkey's "ProjectionInverse". */ ACT_INVERSE_PROJECTION_MATRIX, /** Provides transpose of projection matrix. Equivalent to RenderMonkey's "ProjectionTranspose". */ ACT_TRANSPOSE_PROJECTION_MATRIX, /** Provides inverse transpose of projection matrix. Equivalent to RenderMonkey's "ProjectionInverseTranspose". */ ACT_INVERSE_TRANSPOSE_PROJECTION_MATRIX, /// The current view & projection matrices concatenated ACT_VIEWPROJ_MATRIX, /** Provides inverse of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionInverse". */ ACT_INVERSE_VIEWPROJ_MATRIX, /** Provides transpose of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionTranspose". */ ACT_TRANSPOSE_VIEWPROJ_MATRIX, /** Provides inverse transpose of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionInverseTranspose". */ ACT_INVERSE_TRANSPOSE_VIEWPROJ_MATRIX, /// The current world & view matrices concatenated ACT_WORLDVIEW_MATRIX, /// The current world & view matrices concatenated, then inverted ACT_INVERSE_WORLDVIEW_MATRIX, /** Provides transpose of concatenated world and view matrices. Equivalent to RenderMonkey's "WorldViewTranspose". */ ACT_TRANSPOSE_WORLDVIEW_MATRIX, /// The current world & view matrices concatenated, then inverted & transposed ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX, /// view matrices. /// The current world, view & projection matrices concatenated ACT_WORLDVIEWPROJ_MATRIX, /** Provides inverse of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionInverse". */ ACT_INVERSE_WORLDVIEWPROJ_MATRIX, /** Provides transpose of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionTranspose". */ ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX, /** Provides inverse transpose of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionInverseTranspose". */ ACT_INVERSE_TRANSPOSE_WORLDVIEWPROJ_MATRIX, /// render target related values /** -1 if requires texture flipping, +1 otherwise. It's useful when you bypassed projection matrix transform, still able use this value to adjust transformed y position. */ ACT_RENDER_TARGET_FLIPPING, /** -1 if the winding has been inverted (e.g. for reflections), +1 otherwise. */ ACT_VERTEX_WINDING, /// Fog colour ACT_FOG_COLOUR, /// Fog params: density, linear start, linear end, 1/(end-start) ACT_FOG_PARAMS, /// Surface ambient colour, as set in Pass::setAmbient ACT_SURFACE_AMBIENT_COLOUR, /// Surface diffuse colour, as set in Pass::setDiffuse ACT_SURFACE_DIFFUSE_COLOUR, /// Surface specular colour, as set in Pass::setSpecular ACT_SURFACE_SPECULAR_COLOUR, /// Surface emissive colour, as set in Pass::setSelfIllumination ACT_SURFACE_EMISSIVE_COLOUR, /// Surface shininess, as set in Pass::setShininess ACT_SURFACE_SHININESS, /// The number of active light sources (better than gl_MaxLights) ACT_LIGHT_COUNT, /// The ambient light colour set in the scene ACT_AMBIENT_LIGHT_COLOUR, /// Light diffuse colour (index determined by setAutoConstant call) ACT_LIGHT_DIFFUSE_COLOUR, /// Light specular colour (index determined by setAutoConstant call) ACT_LIGHT_SPECULAR_COLOUR, /// Light attenuation parameters, Vector4(range, constant, linear, quadric) ACT_LIGHT_ATTENUATION, /** Spotlight parameters, Vector4(innerFactor, outerFactor, falloff, isSpot) innerFactor and outerFactor are cos(angle/2) The isSpot parameter is 0.0f for non-spotlights, 1.0f for spotlights. Also for non-spotlights the inner and outer factors are 1 and nearly 1 respectively */ ACT_SPOTLIGHT_PARAMS, /// A light position in world space (index determined by setAutoConstant call) ACT_LIGHT_POSITION, /// A light position in object space (index determined by setAutoConstant call) ACT_LIGHT_POSITION_OBJECT_SPACE, /// A light position in view space (index determined by setAutoConstant call) ACT_LIGHT_POSITION_VIEW_SPACE, /// A light direction in world space (index determined by setAutoConstant call) ACT_LIGHT_DIRECTION, /// A light direction in object space (index determined by setAutoConstant call) ACT_LIGHT_DIRECTION_OBJECT_SPACE, /// A light direction in view space (index determined by setAutoConstant call) ACT_LIGHT_DIRECTION_VIEW_SPACE, /** The distance of the light from the center of the object a useful approximation as an alternative to per-vertex distance calculations. */ ACT_LIGHT_DISTANCE_OBJECT_SPACE, /** Light power level, a single scalar as set in Light::setPowerScale (index determined by setAutoConstant call) */ ACT_LIGHT_POWER_SCALE, /// Light diffuse colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call) ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED, /// Light specular colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call) ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED, /// Array of light diffuse colours (count set by extra param) ACT_LIGHT_DIFFUSE_COLOUR_ARRAY, /// Array of light specular colours (count set by extra param) ACT_LIGHT_SPECULAR_COLOUR_ARRAY, /// Array of light diffuse colours scaled by light power (count set by extra param) ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED_ARRAY, /// Array of light specular colours scaled by light power (count set by extra param) ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED_ARRAY, /// Array of light attenuation parameters, Vector4(range, constant, linear, quadric) (count set by extra param) ACT_LIGHT_ATTENUATION_ARRAY, /// Array of light positions in world space (count set by extra param) ACT_LIGHT_POSITION_ARRAY, /// Array of light positions in object space (count set by extra param) ACT_LIGHT_POSITION_OBJECT_SPACE_ARRAY, /// Array of light positions in view space (count set by extra param) ACT_LIGHT_POSITION_VIEW_SPACE_ARRAY, /// Array of light directions in world space (count set by extra param) ACT_LIGHT_DIRECTION_ARRAY, /// Array of light directions in object space (count set by extra param) ACT_LIGHT_DIRECTION_OBJECT_SPACE_ARRAY, /// Array of light directions in view space (count set by extra param) ACT_LIGHT_DIRECTION_VIEW_SPACE_ARRAY, /** Array of distances of the lights from the center of the object a useful approximation as an alternative to per-vertex distance calculations. (count set by extra param) */ ACT_LIGHT_DISTANCE_OBJECT_SPACE_ARRAY, /** Array of light power levels, a single scalar as set in Light::setPowerScale (count set by extra param) */ ACT_LIGHT_POWER_SCALE_ARRAY, /** Spotlight parameters array of Vector4(innerFactor, outerFactor, falloff, isSpot) innerFactor and outerFactor are cos(angle/2) The isSpot parameter is 0.0f for non-spotlights, 1.0f for spotlights. Also for non-spotlights the inner and outer factors are 1 and nearly 1 respectively. (count set by extra param) */ ACT_SPOTLIGHT_PARAMS_ARRAY, /** The derived ambient light colour, with 'r', 'g', 'b' components filled with product of surface ambient colour and ambient light colour, respectively, and 'a' component filled with surface ambient alpha component. */ ACT_DERIVED_AMBIENT_LIGHT_COLOUR, /** The derived scene colour, with 'r', 'g' and 'b' components filled with sum of derived ambient light colour and surface emissive colour, respectively, and 'a' component filled with surface diffuse alpha component. */ ACT_DERIVED_SCENE_COLOUR, /** The derived light diffuse colour (index determined by setAutoConstant call), with 'r', 'g' and 'b' components filled with product of surface diffuse colour, light power scale and light diffuse colour, respectively, and 'a' component filled with surface diffuse alpha component. */ ACT_DERIVED_LIGHT_DIFFUSE_COLOUR, /** The derived light specular colour (index determined by setAutoConstant call), with 'r', 'g' and 'b' components filled with product of surface specular colour and light specular colour, respectively, and 'a' component filled with surface specular alpha component. */ ACT_DERIVED_LIGHT_SPECULAR_COLOUR, /// Array of derived light diffuse colours (count set by extra param) ACT_DERIVED_LIGHT_DIFFUSE_COLOUR_ARRAY, /// Array of derived light specular colours (count set by extra param) ACT_DERIVED_LIGHT_SPECULAR_COLOUR_ARRAY, /** The absolute light number of a local light index. Each pass may have a number of lights passed to it, and each of these lights will have an index in the overall light list, which will differ from the local light index due to factors like setStartLight and setIteratePerLight. This binding provides the global light index for a local index. */ ACT_LIGHT_NUMBER, /// Returns (int) 1 if the given light casts shadows, 0 otherwise (index set in extra param) ACT_LIGHT_CASTS_SHADOWS, /** The distance a shadow volume should be extruded when using finite extrusion programs. */ ACT_SHADOW_EXTRUSION_DISTANCE, /// The current camera's position in world space ACT_CAMERA_POSITION, /// The current camera's position in object space ACT_CAMERA_POSITION_OBJECT_SPACE, /// The view/projection matrix of the assigned texture projection frustum ACT_TEXTURE_VIEWPROJ_MATRIX, /// Array of view/projection matrices of the first n texture projection frustums ACT_TEXTURE_VIEWPROJ_MATRIX_ARRAY, /** The view/projection matrix of the assigned texture projection frustum, combined with the current world matrix */ ACT_TEXTURE_WORLDVIEWPROJ_MATRIX, /// Array of world/view/projection matrices of the first n texture projection frustums ACT_TEXTURE_WORLDVIEWPROJ_MATRIX_ARRAY, /// The view/projection matrix of a given spotlight ACT_SPOTLIGHT_VIEWPROJ_MATRIX, /// Array of view/projection matrix of a given spotlight ACT_SPOTLIGHT_VIEWPROJ_MATRIX_ARRAY, /** The view/projection matrix of a given spotlight projection frustum, combined with the current world matrix */ ACT_SPOTLIGHT_WORLDVIEWPROJ_MATRIX, /// A custom parameter which will come from the renderable, using 'data' as the identifier ACT_CUSTOM, /** provides current elapsed time */ ACT_TIME, /** Single float value, which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_X". */ ACT_TIME_0_X, /// Cosine of "Time0_X". Equivalent to RenderMonkey's "CosTime0_X". ACT_COSTIME_0_X, /// Sine of "Time0_X". Equivalent to RenderMonkey's "SinTime0_X". ACT_SINTIME_0_X, /// Tangent of "Time0_X". Equivalent to RenderMonkey's "TanTime0_X". ACT_TANTIME_0_X, /** Vector of "Time0_X", "SinTime0_X", "CosTime0_X", "TanTime0_X". Equivalent to RenderMonkey's "Time0_X_Packed". */ ACT_TIME_0_X_PACKED, /** Single float value, which represents scaled time value [0..1], which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_1". */ ACT_TIME_0_1, /// Cosine of "Time0_1". Equivalent to RenderMonkey's "CosTime0_1". ACT_COSTIME_0_1, /// Sine of "Time0_1". Equivalent to RenderMonkey's "SinTime0_1". ACT_SINTIME_0_1, /// Tangent of "Time0_1". Equivalent to RenderMonkey's "TanTime0_1". ACT_TANTIME_0_1, /** Vector of "Time0_1", "SinTime0_1", "CosTime0_1", "TanTime0_1". Equivalent to RenderMonkey's "Time0_1_Packed". */ ACT_TIME_0_1_PACKED, /** Single float value, which represents scaled time value [0..2*Pi], which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_2PI". */ ACT_TIME_0_2PI, /// Cosine of "Time0_2PI". Equivalent to RenderMonkey's "CosTime0_2PI". ACT_COSTIME_0_2PI, /// Sine of "Time0_2PI". Equivalent to RenderMonkey's "SinTime0_2PI". ACT_SINTIME_0_2PI, /// Tangent of "Time0_2PI". Equivalent to RenderMonkey's "TanTime0_2PI". ACT_TANTIME_0_2PI, /** Vector of "Time0_2PI", "SinTime0_2PI", "CosTime0_2PI", "TanTime0_2PI". Equivalent to RenderMonkey's "Time0_2PI_Packed". */ ACT_TIME_0_2PI_PACKED, /// provides the scaled frame time, returned as a floating point value. ACT_FRAME_TIME, /// provides the calculated frames per second, returned as a floating point value. ACT_FPS, /// viewport-related values /** Current viewport width (in pixels) as floating point value. Equivalent to RenderMonkey's "ViewportWidth". */ ACT_VIEWPORT_WIDTH, /** Current viewport height (in pixels) as floating point value. Equivalent to RenderMonkey's "ViewportHeight". */ ACT_VIEWPORT_HEIGHT, /** This variable represents 1.0/ViewportWidth. Equivalent to RenderMonkey's "ViewportWidthInverse". */ ACT_INVERSE_VIEWPORT_WIDTH, /** This variable represents 1.0/ViewportHeight. Equivalent to RenderMonkey's "ViewportHeightInverse". */ ACT_INVERSE_VIEWPORT_HEIGHT, /** Packed of "ViewportWidth", "ViewportHeight", "ViewportWidthInverse", "ViewportHeightInverse". */ ACT_VIEWPORT_SIZE, /// view parameters /** This variable provides the view direction vector (world space). Equivalent to RenderMonkey's "ViewDirection". */ ACT_VIEW_DIRECTION, /** This variable provides the view side vector (world space). Equivalent to RenderMonkey's "ViewSideVector". */ ACT_VIEW_SIDE_VECTOR, /** This variable provides the view up vector (world space). Equivalent to RenderMonkey's "ViewUpVector". */ ACT_VIEW_UP_VECTOR, /** This variable provides the field of view as a floating point value. Equivalent to RenderMonkey's "FOV". */ ACT_FOV, /** This variable provides the near clip distance as a floating point value. Equivalent to RenderMonkey's "NearClipPlane". */ ACT_NEAR_CLIP_DISTANCE, /** This variable provides the far clip distance as a floating point value. Equivalent to RenderMonkey's "FarClipPlane". */ ACT_FAR_CLIP_DISTANCE, /** provides the pass index number within the technique of the active materil. */ ACT_PASS_NUMBER, /** provides the current iteration number of the pass. The iteration number is the number of times the current render operation has been drawn for the active pass. */ ACT_PASS_ITERATION_NUMBER, /** Provides a parametric animation value [0..1], only available where the renderable specifically implements it. */ ACT_ANIMATION_PARAMETRIC, /** Provides the texel offsets required by this rendersystem to map texels to pixels. Packed as float4(absoluteHorizontalOffset, absoluteVerticalOffset, horizontalOffset / viewportWidth, verticalOffset / viewportHeight) */ ACT_TEXEL_OFFSETS, /** Provides information about the depth range of the scene as viewed from the current camera. Passed as float4(minDepth, maxDepth, depthRange, 1 / depthRange) */ ACT_SCENE_DEPTH_RANGE, /** Provides information about the depth range of the scene as viewed from a given shadow camera. Requires an index parameter which maps to a light index relative to the current light list. Passed as float4(minDepth, maxDepth, depthRange, 1 / depthRange) */ ACT_SHADOW_SCENE_DEPTH_RANGE, /** Provides the fixed shadow colour as configured via SceneManager::setShadowColour; useful for integrated modulative shadows. */ ACT_SHADOW_COLOUR, /** Provides texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(width, height, depth, 1) */ ACT_TEXTURE_SIZE, /** Provides inverse texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(1 / width, 1 / height, 1 / depth, 1) */ ACT_INVERSE_TEXTURE_SIZE, /** Provides packed texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(width, height, 1 / width, 1 / height) */ ACT_PACKED_TEXTURE_SIZE, /** Provides the current transform matrix of the texture unit (index determined by setAutoConstant call), as seen by the fixed-function pipeline. */ ACT_TEXTURE_MATRIX, /** Provides the position of the LOD camera in world space, allowing you to perform separate LOD calculations in shaders independent of the rendering camera. If there is no separate LOD camera then this is the real camera position. See Camera::setLodCamera. */ ACT_LOD_CAMERA_POSITION, /** Provides the position of the LOD camera in object space, allowing you to perform separate LOD calculations in shaders independent of the rendering camera. If there is no separate LOD camera then this is the real camera position. See Camera::setLodCamera. */ ACT_LOD_CAMERA_POSITION_OBJECT_SPACE, /** Binds custom per-light constants to the shaders. */ ACT_LIGHT_CUSTOM };