From 4c5fe84a424cf6329c7b8cb305d6958ed33b62e6 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Mon, 6 May 2019 19:29:36 -0400 Subject: Renamed LambdaCube.GL.Uniform. --- LambdaCube/GL/HMatrix.hs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/LambdaCube/GL/HMatrix.hs b/LambdaCube/GL/HMatrix.hs index 127656e..026d5c1 100644 --- a/LambdaCube/GL/HMatrix.hs +++ b/LambdaCube/GL/HMatrix.hs @@ -1,27 +1,23 @@ -{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} module LambdaCube.GL.HMatrix where import GHC.TypeLits - -import LambdaCube.GL.Uniform +import LambdaCube.GL.Input.Type import Numeric.LinearAlgebra import Numeric.LinearAlgebra.Devel -import Graphics.Rendering.OpenGL.GL (GLboolean) - instance Uniformable (Matrix Float) where uniformContexts _ = contexts floatMatrices -instance (KnownNat r, KnownNat c) => IsUniform (Matrix Float) (UMatrix r c Float) where +instance (KnownNat r, KnownNat c) => GLData (Matrix Float) (GLMatrix r c Float) where marshalUniform abi mat = case matrixDimensions abi of (r,c) | fromIntegral (natVal r) /= rows mat -> Nothing | fromIntegral (natVal c) /= cols mat -> Nothing _ -> let isRowOrder = case orderOf mat of - RowMajor -> 1 :: GLboolean - ColumnMajor -> 0 :: GLboolean - in Just $ MarshalUMatrix + RowMajor -> 1 + ColumnMajor -> 0 + in Just $ MarshalGLMatrix $ \f -> apply mat (\ptr -> f 1 isRowOrder ptr) (\r c sr sc ptr -> ptr) instance Uniformable (Vector Float) where @@ -31,10 +27,10 @@ instance Uniformable (Vector Float) where supports TypeV3F supports TypeV4F -instance KnownNat n => IsUniform (Vector Float) (USimple n Float) where +instance KnownNat n => GLData (Vector Float) (GLVector n Float) where marshalUniform abi vec | natVal (vectorLength abi) /= fromIntegral (size vec) = Nothing - | otherwise = Just $ MarshalUSimple + | otherwise = Just $ MarshalGLVector $ \f -> apply vec (\ptr -> f 1 ptr) (\n ptr -> ptr) {- -- cgit v1.2.3