h-raylib 4.5.0.6 → 4.5.0.7
raw patch · 6 files changed
+773/−1317 lines, 6 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Raylib.Constants: blend'addColors :: Num a => a
- Raylib.Constants: blend'additive :: Num a => a
- Raylib.Constants: blend'alpha :: Num a => a
- Raylib.Constants: blend'alphaPremultiply :: Num a => a
- Raylib.Constants: blend'custom :: Num a => a
- Raylib.Constants: blend'customSeparate :: Num a => a
- Raylib.Constants: blend'multiplied :: Num a => a
- Raylib.Constants: blend'subtractColors :: Num a => a
- Raylib.Constants: cameraMode'custom :: Num a => a
- Raylib.Constants: cameraMode'firstPerson :: Num a => a
- Raylib.Constants: cameraMode'free :: Num a => a
- Raylib.Constants: cameraMode'orbital :: Num a => a
- Raylib.Constants: cameraMode'thirdPerson :: Num a => a
- Raylib.Constants: cameraProjection'orthographic :: Num a => a
- Raylib.Constants: cameraProjection'perspective :: Num a => a
- Raylib.Constants: cubemapLayout'autoDetect :: Num a => a
- Raylib.Constants: cubemapLayout'crossThreeByFour :: Num a => a
- Raylib.Constants: cubemapLayout'crossThreeByThree :: Num a => a
- Raylib.Constants: cubemapLayout'lineHorizontal :: Num a => a
- Raylib.Constants: cubemapLayout'lineVertical :: Num a => a
- Raylib.Constants: cubemapLayout'panorama :: Num a => a
- Raylib.Constants: flag'fullscreenMode :: Num a => a
- Raylib.Constants: flag'interlacedHint :: Num a => a
- Raylib.Constants: flag'msaa4xHint :: Num a => a
- Raylib.Constants: flag'vsyncHint :: Num a => a
- Raylib.Constants: flag'windowAlwaysRun :: Num a => a
- Raylib.Constants: flag'windowHidden :: Num a => a
- Raylib.Constants: flag'windowHighdpi :: Num a => a
- Raylib.Constants: flag'windowMaximized :: Num a => a
- Raylib.Constants: flag'windowMinimized :: Num a => a
- Raylib.Constants: flag'windowMousePassthrough :: Num a => a
- Raylib.Constants: flag'windowResizable :: Num a => a
- Raylib.Constants: flag'windowTopmost :: Num a => a
- Raylib.Constants: flag'windowTransparent :: Num a => a
- Raylib.Constants: flag'windowUndecorated :: Num a => a
- Raylib.Constants: flag'windowUnfocused :: Num a => a
- Raylib.Constants: font'bitmap :: Num a => a
- Raylib.Constants: font'default :: Num a => a
- Raylib.Constants: font'sdf :: Num a => a
- Raylib.Constants: gamepadAxisLeftTrigger :: Num a => a
- Raylib.Constants: gamepadAxisLeftX :: Num a => a
- Raylib.Constants: gamepadAxisLeftY :: Num a => a
- Raylib.Constants: gamepadAxisRightTrigger :: Num a => a
- Raylib.Constants: gamepadAxisRightX :: Num a => a
- Raylib.Constants: gamepadAxisRightY :: Num a => a
- Raylib.Constants: gamepadButton'leftFaceDown :: Num a => a
- Raylib.Constants: gamepadButton'leftFaceLeft :: Num a => a
- Raylib.Constants: gamepadButton'leftFaceRight :: Num a => a
- Raylib.Constants: gamepadButton'leftFaceUp :: Num a => a
- Raylib.Constants: gamepadButton'leftThumb :: Num a => a
- Raylib.Constants: gamepadButton'leftTrigger1 :: Num a => a
- Raylib.Constants: gamepadButton'leftTrigger2 :: Num a => a
- Raylib.Constants: gamepadButton'middle :: Num a => a
- Raylib.Constants: gamepadButton'middleLeft :: Num a => a
- Raylib.Constants: gamepadButton'middleRight :: Num a => a
- Raylib.Constants: gamepadButton'rightFaceDown :: Num a => a
- Raylib.Constants: gamepadButton'rightFaceLeft :: Num a => a
- Raylib.Constants: gamepadButton'rightFaceRight :: Num a => a
- Raylib.Constants: gamepadButton'rightFaceUp :: Num a => a
- Raylib.Constants: gamepadButton'rightThumb :: Num a => a
- Raylib.Constants: gamepadButton'rightTrigger1 :: Num a => a
- Raylib.Constants: gamepadButton'rightTrigger2 :: Num a => a
- Raylib.Constants: gamepadButton'unknown :: Num a => a
- Raylib.Constants: gesture'doubletap :: Num a => a
- Raylib.Constants: gesture'drag :: Num a => a
- Raylib.Constants: gesture'hold :: Num a => a
- Raylib.Constants: gesture'none :: Num a => a
- Raylib.Constants: gesture'pinchIn :: Num a => a
- Raylib.Constants: gesture'pinchOut :: Num a => a
- Raylib.Constants: gesture'swipeDown :: Num a => a
- Raylib.Constants: gesture'swipeLeft :: Num a => a
- Raylib.Constants: gesture'swipeRight :: Num a => a
- Raylib.Constants: gesture'swipeUp :: Num a => a
- Raylib.Constants: gesture'tap :: Num a => a
- Raylib.Constants: key'a :: Num a => a
- Raylib.Constants: key'apostrophe :: Num a => a
- Raylib.Constants: key'b :: Num a => a
- Raylib.Constants: key'back :: Num a => a
- Raylib.Constants: key'backslash :: Num a => a
- Raylib.Constants: key'backspace :: Num a => a
- Raylib.Constants: key'c :: Num a => a
- Raylib.Constants: key'capsLock :: Num a => a
- Raylib.Constants: key'comma :: Num a => a
- Raylib.Constants: key'd :: Num a => a
- Raylib.Constants: key'delete :: Num a => a
- Raylib.Constants: key'down :: Num a => a
- Raylib.Constants: key'e :: Num a => a
- Raylib.Constants: key'eight :: Num a => a
- Raylib.Constants: key'end :: Num a => a
- Raylib.Constants: key'enter :: Num a => a
- Raylib.Constants: key'equal :: Num a => a
- Raylib.Constants: key'escape :: Num a => a
- Raylib.Constants: key'f :: Num a => a
- Raylib.Constants: key'f1 :: Num a => a
- Raylib.Constants: key'f10 :: Num a => a
- Raylib.Constants: key'f11 :: Num a => a
- Raylib.Constants: key'f12 :: Num a => a
- Raylib.Constants: key'f2 :: Num a => a
- Raylib.Constants: key'f3 :: Num a => a
- Raylib.Constants: key'f4 :: Num a => a
- Raylib.Constants: key'f5 :: Num a => a
- Raylib.Constants: key'f6 :: Num a => a
- Raylib.Constants: key'f7 :: Num a => a
- Raylib.Constants: key'f8 :: Num a => a
- Raylib.Constants: key'f9 :: Num a => a
- Raylib.Constants: key'five :: Num a => a
- Raylib.Constants: key'four :: Num a => a
- Raylib.Constants: key'g :: Num a => a
- Raylib.Constants: key'grave :: Num a => a
- Raylib.Constants: key'h :: Num a => a
- Raylib.Constants: key'home :: Num a => a
- Raylib.Constants: key'i :: Num a => a
- Raylib.Constants: key'insert :: Num a => a
- Raylib.Constants: key'j :: Num a => a
- Raylib.Constants: key'k :: Num a => a
- Raylib.Constants: key'kbMenu :: Num a => a
- Raylib.Constants: key'kp0 :: Num a => a
- Raylib.Constants: key'kp1 :: Num a => a
- Raylib.Constants: key'kp2 :: Num a => a
- Raylib.Constants: key'kp3 :: Num a => a
- Raylib.Constants: key'kp4 :: Num a => a
- Raylib.Constants: key'kp5 :: Num a => a
- Raylib.Constants: key'kp6 :: Num a => a
- Raylib.Constants: key'kp7 :: Num a => a
- Raylib.Constants: key'kp8 :: Num a => a
- Raylib.Constants: key'kp9 :: Num a => a
- Raylib.Constants: key'kpAdd :: Num a => a
- Raylib.Constants: key'kpDecimal :: Num a => a
- Raylib.Constants: key'kpDivide :: Num a => a
- Raylib.Constants: key'kpEnter :: Num a => a
- Raylib.Constants: key'kpEqual :: Num a => a
- Raylib.Constants: key'kpMultiply :: Num a => a
- Raylib.Constants: key'kpSubtract :: Num a => a
- Raylib.Constants: key'l :: Num a => a
- Raylib.Constants: key'left :: Num a => a
- Raylib.Constants: key'leftAlt :: Num a => a
- Raylib.Constants: key'leftBracket :: Num a => a
- Raylib.Constants: key'leftControl :: Num a => a
- Raylib.Constants: key'leftShift :: Num a => a
- Raylib.Constants: key'leftSuper :: Num a => a
- Raylib.Constants: key'm :: Num a => a
- Raylib.Constants: key'menu :: Num a => a
- Raylib.Constants: key'minus :: Num a => a
- Raylib.Constants: key'n :: Num a => a
- Raylib.Constants: key'nine :: Num a => a
- Raylib.Constants: key'null :: Num a => a
- Raylib.Constants: key'numLock :: Num a => a
- Raylib.Constants: key'o :: Num a => a
- Raylib.Constants: key'one :: Num a => a
- Raylib.Constants: key'p :: Num a => a
- Raylib.Constants: key'pageDown :: Num a => a
- Raylib.Constants: key'pageUp :: Num a => a
- Raylib.Constants: key'pause :: Num a => a
- Raylib.Constants: key'period :: Num a => a
- Raylib.Constants: key'printScreen :: Num a => a
- Raylib.Constants: key'q :: Num a => a
- Raylib.Constants: key'r :: Num a => a
- Raylib.Constants: key'right :: Num a => a
- Raylib.Constants: key'rightAlt :: Num a => a
- Raylib.Constants: key'rightBracket :: Num a => a
- Raylib.Constants: key'rightControl :: Num a => a
- Raylib.Constants: key'rightShift :: Num a => a
- Raylib.Constants: key'rightSuper :: Num a => a
- Raylib.Constants: key's :: Num a => a
- Raylib.Constants: key'scrollLock :: Num a => a
- Raylib.Constants: key'semicolon :: Num a => a
- Raylib.Constants: key'seven :: Num a => a
- Raylib.Constants: key'six :: Num a => a
- Raylib.Constants: key'slash :: Num a => a
- Raylib.Constants: key'space :: Num a => a
- Raylib.Constants: key't :: Num a => a
- Raylib.Constants: key'tab :: Num a => a
- Raylib.Constants: key'three :: Num a => a
- Raylib.Constants: key'two :: Num a => a
- Raylib.Constants: key'u :: Num a => a
- Raylib.Constants: key'up :: Num a => a
- Raylib.Constants: key'v :: Num a => a
- Raylib.Constants: key'volumeDown :: Num a => a
- Raylib.Constants: key'volumeUp :: Num a => a
- Raylib.Constants: key'w :: Num a => a
- Raylib.Constants: key'x :: Num a => a
- Raylib.Constants: key'y :: Num a => a
- Raylib.Constants: key'z :: Num a => a
- Raylib.Constants: key'zero :: Num a => a
- Raylib.Constants: log'all :: Num a => a
- Raylib.Constants: log'debug :: Num a => a
- Raylib.Constants: log'error :: Num a => a
- Raylib.Constants: log'fatal :: Num a => a
- Raylib.Constants: log'info :: Num a => a
- Raylib.Constants: log'none :: Num a => a
- Raylib.Constants: log'trace :: Num a => a
- Raylib.Constants: log'warning :: Num a => a
- Raylib.Constants: materialMap'albedo :: Num a => a
- Raylib.Constants: materialMap'brdf :: Num a => a
- Raylib.Constants: materialMap'cubemap :: Num a => a
- Raylib.Constants: materialMap'emission :: Num a => a
- Raylib.Constants: materialMap'height :: Num a => a
- Raylib.Constants: materialMap'irradiance :: Num a => a
- Raylib.Constants: materialMap'metalness :: Num a => a
- Raylib.Constants: materialMap'normal :: Num a => a
- Raylib.Constants: materialMap'occlusion :: Num a => a
- Raylib.Constants: materialMap'prefilter :: Num a => a
- Raylib.Constants: materialMap'roughness :: Num a => a
- Raylib.Constants: mouseButton'back :: Num a => a
- Raylib.Constants: mouseButton'extra :: Num a => a
- Raylib.Constants: mouseButton'forward :: Num a => a
- Raylib.Constants: mouseButton'left :: Num a => a
- Raylib.Constants: mouseButton'middle :: Num a => a
- Raylib.Constants: mouseButton'right :: Num a => a
- Raylib.Constants: mouseButton'side :: Num a => a
- Raylib.Constants: mouseCursor'arrow :: Num a => a
- Raylib.Constants: mouseCursor'crosshair :: Num a => a
- Raylib.Constants: mouseCursor'default :: Num a => a
- Raylib.Constants: mouseCursor'ibeam :: Num a => a
- Raylib.Constants: mouseCursor'notAllowed :: Num a => a
- Raylib.Constants: mouseCursor'pointingHand :: Num a => a
- Raylib.Constants: mouseCursor'resizeAll :: Num a => a
- Raylib.Constants: mouseCursor'resizeEW :: Num a => a
- Raylib.Constants: mouseCursor'resizeNESW :: Num a => a
- Raylib.Constants: mouseCursor'resizeNS :: Num a => a
- Raylib.Constants: mouseCursor'resizeNWSE :: Num a => a
- Raylib.Constants: npatch'ninePatch :: Num a => a
- Raylib.Constants: npatch'threePatchHorizontal :: Num a => a
- Raylib.Constants: npatch'threePatchVertical :: Num a => a
- Raylib.Constants: pixelFormat'compressedAstc4x4Rgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedAstc8x8Rgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedDxt1Rgb :: Num a => a
- Raylib.Constants: pixelFormat'compressedDxt1Rgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedDxt3Rgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedDxt5Rgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedEtc1Rgb :: Num a => a
- Raylib.Constants: pixelFormat'compressedEtc2EacRgba :: Num a => a
- Raylib.Constants: pixelFormat'compressedEtc2Rgb :: Num a => a
- Raylib.Constants: pixelFormat'compressedPvrtRgb :: Num a => a
- Raylib.Constants: pixelFormat'compressedPvrtRgba :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedGrayAlpha :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedGrayscale :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR32 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR32G32B32 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR32G32B32A32 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR4G4B4A4 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR5G5B5A1 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR5G6B5 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR8G8B8 :: Num a => a
- Raylib.Constants: pixelFormat'uncompressedR8G8B8A8 :: Num a => a
- Raylib.Constants: shaderAttrib'float :: Num a => a
- Raylib.Constants: shaderAttrib'vec2 :: Num a => a
- Raylib.Constants: shaderAttrib'vec3 :: Num a => a
- Raylib.Constants: shaderAttrib'vec4 :: Num a => a
- Raylib.Constants: shaderLoc'colorAmbient :: Num a => a
- Raylib.Constants: shaderLoc'colorDiffuse :: Num a => a
- Raylib.Constants: shaderLoc'colorSpecular :: Num a => a
- Raylib.Constants: shaderLoc'mapAlbedo :: Num a => a
- Raylib.Constants: shaderLoc'mapBrdf :: Num a => a
- Raylib.Constants: shaderLoc'mapCubemap :: Num a => a
- Raylib.Constants: shaderLoc'mapEmission :: Num a => a
- Raylib.Constants: shaderLoc'mapHeight :: Num a => a
- Raylib.Constants: shaderLoc'mapIrradiance :: Num a => a
- Raylib.Constants: shaderLoc'mapMetalness :: Num a => a
- Raylib.Constants: shaderLoc'mapNormal :: Num a => a
- Raylib.Constants: shaderLoc'mapOcclusion :: Num a => a
- Raylib.Constants: shaderLoc'mapPrefilter :: Num a => a
- Raylib.Constants: shaderLoc'mapRoughness :: Num a => a
- Raylib.Constants: shaderLoc'matrixModel :: Num a => a
- Raylib.Constants: shaderLoc'matrixMvp :: Num a => a
- Raylib.Constants: shaderLoc'matrixNormal :: Num a => a
- Raylib.Constants: shaderLoc'matrixProjection :: Num a => a
- Raylib.Constants: shaderLoc'matrixView :: Num a => a
- Raylib.Constants: shaderLoc'vectorView :: Num a => a
- Raylib.Constants: shaderLoc'vertexColor :: Num a => a
- Raylib.Constants: shaderLoc'vertexNormal :: Num a => a
- Raylib.Constants: shaderLoc'vertexPosition :: Num a => a
- Raylib.Constants: shaderLoc'vertexTangent :: Num a => a
- Raylib.Constants: shaderLoc'vertexTexcoord01 :: Num a => a
- Raylib.Constants: shaderLoc'vertexTexcoord02 :: Num a => a
- Raylib.Constants: shaderUniform'float :: Num a => a
- Raylib.Constants: shaderUniform'int :: Num a => a
- Raylib.Constants: shaderUniform'ivec2 :: Num a => a
- Raylib.Constants: shaderUniform'ivec3 :: Num a => a
- Raylib.Constants: shaderUniform'ivec4 :: Num a => a
- Raylib.Constants: shaderUniform'sampler2d :: Num a => a
- Raylib.Constants: shaderUniform'vec2 :: Num a => a
- Raylib.Constants: shaderUniform'vec3 :: Num a => a
- Raylib.Constants: shaderUniform'vec4 :: Num a => a
- Raylib.Constants: textureFilter'anisotropic16x :: Num a => a
- Raylib.Constants: textureFilter'anisotropic4x :: Num a => a
- Raylib.Constants: textureFilter'anisotropic8x :: Num a => a
- Raylib.Constants: textureFilter'bilinear :: Num a => a
- Raylib.Constants: textureFilter'point :: Num a => a
- Raylib.Constants: textureFilter'trilinear :: Num a => a
- Raylib.Constants: textureWrap'clamp :: Num a => a
- Raylib.Constants: textureWrap'mirrorClamp :: Num a => a
- Raylib.Constants: textureWrap'mirrorRepeat :: Num a => a
- Raylib.Constants: textureWrap'repeat :: Num a => a
- Raylib.Constants: type BlendMode = CUInt
- Raylib.Constants: type CameraMode = CUInt
- Raylib.Constants: type CameraProjection = CUInt
- Raylib.Constants: type ConfigFlags = CUInt
- Raylib.Constants: type CubemapLayout = CUInt
- Raylib.Constants: type FontType = CUInt
- Raylib.Constants: type GamepadAxis = CUInt
- Raylib.Constants: type GamepadButton = CUInt
- Raylib.Constants: type Gesture = CUInt
- Raylib.Constants: type KeyboardKey = CUInt
- Raylib.Constants: type MaterialMapIndex = CUInt
- Raylib.Constants: type MouseButton = CUInt
- Raylib.Constants: type MouseCursor = CUInt
- Raylib.Constants: type NPatchLayout = CUInt
- Raylib.Constants: type PixelFormat = CUInt
- Raylib.Constants: type ShaderAttributeDataType = CUInt
- Raylib.Constants: type ShaderLocationIndex = CUInt
- Raylib.Constants: type ShaderUniformDataType = CUInt
- Raylib.Constants: type TextureFilter = CUInt
- Raylib.Constants: type TextureWrap = CUInt
- Raylib.Constants: type TraceLogLevel = CUInt
+ Raylib.Types: BlendAddColors :: BlendMode
+ Raylib.Types: BlendAdditive :: BlendMode
+ Raylib.Types: BlendAlpha :: BlendMode
+ Raylib.Types: BlendAlphaPremultiply :: BlendMode
+ Raylib.Types: BlendCustom :: BlendMode
+ Raylib.Types: BlendCustomSeparate :: BlendMode
+ Raylib.Types: BlendMultiplied :: BlendMode
+ Raylib.Types: BlendSubtractColors :: BlendMode
+ Raylib.Types: CameraModeCustom :: CameraMode
+ Raylib.Types: CameraModeFirstPerson :: CameraMode
+ Raylib.Types: CameraModeFree :: CameraMode
+ Raylib.Types: CameraModeOrbital :: CameraMode
+ Raylib.Types: CameraModeThirdPerson :: CameraMode
+ Raylib.Types: CameraOrthographic :: CameraProjection
+ Raylib.Types: CameraPerspective :: CameraProjection
+ Raylib.Types: CubemapLayoutAutoDetect :: CubemapLayout
+ Raylib.Types: CubemapLayoutCrossThreeByFour :: CubemapLayout
+ Raylib.Types: CubemapLayoutCrossThreeByThree :: CubemapLayout
+ Raylib.Types: CubemapLayoutLineHorizontal :: CubemapLayout
+ Raylib.Types: CubemapLayoutLineVertical :: CubemapLayout
+ Raylib.Types: CubemapLayoutPanorama :: CubemapLayout
+ Raylib.Types: FontBitmap :: FontType
+ Raylib.Types: FontDefault :: FontType
+ Raylib.Types: FontSDF :: FontType
+ Raylib.Types: FullscreenMode :: ConfigFlag
+ Raylib.Types: GamepadAxisLeftTrigger :: GamepadAxis
+ Raylib.Types: GamepadAxisLeftX :: GamepadAxis
+ Raylib.Types: GamepadAxisLeftY :: GamepadAxis
+ Raylib.Types: GamepadAxisRightTrigger :: GamepadAxis
+ Raylib.Types: GamepadAxisRightX :: GamepadAxis
+ Raylib.Types: GamepadAxisRightY :: GamepadAxis
+ Raylib.Types: GamepadButtonLeftFaceDown :: GamepadButton
+ Raylib.Types: GamepadButtonLeftFaceLeft :: GamepadButton
+ Raylib.Types: GamepadButtonLeftFaceRight :: GamepadButton
+ Raylib.Types: GamepadButtonLeftThumb :: GamepadButton
+ Raylib.Types: GamepadButtonLeftTrigger1 :: GamepadButton
+ Raylib.Types: GamepadButtonLeftTrigger2 :: GamepadButton
+ Raylib.Types: GamepadButtonMiddle :: GamepadButton
+ Raylib.Types: GamepadButtonMiddleLeft :: GamepadButton
+ Raylib.Types: GamepadButtonMiddleRight :: GamepadButton
+ Raylib.Types: GamepadButtonRightFaceDown :: GamepadButton
+ Raylib.Types: GamepadButtonRightFaceLeft :: GamepadButton
+ Raylib.Types: GamepadButtonRightFaceRight :: GamepadButton
+ Raylib.Types: GamepadButtonRightFaceUp :: GamepadButton
+ Raylib.Types: GamepadButtonRightThumb :: GamepadButton
+ Raylib.Types: GamepadButtonRightTrigger1 :: GamepadButton
+ Raylib.Types: GamepadButtonRightTrigger2 :: GamepadButton
+ Raylib.Types: GamepadButtonUnknown :: GamepadButton
+ Raylib.Types: GamepadButtonUnknownLeftFaceUp :: GamepadButton
+ Raylib.Types: GestureDoubleTap :: Gesture
+ Raylib.Types: GestureDrag :: Gesture
+ Raylib.Types: GestureHold :: Gesture
+ Raylib.Types: GestureNone :: Gesture
+ Raylib.Types: GesturePinchIn :: Gesture
+ Raylib.Types: GesturePinchOut :: Gesture
+ Raylib.Types: GestureSwipeDown :: Gesture
+ Raylib.Types: GestureSwipeLeft :: Gesture
+ Raylib.Types: GestureSwipeRight :: Gesture
+ Raylib.Types: GestureSwipeUp :: Gesture
+ Raylib.Types: GestureTap :: Gesture
+ Raylib.Types: InterlacedHint :: ConfigFlag
+ Raylib.Types: KeyA :: KeyboardKey
+ Raylib.Types: KeyApostrophe :: KeyboardKey
+ Raylib.Types: KeyB :: KeyboardKey
+ Raylib.Types: KeyBack :: KeyboardKey
+ Raylib.Types: KeyBackslash :: KeyboardKey
+ Raylib.Types: KeyBackspace :: KeyboardKey
+ Raylib.Types: KeyC :: KeyboardKey
+ Raylib.Types: KeyCapsLock :: KeyboardKey
+ Raylib.Types: KeyComma :: KeyboardKey
+ Raylib.Types: KeyD :: KeyboardKey
+ Raylib.Types: KeyDelete :: KeyboardKey
+ Raylib.Types: KeyDown :: KeyboardKey
+ Raylib.Types: KeyE :: KeyboardKey
+ Raylib.Types: KeyEight :: KeyboardKey
+ Raylib.Types: KeyEnd :: KeyboardKey
+ Raylib.Types: KeyEnter :: KeyboardKey
+ Raylib.Types: KeyEqual :: KeyboardKey
+ Raylib.Types: KeyEscape :: KeyboardKey
+ Raylib.Types: KeyF :: KeyboardKey
+ Raylib.Types: KeyF1 :: KeyboardKey
+ Raylib.Types: KeyF10 :: KeyboardKey
+ Raylib.Types: KeyF11 :: KeyboardKey
+ Raylib.Types: KeyF12 :: KeyboardKey
+ Raylib.Types: KeyF2 :: KeyboardKey
+ Raylib.Types: KeyF3 :: KeyboardKey
+ Raylib.Types: KeyF4 :: KeyboardKey
+ Raylib.Types: KeyF5 :: KeyboardKey
+ Raylib.Types: KeyF6 :: KeyboardKey
+ Raylib.Types: KeyF7 :: KeyboardKey
+ Raylib.Types: KeyF8 :: KeyboardKey
+ Raylib.Types: KeyF9 :: KeyboardKey
+ Raylib.Types: KeyFive :: KeyboardKey
+ Raylib.Types: KeyFour :: KeyboardKey
+ Raylib.Types: KeyG :: KeyboardKey
+ Raylib.Types: KeyGrave :: KeyboardKey
+ Raylib.Types: KeyH :: KeyboardKey
+ Raylib.Types: KeyHome :: KeyboardKey
+ Raylib.Types: KeyI :: KeyboardKey
+ Raylib.Types: KeyInsert :: KeyboardKey
+ Raylib.Types: KeyJ :: KeyboardKey
+ Raylib.Types: KeyK :: KeyboardKey
+ Raylib.Types: KeyKbMenu :: KeyboardKey
+ Raylib.Types: KeyKp0 :: KeyboardKey
+ Raylib.Types: KeyKp1 :: KeyboardKey
+ Raylib.Types: KeyKp2 :: KeyboardKey
+ Raylib.Types: KeyKp3 :: KeyboardKey
+ Raylib.Types: KeyKp4 :: KeyboardKey
+ Raylib.Types: KeyKp5 :: KeyboardKey
+ Raylib.Types: KeyKp6 :: KeyboardKey
+ Raylib.Types: KeyKp7 :: KeyboardKey
+ Raylib.Types: KeyKp8 :: KeyboardKey
+ Raylib.Types: KeyKp9 :: KeyboardKey
+ Raylib.Types: KeyKpAdd :: KeyboardKey
+ Raylib.Types: KeyKpDecimal :: KeyboardKey
+ Raylib.Types: KeyKpDivide :: KeyboardKey
+ Raylib.Types: KeyKpEnter :: KeyboardKey
+ Raylib.Types: KeyKpEqual :: KeyboardKey
+ Raylib.Types: KeyKpMultiply :: KeyboardKey
+ Raylib.Types: KeyKpSubtract :: KeyboardKey
+ Raylib.Types: KeyL :: KeyboardKey
+ Raylib.Types: KeyLeft :: KeyboardKey
+ Raylib.Types: KeyLeftAlt :: KeyboardKey
+ Raylib.Types: KeyLeftBracket :: KeyboardKey
+ Raylib.Types: KeyLeftControl :: KeyboardKey
+ Raylib.Types: KeyLeftShift :: KeyboardKey
+ Raylib.Types: KeyLeftSuper :: KeyboardKey
+ Raylib.Types: KeyM :: KeyboardKey
+ Raylib.Types: KeyMenu :: KeyboardKey
+ Raylib.Types: KeyMinus :: KeyboardKey
+ Raylib.Types: KeyN :: KeyboardKey
+ Raylib.Types: KeyNine :: KeyboardKey
+ Raylib.Types: KeyNull :: KeyboardKey
+ Raylib.Types: KeyNumLock :: KeyboardKey
+ Raylib.Types: KeyO :: KeyboardKey
+ Raylib.Types: KeyOne :: KeyboardKey
+ Raylib.Types: KeyP :: KeyboardKey
+ Raylib.Types: KeyPageDown :: KeyboardKey
+ Raylib.Types: KeyPageUp :: KeyboardKey
+ Raylib.Types: KeyPause :: KeyboardKey
+ Raylib.Types: KeyPeriod :: KeyboardKey
+ Raylib.Types: KeyPrintScreen :: KeyboardKey
+ Raylib.Types: KeyQ :: KeyboardKey
+ Raylib.Types: KeyR :: KeyboardKey
+ Raylib.Types: KeyRight :: KeyboardKey
+ Raylib.Types: KeyRightAlt :: KeyboardKey
+ Raylib.Types: KeyRightBracket :: KeyboardKey
+ Raylib.Types: KeyRightControl :: KeyboardKey
+ Raylib.Types: KeyRightShift :: KeyboardKey
+ Raylib.Types: KeyRightSuper :: KeyboardKey
+ Raylib.Types: KeyS :: KeyboardKey
+ Raylib.Types: KeyScrollLock :: KeyboardKey
+ Raylib.Types: KeySemicolon :: KeyboardKey
+ Raylib.Types: KeySeven :: KeyboardKey
+ Raylib.Types: KeySix :: KeyboardKey
+ Raylib.Types: KeySlash :: KeyboardKey
+ Raylib.Types: KeySpace :: KeyboardKey
+ Raylib.Types: KeyT :: KeyboardKey
+ Raylib.Types: KeyTab :: KeyboardKey
+ Raylib.Types: KeyThree :: KeyboardKey
+ Raylib.Types: KeyTwo :: KeyboardKey
+ Raylib.Types: KeyU :: KeyboardKey
+ Raylib.Types: KeyUp :: KeyboardKey
+ Raylib.Types: KeyV :: KeyboardKey
+ Raylib.Types: KeyVolumeDown :: KeyboardKey
+ Raylib.Types: KeyVolumeUp :: KeyboardKey
+ Raylib.Types: KeyW :: KeyboardKey
+ Raylib.Types: KeyX :: KeyboardKey
+ Raylib.Types: KeyY :: KeyboardKey
+ Raylib.Types: KeyZ :: KeyboardKey
+ Raylib.Types: KeyZero :: KeyboardKey
+ Raylib.Types: LogAll :: TraceLogLevel
+ Raylib.Types: LogDebug :: TraceLogLevel
+ Raylib.Types: LogError :: TraceLogLevel
+ Raylib.Types: LogFatal :: TraceLogLevel
+ Raylib.Types: LogInfo :: TraceLogLevel
+ Raylib.Types: LogNone :: TraceLogLevel
+ Raylib.Types: LogTrace :: TraceLogLevel
+ Raylib.Types: LogWarning :: TraceLogLevel
+ Raylib.Types: MaterialMapAlbedo :: MaterialMapIndex
+ Raylib.Types: MaterialMapBrdf :: MaterialMapIndex
+ Raylib.Types: MaterialMapCubemap :: MaterialMapIndex
+ Raylib.Types: MaterialMapEmission :: MaterialMapIndex
+ Raylib.Types: MaterialMapHeight :: MaterialMapIndex
+ Raylib.Types: MaterialMapIrradiance :: MaterialMapIndex
+ Raylib.Types: MaterialMapMetalness :: MaterialMapIndex
+ Raylib.Types: MaterialMapNormal :: MaterialMapIndex
+ Raylib.Types: MaterialMapOcclusion :: MaterialMapIndex
+ Raylib.Types: MaterialMapPrefilter :: MaterialMapIndex
+ Raylib.Types: MaterialMapRoughness :: MaterialMapIndex
+ Raylib.Types: MouseButtonBack :: MouseButton
+ Raylib.Types: MouseButtonExtra :: MouseButton
+ Raylib.Types: MouseButtonForward :: MouseButton
+ Raylib.Types: MouseButtonLeft :: MouseButton
+ Raylib.Types: MouseButtonMiddle :: MouseButton
+ Raylib.Types: MouseButtonRight :: MouseButton
+ Raylib.Types: MouseButtonSide :: MouseButton
+ Raylib.Types: MouseCursorArrow :: MouseCursor
+ Raylib.Types: MouseCursorCrosshair :: MouseCursor
+ Raylib.Types: MouseCursorDefault :: MouseCursor
+ Raylib.Types: MouseCursorIbeam :: MouseCursor
+ Raylib.Types: MouseCursorNotAllowed :: MouseCursor
+ Raylib.Types: MouseCursorPointingHand :: MouseCursor
+ Raylib.Types: MouseCursorResizeAll :: MouseCursor
+ Raylib.Types: MouseCursorResizeEW :: MouseCursor
+ Raylib.Types: MouseCursorResizeNESW :: MouseCursor
+ Raylib.Types: MouseCursorResizeNS :: MouseCursor
+ Raylib.Types: MouseCursorResizeNWSE :: MouseCursor
+ Raylib.Types: Msaa4xHint :: ConfigFlag
+ Raylib.Types: NPatchNinePatch :: NPatchLayout
+ Raylib.Types: NPatchThreePatchHorizontal :: NPatchLayout
+ Raylib.Types: NPatchThreePatchVertical :: NPatchLayout
+ Raylib.Types: PixelFormatCompressedAstc4x4Rgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedAstc8x8Rgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedDxt1Rgb :: PixelFormat
+ Raylib.Types: PixelFormatCompressedDxt1Rgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedDxt3Rgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedDxt5Rgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedEtc1Rgb :: PixelFormat
+ Raylib.Types: PixelFormatCompressedEtc2EacRgba :: PixelFormat
+ Raylib.Types: PixelFormatCompressedEtc2Rgb :: PixelFormat
+ Raylib.Types: PixelFormatCompressedPvrtRgb :: PixelFormat
+ Raylib.Types: PixelFormatCompressedPvrtRgba :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedGrayAlpha :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedGrayscale :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR32 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR32G32B32 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR32G32B32A32 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR4G4B4A4 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR5G5B5A1 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR5G6B5 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR8G8B8 :: PixelFormat
+ Raylib.Types: PixelFormatUncompressedR8G8B8A8 :: PixelFormat
+ Raylib.Types: ShaderAttribFloat :: ShaderAttributeDataType
+ Raylib.Types: ShaderAttribVec2 :: ShaderAttributeDataType
+ Raylib.Types: ShaderAttribVec3 :: ShaderAttributeDataType
+ Raylib.Types: ShaderAttribVec4 :: ShaderAttributeDataType
+ Raylib.Types: ShaderLocColorAmbient :: ShaderLocationIndex
+ Raylib.Types: ShaderLocColorDiffuse :: ShaderLocationIndex
+ Raylib.Types: ShaderLocColorSpecular :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapAlbedo :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapBrdf :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapCubemap :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapEmission :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapHeight :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapIrradiance :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapMetalness :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapNormal :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapOcclusion :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapPrefilter :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMapRoughness :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMatrixModel :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMatrixMvp :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMatrixNormal :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMatrixProjection :: ShaderLocationIndex
+ Raylib.Types: ShaderLocMatrixView :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVectorView :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexColor :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexNormal :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexPosition :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexTangent :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexTexcoord01 :: ShaderLocationIndex
+ Raylib.Types: ShaderLocVertexTexcoord02 :: ShaderLocationIndex
+ Raylib.Types: ShaderUniformFloat :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformInt :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformIvec2 :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformIvec3 :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformIvec4 :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformSampler2d :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformVec2 :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformVec3 :: ShaderUniformDataType
+ Raylib.Types: ShaderUniformVec4 :: ShaderUniformDataType
+ Raylib.Types: TextureFilterAnisotropic16x :: TextureFilter
+ Raylib.Types: TextureFilterAnisotropic4x :: TextureFilter
+ Raylib.Types: TextureFilterAnisotropic8x :: TextureFilter
+ Raylib.Types: TextureFilterBilinear :: TextureFilter
+ Raylib.Types: TextureFilterPoint :: TextureFilter
+ Raylib.Types: TextureFilterTrilinear :: TextureFilter
+ Raylib.Types: TextureWrapClamp :: TextureWrap
+ Raylib.Types: TextureWrapMirrorClamp :: TextureWrap
+ Raylib.Types: TextureWrapMirrorRepeat :: TextureWrap
+ Raylib.Types: TextureWrapRepeat :: TextureWrap
+ Raylib.Types: VsyncHint :: ConfigFlag
+ Raylib.Types: WindowAlwaysRun :: ConfigFlag
+ Raylib.Types: WindowHidden :: ConfigFlag
+ Raylib.Types: WindowHighdpi :: ConfigFlag
+ Raylib.Types: WindowMaximized :: ConfigFlag
+ Raylib.Types: WindowMinimized :: ConfigFlag
+ Raylib.Types: WindowMousePassthrough :: ConfigFlag
+ Raylib.Types: WindowResizable :: ConfigFlag
+ Raylib.Types: WindowTopmost :: ConfigFlag
+ Raylib.Types: WindowTransparent :: ConfigFlag
+ Raylib.Types: WindowUndecorated :: ConfigFlag
+ Raylib.Types: WindowUnfocused :: ConfigFlag
+ Raylib.Types: data BlendMode
+ Raylib.Types: data CameraMode
+ Raylib.Types: data CameraProjection
+ Raylib.Types: data ConfigFlag
+ Raylib.Types: data CubemapLayout
+ Raylib.Types: data FontType
+ Raylib.Types: data GamepadAxis
+ Raylib.Types: data GamepadButton
+ Raylib.Types: data Gesture
+ Raylib.Types: data KeyboardKey
+ Raylib.Types: data MaterialMapIndex
+ Raylib.Types: data MouseButton
+ Raylib.Types: data MouseCursor
+ Raylib.Types: data NPatchLayout
+ Raylib.Types: data PixelFormat
+ Raylib.Types: data ShaderAttributeDataType
+ Raylib.Types: data ShaderLocationIndex
+ Raylib.Types: data ShaderUniformDataType
+ Raylib.Types: data TextureFilter
+ Raylib.Types: data TextureWrap
+ Raylib.Types: data TraceLogLevel
+ Raylib.Types: instance Foreign.Storable.Storable Raylib.Types.CameraProjection
+ Raylib.Types: instance Foreign.Storable.Storable Raylib.Types.NPatchLayout
+ Raylib.Types: instance Foreign.Storable.Storable Raylib.Types.PixelFormat
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.CameraProjection
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.ConfigFlag
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.GamepadAxis
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.GamepadButton
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.KeyboardKey
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.MaterialMapIndex
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.MouseButton
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.MouseCursor
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.NPatchLayout
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.PixelFormat
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.ShaderAttributeDataType
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.ShaderLocationIndex
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.ShaderUniformDataType
+ Raylib.Types: instance GHC.Classes.Eq Raylib.Types.TraceLogLevel
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.BlendMode
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.CameraMode
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.CameraProjection
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.ConfigFlag
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.CubemapLayout
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.FontType
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.GamepadAxis
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.GamepadButton
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.Gesture
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.KeyboardKey
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.MaterialMapIndex
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.MouseButton
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.MouseCursor
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.NPatchLayout
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.PixelFormat
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.ShaderAttributeDataType
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.ShaderLocationIndex
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.ShaderUniformDataType
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.TextureFilter
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.TextureWrap
+ Raylib.Types: instance GHC.Enum.Enum Raylib.Types.TraceLogLevel
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.CameraProjection
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.ConfigFlag
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.GamepadAxis
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.GamepadButton
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.Gesture
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.KeyboardKey
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.MaterialMapIndex
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.MouseButton
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.MouseCursor
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.NPatchLayout
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.PixelFormat
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.ShaderAttributeDataType
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.ShaderLocationIndex
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.ShaderUniformDataType
+ Raylib.Types: instance GHC.Show.Show Raylib.Types.TraceLogLevel
- Raylib: beginBlendMode :: Int -> IO ()
+ Raylib: beginBlendMode :: BlendMode -> IO ()
- Raylib: clearWindowState :: Integer -> IO ()
+ Raylib: clearWindowState :: [ConfigFlag] -> IO ()
- Raylib: drawCapsule :: Vector3 -> Vector3 -> CFloat -> CInt -> CInt -> Color -> IO ()
+ Raylib: drawCapsule :: Vector3 -> Vector3 -> CFloat -> Int -> Int -> Color -> IO ()
- Raylib: drawCapsuleWires :: Vector3 -> Vector3 -> CFloat -> CInt -> CInt -> Color -> IO ()
+ Raylib: drawCapsuleWires :: Vector3 -> Vector3 -> CFloat -> Int -> Int -> Color -> IO ()
- Raylib: drawTexture :: Texture -> CInt -> CInt -> Color -> IO ()
+ Raylib: drawTexture :: Texture -> Int -> Int -> Color -> IO ()
- Raylib: getGamepadAxisMovement :: Int -> Int -> IO Float
+ Raylib: getGamepadAxisMovement :: Int -> GamepadAxis -> IO Float
- Raylib: getGamepadButtonPressed :: IO Int
+ Raylib: getGamepadButtonPressed :: IO GamepadButton
- Raylib: getGestureDetected :: IO Int
+ Raylib: getGestureDetected :: IO Gesture
- Raylib: getKeyPressed :: IO Int
+ Raylib: getKeyPressed :: IO KeyboardKey
- Raylib: getPixelColor :: Ptr () -> Int -> IO Color
+ Raylib: getPixelColor :: Ptr () -> PixelFormat -> IO Color
- Raylib: getPixelDataSize :: Int -> Int -> Int -> Int
+ Raylib: getPixelDataSize :: Int -> Int -> PixelFormat -> Int
- Raylib: imageFormat :: Image -> Int -> IO Image
+ Raylib: imageFormat :: Image -> PixelFormat -> IO Image
- Raylib: isGamepadButtonDown :: Int -> Int -> IO Bool
+ Raylib: isGamepadButtonDown :: Int -> GamepadButton -> IO Bool
- Raylib: isGamepadButtonPressed :: Int -> Int -> IO Bool
+ Raylib: isGamepadButtonPressed :: Int -> GamepadButton -> IO Bool
- Raylib: isGamepadButtonReleased :: Int -> Int -> IO Bool
+ Raylib: isGamepadButtonReleased :: Int -> GamepadButton -> IO Bool
- Raylib: isGamepadButtonUp :: Int -> Int -> IO Bool
+ Raylib: isGamepadButtonUp :: Int -> GamepadButton -> IO Bool
- Raylib: isGestureDetected :: Int -> IO Bool
+ Raylib: isGestureDetected :: Gesture -> IO Bool
- Raylib: isKeyDown :: Int -> IO Bool
+ Raylib: isKeyDown :: KeyboardKey -> IO Bool
- Raylib: isKeyPressed :: Int -> IO Bool
+ Raylib: isKeyPressed :: KeyboardKey -> IO Bool
- Raylib: isKeyReleased :: Int -> IO Bool
+ Raylib: isKeyReleased :: KeyboardKey -> IO Bool
- Raylib: isKeyUp :: Int -> IO Bool
+ Raylib: isKeyUp :: KeyboardKey -> IO Bool
- Raylib: isMouseButtonDown :: Int -> IO Bool
+ Raylib: isMouseButtonDown :: MouseButton -> IO Bool
- Raylib: isMouseButtonPressed :: Int -> IO Bool
+ Raylib: isMouseButtonPressed :: MouseButton -> IO Bool
- Raylib: isMouseButtonReleased :: Int -> IO Bool
+ Raylib: isMouseButtonReleased :: MouseButton -> IO Bool
- Raylib: isMouseButtonUp :: Int -> IO Bool
+ Raylib: isMouseButtonUp :: MouseButton -> IO Bool
- Raylib: isWindowState :: Integer -> IO Bool
+ Raylib: isWindowState :: [ConfigFlag] -> IO Bool
- Raylib: loadFontData :: [Integer] -> Int -> [Int] -> Int -> Int -> IO GlyphInfo
+ Raylib: loadFontData :: [Integer] -> Int -> [Int] -> Int -> FontType -> IO GlyphInfo
- Raylib: loadTextureCubemap :: Image -> Int -> IO Texture
+ Raylib: loadTextureCubemap :: Image -> CubemapLayout -> IO Texture
- Raylib: setCameraMode :: Camera3D -> Int -> IO ()
+ Raylib: setCameraMode :: Camera3D -> CameraMode -> IO ()
- Raylib: setExitKey :: Int -> IO ()
+ Raylib: setExitKey :: KeyboardKey -> IO ()
- Raylib: setMouseCursor :: Int -> IO ()
+ Raylib: setMouseCursor :: MouseCursor -> IO ()
- Raylib: setPixelColor :: Ptr () -> Color -> Int -> IO ()
+ Raylib: setPixelColor :: Ptr () -> Color -> PixelFormat -> IO ()
- Raylib: setShaderValue :: Shader -> Int -> Ptr () -> Int -> IO ()
+ Raylib: setShaderValue :: Shader -> ShaderLocationIndex -> Ptr () -> ShaderUniformDataType -> IO ()
- Raylib: setShaderValueMatrix :: Shader -> Int -> Matrix -> IO ()
+ Raylib: setShaderValueMatrix :: Shader -> ShaderLocationIndex -> Matrix -> IO ()
- Raylib: setShaderValueTexture :: Shader -> Int -> Texture -> IO ()
+ Raylib: setShaderValueTexture :: Shader -> ShaderLocationIndex -> Texture -> IO ()
- Raylib: setShaderValueV :: Shader -> Int -> Ptr () -> Int -> Int -> IO ()
+ Raylib: setShaderValueV :: Shader -> ShaderLocationIndex -> Ptr () -> ShaderUniformDataType -> Int -> IO ()
- Raylib: setTextureFilter :: Texture -> Int -> IO Texture
+ Raylib: setTextureFilter :: Texture -> TextureFilter -> IO Texture
- Raylib: setTextureWrap :: Texture -> Int -> IO Texture
+ Raylib: setTextureWrap :: Texture -> TextureWrap -> IO Texture
- Raylib: setTraceLogLevel :: Int -> IO ()
+ Raylib: setTraceLogLevel :: TraceLogLevel -> IO ()
- Raylib: setWindowState :: Integer -> IO ()
+ Raylib: setWindowState :: [ConfigFlag] -> IO ()
- Raylib: traceLog :: Int -> String -> IO ()
+ Raylib: traceLog :: TraceLogLevel -> String -> IO ()
- Raylib.Types: Camera3D :: Vector3 -> Vector3 -> Vector3 -> CFloat -> CInt -> Camera3D
+ Raylib.Types: Camera3D :: Vector3 -> Vector3 -> Vector3 -> CFloat -> CameraProjection -> Camera3D
- Raylib.Types: Image :: Ptr () -> CInt -> CInt -> CInt -> CInt -> Image
+ Raylib.Types: Image :: Ptr () -> CInt -> CInt -> CInt -> PixelFormat -> Image
- Raylib.Types: NPatchInfo :: Rectangle -> CInt -> CInt -> CInt -> CInt -> CInt -> NPatchInfo
+ Raylib.Types: NPatchInfo :: Rectangle -> CInt -> CInt -> CInt -> CInt -> NPatchLayout -> NPatchInfo
- Raylib.Types: Texture :: CUInt -> CInt -> CInt -> CInt -> CInt -> Texture
+ Raylib.Types: Texture :: CUInt -> CInt -> CInt -> CInt -> PixelFormat -> Texture
- Raylib.Types: [camera3D'projection] :: Camera3D -> CInt
+ Raylib.Types: [camera3D'projection] :: Camera3D -> CameraProjection
- Raylib.Types: [image'format] :: Image -> CInt
+ Raylib.Types: [image'format] :: Image -> PixelFormat
- Raylib.Types: [nPatchinfo'layout] :: NPatchInfo -> CInt
+ Raylib.Types: [nPatchinfo'layout] :: NPatchInfo -> NPatchLayout
- Raylib.Types: [texture'format] :: Texture -> CInt
+ Raylib.Types: [texture'format] :: Texture -> PixelFormat
Files
- CHANGELOG.md +13/−1
- h-raylib.cabal +1/−2
- src/Raylib.hs +100/−82
- src/Raylib/Constants.hs +0/−1224
- src/Raylib/Types.hs +650/−5
- src/Raylib/Util.hs +9/−3
CHANGELOG.md view
@@ -12,4 +12,16 @@ ## Version 4.5.0.6 _24 November 2022_ -- Fixed `Font` marshalling ([#6](https://github.com/Anut-py/h-raylib/issues/6)) + +\[[#6](https://github.com/Anut-py/h-raylib/issues/6)\] + +- Fixed `Font` marshalling + +## Version 4.5.0.7 +_26 November 2022_ + +\[[#7](https://github.com/Anut-py/h-raylib/pull/7)\] + +- Removed all constants that were enums in the original C API and replaced them with sum types deriving Enum +- Removed some CInt usage in the main API +- Removed `Raylib.Constants`
h-raylib.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: h-raylib -version: 4.5.0.6 +version: 4.5.0.7 synopsis: Raylib bindings for Haskell category: graphics description: @@ -65,7 +65,6 @@ exposed-modules: Raylib Raylib.Colors - Raylib.Constants Raylib.Types other-modules: Raylib.Util
src/Raylib.hs view
@@ -63,8 +63,25 @@ VrDeviceInfo, VrStereoConfig, Wave (wave'channels, wave'frameCount), + MouseButton, + MouseCursor, + TraceLogLevel, + CameraMode, + Gesture, + BlendMode, + CubemapLayout, + FontType, + TextureWrap, + TextureFilter, + ConfigFlag, + KeyboardKey, + GamepadButton, + GamepadAxis, + ShaderLocationIndex, + ShaderUniformDataType, + PixelFormat ) -import Raylib.Util (pop, withArray2D) +import Raylib.Util (pop, withArray2D, configsToBitflag) import Prelude hiding (length) -- Haskell doesn't support varargs in foreign calls, so these functions are impossible to call from FFI @@ -226,8 +243,8 @@ c'isWindowState :: CUInt -> IO CBool -isWindowState :: Integer -> IO Bool -isWindowState flag = toBool <$> c'isWindowState (fromIntegral flag) +isWindowState :: [ConfigFlag] -> IO Bool +isWindowState flags = toBool <$> c'isWindowState (fromIntegral $ configsToBitflag flags) foreign import ccall safe "raylib.h &IsWindowState" p'isWindowState :: @@ -237,8 +254,8 @@ c'setWindowState :: CUInt -> IO () -setWindowState :: Integer -> IO () -setWindowState = c'setWindowState . fromIntegral +setWindowState :: [ConfigFlag] -> IO () +setWindowState = c'setWindowState . fromIntegral . configsToBitflag foreign import ccall safe "raylib.h &SetWindowState" p'setWindowState :: @@ -248,8 +265,8 @@ c'clearWindowState :: CUInt -> IO () -clearWindowState :: Integer -> IO () -clearWindowState = c'clearWindowState . fromIntegral +clearWindowState :: [ConfigFlag] -> IO () +clearWindowState = c'clearWindowState . fromIntegral . configsToBitflag foreign import ccall safe "raylib.h &ClearWindowState" p'clearWindowState :: @@ -745,8 +762,8 @@ c'beginBlendMode :: CInt -> IO () -beginBlendMode :: Int -> IO () -beginBlendMode = c'beginBlendMode . fromIntegral +beginBlendMode :: BlendMode -> IO () +beginBlendMode = c'beginBlendMode . fromIntegral . fromEnum foreign import ccall safe "raylib.h &BeginBlendMode" p'beginBlendMode :: @@ -852,8 +869,10 @@ foreign import ccall safe "bindings.h SetShaderValue_" c'setShaderValue :: Ptr Raylib.Types.Shader -> CInt -> Ptr () -> CInt -> IO () -setShaderValue :: Raylib.Types.Shader -> Int -> Ptr () -> Int -> IO () -setShaderValue shader locIndex value uniformType = with shader (\s -> c'setShaderValue s (fromIntegral locIndex) value (fromIntegral uniformType)) +-- TODO: This `ShaderLocationIndex` might be a wrong type, this should be examined at a later date +-- This goes for the other functions below as well using it +setShaderValue :: Raylib.Types.Shader -> ShaderLocationIndex -> Ptr () -> ShaderUniformDataType -> IO () +setShaderValue shader locIndex value uniformType = with shader (\s -> c'setShaderValue s (fromIntegral $ fromEnum locIndex) value (fromIntegral $ fromEnum uniformType)) foreign import ccall safe "raylib.h &SetShaderValue" p'setShaderValue :: @@ -861,8 +880,8 @@ foreign import ccall safe "bindings.h SetShaderValueV_" c'setShaderValueV :: Ptr Raylib.Types.Shader -> CInt -> Ptr () -> CInt -> CInt -> IO () -setShaderValueV :: Raylib.Types.Shader -> Int -> Ptr () -> Int -> Int -> IO () -setShaderValueV shader locIndex value uniformType count = with shader (\s -> c'setShaderValueV s (fromIntegral locIndex) value (fromIntegral uniformType) (fromIntegral count)) +setShaderValueV :: Raylib.Types.Shader -> ShaderLocationIndex -> Ptr () -> ShaderUniformDataType -> Int -> IO () +setShaderValueV shader locIndex value uniformType count = with shader (\s -> c'setShaderValueV s (fromIntegral $ fromEnum locIndex) value (fromIntegral $ fromEnum uniformType) (fromIntegral count)) foreign import ccall safe "raylib.h &SetShaderValueV" p'setShaderValueV :: @@ -870,8 +889,8 @@ foreign import ccall safe "bindings.h SetShaderValueMatrix_" c'setShaderValueMatrix :: Ptr Raylib.Types.Shader -> CInt -> Ptr Raylib.Types.Matrix -> IO () -setShaderValueMatrix :: Raylib.Types.Shader -> Int -> Raylib.Types.Matrix -> IO () -setShaderValueMatrix shader locIndex mat = with shader (\s -> with mat (c'setShaderValueMatrix s (fromIntegral locIndex))) +setShaderValueMatrix :: Raylib.Types.Shader -> ShaderLocationIndex -> Raylib.Types.Matrix -> IO () +setShaderValueMatrix shader locIndex mat = with shader (\s -> with mat (c'setShaderValueMatrix s (fromIntegral $ fromEnum locIndex))) foreign import ccall safe "raylib.h &SetShaderValueMatrix" p'setShaderValueMatrix :: @@ -879,8 +898,8 @@ foreign import ccall safe "bindings.h SetShaderValueTexture_" c'setShaderValueTexture :: Ptr Raylib.Types.Shader -> CInt -> Ptr Raylib.Types.Texture -> IO () -setShaderValueTexture :: Raylib.Types.Shader -> Int -> Raylib.Types.Texture -> IO () -setShaderValueTexture shader locIndex tex = with shader (\s -> with tex (c'setShaderValueTexture s (fromIntegral locIndex))) +setShaderValueTexture :: Raylib.Types.Shader -> ShaderLocationIndex -> Raylib.Types.Texture -> IO () +setShaderValueTexture shader locIndex tex = with shader (\s -> with tex (c'setShaderValueTexture s (fromIntegral $ fromEnum locIndex))) foreign import ccall safe "raylib.h &SetShaderValueTexture" p'setShaderValueTexture :: @@ -1050,8 +1069,8 @@ c'traceLog :: CInt -> CString -> IO () -- Uses varags, can't implement complete functionality -traceLog :: Int -> String -> IO () -traceLog logLevel text = withCString text $ c'traceLog $ fromIntegral logLevel +traceLog :: TraceLogLevel -> String -> IO () +traceLog logLevel text = withCString text $ c'traceLog $ fromIntegral $ fromEnum logLevel foreign import ccall safe "raylib.h &TraceLog" p'traceLog :: @@ -1061,8 +1080,8 @@ c'setTraceLogLevel :: CInt -> IO () -setTraceLogLevel :: Int -> IO () -setTraceLogLevel logLevel = c'setTraceLogLevel $ fromIntegral logLevel +setTraceLogLevel :: TraceLogLevel -> IO () +setTraceLogLevel = c'setTraceLogLevel . fromIntegral . fromEnum foreign import ccall safe "raylib.h &SetTraceLogLevel" p'setTraceLogLevel :: @@ -1548,8 +1567,8 @@ c'isKeyPressed :: CInt -> IO CBool -isKeyPressed :: Int -> IO Bool -isKeyPressed key = toBool <$> c'isKeyPressed (fromIntegral key) +isKeyPressed :: KeyboardKey -> IO Bool +isKeyPressed key = toBool <$> c'isKeyPressed (fromIntegral $ fromEnum key) foreign import ccall safe "raylib.h &IsKeyPressed" p'isKeyPressed :: @@ -1559,8 +1578,8 @@ c'isKeyDown :: CInt -> IO CBool -isKeyDown :: Int -> IO Bool -isKeyDown key = toBool <$> c'isKeyDown (fromIntegral key) +isKeyDown :: KeyboardKey -> IO Bool +isKeyDown key = toBool <$> c'isKeyDown (fromIntegral $ fromEnum key) foreign import ccall safe "raylib.h &IsKeyDown" p'isKeyDown :: @@ -1570,8 +1589,8 @@ c'isKeyReleased :: CInt -> IO CBool -isKeyReleased :: Int -> IO Bool -isKeyReleased key = toBool <$> c'isKeyReleased (fromIntegral key) +isKeyReleased :: KeyboardKey -> IO Bool +isKeyReleased key = toBool <$> c'isKeyReleased (fromIntegral $ fromEnum key) foreign import ccall safe "raylib.h &IsKeyReleased" p'isKeyReleased :: @@ -1581,8 +1600,8 @@ c'isKeyUp :: CInt -> IO CBool -isKeyUp :: Int -> IO Bool -isKeyUp key = toBool <$> c'isKeyUp (fromIntegral key) +isKeyUp :: KeyboardKey -> IO Bool +isKeyUp key = toBool <$> c'isKeyUp (fromIntegral $ fromEnum key) foreign import ccall safe "raylib.h &IsKeyUp" p'isKeyUp :: @@ -1592,8 +1611,8 @@ c'setExitKey :: CInt -> IO () -setExitKey :: Int -> IO () -setExitKey = c'setExitKey . fromIntegral +setExitKey :: KeyboardKey -> IO () +setExitKey = c'setExitKey . fromIntegral . fromEnum foreign import ccall safe "raylib.h &SetExitKey" p'setExitKey :: @@ -1603,8 +1622,8 @@ c'getKeyPressed :: IO CInt -getKeyPressed :: IO Int -getKeyPressed = fromIntegral <$> c'getKeyPressed +getKeyPressed :: IO KeyboardKey +getKeyPressed = toEnum . fromIntegral <$> c'getKeyPressed foreign import ccall safe "raylib.h &GetKeyPressed" p'getKeyPressed :: @@ -1647,8 +1666,8 @@ c'isGamepadButtonPressed :: CInt -> CInt -> IO CBool -isGamepadButtonPressed :: Int -> Int -> IO Bool -isGamepadButtonPressed gamepad button = toBool <$> c'isGamepadButtonPressed (fromIntegral gamepad) (fromIntegral button) +isGamepadButtonPressed :: Int -> GamepadButton -> IO Bool +isGamepadButtonPressed gamepad button = toBool <$> c'isGamepadButtonPressed (fromIntegral gamepad) (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsGamepadButtonPressed" p'isGamepadButtonPressed :: @@ -1658,8 +1677,8 @@ c'isGamepadButtonDown :: CInt -> CInt -> IO CBool -isGamepadButtonDown :: Int -> Int -> IO Bool -isGamepadButtonDown gamepad button = toBool <$> c'isGamepadButtonDown (fromIntegral gamepad) (fromIntegral button) +isGamepadButtonDown :: Int -> GamepadButton -> IO Bool +isGamepadButtonDown gamepad button = toBool <$> c'isGamepadButtonDown (fromIntegral gamepad) (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsGamepadButtonDown" p'isGamepadButtonDown :: @@ -1669,8 +1688,8 @@ c'isGamepadButtonReleased :: CInt -> CInt -> IO CBool -isGamepadButtonReleased :: Int -> Int -> IO Bool -isGamepadButtonReleased gamepad button = toBool <$> c'isGamepadButtonReleased (fromIntegral gamepad) (fromIntegral button) +isGamepadButtonReleased :: Int -> GamepadButton -> IO Bool +isGamepadButtonReleased gamepad button = toBool <$> c'isGamepadButtonReleased (fromIntegral gamepad) (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsGamepadButtonReleased" p'isGamepadButtonReleased :: @@ -1680,8 +1699,8 @@ c'isGamepadButtonUp :: CInt -> CInt -> IO CBool -isGamepadButtonUp :: Int -> Int -> IO Bool -isGamepadButtonUp gamepad button = toBool <$> c'isGamepadButtonUp (fromIntegral gamepad) (fromIntegral button) +isGamepadButtonUp :: Int -> GamepadButton -> IO Bool +isGamepadButtonUp gamepad button = toBool <$> c'isGamepadButtonUp (fromIntegral gamepad) (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsGamepadButtonUp" p'isGamepadButtonUp :: @@ -1691,8 +1710,8 @@ c'getGamepadButtonPressed :: IO CInt -getGamepadButtonPressed :: IO Int -getGamepadButtonPressed = fromIntegral <$> c'getGamepadButtonPressed +getGamepadButtonPressed :: IO GamepadButton +getGamepadButtonPressed = toEnum . fromIntegral <$> c'getGamepadButtonPressed foreign import ccall safe "raylib.h &GetGamepadButtonPressed" p'getGamepadButtonPressed :: @@ -1713,8 +1732,8 @@ c'getGamepadAxisMovement :: CInt -> CInt -> IO CFloat -getGamepadAxisMovement :: Int -> Int -> IO Float -getGamepadAxisMovement gamepad axis = realToFrac <$> c'getGamepadAxisMovement (fromIntegral gamepad) (fromIntegral axis) +getGamepadAxisMovement :: Int -> GamepadAxis -> IO Float +getGamepadAxisMovement gamepad axis = realToFrac <$> c'getGamepadAxisMovement (fromIntegral gamepad) (fromIntegral $ fromEnum axis) foreign import ccall safe "raylib.h &GetGamepadAxisMovement" p'getGamepadAxisMovement :: @@ -1735,8 +1754,8 @@ c'isMouseButtonPressed :: CInt -> IO CBool -isMouseButtonPressed :: Int -> IO Bool -isMouseButtonPressed button = toBool <$> c'isMouseButtonPressed (fromIntegral button) +isMouseButtonPressed :: MouseButton -> IO Bool +isMouseButtonPressed button = toBool <$> c'isMouseButtonPressed (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsMouseButtonPressed" p'isMouseButtonPressed :: @@ -1746,8 +1765,8 @@ c'isMouseButtonDown :: CInt -> IO CBool -isMouseButtonDown :: Int -> IO Bool -isMouseButtonDown button = toBool <$> c'isMouseButtonDown (fromIntegral button) +isMouseButtonDown :: MouseButton -> IO Bool +isMouseButtonDown button = toBool <$> c'isMouseButtonDown (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsMouseButtonDown" p'isMouseButtonDown :: @@ -1757,8 +1776,8 @@ c'isMouseButtonReleased :: CInt -> IO CBool -isMouseButtonReleased :: Int -> IO Bool -isMouseButtonReleased button = toBool <$> c'isMouseButtonReleased (fromIntegral button) +isMouseButtonReleased :: MouseButton -> IO Bool +isMouseButtonReleased button = toBool <$> c'isMouseButtonReleased (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsMouseButtonReleased" p'isMouseButtonReleased :: @@ -1768,8 +1787,8 @@ c'isMouseButtonUp :: CInt -> IO CBool -isMouseButtonUp :: Int -> IO Bool -isMouseButtonUp button = toBool <$> c'isMouseButtonUp (fromIntegral button) +isMouseButtonUp :: MouseButton -> IO Bool +isMouseButtonUp button = toBool <$> c'isMouseButtonUp (fromIntegral $ fromEnum button) foreign import ccall safe "raylib.h &IsMouseButtonUp" p'isMouseButtonUp :: @@ -1872,8 +1891,8 @@ c'setMouseCursor :: CInt -> IO () -setMouseCursor :: Int -> IO () -setMouseCursor cursor = c'setMouseCursor $ fromIntegral cursor +setMouseCursor :: MouseCursor -> IO () +setMouseCursor cursor = c'setMouseCursor . fromIntegral $ fromEnum cursor foreign import ccall safe "raylib.h &SetMouseCursor" p'setMouseCursor :: @@ -1947,8 +1966,8 @@ c'isGestureDetected :: CInt -> IO CBool -isGestureDetected :: Int -> IO Bool -isGestureDetected gesture = toBool <$> c'isGestureDetected (fromIntegral gesture) +isGestureDetected :: Gesture -> IO Bool +isGestureDetected gesture = toBool <$> c'isGestureDetected (fromIntegral $ fromEnum gesture) foreign import ccall safe "raylib.h &IsGestureDetected" p'isGestureDetected :: @@ -1958,8 +1977,8 @@ c'getGestureDetected :: IO CInt -getGestureDetected :: IO Int -getGestureDetected = fromIntegral <$> c'getGestureDetected +getGestureDetected :: IO Gesture +getGestureDetected = toEnum . fromIntegral <$> c'getGestureDetected foreign import ccall safe "raylib.h &GetGestureDetected" p'getGestureDetected :: @@ -2018,8 +2037,8 @@ foreign import ccall safe "bindings.h SetCameraMode_" c'setCameraMode :: Ptr Raylib.Types.Camera3D -> CInt -> IO () -setCameraMode :: Raylib.Types.Camera3D -> Int -> IO () -setCameraMode camera mode = with camera (\c -> c'setCameraMode c (fromIntegral mode)) +setCameraMode :: Raylib.Types.Camera3D -> CameraMode -> IO () +setCameraMode camera mode = with camera (\c -> c'setCameraMode c (fromIntegral $ fromEnum mode)) foreign import ccall safe "raylib.h &SetCameraMode" p'setCameraMode :: @@ -2684,7 +2703,7 @@ loadImageRaw :: String -> Int -> Int -> Int -> Int -> IO Raylib.Types.Image loadImageRaw fileName width height format headerSize = - withCString fileName (\str -> c'loadImageRaw str (fromIntegral width) (fromIntegral height) (fromIntegral format) (fromIntegral headerSize)) >>= pop + withCString fileName (\str -> c'loadImageRaw str (fromIntegral width) (fromIntegral height) (fromIntegral $ fromEnum format) (fromIntegral headerSize)) >>= pop foreign import ccall safe "raylib.h &LoadImageRaw" p'loadImageRaw :: @@ -2896,9 +2915,9 @@ c'imageFormat :: Ptr Raylib.Types.Image -> CInt -> IO () -imageFormat :: Raylib.Types.Image -> Int -> IO Raylib.Types.Image +imageFormat :: Raylib.Types.Image -> PixelFormat -> IO Raylib.Types.Image imageFormat image newFormat = - with image (\i -> c'imageFormat i (fromIntegral newFormat) >> peek i) + with image (\i -> c'imageFormat i (fromIntegral $ fromEnum newFormat) >> peek i) foreign import ccall safe "raylib.h &ImageFormat" p'imageFormat :: @@ -3374,8 +3393,8 @@ foreign import ccall safe "bindings.h LoadTextureCubemap_" c'loadTextureCubemap :: Ptr Raylib.Types.Image -> CInt -> IO (Ptr Raylib.Types.Texture) -loadTextureCubemap :: Raylib.Types.Image -> Int -> IO Raylib.Types.Texture -loadTextureCubemap image layout = with image (\i -> c'loadTextureCubemap i (fromIntegral layout)) >>= pop +loadTextureCubemap :: Raylib.Types.Image -> CubemapLayout -> IO Raylib.Types.Texture +loadTextureCubemap image layout = with image (\i -> c'loadTextureCubemap i (fromIntegral $ fromEnum layout)) >>= pop foreign import ccall safe "raylib.h &LoadTextureCubemap" p'loadTextureCubemap :: @@ -3439,8 +3458,8 @@ foreign import ccall safe "bindings.h SetTextureFilter_" c'setTextureFilter :: Ptr Raylib.Types.Texture -> CInt -> IO () -setTextureFilter :: Raylib.Types.Texture -> Int -> IO Raylib.Types.Texture -setTextureFilter texture filterType = with texture (\t -> c'setTextureFilter t (fromIntegral filterType) >> peek t) +setTextureFilter :: Raylib.Types.Texture -> TextureFilter -> IO Raylib.Types.Texture +setTextureFilter texture filterType = with texture (\t -> c'setTextureFilter t (fromIntegral $ fromEnum filterType) >> peek t) foreign import ccall safe "raylib.h &SetTextureFilter" p'setTextureFilter :: @@ -3448,8 +3467,8 @@ foreign import ccall safe "bindings.h SetTextureWrap_" c'setTextureWrap :: Ptr Raylib.Types.Texture -> CInt -> IO () -setTextureWrap :: Raylib.Types.Texture -> Int -> IO Raylib.Types.Texture -setTextureWrap texture wrap = with texture (\t -> c'setTextureWrap t (fromIntegral wrap) >> peek t) +setTextureWrap :: Raylib.Types.Texture -> TextureWrap -> IO Raylib.Types.Texture +setTextureWrap texture wrap = with texture (\t -> c'setTextureWrap t (fromIntegral $ fromEnum wrap) >> peek t) foreign import ccall safe "raylib.h &SetTextureWrap" p'setTextureWrap :: @@ -3457,7 +3476,7 @@ foreign import ccall safe "bindings.h DrawTexture_" c'drawTexture :: Ptr Raylib.Types.Texture -> CInt -> CInt -> Ptr Raylib.Types.Color -> IO () -drawTexture :: Raylib.Types.Texture -> CInt -> CInt -> Raylib.Types.Color -> IO () +drawTexture :: Raylib.Types.Texture -> Int -> Int -> Raylib.Types.Color -> IO () drawTexture texture x y tint = with texture (\t -> with tint (c'drawTexture t (fromIntegral x) (fromIntegral y))) foreign import ccall safe "raylib.h &DrawTexture" @@ -3592,8 +3611,8 @@ foreign import ccall safe "bindings.h GetPixelColor_" c'getPixelColor :: Ptr () -> CInt -> IO (Ptr Raylib.Types.Color) -getPixelColor :: Ptr () -> Int -> IO Raylib.Types.Color -getPixelColor srcPtr format = c'getPixelColor srcPtr (fromIntegral format) >>= pop +getPixelColor :: Ptr () -> PixelFormat -> IO Raylib.Types.Color +getPixelColor srcPtr format = c'getPixelColor srcPtr (fromIntegral $ fromEnum format) >>= pop foreign import ccall safe "raylib.h &GetPixelColor" p'getPixelColor :: @@ -3601,8 +3620,8 @@ foreign import ccall safe "bindings.h SetPixelColor_" c'setPixelColor :: Ptr () -> Ptr Raylib.Types.Color -> CInt -> IO () -setPixelColor :: Ptr () -> Raylib.Types.Color -> Int -> IO () -setPixelColor dstPtr color format = with color (\c -> c'setPixelColor dstPtr c (fromIntegral format)) +setPixelColor :: Ptr () -> Raylib.Types.Color -> PixelFormat -> IO () +setPixelColor dstPtr color format = with color (\c -> c'setPixelColor dstPtr c (fromIntegral $ fromEnum format)) foreign import ccall safe "raylib.h &SetPixelColor" p'setPixelColor :: @@ -3612,8 +3631,8 @@ c'getPixelDataSize :: CInt -> CInt -> CInt -> IO CInt -getPixelDataSize :: Int -> Int -> Int -> Int -getPixelDataSize width height format = unsafePerformIO (fromIntegral <$> c'getPixelDataSize (fromIntegral width) (fromIntegral height) (fromIntegral format)) +getPixelDataSize :: Int -> Int -> PixelFormat -> Int +getPixelDataSize width height format = unsafePerformIO (fromIntegral <$> c'getPixelDataSize (fromIntegral width) (fromIntegral height) (fromIntegral $ fromEnum format)) foreign import ccall safe "raylib.h &GetPixelDataSize" p'getPixelDataSize :: @@ -3668,15 +3687,14 @@ c'loadFontData :: Ptr CUChar -> CInt -> CInt -> Ptr CInt -> CInt -> CInt -> IO (Ptr Raylib.Types.GlyphInfo) -loadFontData :: [Integer] -> Int -> [Int] -> Int -> Int -> IO Raylib.Types.GlyphInfo -loadFontData fileData fontSize fontChars glyphCount fontType = withArrayLen (map fromIntegral fileData) (\size d -> withArray (map fromIntegral fontChars) (\c -> c'loadFontData d (fromIntegral $ size * sizeOf (0 :: CUChar)) (fromIntegral fontSize) c (fromIntegral glyphCount) (fromIntegral fontType))) >>= pop +loadFontData :: [Integer] -> Int -> [Int] -> Int -> FontType -> IO Raylib.Types.GlyphInfo +loadFontData fileData fontSize fontChars glyphCount fontType = withArrayLen (map fromIntegral fileData) (\size d -> withArray (map fromIntegral fontChars) (\c -> c'loadFontData d (fromIntegral $ size * sizeOf (0 :: CUChar)) (fromIntegral fontSize) c (fromIntegral glyphCount) (fromIntegral $ fromEnum fontType))) >>= pop foreign import ccall safe "raylib.h &LoadFontData" p'loadFontData :: FunPtr (Ptr CUChar -> CInt -> CInt -> Ptr CInt -> CInt -> CInt -> IO (Ptr Raylib.Types.GlyphInfo)) foreign import ccall safe "bindings.h GenImageFontAtlas_" c'genImageFontAtlas :: Ptr Raylib.Types.GlyphInfo -> Ptr (Ptr Raylib.Types.Rectangle) -> CInt -> CInt -> CInt -> CInt -> IO (Ptr Raylib.Types.Image) - genImageFontAtlas :: [Raylib.Types.GlyphInfo] -> [[Raylib.Types.Rectangle]] -> Int -> Int -> Int -> Int -> IO Raylib.Types.Image genImageFontAtlas chars recs glyphCount fontSize padding packMethod = withArray chars (\c -> withArray2D recs (\r -> c'genImageFontAtlas c r (fromIntegral glyphCount) (fromIntegral fontSize) (fromIntegral padding) (fromIntegral packMethod))) >>= pop @@ -4253,7 +4271,7 @@ foreign import ccall safe "bindings.h DrawCapsule_" c'drawCapsule :: Ptr Vector3 -> Ptr Vector3 -> CFloat -> CInt -> CInt -> Ptr Color -> IO () -drawCapsule :: Vector3 -> Vector3 -> CFloat -> CInt -> CInt -> Color -> IO () +drawCapsule :: Vector3 -> Vector3 -> CFloat -> Int -> Int -> Color -> IO () drawCapsule start end radius slices rings color = with start (\s -> with end (\e -> with color (c'drawCapsule s e (realToFrac radius) (fromIntegral slices) (fromIntegral rings)))) foreign import ccall safe "raylib.h &DrawCapsule" @@ -4262,7 +4280,7 @@ foreign import ccall safe "bindings.h DrawCapsuleWires_" c'drawCapsuleWires :: Ptr Vector3 -> Ptr Vector3 -> CFloat -> CInt -> CInt -> Ptr Color -> IO () -drawCapsuleWires :: Vector3 -> Vector3 -> CFloat -> CInt -> CInt -> Color -> IO () +drawCapsuleWires :: Vector3 -> Vector3 -> CFloat -> Int -> Int -> Color -> IO () drawCapsuleWires start end radius slices rings color = with start (\s -> with end (\e -> with color (c'drawCapsuleWires s e (realToFrac radius) (fromIntegral slices) (fromIntegral rings)))) foreign import ccall safe "raylib.h &DrawCapsuleWires"
− src/Raylib/Constants.hs
@@ -1,1224 +0,0 @@-{-# OPTIONS -Wall #-} -module Raylib.Constants where - --- This file includes constants and enums defined in raylib - -import Foreign.C (CUInt) - -type ConfigFlags = CUInt - -flag'vsyncHint = 64 - -flag'vsyncHint :: (Num a) => a - -flag'fullscreenMode = 2 - -flag'fullscreenMode :: (Num a) => a - -flag'windowResizable = 4 - -flag'windowResizable :: (Num a) => a - -flag'windowUndecorated = 8 - -flag'windowUndecorated :: (Num a) => a - -flag'windowHidden = 128 - -flag'windowHidden :: (Num a) => a - -flag'windowMinimized = 512 - -flag'windowMinimized :: (Num a) => a - -flag'windowMaximized = 1024 - -flag'windowMaximized :: (Num a) => a - -flag'windowUnfocused = 2048 - -flag'windowUnfocused :: (Num a) => a - -flag'windowTopmost = 4096 - -flag'windowTopmost :: (Num a) => a - -flag'windowAlwaysRun = 256 - -flag'windowAlwaysRun :: (Num a) => a - -flag'windowTransparent = 16 - -flag'windowTransparent :: (Num a) => a - -flag'windowHighdpi = 8192 - -flag'windowHighdpi :: (Num a) => a - -flag'windowMousePassthrough = 16384 - -flag'windowMousePassthrough :: (Num a) => a - -flag'msaa4xHint = 32 - -flag'msaa4xHint :: (Num a) => a - -flag'interlacedHint = 65536 - -flag'interlacedHint :: (Num a) => a - -type TraceLogLevel = CUInt - -log'all = 0 - -log'all :: (Num a) => a - -log'trace = 1 - -log'trace :: (Num a) => a - -log'debug = 2 - -log'debug :: (Num a) => a - -log'info = 3 - -log'info :: (Num a) => a - -log'warning = 4 - -log'warning :: (Num a) => a - -log'error = 5 - -log'error :: (Num a) => a - -log'fatal = 6 - -log'fatal :: (Num a) => a - -log'none = 7 - -log'none :: (Num a) => a - -type KeyboardKey = CUInt - -key'null = 0 - -key'null :: (Num a) => a - -key'apostrophe = 39 - -key'apostrophe :: (Num a) => a - -key'comma = 44 - -key'comma :: (Num a) => a - -key'minus = 45 - -key'minus :: (Num a) => a - -key'period = 46 - -key'period :: (Num a) => a - -key'slash = 47 - -key'slash :: (Num a) => a - -key'zero = 48 - -key'zero :: (Num a) => a - -key'one = 49 - -key'one :: (Num a) => a - -key'two = 50 - -key'two :: (Num a) => a - -key'three = 51 - -key'three :: (Num a) => a - -key'four = 52 - -key'four :: (Num a) => a - -key'five = 53 - -key'five :: (Num a) => a - -key'six = 54 - -key'six :: (Num a) => a - -key'seven = 55 - -key'seven :: (Num a) => a - -key'eight = 56 - -key'eight :: (Num a) => a - -key'nine = 57 - -key'nine :: (Num a) => a - -key'semicolon = 59 - -key'semicolon :: (Num a) => a - -key'equal = 61 - -key'equal :: (Num a) => a - -key'a = 65 - -key'a :: (Num a) => a - -key'b = 66 - -key'b :: (Num a) => a - -key'c = 67 - -key'c :: (Num a) => a - -key'd = 68 - -key'd :: (Num a) => a - -key'e = 69 - -key'e :: (Num a) => a - -key'f = 70 - -key'f :: (Num a) => a - -key'g = 71 - -key'g :: (Num a) => a - -key'h = 72 - -key'h :: (Num a) => a - -key'i = 73 - -key'i :: (Num a) => a - -key'j = 74 - -key'j :: (Num a) => a - -key'k = 75 - -key'k :: (Num a) => a - -key'l = 76 - -key'l :: (Num a) => a - -key'm = 77 - -key'm :: (Num a) => a - -key'n = 78 - -key'n :: (Num a) => a - -key'o = 79 - -key'o :: (Num a) => a - -key'p = 80 - -key'p :: (Num a) => a - -key'q = 81 - -key'q :: (Num a) => a - -key'r = 82 - -key'r :: (Num a) => a - -key's = 83 - -key's :: (Num a) => a - -key't = 84 - -key't :: (Num a) => a - -key'u = 85 - -key'u :: (Num a) => a - -key'v = 86 - -key'v :: (Num a) => a - -key'w = 87 - -key'w :: (Num a) => a - -key'x = 88 - -key'x :: (Num a) => a - -key'y = 89 - -key'y :: (Num a) => a - -key'z = 90 - -key'z :: (Num a) => a - -key'leftBracket = 91 - -key'leftBracket :: (Num a) => a - -key'backslash = 92 - -key'backslash :: (Num a) => a - -key'rightBracket = 93 - -key'rightBracket :: (Num a) => a - -key'grave = 96 - -key'grave :: (Num a) => a - -key'space = 32 - -key'space :: (Num a) => a - -key'escape = 256 - -key'escape :: (Num a) => a - -key'enter = 257 - -key'enter :: (Num a) => a - -key'tab = 258 - -key'tab :: (Num a) => a - -key'backspace = 259 - -key'backspace :: (Num a) => a - -key'insert = 260 - -key'insert :: (Num a) => a - -key'delete = 261 - -key'delete :: (Num a) => a - -key'right = 262 - -key'right :: (Num a) => a - -key'left = 263 - -key'left :: (Num a) => a - -key'down = 264 - -key'down :: (Num a) => a - -key'up = 265 - -key'up :: (Num a) => a - -key'pageUp = 266 - -key'pageUp :: (Num a) => a - -key'pageDown = 267 - -key'pageDown :: (Num a) => a - -key'home = 268 - -key'home :: (Num a) => a - -key'end = 269 - -key'end :: (Num a) => a - -key'capsLock = 280 - -key'capsLock :: (Num a) => a - -key'scrollLock = 281 - -key'scrollLock :: (Num a) => a - -key'numLock = 282 - -key'numLock :: (Num a) => a - -key'printScreen = 283 - -key'printScreen :: (Num a) => a - -key'pause = 284 - -key'pause :: (Num a) => a - -key'f1 = 290 - -key'f1 :: (Num a) => a - -key'f2 = 291 - -key'f2 :: (Num a) => a - -key'f3 = 292 - -key'f3 :: (Num a) => a - -key'f4 = 293 - -key'f4 :: (Num a) => a - -key'f5 = 294 - -key'f5 :: (Num a) => a - -key'f6 = 295 - -key'f6 :: (Num a) => a - -key'f7 = 296 - -key'f7 :: (Num a) => a - -key'f8 = 297 - -key'f8 :: (Num a) => a - -key'f9 = 298 - -key'f9 :: (Num a) => a - -key'f10 = 299 - -key'f10 :: (Num a) => a - -key'f11 = 300 - -key'f11 :: (Num a) => a - -key'f12 = 301 - -key'f12 :: (Num a) => a - -key'leftShift = 340 - -key'leftShift :: (Num a) => a - -key'leftControl = 341 - -key'leftControl :: (Num a) => a - -key'leftAlt = 342 - -key'leftAlt :: (Num a) => a - -key'leftSuper = 343 - -key'leftSuper :: (Num a) => a - -key'rightShift = 344 - -key'rightShift :: (Num a) => a - -key'rightControl = 345 - -key'rightControl :: (Num a) => a - -key'rightAlt = 346 - -key'rightAlt :: (Num a) => a - -key'rightSuper = 347 - -key'rightSuper :: (Num a) => a - -key'kbMenu = 348 - -key'kbMenu :: (Num a) => a - -key'kp0 = 320 - -key'kp0 :: (Num a) => a - -key'kp1 = 321 - -key'kp1 :: (Num a) => a - -key'kp2 = 322 - -key'kp2 :: (Num a) => a - -key'kp3 = 323 - -key'kp3 :: (Num a) => a - -key'kp4 = 324 - -key'kp4 :: (Num a) => a - -key'kp5 = 325 - -key'kp5 :: (Num a) => a - -key'kp6 = 326 - -key'kp6 :: (Num a) => a - -key'kp7 = 327 - -key'kp7 :: (Num a) => a - -key'kp8 = 328 - -key'kp8 :: (Num a) => a - -key'kp9 = 329 - -key'kp9 :: (Num a) => a - -key'kpDecimal = 330 - -key'kpDecimal :: (Num a) => a - -key'kpDivide = 331 - -key'kpDivide :: (Num a) => a - -key'kpMultiply = 332 - -key'kpMultiply :: (Num a) => a - -key'kpSubtract = 333 - -key'kpSubtract :: (Num a) => a - -key'kpAdd = 334 - -key'kpAdd :: (Num a) => a - -key'kpEnter = 335 - -key'kpEnter :: (Num a) => a - -key'kpEqual = 336 - -key'kpEqual :: (Num a) => a - -key'back = 4 - -key'back :: (Num a) => a - -key'menu = 82 - -key'menu :: (Num a) => a - -key'volumeUp = 24 - -key'volumeUp :: (Num a) => a - -key'volumeDown = 25 - -key'volumeDown :: (Num a) => a - -type MouseButton = CUInt - -mouseButton'left = 0 - -mouseButton'left :: (Num a) => a - -mouseButton'right = 1 - -mouseButton'right :: (Num a) => a - -mouseButton'middle = 2 - -mouseButton'middle :: (Num a) => a - -mouseButton'side = 3 - -mouseButton'side :: (Num a) => a - -mouseButton'extra = 4 - -mouseButton'extra :: (Num a) => a - -mouseButton'forward = 5 - -mouseButton'forward :: (Num a) => a - -mouseButton'back = 6 - -mouseButton'back :: (Num a) => a - -type MouseCursor = CUInt - -mouseCursor'default = 0 - -mouseCursor'default :: (Num a) => a - -mouseCursor'arrow = 1 - -mouseCursor'arrow :: (Num a) => a - -mouseCursor'ibeam = 2 - -mouseCursor'ibeam :: (Num a) => a - -mouseCursor'crosshair = 3 - -mouseCursor'crosshair :: (Num a) => a - -mouseCursor'pointingHand = 4 - -mouseCursor'pointingHand :: (Num a) => a - -mouseCursor'resizeEW = 5 - -mouseCursor'resizeEW :: (Num a) => a - -mouseCursor'resizeNS = 6 - -mouseCursor'resizeNS :: (Num a) => a - -mouseCursor'resizeNWSE = 7 - -mouseCursor'resizeNWSE :: (Num a) => a - -mouseCursor'resizeNESW = 8 - -mouseCursor'resizeNESW :: (Num a) => a - -mouseCursor'resizeAll = 9 - -mouseCursor'resizeAll :: (Num a) => a - -mouseCursor'notAllowed = 10 - -mouseCursor'notAllowed :: (Num a) => a - -type GamepadButton = CUInt - -gamepadButton'unknown = 0 - -gamepadButton'unknown :: (Num a) => a - -gamepadButton'leftFaceUp = 1 - -gamepadButton'leftFaceUp :: (Num a) => a - -gamepadButton'leftFaceRight = 2 - -gamepadButton'leftFaceRight :: (Num a) => a - -gamepadButton'leftFaceDown = 3 - -gamepadButton'leftFaceDown :: (Num a) => a - -gamepadButton'leftFaceLeft = 4 - -gamepadButton'leftFaceLeft :: (Num a) => a - -gamepadButton'rightFaceUp = 5 - -gamepadButton'rightFaceUp :: (Num a) => a - -gamepadButton'rightFaceRight = 6 - -gamepadButton'rightFaceRight :: (Num a) => a - -gamepadButton'rightFaceDown = 7 - -gamepadButton'rightFaceDown :: (Num a) => a - -gamepadButton'rightFaceLeft = 8 - -gamepadButton'rightFaceLeft :: (Num a) => a - -gamepadButton'leftTrigger1 = 9 - -gamepadButton'leftTrigger1 :: (Num a) => a - -gamepadButton'leftTrigger2 = 10 - -gamepadButton'leftTrigger2 :: (Num a) => a - -gamepadButton'rightTrigger1 = 11 - -gamepadButton'rightTrigger1 :: (Num a) => a - -gamepadButton'rightTrigger2 = 12 - -gamepadButton'rightTrigger2 :: (Num a) => a - -gamepadButton'middleLeft = 13 - -gamepadButton'middleLeft :: (Num a) => a - -gamepadButton'middle = 14 - -gamepadButton'middle :: (Num a) => a - -gamepadButton'middleRight = 15 - -gamepadButton'middleRight :: (Num a) => a - -gamepadButton'leftThumb = 16 - -gamepadButton'leftThumb :: (Num a) => a - -gamepadButton'rightThumb = 17 - -gamepadButton'rightThumb :: (Num a) => a - -type GamepadAxis = CUInt - -gamepadAxisLeftX = 0 - -gamepadAxisLeftX :: (Num a) => a - -gamepadAxisLeftY = 1 - -gamepadAxisLeftY :: (Num a) => a - -gamepadAxisRightX = 2 - -gamepadAxisRightX :: (Num a) => a - -gamepadAxisRightY = 3 - -gamepadAxisRightY :: (Num a) => a - -gamepadAxisLeftTrigger = 4 - -gamepadAxisLeftTrigger :: (Num a) => a - -gamepadAxisRightTrigger = 5 - -gamepadAxisRightTrigger :: (Num a) => a - -type MaterialMapIndex = CUInt - -materialMap'albedo = 0 - -materialMap'albedo :: (Num a) => a - -materialMap'metalness = 1 - -materialMap'metalness :: (Num a) => a - -materialMap'normal = 2 - -materialMap'normal :: (Num a) => a - -materialMap'roughness = 3 - -materialMap'roughness :: (Num a) => a - -materialMap'occlusion = 4 - -materialMap'occlusion :: (Num a) => a - -materialMap'emission = 5 - -materialMap'emission :: (Num a) => a - -materialMap'height = 6 - -materialMap'height :: (Num a) => a - -materialMap'cubemap = 7 - -materialMap'cubemap :: (Num a) => a - -materialMap'irradiance = 8 - -materialMap'irradiance :: (Num a) => a - -materialMap'prefilter = 9 - -materialMap'prefilter :: (Num a) => a - -materialMap'brdf = 10 - -materialMap'brdf :: (Num a) => a - -type ShaderLocationIndex = CUInt - -shaderLoc'vertexPosition = 0 - -shaderLoc'vertexPosition :: (Num a) => a - -shaderLoc'vertexTexcoord01 = 1 - -shaderLoc'vertexTexcoord01 :: (Num a) => a - -shaderLoc'vertexTexcoord02 = 2 - -shaderLoc'vertexTexcoord02 :: (Num a) => a - -shaderLoc'vertexNormal = 3 - -shaderLoc'vertexNormal :: (Num a) => a - -shaderLoc'vertexTangent = 4 - -shaderLoc'vertexTangent :: (Num a) => a - -shaderLoc'vertexColor = 5 - -shaderLoc'vertexColor :: (Num a) => a - -shaderLoc'matrixMvp = 6 - -shaderLoc'matrixMvp :: (Num a) => a - -shaderLoc'matrixView = 7 - -shaderLoc'matrixView :: (Num a) => a - -shaderLoc'matrixProjection = 8 - -shaderLoc'matrixProjection :: (Num a) => a - -shaderLoc'matrixModel = 9 - -shaderLoc'matrixModel :: (Num a) => a - -shaderLoc'matrixNormal = 10 - -shaderLoc'matrixNormal :: (Num a) => a - -shaderLoc'vectorView = 11 - -shaderLoc'vectorView :: (Num a) => a - -shaderLoc'colorDiffuse = 12 - -shaderLoc'colorDiffuse :: (Num a) => a - -shaderLoc'colorSpecular = 13 - -shaderLoc'colorSpecular :: (Num a) => a - -shaderLoc'colorAmbient = 14 - -shaderLoc'colorAmbient :: (Num a) => a - -shaderLoc'mapAlbedo = 15 - -shaderLoc'mapAlbedo :: (Num a) => a - -shaderLoc'mapMetalness = 16 - -shaderLoc'mapMetalness :: (Num a) => a - -shaderLoc'mapNormal = 17 - -shaderLoc'mapNormal :: (Num a) => a - -shaderLoc'mapRoughness = 18 - -shaderLoc'mapRoughness :: (Num a) => a - -shaderLoc'mapOcclusion = 19 - -shaderLoc'mapOcclusion :: (Num a) => a - -shaderLoc'mapEmission = 20 - -shaderLoc'mapEmission :: (Num a) => a - -shaderLoc'mapHeight = 21 - -shaderLoc'mapHeight :: (Num a) => a - -shaderLoc'mapCubemap = 22 - -shaderLoc'mapCubemap :: (Num a) => a - -shaderLoc'mapIrradiance = 23 - -shaderLoc'mapIrradiance :: (Num a) => a - -shaderLoc'mapPrefilter = 24 - -shaderLoc'mapPrefilter :: (Num a) => a - -shaderLoc'mapBrdf = 25 - -shaderLoc'mapBrdf :: (Num a) => a - -type ShaderUniformDataType = CUInt - -shaderUniform'float = 0 - -shaderUniform'float :: (Num a) => a - -shaderUniform'vec2 = 1 - -shaderUniform'vec2 :: (Num a) => a - -shaderUniform'vec3 = 2 - -shaderUniform'vec3 :: (Num a) => a - -shaderUniform'vec4 = 3 - -shaderUniform'vec4 :: (Num a) => a - -shaderUniform'int = 4 - -shaderUniform'int :: (Num a) => a - -shaderUniform'ivec2 = 5 - -shaderUniform'ivec2 :: (Num a) => a - -shaderUniform'ivec3 = 6 - -shaderUniform'ivec3 :: (Num a) => a - -shaderUniform'ivec4 = 7 - -shaderUniform'ivec4 :: (Num a) => a - -shaderUniform'sampler2d = 8 - -shaderUniform'sampler2d :: (Num a) => a - -type ShaderAttributeDataType = CUInt - -shaderAttrib'float = 0 - -shaderAttrib'float :: (Num a) => a - -shaderAttrib'vec2 = 1 - -shaderAttrib'vec2 :: (Num a) => a - -shaderAttrib'vec3 = 2 - -shaderAttrib'vec3 :: (Num a) => a - -shaderAttrib'vec4 = 3 - -shaderAttrib'vec4 :: (Num a) => a - -type PixelFormat = CUInt - -pixelFormat'uncompressedGrayscale = 1 - -pixelFormat'uncompressedGrayscale :: (Num a) => a - -pixelFormat'uncompressedGrayAlpha = 2 - -pixelFormat'uncompressedGrayAlpha :: (Num a) => a - -pixelFormat'uncompressedR5G6B5 = 3 - -pixelFormat'uncompressedR5G6B5 :: (Num a) => a - -pixelFormat'uncompressedR8G8B8 = 4 - -pixelFormat'uncompressedR8G8B8 :: (Num a) => a - -pixelFormat'uncompressedR5G5B5A1 = 5 - -pixelFormat'uncompressedR5G5B5A1 :: (Num a) => a - -pixelFormat'uncompressedR4G4B4A4 = 6 - -pixelFormat'uncompressedR4G4B4A4 :: (Num a) => a - -pixelFormat'uncompressedR8G8B8A8 = 7 - -pixelFormat'uncompressedR8G8B8A8 :: (Num a) => a - -pixelFormat'uncompressedR32 = 8 - -pixelFormat'uncompressedR32 :: (Num a) => a - -pixelFormat'uncompressedR32G32B32 = 9 - -pixelFormat'uncompressedR32G32B32 :: (Num a) => a - -pixelFormat'uncompressedR32G32B32A32 = 10 - -pixelFormat'uncompressedR32G32B32A32 :: (Num a) => a - -pixelFormat'compressedDxt1Rgb = 11 - -pixelFormat'compressedDxt1Rgb :: (Num a) => a - -pixelFormat'compressedDxt1Rgba = 12 - -pixelFormat'compressedDxt1Rgba :: (Num a) => a - -pixelFormat'compressedDxt3Rgba = 13 - -pixelFormat'compressedDxt3Rgba :: (Num a) => a - -pixelFormat'compressedDxt5Rgba = 14 - -pixelFormat'compressedDxt5Rgba :: (Num a) => a - -pixelFormat'compressedEtc1Rgb = 15 - -pixelFormat'compressedEtc1Rgb :: (Num a) => a - -pixelFormat'compressedEtc2Rgb = 16 - -pixelFormat'compressedEtc2Rgb :: (Num a) => a - -pixelFormat'compressedEtc2EacRgba = 17 - -pixelFormat'compressedEtc2EacRgba :: (Num a) => a - -pixelFormat'compressedPvrtRgb = 18 - -pixelFormat'compressedPvrtRgb :: (Num a) => a - -pixelFormat'compressedPvrtRgba = 19 - -pixelFormat'compressedPvrtRgba :: (Num a) => a - -pixelFormat'compressedAstc4x4Rgba = 20 - -pixelFormat'compressedAstc4x4Rgba :: (Num a) => a - -pixelFormat'compressedAstc8x8Rgba = 21 - -pixelFormat'compressedAstc8x8Rgba :: (Num a) => a - -type TextureFilter = CUInt - -textureFilter'point = 0 - -textureFilter'point :: (Num a) => a - -textureFilter'bilinear = 1 - -textureFilter'bilinear :: (Num a) => a - -textureFilter'trilinear = 2 - -textureFilter'trilinear :: (Num a) => a - -textureFilter'anisotropic4x = 3 - -textureFilter'anisotropic4x :: (Num a) => a - -textureFilter'anisotropic8x = 4 - -textureFilter'anisotropic8x :: (Num a) => a - -textureFilter'anisotropic16x = 5 - -textureFilter'anisotropic16x :: (Num a) => a - -type TextureWrap = CUInt - -textureWrap'repeat = 0 - -textureWrap'repeat :: (Num a) => a - -textureWrap'clamp = 1 - -textureWrap'clamp :: (Num a) => a - -textureWrap'mirrorRepeat = 2 - -textureWrap'mirrorRepeat :: (Num a) => a - -textureWrap'mirrorClamp = 3 - -textureWrap'mirrorClamp :: (Num a) => a - -type CubemapLayout = CUInt - -cubemapLayout'autoDetect = 0 - -cubemapLayout'autoDetect :: (Num a) => a - -cubemapLayout'lineVertical = 1 - -cubemapLayout'lineVertical :: (Num a) => a - -cubemapLayout'lineHorizontal = 2 - -cubemapLayout'lineHorizontal :: (Num a) => a - -cubemapLayout'crossThreeByFour = 3 - -cubemapLayout'crossThreeByFour :: (Num a) => a - -cubemapLayout'crossThreeByThree = 4 - -cubemapLayout'crossThreeByThree :: (Num a) => a - -cubemapLayout'panorama = 5 - -cubemapLayout'panorama :: (Num a) => a - -type FontType = CUInt - -font'default = 0 - -font'default :: (Num a) => a - -font'bitmap = 1 - -font'bitmap :: (Num a) => a - -font'sdf = 2 - -font'sdf :: (Num a) => a - -type BlendMode = CUInt - -blend'alpha = 0 - -blend'alpha :: (Num a) => a - -blend'additive = 1 - -blend'additive :: (Num a) => a - -blend'multiplied = 2 - -blend'multiplied :: (Num a) => a - -blend'addColors = 3 - -blend'addColors :: (Num a) => a - -blend'subtractColors = 4 - -blend'subtractColors :: (Num a) => a - -blend'alphaPremultiply = 5 - -blend'alphaPremultiply :: (Num a) => a - -blend'custom = 6 - -blend'custom :: (Num a) => a - -blend'customSeparate = 7 - -blend'customSeparate :: (Num a) => a - -type Gesture = CUInt - -gesture'none = 0 - -gesture'none :: (Num a) => a - -gesture'tap = 1 - -gesture'tap :: (Num a) => a - -gesture'doubletap = 2 - -gesture'doubletap :: (Num a) => a - -gesture'hold = 4 - -gesture'hold :: (Num a) => a - -gesture'drag = 8 - -gesture'drag :: (Num a) => a - -gesture'swipeRight = 16 - -gesture'swipeRight :: (Num a) => a - -gesture'swipeLeft = 32 - -gesture'swipeLeft :: (Num a) => a - -gesture'swipeUp = 64 - -gesture'swipeUp :: (Num a) => a - -gesture'swipeDown = 128 - -gesture'swipeDown :: (Num a) => a - -gesture'pinchIn = 256 - -gesture'pinchIn :: (Num a) => a - -gesture'pinchOut = 512 - -gesture'pinchOut :: (Num a) => a - -type CameraMode = CUInt - -cameraMode'custom = 0 - -cameraMode'custom :: (Num a) => a - -cameraMode'free = 1 - -cameraMode'free :: (Num a) => a - -cameraMode'orbital = 2 - -cameraMode'orbital :: (Num a) => a - -cameraMode'firstPerson = 3 - -cameraMode'firstPerson :: (Num a) => a - -cameraMode'thirdPerson = 4 - -cameraMode'thirdPerson :: (Num a) => a - -type CameraProjection = CUInt - -cameraProjection'perspective = 0 - -cameraProjection'perspective :: (Num a) => a - -cameraProjection'orthographic = 1 - -cameraProjection'orthographic :: (Num a) => a - -type NPatchLayout = CUInt - -npatch'ninePatch = 0 - -npatch'ninePatch :: (Num a) => a - -npatch'threePatchVertical = 1 - -npatch'threePatchVertical :: (Num a) => a - -npatch'threePatchHorizontal = 2 - -npatch'threePatchHorizontal :: (Num a) => a
src/Raylib/Types.hs view
@@ -3,7 +3,6 @@ -- This file includes Haskell counterparts to the structs defined in raylib --- This file includes Haskell counterparts to the structs defined in raylib import Foreign.C ( CString, CChar, CUShort, CUInt, CInt, CUChar, CFloat, CBool ) import Foreign @@ -11,8 +10,654 @@ plusPtr, pokeArray, peekArray, + castPtr, Storable(pokeByteOff, poke, peek, alignment, sizeOf, peekByteOff) ) + +------------------------------------------------ +-- Raylib enumerations ------------------------- +------------------------------------------------ + +data ConfigFlag = VsyncHint + | FullscreenMode + | WindowResizable + | WindowUndecorated + | WindowHidden + | WindowMinimized + | WindowMaximized + | WindowUnfocused + | WindowTopmost + | WindowAlwaysRun + | WindowTransparent + | WindowHighdpi + | WindowMousePassthrough + | Msaa4xHint + | InterlacedHint + deriving (Eq, Show) + +instance Enum ConfigFlag where + fromEnum g = case g of + VsyncHint -> 64 + FullscreenMode -> 2 + WindowResizable -> 4 + WindowUndecorated -> 8 + WindowHidden -> 128 + WindowMinimized -> 512 + WindowMaximized -> 1024 + WindowUnfocused -> 2048 + WindowTopmost -> 4096 + WindowAlwaysRun -> 256 + WindowTransparent -> 16 + WindowHighdpi -> 8192 + WindowMousePassthrough -> 16384 + Msaa4xHint -> 32 + InterlacedHint -> 65536 + toEnum x = case x of + 64 -> VsyncHint + 2 -> FullscreenMode + 4 -> WindowResizable + 8 -> WindowUndecorated + 128 -> WindowHidden + 512 -> WindowMinimized + 1024 -> WindowMaximized + 2048 -> WindowUnfocused + 4096 -> WindowTopmost + 256 -> WindowAlwaysRun + 16 -> WindowTransparent + 8192 -> WindowHighdpi + 16384 -> WindowMousePassthrough + 32 -> Msaa4xHint + 65536 -> InterlacedHint + n -> error $ "Invalid value " ++ show n ++ " for `toEnum`." + +data TraceLogLevel = LogAll | LogTrace | LogDebug | LogInfo | LogWarning | LogError | LogFatal | LogNone + deriving (Eq, Show,Enum) + +data KeyboardKey = KeyNull + | KeyApostrophe + | KeyComma + | KeyMinus + | KeyPeriod + | KeySlash + | KeyZero + | KeyOne + | KeyTwo + | KeyThree + | KeyFour + | KeyFive + | KeySix + | KeySeven + | KeyEight + | KeyNine + | KeySemicolon + | KeyEqual + | KeyA + | KeyB + | KeyC + | KeyD + | KeyE + | KeyF + | KeyG + | KeyH + | KeyI + | KeyJ + | KeyK + | KeyL + | KeyM + | KeyN + | KeyO + | KeyP + | KeyQ + | KeyR + | KeyS + | KeyT + | KeyU + | KeyV + | KeyW + | KeyX + | KeyY + | KeyZ + | KeyLeftBracket + | KeyBackslash + | KeyRightBracket + | KeyGrave + | KeySpace + | KeyEscape + | KeyEnter + | KeyTab + | KeyBackspace + | KeyInsert + | KeyDelete + | KeyRight + | KeyLeft + | KeyDown + | KeyUp + | KeyPageUp + | KeyPageDown + | KeyHome + | KeyEnd + | KeyCapsLock + | KeyScrollLock + | KeyNumLock + | KeyPrintScreen + | KeyPause + | KeyF1 + | KeyF2 + | KeyF3 + | KeyF4 + | KeyF5 + | KeyF6 + | KeyF7 + | KeyF8 + | KeyF9 + | KeyF10 + | KeyF11 + | KeyF12 + | KeyLeftShift + | KeyLeftControl + | KeyLeftAlt + | KeyLeftSuper + | KeyRightShift + | KeyRightControl + | KeyRightAlt + | KeyRightSuper + | KeyKbMenu + | KeyKp0 + | KeyKp1 + | KeyKp2 + | KeyKp3 + | KeyKp4 + | KeyKp5 + | KeyKp6 + | KeyKp7 + | KeyKp8 + | KeyKp9 + | KeyKpDecimal + | KeyKpDivide + | KeyKpMultiply + | KeyKpSubtract + | KeyKpAdd + | KeyKpEnter + | KeyKpEqual + | KeyBack + | KeyMenu + | KeyVolumeUp + | KeyVolumeDown + + deriving (Eq, Show) + +instance Enum KeyboardKey where + fromEnum k = case k of + KeyNull -> 0 + KeyApostrophe -> 39 + KeyComma -> 44 + KeyMinus -> 45 + KeyPeriod -> 46 + KeySlash -> 47 + KeyZero -> 48 + KeyOne -> 49 + KeyTwo -> 50 + KeyThree -> 51 + KeyFour -> 52 + KeyFive -> 53 + KeySix -> 54 + KeySeven -> 55 + KeyEight -> 56 + KeyNine -> 57 + KeySemicolon -> 59 + KeyEqual -> 61 + KeyA -> 65 + KeyB -> 66 + KeyC -> 67 + KeyD -> 68 + KeyE -> 69 + KeyF -> 70 + KeyG -> 71 + KeyH -> 72 + KeyI -> 73 + KeyJ -> 74 + KeyK -> 75 + KeyL -> 76 + KeyM -> 77 + KeyN -> 78 + KeyO -> 79 + KeyP -> 80 + KeyQ -> 81 + KeyR -> 82 + KeyS -> 83 + KeyT -> 84 + KeyU -> 85 + KeyV -> 86 + KeyW -> 87 + KeyX -> 88 + KeyY -> 89 + KeyZ -> 90 + KeyLeftBracket -> 91 + KeyBackslash -> 92 + KeyRightBracket -> 93 + KeyGrave -> 96 + KeySpace -> 32 + KeyEscape -> 256 + KeyEnter -> 257 + KeyTab -> 258 + KeyBackspace -> 259 + KeyInsert -> 260 + KeyDelete -> 261 + KeyRight -> 262 + KeyLeft -> 263 + KeyDown -> 264 + KeyUp -> 265 + KeyPageUp -> 266 + KeyPageDown -> 267 + KeyHome -> 268 + KeyEnd -> 269 + KeyCapsLock -> 280 + KeyScrollLock -> 281 + KeyNumLock -> 282 + KeyPrintScreen -> 283 + KeyPause -> 284 + KeyF1 -> 290 + KeyF2 -> 291 + KeyF3 -> 292 + KeyF4 -> 293 + KeyF5 -> 294 + KeyF6 -> 295 + KeyF7 -> 296 + KeyF8 -> 297 + KeyF9 -> 298 + KeyF10 -> 299 + KeyF11 -> 300 + KeyF12 -> 301 + KeyLeftShift -> 340 + KeyLeftControl -> 341 + KeyLeftAlt -> 342 + KeyLeftSuper -> 343 + KeyRightShift -> 344 + KeyRightControl -> 345 + KeyRightAlt -> 346 + KeyRightSuper -> 347 + KeyKbMenu -> 348 + KeyKp0 -> 320 + KeyKp1 -> 321 + KeyKp2 -> 322 + KeyKp3 -> 323 + KeyKp4 -> 324 + KeyKp5 -> 325 + KeyKp6 -> 326 + KeyKp7 -> 327 + KeyKp8 -> 328 + KeyKp9 -> 329 + KeyKpDecimal -> 330 + KeyKpDivide -> 331 + KeyKpMultiply -> 332 + KeyKpSubtract -> 333 + KeyKpAdd -> 334 + KeyKpEnter -> 335 + KeyKpEqual -> 336 + -- Android buttons + KeyBack -> 4 + KeyMenu -> 82 + KeyVolumeUp -> 24 + KeyVolumeDown -> 25 + + toEnum n = case n of + 0 -> KeyNull + 39 -> KeyApostrophe + 44 -> KeyComma + 45 -> KeyMinus + 46 -> KeyPeriod + 47 -> KeySlash + 48 -> KeyZero + 49 -> KeyOne + 50 -> KeyTwo + 51 -> KeyThree + 52 -> KeyFour + 53 -> KeyFive + 54 -> KeySix + 55 -> KeySeven + 56 -> KeyEight + 57 -> KeyNine + 59 -> KeySemicolon + 61 -> KeyEqual + 65 -> KeyA + 66 -> KeyB + 67 -> KeyC + 68 -> KeyD + 69 -> KeyE + 70 -> KeyF + 71 -> KeyG + 72 -> KeyH + 73 -> KeyI + 74 -> KeyJ + 75 -> KeyK + 76 -> KeyL + 77 -> KeyM + 78 -> KeyN + 79 -> KeyO + 80 -> KeyP + 81 -> KeyQ + 82 -> KeyR + 83 -> KeyS + 84 -> KeyT + 85 -> KeyU + 86 -> KeyV + 87 -> KeyW + 88 -> KeyX + 89 -> KeyY + 90 -> KeyZ + 91 -> KeyLeftBracket + 92 -> KeyBackslash + 93 -> KeyRightBracket + 96 -> KeyGrave + 32 -> KeySpace + 256 -> KeyEscape + 257 -> KeyEnter + 258 -> KeyTab + 259 -> KeyBackspace + 260 -> KeyInsert + 261 -> KeyDelete + 262 -> KeyRight + 263 -> KeyLeft + 264 -> KeyDown + 265 -> KeyUp + 266 -> KeyPageUp + 267 -> KeyPageDown + 268 -> KeyHome + 269 -> KeyEnd + 280 -> KeyCapsLock + 281 -> KeyScrollLock + 282 -> KeyNumLock + 283 -> KeyPrintScreen + 284 -> KeyPause + 290 -> KeyF1 + 291 -> KeyF2 + 292 -> KeyF3 + 293 -> KeyF4 + 294 -> KeyF5 + 295 -> KeyF6 + 296 -> KeyF7 + 297 -> KeyF8 + 298 -> KeyF9 + 299 -> KeyF10 + 300 -> KeyF11 + 301 -> KeyF12 + 340 -> KeyLeftShift + 341 -> KeyLeftControl + 342 -> KeyLeftAlt + 343 -> KeyLeftSuper + 344 -> KeyRightShift + 345 -> KeyRightControl + 346 -> KeyRightAlt + 347 -> KeyRightSuper + 348 -> KeyKbMenu + 320 -> KeyKp0 + 321 -> KeyKp1 + 322 -> KeyKp2 + 323 -> KeyKp3 + 324 -> KeyKp4 + 325 -> KeyKp5 + 326 -> KeyKp6 + 327 -> KeyKp7 + 328 -> KeyKp8 + 329 -> KeyKp9 + 330 -> KeyKpDecimal + 331 -> KeyKpDivide + 332 -> KeyKpMultiply + 333 -> KeyKpSubtract + 334 -> KeyKpAdd + 335 -> KeyKpEnter + 336 -> KeyKpEqual + -- Android buttons + 4 -> KeyBack + -- 82 -> KeyMenu + 24 -> KeyVolumeUp + 25 -> KeyVolumeDown + x -> error $ "Invalid value " ++ show x ++ " for `fromEnum`." + +data MouseButton + = MouseButtonLeft + | MouseButtonRight + | MouseButtonMiddle + | MouseButtonSide + | MouseButtonExtra + | MouseButtonForward + | MouseButtonBack + deriving (Eq, Show, Enum) + +data MouseCursor + = MouseCursorDefault + | MouseCursorArrow + | MouseCursorIbeam + | MouseCursorCrosshair + | MouseCursorPointingHand + | MouseCursorResizeEW + | MouseCursorResizeNS + | MouseCursorResizeNWSE + | MouseCursorResizeNESW + | MouseCursorResizeAll + | MouseCursorNotAllowed + deriving (Eq, Show, Enum) + +data GamepadButton = GamepadButtonUnknown + | GamepadButtonUnknownLeftFaceUp + | GamepadButtonLeftFaceRight + | GamepadButtonLeftFaceDown + | GamepadButtonLeftFaceLeft + | GamepadButtonRightFaceUp + | GamepadButtonRightFaceRight + | GamepadButtonRightFaceDown + | GamepadButtonRightFaceLeft + | GamepadButtonLeftTrigger1 + | GamepadButtonLeftTrigger2 + | GamepadButtonRightTrigger1 + | GamepadButtonRightTrigger2 + | GamepadButtonMiddleLeft + | GamepadButtonMiddle + | GamepadButtonMiddleRight + | GamepadButtonLeftThumb + | GamepadButtonRightThumb + deriving (Eq, Show, Enum) + +data GamepadAxis = GamepadAxisLeftX + | GamepadAxisLeftY + | GamepadAxisRightX + | GamepadAxisRightY + | GamepadAxisLeftTrigger + | GamepadAxisRightTrigger + deriving (Eq, Show, Enum) + +data MaterialMapIndex = MaterialMapAlbedo + | MaterialMapMetalness + | MaterialMapNormal + | MaterialMapRoughness + | MaterialMapOcclusion + | MaterialMapEmission + | MaterialMapHeight + | MaterialMapCubemap + | MaterialMapIrradiance + | MaterialMapPrefilter + | MaterialMapBrdf + deriving (Eq, Show, Enum) + +data ShaderLocationIndex = ShaderLocVertexPosition + | ShaderLocVertexTexcoord01 + | ShaderLocVertexTexcoord02 + | ShaderLocVertexNormal + | ShaderLocVertexTangent + | ShaderLocVertexColor + | ShaderLocMatrixMvp + | ShaderLocMatrixView + | ShaderLocMatrixProjection + | ShaderLocMatrixModel + | ShaderLocMatrixNormal + | ShaderLocVectorView + | ShaderLocColorDiffuse + | ShaderLocColorSpecular + | ShaderLocColorAmbient + | ShaderLocMapAlbedo + | ShaderLocMapMetalness + | ShaderLocMapNormal + | ShaderLocMapRoughness + | ShaderLocMapOcclusion + | ShaderLocMapEmission + | ShaderLocMapHeight + | ShaderLocMapCubemap + | ShaderLocMapIrradiance + | ShaderLocMapPrefilter + | ShaderLocMapBrdf + deriving (Eq, Show, Enum) + +data ShaderUniformDataType = ShaderUniformFloat + | ShaderUniformVec2 + | ShaderUniformVec3 + | ShaderUniformVec4 + | ShaderUniformInt + | ShaderUniformIvec2 + | ShaderUniformIvec3 + | ShaderUniformIvec4 + | ShaderUniformSampler2d + + deriving (Eq, Show, Enum) + +-- I genuinely have no idea where this is used. +data ShaderAttributeDataType = ShaderAttribFloat + | ShaderAttribVec2 + | ShaderAttribVec3 + | ShaderAttribVec4 + deriving (Eq, Show, Enum) + +data PixelFormat = PixelFormatUncompressedGrayscale + | PixelFormatUncompressedGrayAlpha + | PixelFormatUncompressedR5G6B5 + | PixelFormatUncompressedR8G8B8 + | PixelFormatUncompressedR5G5B5A1 + | PixelFormatUncompressedR4G4B4A4 + | PixelFormatUncompressedR8G8B8A8 + | PixelFormatUncompressedR32 + | PixelFormatUncompressedR32G32B32 + | PixelFormatUncompressedR32G32B32A32 + | PixelFormatCompressedDxt1Rgb + | PixelFormatCompressedDxt1Rgba + | PixelFormatCompressedDxt3Rgba + | PixelFormatCompressedDxt5Rgba + | PixelFormatCompressedEtc1Rgb + | PixelFormatCompressedEtc2Rgb + | PixelFormatCompressedEtc2EacRgba + | PixelFormatCompressedPvrtRgb + | PixelFormatCompressedPvrtRgba + | PixelFormatCompressedAstc4x4Rgba + | PixelFormatCompressedAstc8x8Rgba + deriving (Eq, Show, Enum) + +instance Storable PixelFormat where + sizeOf _ = 4 + alignment _ = 4 + peek ptr = do + val <- peek (castPtr ptr) + return $ toEnum $ fromEnum (val :: CInt) + poke ptr v = poke (castPtr ptr) (toEnum $ fromEnum v :: CInt) + +data TextureFilter = TextureFilterPoint + | TextureFilterBilinear + | TextureFilterTrilinear + | TextureFilterAnisotropic4x + | TextureFilterAnisotropic8x + | TextureFilterAnisotropic16x + deriving Enum + +data TextureWrap = TextureWrapRepeat + | TextureWrapClamp + | TextureWrapMirrorRepeat + | TextureWrapMirrorClamp + deriving Enum + +data CubemapLayout = CubemapLayoutAutoDetect + | CubemapLayoutLineVertical + | CubemapLayoutLineHorizontal + | CubemapLayoutCrossThreeByFour + | CubemapLayoutCrossThreeByThree + | CubemapLayoutPanorama + deriving Enum + +data FontType = FontDefault | FontBitmap | FontSDF deriving Enum + +data BlendMode = BlendAlpha | BlendAdditive | BlendMultiplied | BlendAddColors | BlendSubtractColors | BlendAlphaPremultiply | BlendCustom | BlendCustomSeparate deriving Enum + +data Gesture + = GestureNone + | GestureTap + | GestureDoubleTap + | GestureHold + | GestureDrag + | GestureSwipeRight + | GestureSwipeLeft + | GestureSwipeUp + | GestureSwipeDown + | GesturePinchIn + | GesturePinchOut + deriving (Show) + +-- NOTE: This is not the ideal solution, I need to make this unjanky +instance Enum Gesture where + fromEnum n = case n of + GestureNone -> 0 + GestureTap -> 1 + GestureDoubleTap -> 2 + GestureHold -> 4 + GestureDrag -> 8 + GestureSwipeRight -> 16 + GestureSwipeLeft -> 32 + GestureSwipeUp -> 64 + GestureSwipeDown -> 128 + GesturePinchIn -> 256 + GesturePinchOut -> 512 + toEnum n = case n of + 0 -> GestureNone + 1 -> GestureTap + 2 -> GestureDoubleTap + 4 -> GestureHold + 8 -> GestureDrag + 16 -> GestureSwipeRight + 32 -> GestureSwipeLeft + 64 -> GestureSwipeUp + 128 -> GestureSwipeDown + 256 -> GesturePinchIn + 512 -> GesturePinchOut + _ -> error "Invalid input" + +data CameraMode + = CameraModeCustom + | CameraModeFree + | CameraModeOrbital + | CameraModeFirstPerson + | CameraModeThirdPerson + deriving (Enum) + +data CameraProjection = CameraPerspective | CameraOrthographic deriving (Eq, Show, Enum) + +instance Storable CameraProjection where + sizeOf _ = 4 + alignment _ = 4 + peek ptr = do + val <- peek (castPtr ptr) + return $ toEnum $ fromEnum (val :: CInt) + poke ptr v = poke (castPtr ptr) (toEnum $ fromEnum v :: CInt) + +data NPatchLayout = NPatchNinePatch | NPatchThreePatchVertical | NPatchThreePatchHorizontal deriving (Eq, Show, Enum) + +instance Storable NPatchLayout where + sizeOf _ = 4 + alignment _ = 4 + peek ptr = do + val <- peek (castPtr ptr) + return $ toEnum $ fromEnum (val :: CInt) + poke ptr v = poke (castPtr ptr) (toEnum $ fromEnum v :: CInt) + + +------------------------------------------------ +-- Raylib structures --------------------------- +------------------------------------------------ + {- typedef struct Vector2 { float x; float y; } Vector2; -} @@ -348,7 +993,7 @@ image'width :: CInt, image'height :: CInt, image'mipmaps :: CInt, - image'format :: CInt + image'format :: PixelFormat } deriving (Eq, Show) @@ -398,7 +1043,7 @@ texture'width :: CInt, texture'height :: CInt, texture'mipmaps :: CInt, - texture'format :: CInt + texture'format :: PixelFormat } deriving (Eq, Show) @@ -499,7 +1144,7 @@ nPatchinfo'top :: CInt, nPatchinfo'right :: CInt, nPatchinfo'bottom :: CInt, - nPatchinfo'layout :: CInt + nPatchinfo'layout :: NPatchLayout } deriving (Eq, Show) @@ -671,7 +1316,7 @@ camera3D'target :: Vector3, camera3D'up :: Vector3, camera3D'fovy :: CFloat, - camera3D'projection :: CInt + camera3D'projection :: CameraProjection } deriving (Eq, Show)
src/Raylib/Util.hs view
@@ -1,8 +1,10 @@ {-# OPTIONS -Wall #-} -module Raylib.Util (c'free, pop, popCArray, withArray2D) where +module Raylib.Util (c'free, pop, popCArray, withArray2D, configsToBitflag) where + +import Raylib.Types (ConfigFlag) import Foreign (Ptr, Storable (peek), castPtr, newArray, free, peekArray) import Control.Monad (forM_) - +import Data.Bits ((.|.)) -- Internal utility functions foreign import ccall "stdlib.h free" c'free :: Ptr () -> IO () @@ -26,4 +28,8 @@ res <- func ptr forM_ arrays free free ptr - return res+ return res + +configsToBitflag :: [ConfigFlag] -> Integer +configsToBitflag = fromIntegral . foldr folder (toEnum 0) + where folder a b = (fromEnum a) .|. b