OpenGL的glDrawPixels()函数也能实现图像显示,但是现在高版本的OpenGL都采用glTexImage2D()贴纹理的方式了,也不用考虑图像大小是否是2的N次方,或者4字节对齐的问题。
WHITE : BLACK); } } glDrawPixels(SCREEN_COLS, SCREEN_ROWS, GL_RGB, GL_UNSIGNED_BYTE,
glDrawPixels:绘制一些像素。当前可以简单理解为“把内存中一些数据作为像素数据,进行绘制”。 glCopyPixels:复制一些像素。 glDrawPixels glDrawPixels函数与glReadPixels函数相比,参数内容大致相同。 两个函数的最后一个参数也是对应的,glReadPixels中表示像素读取后存放在内存中的位置,glDrawPixels则表示用于绘制的像素数据在内存中的位置。 // 每次绘制时,画面都覆盖整个屏幕 // 因此无论是否清除屏幕,结果都一样 // glClear(GL_COLOR_BUFFER_BIT); // 绘制像素 glDrawPixels 6️⃣ 最后三个参数与glDrawPixels函数的最后三个参数的使用方法相同,其含义可以参考glReadPixels的最后三个参数。大家可以复习一下第10课的相关内容,这里不再重复。
z 值从标准的设备坐标映射到窗口坐标 glDrawArrays 定义渲染多个图元 glDrawBuffer 定义选择哪个色彩缓冲区被绘制 glDrawElements 渲染数组数据中的图元 glDrawPixels
参数format和type描述了纹理映射的格式和数据类型,它们在这里的意义与在函数glDrawPixels()中的意义相同,事实上,纹理数据与glDrawPixels()所用的数据有同样的格式。