@@ -16,6 +16,7 @@ import qualified Data.IntMap as IntMap
16import qualified Data.List as List
16import qualified Data.List as List
17import Data.Map ((!))
17import Data.Map ((!))
18import qualified Data.Map as Map
18import qualified Data.Map as Map
19+import qualified Data.Set as Set
19import qualified Data.Text.Encoding as Text
20import qualified Data.Text.Encoding as Text
21import qualified AST.Canonical as Can
22import qualified AST.Canonical as Can
@@ -178,9 +179,21 @@ generate mode expression =
178 , generateJsExpr mode c
179 , generateJsExpr mode c
181− Opt.Shader src ->
182+ Opt.Shader src attributes uniforms ->
182− let string = JS.String (Text.encodeUtf8Builder src) in
183+ let
184+ toTranlation field =
185+ ( Name.fromLocal field
186+ , JS.String (Name.toBuilder (generateField mode field))
189+ toTranslationObject fields =
190+ JS.Object (map toTranlation (Set.toList fields))
183− JsExpr $ JS.Object [ ( Name.fromLocal "src", string ) ]
192+ JsExpr $ JS.Object $
193+ [ ( Name.fromLocal "src", JS.String (Text.encodeUtf8Builder src) )
194+ , ( Name.fromLocal "attributes", toTranslationObject attributes )
195+ , ( Name.fromLocal "uniforms", toTranslationObject uniforms )