24 #include <flw/flc/renderers/IRenderer.h> 25 #include <flw/flc/extended/rendering/FramebufferGeometry.h> 26 #include <flw/flf/models/Mesh.h> 28 #include <flw/flc/rendering/Texture2DRenderable.h> 30 #if defined(FILLWAVE_BACKEND_OPENGL_ES_30) 51 void draw(
ICamera &camera)
override;
53 void reset(GLuint width, GLuint height)
override;
55 void clear()
override;
58 void initGeometryBuffer();
60 void initGeometryShading();
64 void initUniformsCache();
67 void drawSceneCoreDR();
69 void drawGeometryPass(
ICamera &camera);
71 void drawDepthlessPass();
73 void drawAmbientPass();
75 void drawAOPass(
ICamera &camera);
77 void drawColorPass(
ICamera &camera);
79 void drawLightsSpotPass(
ICamera &camera, GLint &textureUnit);
81 void drawLightsDirectionalPass(
ICamera &camera, GLint &textureUnit);
83 void drawLightsPointPass(
ICamera &camera, GLint &textureUnit);
85 void drawColorPassBegin();
87 void drawColorPassEnd();
92 glm::ivec2 mScreenSize;
107 pu<flc::Texture2DRenderable> mAOGeometryBuffer;
108 pu<flc::Texture2DRenderable> mAOColorBuffer;
110 pu<flf::Mesh> mDeferredPointLight;
112 GLint mULCDRDepthlesDiffuseTexel;
113 GLint mULCDRDepthlessPositionTexel;
114 GLint mULCDRScreenSize;
115 GLint mULCDRAScreenSize;
116 GLint mULCDRADiffuseAttachment;
119 GLint mULCCameraPositionDirectional;
120 GLint mULCAmbientIntensityDirectional;
121 GLint mULCScreenSizeDirectional;
122 GLint mULCShadowUnitDirectional;
123 GLint mULCIsAODirectional;
124 GLint mULCCameraPositionPoint;
125 GLint mULCAmbientIntensityPoint;
127 GLint mULCScreenSizePoint;
128 GLint mULCShadowUnitPoint;
132 GLint mULCCameraPositionSpot;
133 GLint mULCAmbientIntensitySpot;
134 GLint mULCScreenSizeSpot;
135 GLint mULCShadowUnitSpot;
140 const GLuint mDeferredColorAttachments;
142 pu<flc::FramebufferGeometry> mGBuffer;
144 std::vector<IRenderable*> mNodes;
145 std::vector<IRenderable*> mAnimatedNodes;
Manager to handle TextureObject1D, TextureObject2D and TextureObject3D objects.
Definition: TextureSystem.h:38
Deferred IRenderer. Not ready (Rev.4.2.1).
Definition: RendererDR.h:43
Base for all renderers.
Definition: IRenderer.h:42
Loads programs.
Definition: ProgramLoader.h:37
Fillwave engine core.
Definition: Engine.h:85
Encapsulates renderable objects. To be used with IRenderer.
Definition: IRenderable.h:36
Light system knows about all light related stuff.
Definition: LightSystem.h:40
Single GLSL program object.
Definition: Program.h:37
Stores camera view parameters.
Definition: ICamera.h:32