Opengl1.1绘图之GL_COLOR_LOGIC_OP
Posted 小哈龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Opengl1.1绘图之GL_COLOR_LOGIC_OP相关的知识,希望对你有一定的参考价值。
一.GL_COLOR_LOGIC_OP简介
关于1.1版本的Opengl,可以直接在MSDN查阅,如下:
如果启用,则将当前逻辑操作应用于传入的 RGBA 颜色和颜色缓冲区值。
如果在绘图时启用该选项,则当前绘图颜色索引会与帧缓存区中的对应位置的颜色索引做逻辑运算,即像素颜色值之间的逻辑运算,根据指定的逻辑运算将当前颜色索引值与帧缓冲区中的对应位置的颜色索引值做逻辑运算后生成新的颜色索引值,这个新的颜色索引值既是最终保存在帧缓存区中的颜色索引值,然后将帧缓冲区刷新到界面显示。
二. GL_COLOR_LOGIC_OP基本使用
注意:在glBegin与glEnd之间不能调用glLogicOp函数,会出现GL _ IN VALID_ OPERATlON错误
//启用颜色索引值逻辑操作
glEnable(GL_COLOR_LOGIC_OP);
//设定颜色索引值之间的逻辑运算方式(GL_COPY是使用新的颜色覆盖当前已经存储在缓存区中颜色)
glLogicOp(GL_COPY);
//指定当前绘制图元的颜色值
glColor3f(0.0f,0.0f,255.0f);
//绘制需要的图元(绘制完后会存储在帧缓存区中)
Draw();
//关闭颜色索引值逻辑操作
glDisable(GL_COLOR_LOGIC_OP);
三.glLogicOp函数
glLogicOp函数的参数为指定逻辑运算的方式,具体含义待补充,如下:
Value | Meaning | 含义 |
---|---|---|
GL_CLEAR | 0 | |
GL_SET | 1 | |
GL_COPY | s | 默认模式,使用当前颜色值 |
GL_COPY_INVERTED | !s | |
GL_NOOP | d | |
GL_INVERT | !d | |
GL_AND | s & d | |
GL_NAND | !(s & d) | |
GL_OR | s | d | |
GL_NOR | !(s | d) | |
GL_XOR | s ^ d | 异或操作,使用当前颜色值与缓存区中的颜色值做异或运算后为结果颜色值 |
GL_EQUIV | !(s ^ d) | |
GL_AND_REVERSE | s & !d | |
GL_AND_INVERTED | !s & d | |
GL_OR_REVERSE | s | !d | |
GL_OR_INVERTED | !s | d |
以上是关于Opengl1.1绘图之GL_COLOR_LOGIC_OP的主要内容,如果未能解决你的问题,请参考以下文章