renderglsl.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // renderglsl.h
  2. //
  3. // Functions for rendering objects using dynamically generated GLSL shaders.
  4. //
  5. // Copyright (C) 2006-2007, Chris Laurel <claurel@shatters.net>
  6. //
  7. // This program is free software; you can redistribute it and/or
  8. // modify it under the terms of the GNU General Public License
  9. // as published by the Free Software Foundation; either version 2
  10. // of the License, or (at your option) any later version.
  11. #ifndef _CELENGINE_RENDERGLSL_H_
  12. #define _CELENGINE_RENDERGLSL_H_
  13. #include <celengine/lightenv.h>
  14. void renderSphere_GLSL(const RenderInfo& ri,
  15.                        const LightingState& ls,
  16.                        RingSystem* rings,
  17.                        Atmosphere* atmosphere,
  18.                        float cloudTexOffset,
  19.                        float radius,
  20.                        unsigned int textureRes,
  21.                        int renderFlags,
  22.                        const Mat4f& planetMat,
  23.                        const Frustum& frustum,
  24.                        const GLContext& context);
  25.                        
  26. void renderGeometry_GLSL(Geometry* geometry,
  27.                          const RenderInfo& ri,
  28.                          ResourceHandle texOverride,
  29.                          const LightingState& ls,
  30.                          const Atmosphere* atmosphere,
  31.                          float geometryScale,
  32.                          int renderFlags,
  33.                          const Mat4f& planetMat,
  34.                          double tsec);
  35.                       
  36. void renderClouds_GLSL(const RenderInfo& ri,
  37.                        const LightingState& ls,
  38.                        Atmosphere* atmosphere,
  39.                        Texture* cloudTex,
  40.                        Texture* cloudNormalMap,
  41.                        float texOffset,
  42.                        RingSystem* rings,
  43.                        float radius,
  44.                        unsigned int textureRes,
  45.                        int renderFlags,
  46.                        const Mat4f& planetMat,
  47.                        const Frustum& frustum,
  48.                        const GLContext& context);
  49.                        
  50. void renderAtmosphere_GLSL(const RenderInfo& ri,
  51.                            const LightingState& ls,
  52.                            Atmosphere* atmosphere,
  53.                            float radius,
  54.                            const Mat4f& planetMat,
  55.                            const Frustum& frustum,
  56.                            const GLContext& context);
  57.                            
  58. void renderRings_GLSL(RingSystem& rings,
  59.                       RenderInfo& ri,
  60.                       const LightingState& ls,
  61.                       float planetRadius,
  62.                       float planetOblateness,
  63.                       unsigned int textureResolution,
  64.                       bool renderShadow,
  65.                       unsigned int nSections);
  66. void renderGeometry_GLSL_Unlit(Geometry* geometry,
  67.                                const RenderInfo& ri,
  68.                                ResourceHandle texOverride,
  69.                                float geometryScale,
  70.                                int renderFlags,
  71.                                const Mat4f& planetMat,
  72.                                double tsec);
  73.                            
  74. #endif // _CELENGINE_RENDERGLSL_H_
  75.