C++改变屏幕颜色用啥函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++改变屏幕颜色用啥函数相关的知识,希望对你有一定的参考价值。

参考技术A #include<conio.h>
void main(void)
int color;
for(color=0;color<8;color++)
textbackground(color);
cprintf("This is color %d\r\n",color);
cprintf("Press any key to continue\r\n");
getch();

本回答被提问者和网友采纳

如何使用 OpenGL 和 GLSL 改变颜色(C++)?

【中文标题】如何使用 OpenGL 和 GLSL 改变颜色(C++)?【英文标题】:How to use OpenGL and GLSL to change color (C++)? 【发布时间】:2011-12-12 01:18:42 【问题描述】:

我正在使用 C++ 编写一个 OpenGL 项目,我想学习如何使用 GLSL 着色器。问题是,虽然我可以在不使用自己的着色器的情况下完成我的程序,但我想编写自己的(此时没有我自己加载的着色器 - 不确定 OpenGL 是否默认任何着色器)。

要在图像上绘制一堆线(其顶点存储在一个向量中,颜色值存储在另一个向量中),我使用以下代码运行并在帧更新时渲染它们 - 我使用GLUT 显示函数。

glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);  
vector<point2>::iterator it;
int c_index = 0;
for(it=points.begin(); it<points.end(); it++)
    if(c_index % 2 == 0) //set color for every pair of points (each line)
        glColor3f(colors[c_index/2][0], colors[c_index/2][1], colors[c_index/2][2]);
    c_index++;

    glVertex2f(it->x, it->y); //set vertex

glEnd();
glFlush();

现在,问题是当我尝试使用在另一个示例程序中找到的着色器时,颜色全是红色(即使着色器没有明确定义任何颜色)。它也让 glColor3f 什么也不做。

我的问题是,假设我可以使用着色器来执行此操作,那么着色器必须是什么样的,我将如何加载它们?

【问题讨论】:

您使用的是什么版本的 GLSL? (如果您的着色器代码中没有使用#version,它可能是 GLSL 1.10。) 当涉及到着色器时,这个特殊的代码 sn-p 是没有意义的。我们需要看的代码是着色器本身、着色器对象创建代码以及统一和属性绑定。 【参考方案1】:

显然它不能使用 glColor3f 来完成。相反,我必须制作一个预先确定的 OpenGL 缓冲区,并将缓冲区数据发送到着色器。它不能像我希望的那样“即时”完成。

【讨论】:

以上是关于C++改变屏幕颜色用啥函数的主要内容,如果未能解决你的问题,请参考以下文章

c 中改变背景颜色的函数是啥?各种颜色的代码是啥?

手机看小说用啥颜色的背景和字体不伤眼睛些

使用 c++ 和 GDI 分析屏幕截图以获得屏幕的平均颜色

汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色

如何使用 OpenGL 和 GLSL 改变颜色(C++)?

c++改变控制台显示颜色