¿Cuáles son los valores GLbooleanos que indican verdadero y falso?

Estoy usando la biblioteca OpenGL.Raw de Haskell y deseo usar los valores GLboolean para verdadero y falso, pero no parecen estar predefinidos en la biblioteca. ¿Cómo defino estos valores yo mismo?

preguntado el 28 de julio de 12 a las 13:07

1 Respuestas

Las dos funciones que se utilizan para esto en la biblioteca OpenGL son (en el módulo interno GLBoolean)

marshalGLboolean :: Num a => Bool -> a
marshalGLboolean x = fromIntegral $ case x of
   False -> gl_FALSE
   True -> gl_TRUE

unmarshalGLboolean :: (Eq a, Num a) => a -> Bool
unmarshalGLboolean = (/= fromIntegral gl_FALSE)

GLBoolean es una instancia de la clase de tipo Num, pero necesita convertir la normal Bool valores en cada lugar que utiliza una función OpenGL. Si no desea convertirlo en cada lugar, puede usar lo siguiente

gTrue, gFalse :: Num a => a
gTrue = fromIntegral gl_TRUE
gFalse = fromIntegral gl_FALSE

Pero la desventaja es que no puede usar las operaciones booleanas normales como && y ||. O puede dejar que la biblioteca OpenGL haga el envoltorio por usted, lo que también brinda seguridad de tipos y una interfaz que podría ser un poco mejor.

Respondido 28 Jul 12, 14:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.