<commit_before>{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-# LANGUAGE ConstraintKinds        #-}
{-# LANGUAGE FlexibleContexts       #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE OverloadedStrings      #-}
{-# LANGUAGE TupleSections          #-}
{-# LANGUAGE PatternGuards          #-}
{-# LANGUAGE RankNTypes             #-}
{-# LANGUAGE Arrows                 #-}

module Yage.Rendering.Pipeline.Deferred
  ( module Pass
  , module Yage.Viewport
  , module RenderSystem
  , DeferredEnvironment
  , DeferredEntity
  , DeferredScene
  , DeferredSky
  , yDeferredLighting
  ) where

import           Yage.Prelude hiding ((</>), cons)
import           Yage.Lens hiding (cons)
import           Yage.Math
import           Yage.Vertex hiding (Texture)
import           Yage.Formats.Ygm


import           Yage.HDR
import           Yage.Rendering.GL
import           Yage.Rendering.RenderSystem                     as RenderSystem
import           Yage.Rendering.RenderTarget
import           Yage.Rendering.Resources.GL
import           Yage.Scene
import           Yage.Viewport
import           Yage.Material hiding (over)

import           Yage.Rendering.Pipeline.Deferred.BaseGPass       as Pass
import           Yage.Rendering.Pipeline.Deferred.Common          as Pass
import           Yage.Rendering.Pipeline.Deferred.Types           as Pass
import           Yage.Rendering.Pipeline.Deferred.Downsampling    as Pass
-- import           Yage.Rendering.Pipeline.Deferred.GuiPass        as Pass
-- import           Yage.Rendering.Pipeline.Deferred.HDR            as Pass
import           Yage.Rendering.Pipeline.Deferred.PostAmbientPass as Pass
import           Yage.Rendering.Pipeline.Deferred.Bloom           as Pass
import           Yage.Rendering.Pipeline.Deferred.Tonemap         as Pass
import           Yage.Rendering.Pipeline.Deferred.LightPass       as Pass
import           Yage.Rendering.Pipeline.Deferred.ScreenPass      as Pass
import           Yage.Rendering.Pipeline.Deferred.SkyPass         as Pass

import           Yage.Rendering.Pipeline.Voxel.Base

import           Control.Arrow
import           Quine.GL.Shader
import           Quine.StateVar
import           Quine.GL.Types
import           Quine.GL.Texture
import           Data.Maybe (fromJust)

import           Foreign.Ptr
import           Data.Vector.Storable as V hiding (forM_,(++))

yDeferredLighting
  :: (HasScene a DeferredEntity DeferredEnvironment, HasHDRCamera a, HasDeferredSettings a, DeferredMonad m env)
  => YageResource (RenderSystem m a (Texture2D PixelRGB8))
yDeferredLighting = do<commit_msg>removed warnings<commit_after>{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-# LANGUAGE ConstraintKinds        #-}
{-# LANGUAGE FlexibleContexts       #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE OverloadedStrings      #-}
{-# LANGUAGE TupleSections          #-}
{-# LANGUAGE PatternGuards          #-}
{-# LANGUAGE RankNTypes             #-}
{-# LANGUAGE Arrows                 #-}

module Yage.Rendering.Pipeline.Deferred
  ( module Pass
  , module Yage.Viewport
  , module RenderSystem
  , yDeferredLighting
  ) where

import           Yage.Prelude hiding ((</>), cons)
import           Yage.Lens hiding (cons)
import           Yage.Math

import           Yage.HDR
import           Yage.Rendering.GL
import           Yage.Rendering.RenderSystem                     as RenderSystem
import           Yage.Rendering.RenderTarget
import           Yage.Rendering.Resources.GL
import           Yage.Scene
import           Yage.Viewport
import           Yage.Material hiding (over)

import           Yage.Rendering.Pipeline.Deferred.BaseGPass       as Pass
import           Yage.Rendering.Pipeline.Deferred.Common          as Pass
import           Yage.Rendering.Pipeline.Deferred.Types           as Pass
import           Yage.Rendering.Pipeline.Deferred.Downsampling    as Pass
-- import           Yage.Rendering.Pipeline.Deferred.GuiPass        as Pass
-- import           Yage.Rendering.Pipeline.Deferred.HDR            as Pass
import           Yage.Rendering.Pipeline.Deferred.PostAmbientPass as Pass
import           Yage.Rendering.Pipeline.Deferred.Bloom           as Pass
import           Yage.Rendering.Pipeline.Deferred.Tonemap         as Pass
import           Yage.Rendering.Pipeline.Deferred.LightPass       as Pass
import           Yage.Rendering.Pipeline.Deferred.ScreenPass      as Pass
import           Yage.Rendering.Pipeline.Deferred.SkyPass         as Pass

import           Yage.Rendering.Pipeline.Voxel.Base

import           Control.Arrow
import           Quine.GL.Shader
import           Data.Maybe (fromJust)


yDeferredLighting
  :: (HasScene a DeferredEntity DeferredEnvironment, HasHDRCamera a, HasDeferredSettings a, DeferredMonad m env)
  => YageResource (RenderSystem m a (Texture2D PixelRGB8))
yDeferredLighting = do
{'fraction_non_alphanumeric': 0.0766852195423624, 'fraction_numerical': 0.0008245722531436817, 'mean_word_length': 2.0904458598726117, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '918210', 'n_tokens_mistral': 1378, 'n_tokens_neox': 1398, 'n_words': 296}