{-# LANGUAGE FlexibleInstances #-} module RSAGL.Color.OpenGL (ColorToOpenGL(..)) where import RSAGL.Math.Types import RSAGL.Color.RGB import RSAGL.Color.Alpha import Graphics.Rendering.OpenGL.Raw.Core31 (GLdouble,GLfloat) import Graphics.Rendering.OpenGL hiding (RGB,RGBA,Alpha) class ColorToOpenGL c where colorToOpenGL :: c -> Color4 GLdouble instance ColorToOpenGL RGB where colorToOpenGL (RGB r g b) = Color4 (toGLdouble r) (toGLdouble g) (toGLdouble b) 1 instance ColorToOpenGL (Alpha RGB) where colorToOpenGL (Alpha a (RGB r g b)) = Color4 (toGLdouble r) (toGLdouble g) (toGLdouble b) (toGLdouble a)