Cleanup, remove files
This commit is contained in:
@@ -3,7 +3,6 @@ module Main where
|
|||||||
import Loop
|
import Loop
|
||||||
import EventHelper
|
import EventHelper
|
||||||
import Shaders
|
import Shaders
|
||||||
import Render
|
|
||||||
import Shapes
|
import Shapes
|
||||||
|
|
||||||
import Dodge.Prototypes
|
import Dodge.Prototypes
|
||||||
|
|||||||
-108
@@ -1,108 +0,0 @@
|
|||||||
module Render where
|
|
||||||
import Shapes
|
|
||||||
import Graphics.Rendering.OpenGL hiding (imageHeight,imageWidth)
|
|
||||||
import Foreign
|
|
||||||
import Loop
|
|
||||||
import Codec.Picture
|
|
||||||
import qualified Data.Vector.Storable as V
|
|
||||||
|
|
||||||
|
|
||||||
render :: [Program] -> b -> Shape -> IO ()
|
|
||||||
render progs _ (Shape primitiveMode vs) = do
|
|
||||||
currentProgram $= Just (progs !! 0)
|
|
||||||
let vertices = flattenVertices vs
|
|
||||||
numVertices = length vertices
|
|
||||||
vertexSize = sizeOf (head vertices)
|
|
||||||
|
|
||||||
-- setup VBO
|
|
||||||
shape <- genObjectName
|
|
||||||
bindVertexArrayObject $= Just shape
|
|
||||||
|
|
||||||
-- setup VBA
|
|
||||||
arrayBuffer <- genObjectName
|
|
||||||
bindBuffer ArrayBuffer $= Just arrayBuffer
|
|
||||||
withArray vertices $ \ptr -> do
|
|
||||||
bufferData ArrayBuffer $= (fromIntegral (numVertices * vertexSize), ptr, StaticDraw)
|
|
||||||
|
|
||||||
let firstIndex = 0
|
|
||||||
vPosition = AttribLocation 0
|
|
||||||
vColor = AttribLocation 1
|
|
||||||
vertexAttribPointer vPosition $=
|
|
||||||
( ToFloat
|
|
||||||
, VertexArrayDescriptor 3 Float (fromIntegral $ vertexSize * 7)
|
|
||||||
(bufferOffset (firstIndex * vertexSize))
|
|
||||||
)
|
|
||||||
vertexAttribArray vPosition $= Enabled
|
|
||||||
|
|
||||||
vertexAttribPointer vColor $=
|
|
||||||
( ToFloat
|
|
||||||
, VertexArrayDescriptor 4 Float (fromIntegral $ vertexSize * 7)
|
|
||||||
(bufferOffset ((firstIndex + 3) * vertexSize) )
|
|
||||||
)
|
|
||||||
vertexAttribArray vColor $= Enabled
|
|
||||||
|
|
||||||
-- clear [ColorBuffer,DepthBuffer]
|
|
||||||
|
|
||||||
bindVertexArrayObject $= Just shape
|
|
||||||
drawArrays primitiveMode (fromIntegral firstIndex) (fromIntegral $ div numVertices 2)
|
|
||||||
|
|
||||||
|
|
||||||
render (_:prog:_) _ (Fade ps) = do
|
|
||||||
currentProgram $= Just prog
|
|
||||||
let vertices = flatten2 ps
|
|
||||||
numVertices = length vertices
|
|
||||||
vertexSize = sizeOf (head vertices)
|
|
||||||
|
|
||||||
-- -- setup uniform
|
|
||||||
-- location <- get $ uniformLocation prog "winSize"
|
|
||||||
-- uniform location $= winSizeVec
|
|
||||||
|
|
||||||
-- setup VBO
|
|
||||||
arrayBuffer <- genObjectName
|
|
||||||
bindBuffer ArrayBuffer $= Just arrayBuffer
|
|
||||||
withArray vertices $ \ptr -> do
|
|
||||||
bufferData ArrayBuffer $= (fromIntegral (numVertices * vertexSize), ptr, StreamDraw)
|
|
||||||
|
|
||||||
-- setup VAO
|
|
||||||
shape <- genObjectName
|
|
||||||
bindVertexArrayObject $= Just shape
|
|
||||||
|
|
||||||
let firstIndex = 0
|
|
||||||
inPosition = AttribLocation 0
|
|
||||||
inColor = AttribLocation 1
|
|
||||||
inRad = AttribLocation 2
|
|
||||||
vertexAttribPointer inPosition $=
|
|
||||||
( ToFloat
|
|
||||||
, VertexArrayDescriptor 3 Float (fromIntegral $ vertexSize * 8)
|
|
||||||
(bufferOffset (firstIndex * vertexSize))
|
|
||||||
)
|
|
||||||
vertexAttribArray inPosition $= Enabled
|
|
||||||
|
|
||||||
vertexAttribPointer inColor $=
|
|
||||||
( ToFloat
|
|
||||||
, VertexArrayDescriptor 4 Float (fromIntegral $ vertexSize * 8)
|
|
||||||
(bufferOffset ((firstIndex + 3) * vertexSize) )
|
|
||||||
)
|
|
||||||
vertexAttribArray inColor $= Enabled
|
|
||||||
|
|
||||||
vertexAttribPointer inRad $=
|
|
||||||
( ToFloat
|
|
||||||
, VertexArrayDescriptor 1 Float (fromIntegral $ vertexSize * 8)
|
|
||||||
(bufferOffset ((firstIndex + 7) * vertexSize) )
|
|
||||||
)
|
|
||||||
vertexAttribArray inRad $= Enabled
|
|
||||||
|
|
||||||
-- bindVertexArrayObject $= Just shape
|
|
||||||
drawArrays Points (fromIntegral firstIndex) (2)
|
|
||||||
|
|
||||||
|
|
||||||
flattenVertices :: [CPoint] -> [GLfloat]
|
|
||||||
flattenVertices = map realToFrac . concatMap (\(CPoint (x,y,z) (r,b,g,a)) -> [x,y,z,r,b,g,a])
|
|
||||||
|
|
||||||
flatten2 :: [((Float,Float,Float),(Float,Float,Float,Float),Float)] -> [GLfloat]
|
|
||||||
flatten2 = map realToFrac . concatMap f
|
|
||||||
where f ((x,y,z),(r,g,b,a),rad) = [x,y,z,r,g,b,a,rad]
|
|
||||||
|
|
||||||
bufferOffset :: Integral a => a -> Ptr b
|
|
||||||
bufferOffset = plusPtr nullPtr . fromIntegral
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
module Rendering.Picture.Color
|
|
||||||
where
|
|
||||||
import Geometry.Data
|
|
||||||
|
|
||||||
type RGBA = (Float,Float,Float,Float)
|
|
||||||
|
|
||||||
black,red,green,blue,yellow,cyan,magenta,rose,violet,azure,aquamarine,chartreuse,orange,white::RGBA
|
|
||||||
black = (0,0,0,1)
|
|
||||||
red = (1,0,0,1)
|
|
||||||
green = (0,1,0,1)
|
|
||||||
blue = (0,0,1,1)
|
|
||||||
yellow = (1,1,0,1)
|
|
||||||
cyan = (0,1,1,1)
|
|
||||||
magenta = (1,0,1,1)
|
|
||||||
rose = (1,0,0.5,1)
|
|
||||||
violet = (0.5,0,1,1)
|
|
||||||
azure = (0,0.5,1,1)
|
|
||||||
aquamarine= (0,1,0.5,1)
|
|
||||||
chartreuse= (0.5,1,0,1)
|
|
||||||
orange = (1,0.5,0,1)
|
|
||||||
white = (1,1,1,1)
|
|
||||||
Reference in New Issue
Block a user