Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 显示列表不显示';I don’我的工作方式不对_C++_List_Opengl - Fatal编程技术网

C++ 显示列表不显示';I don’我的工作方式不对

C++ 显示列表不显示';I don’我的工作方式不对,c++,list,opengl,C++,List,Opengl,我已经对显示列表进行了编码。。第二天我再次打开它->不见了。。 我还以为。。我白白浪费了几个小时 下一个问题是。。我再也不能让它工作了 显示列表实际上是工作的,但不是它应该如何工作。。纹理以某种方式被拉伸 我从一个文本文件中得到我的世界。。每个平台由x的起始数量定义。。x的结束量 平台底部的y量。。u和v(我不使用)和过滤器来选择纹理。 setupworld是一个从文本文件读取并将变量写入结构的函数。 哦,numblocks是要显示的平台数 void setupworld(){ float xs

我已经对显示列表进行了编码。。第二天我再次打开它->不见了。。 我还以为。。我白白浪费了几个小时 下一个问题是。。我再也不能让它工作了 显示列表实际上是工作的,但不是它应该如何工作。。纹理以某种方式被拉伸

我从一个文本文件中得到我的世界。。每个平台由x的起始数量定义。。x的结束量 平台底部的y量。。u和v(我不使用)和过滤器来选择纹理。 setupworld是一个从文本文件读取并将变量写入结构的函数。 哦,numblocks是要显示的平台数

void setupworld(){
float xstart,xend,ystart,u,v;
unsigned int filter;
FILE *filein;
char oneline[255];
filein=fopen("data/world.txt","rt");

readstr(filein,oneline);
sscanf(oneline, "Anzahl %d\n",&numblocks);

for (int loop=0;loop<numblocks; loop++)
{
        readstr(filein,oneline);
        sscanf(oneline,"%f %f %f %f %f %d",&xstart,&xend,&ystart,&u,&v,&filter);
        block.data[loop].xstart=xstart;
        block.data[loop].xend=xend;
        block.data[loop].ystart=ystart;
        block.data[loop].u=u;
        block.data[loop].v=v;
        block.data[loop].filter=filter;
}
fclose(filein);
return;}
void setupworld(){
浮点数x开始、x结束、y开始、u、v;
无符号整数滤波器;
文件*filein;
char-oneline[255];
filein=fopen(“data/world.txt”、“rt”);
readstr(filein,单行);
sscanf(单行,“Anzahl%d\n”和编号锁);
对于代码中的(int loop=0;loop:

quad[0]=glGenLists(numblocks);
创建numblocks显示列表,但您只获得第一个显示列表id,它存储在四元[0]中。稍后,您可以使用:

glNewList(quad[loop],GL_COMPILE);
其中,循环!=0的quad[loop]未定义。您可以改为使用:

glNewList(quad[0] + loop,GL_COMPILE);
因为显示列表的ID是连续的,从quad[0]的值开始。您还需要将渲染代码修改为:

glCallList(quad[0] + i);

出于同样的原因…

你能发布一个屏幕截图吗?代码乍看起来很好,但一张图像可能值千言万语。另外,我可以问你,为什么你要使用显示列表吗?自从OpenGL-3以来,它们就被弃用了,不应该在新代码中使用。改用顶点缓冲区对象。numblocks的数量是多少?也许你可以打破了限制。在每次opengl调用后使用glGetError,看看是否所有调用都正确通过。我真的很抱歉..我只是无法上传屏幕截图..没有考虑webspace帐户..为什么我使用显示列表?我实际上从未尝试使用vbo..值得检查..但我更喜欢此项目的显示列表,因为它是我的first little game:)哦,麻木锁是在txt文件中定义的..现在只有大约7个..并且显示了块..只有纹理无法正常工作
glNewList(quad[0] + loop,GL_COMPILE);
glCallList(quad[0] + i);