我想读的屏幕像素这样做的RGB值:glReadPixels与屏幕像素
#include "stdafx.h"
#include<windows.h>
#include<stdio.h>
#include <gl\GL.h>
int main(int argc, char** argv)
{
GLubyte color[3];
glReadPixels(800, 800, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, &color);
printf("R:%d G:%d B:%d", color[0], color[1], color[2]);
while (1);
}
但它并不重要坐标我问。它始终返回我R:204 G:204 B:204
我在做什么错?
你想做什么?您甚至没有创建OpenGL上下文... –
我想读取位置x = 800像素的RGB值y = 800 – sergio
glReadPixels只能在与其关联的OpenGL上下文的屏幕中工作。在glReadPixels文档中有一个注释:“位于连接到当前GL上下文的窗口之外的像素的值未定义”。换句话说,只有在以下情况下,才能确保获得实际的像素值:1.有一个窗口并且2.将GL上下文连接到它。 –