Haskell OpenGL 项目教程

Haskell OpenGL 项目教程

OpenGLHaskell bindings to OpenGL项目地址:https://gitcode.com/gh_mirrors/openg/OpenGL

1. 项目的目录结构及介绍

OpenGL/
├── LICENSE
├── README.md
├── Setup.hs
├── app/
│   └── Main.hs
├── src/
│   ├── Graphics/
│   │   └── GL/
│   │       ├── GL.hs
│   │       ├── GLU.hs
│   │       └── GLUT.hs
│   └── Paths_OpenGL.hs
├── stack.yaml
└── OpenGL.cabal

目录结构介绍

  • LICENSE: 项目的开源许可证文件。
  • README.md: 项目的介绍和使用说明。
  • Setup.hs: Haskell项目的设置文件。
  • app/: 包含项目的启动文件 Main.hs
  • src/: 包含项目的源代码,主要分为 Graphics/GL/ 目录,其中包含 GL.hs, GLU.hs, GLUT.hs 等文件。
  • stack.yaml: Stack 构建工具的配置文件。
  • OpenGL.cabal: Cabal 构建工具的配置文件。

2. 项目的启动文件介绍

app/Main.hs

module Main where

import Graphics.GL.GL
import Graphics.GL.GLU
import Graphics.GL.GLUT

main :: IO ()
main = do
    -- 初始化 GLUT
    initialDisplayMode $= [DoubleBuffered]
    initialWindowSize $= Size 800 600
    createWindow "OpenGL in Haskell"

    -- 设置 GLUT 回调函数
    displayCallback $= display
    reshapeCallback $= Just reshape
    keyboardMouseCallback $= Just keyboardMouse

    -- 进入 GLUT 主循环
    mainLoop

display :: DisplayCallback
display = do
    clear [ColorBuffer]
    -- 在这里添加你的 OpenGL 渲染代码
    flush

reshape :: ReshapeCallback
reshape size = do
    viewport $= (Position 0 0, size)
    postRedisplay Nothing

keyboardMouse :: KeyboardMouseCallback
keyboardMouse key state modifiers position = return ()

启动文件介绍

  • app/Main.hs: 这是项目的启动文件,包含了 main 函数,负责初始化 GLUT 并设置 OpenGL 的显示模式、窗口大小和回调函数。display 函数用于渲染场景,reshape 函数用于处理窗口大小变化,keyboardMouse 函数用于处理键盘和鼠标事件。

3. 项目的配置文件介绍

stack.yaml

resolver: lts-18.18
packages:
- .
extra-deps: []
flags: {}
extra-package-dbs: []

OpenGL.cabal

name:                OpenGL
version:             0.1.0.0
synopsis:            OpenGL bindings for Haskell
description:         This package provides bindings for OpenGL, GLU, and GLUT.
homepage:            https://github.com/haskell-opengl/OpenGL
license:             BSD3
author:              John Doe
maintainer:          john.doe@example.com
category:            Graphics
build-type:          Simple
extra-source-files:  README.md
cabal-version:       >=1.10

executable OpenGL
  main-is:             Main.hs
  other-modules:       Paths_OpenGL
  build-depends:       base >=4.14 && <4.15
                     , GLUT
                     , OpenGL
  hs-source-dirs:      app
  default-language:    Haskell2010

配置文件介绍

  • stack.yaml: 这是 Stack 构建工具的配置文件,指定了项目的依赖解析器和包信息。
  • OpenGL.cabal: 这是 Cabal 构建工具的配置文件,定义了项目的名称、版本、描述、许可证、作者、维护者等信息。executable OpenGL 部分定义了可执行文件的入口点 Main.hs 和其他依赖项。

通过以上配置,项目可以被正确构建和运行。

OpenGLHaskell bindings to OpenGL项目地址:https://gitcode.com/gh_mirrors/openg/OpenGL

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟炯默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值