image.png

这个main函数主要作用是使用openGL和GLFW库所创建的简单图形程序的主体。

什么是OpenGL?
OpenGL是一个跨语言的跨平台的应用程序编程接口(API),可用于渲染2D和3D矢量图形。可以提供对图形硬件的底层访问。大白话就是程序运行完成之后,出的这个结果文件。OpenGL可以利用这个结果文件进行可视化展示,这个展示的速度(渲染的速度)可以用GPU进行一个加速。大概它的作用就是这样的。

什么是GLFW?
他也是一个库,可以创建窗口,处理用户输入(如键盘、鼠标)事件,大概就是和操作系统的窗口系统和事件处理机制有关。

OpenGL和GLFW一般来说是怎么用的呢?
第一步首先是创建窗口,在图形应用程序中,窗口是图形用户界面的基本元素之一,它提供了一个视觉容器,在这个容器中可以显示图形内容。这个事是GLFW库干的。

OpenGL上下文是一个巨大的状态机(里面有各种状态变量),这种状态变量控制了OpenGL如何执行渲染操作。每次使用OpenGL API去绘图时,实际上都是在修改或查询OpenGL的上下文状态,然后根据这些状态去渲染图形。
里面有个很重要的函数:

image.png

创建一个OpenGL上下文的意思,第一,是创建一个窗口,并初始化与这个窗口相关联的OpenGL状态和变量集合。这样,当在这个窗口中绘制图形时,OpenGL就知道所有的渲染操作在哪里显示,以及如何根据当前的状态来执行这些操作了。

在当前代码中:

image.png

glad是OpenGL库,GLFW就是它本身。
刚进来就把GLFW窗口指针指向了一个库:

image.png

这行代码首先调用getinstance()方法获取GPUPixelContext的单例,然后调用GetGLContext方法获取与GPUPixelContext关联的GLFWwindows*类型的OpenGL上下文。

什么是单例?
单例模式,是一种设计模式,用于确保一个类中只有一个实例,并提供一个全局访问点,来获取该实例。

具体的代码操作是这样的:

image.png

大概就是这么实现的,私有构造函数:将类的构造函数定义为私有,防止外部通过new直接创建类的实例。
并在类的内部定义一个私有变量来持有类的唯一实例。
然后单例类负责创建自己的唯一实例,并在第一次被请求时初始化这个实例。

目前可以断定的是,这个程序是有写拖动模块的元素的。
并且这些变量持有不同的图像滤镜效果。

image.png

还有一些浮点型变量用于调整滤镜的效果。

image.png

这个就是接口了我觉得,如果不能用滑块拖动来看效果的话,用这个变量值来进行一个设定我觉得不失为一个办法。
而下面这个:

image.png

是写了一个键盘的事件的。来修改这个value值。


柬之不是剪枝
1 声望0 粉丝