{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:hackage/caramia","name":"caramia","description":"This is a highish-level OpenGL bindings library for real-time graphics for\nHaskell, with minimum OpenGL version being 2.1.\n\nRequirements:\n\nGHC 7.8+\n\nOpenGL 2.1 (with some extensions)\n\nIf the target system has OpenGL 3.3, then all features in this library should\nbe available unless stated otherwise. OpenGL contexts with 3.x or later\nversions can be a core profile; this library does not care.\n\nYou need to use `-threaded` flag in executables that use this library.\n\nHere are the most important features of this library:\n\nSafe and automatic finalization of OpenGL resources, with optional prompt\nfinalization.\n\nNo implicit state (that is, no glBind* mess or equivalent). There is a\nmonad for mass-rendering that has implicit state but the state is localized\nto running of that monad. (see Caramia.Render).\n\nHere are some curious features that you might find useful.\n\nThis library plays nice with other OpenGL libraries. It does not mess up\nthe implicit OpenGL state (except for aforementioned rendering monad).\n\nThis library does not create an OpenGL context. You can use whatever\nlibrary you want to create an OpenGL context as long as it can get an\nOpenGL 2.1 (or any later version) context. You may be interested at looking\nat the tests in this package to see how to use this with the sdl2\npackage.\n\nOperations are generalized over MonadIO. Works on top of pure IO and\nalso in your custom monad stacks, as long as they implement MonadIO.\n\n(At least) the following OpenGL concepts are present in this library:\n\nBuffer objects (you can do low-level mapping and use raw pointers)\n\nGeometry, vertex and fragment shaders\n\nIndexed and non-indexed rendering\n\nFramebuffers\n\nTextures (with many topologies, 1D, 2D, 3D, texture arrays, cube textures;\nwe also have buffer textures and multisampling textures)\n\nVertex array objects\n\nBlending, stencil, depth and cull tests\n\nInstanced rendering\n\nSynchronization objects\n\nQuery objects\n\nThis library tries to avoid including obsolete or redundant features of OpenGL.\n\nNote that the library is in flux and API-breaking changes tend to happen\noften.","version":"0.7.2.2","softwareVersion":"0.7.2.2","license":"https://spdx.org/licenses/MIT","codeRepository":"https://github.com/Noeda/caramia","issueTracker":"https://github.com/Noeda/caramia/issues","url":"https://github.com/Noeda/caramia/","keywords":["graphics","library","mit","Propose Tags"],"programmingLanguage":{"@type":"ComputerLanguage","name":"Haskell"},"maintainer":[{"@type":"Person","name":"Adeon"}],"author":[{"@type":"Person","name":"Adeon"}],"copyrightHolder":[{"@type":"Person","name":"Adeon"}],"dateCreated":"2014-10-09","dateModified":"2015-05-09","datePublished":"2015-05-09","copyrightYear":2014,"downloadUrl":"https://hackage.haskell.org/package/caramia-0.7.2.2/caramia-0.7.2.2.tar.gz","applicationCategory":"hackage","runtimePlatform":"hackage","developmentStatus":"active","sameAs":["https://hackage.haskell.org/package/caramia"],"https://www.w3.org/ns/activitystreams#likes":10,"https://forgefed.org/ns#forks":1}