2017-08-17 6 views
0

異なりプログラム:OpenGLのGL_POINTS結果は、私がtotalpoint/3の結果が始まるが、私は別のglOrthoとglViewport引数を試みたが、何も</p> <p>私のテストを変えない</p> <p>1つのピクセルで入力と異なっ〜GL_POINTSでなく、後に何かを描きたい入力

int w = atoi(argv[1]); 
int h = atoi(argv[2]); 

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrtho(0, w, h, 0, 1.0, -1.0); 
glMatrixMode(GL_MODELVIEW); 
glEnable(GL_TEXTURE_2D); 
glLoadIdentity(); 

unsigned int wf,hf; 
unsigned char rgb[3]; 

while(!glfwWindowShouldClose(window)){ 
    glClear(GL_COLOR_BUFFER_BIT); 
    glPointSize(1); 
    glBegin(GL_POINTS); 
    for(hf=0;hf<h;hf++){ 
     for(wf=0;wf<w;wf++){ 
      memset(rgb,0,3); 
      rgb[wf%3]=0xff; 
      glColor3ub(rgb[0],rgb[1],rgb[2]); 
      glVertex2f(wf,hf); 
     } 
    } 
    glEnd(); 
    glfwSwapBuffers(window); 
    glfwPollEvents(); 
} 

結果:

未着色

not colored

着色

colored

+1

Windowsは有名なRECTの問題を持っているこのライン

GLFWwindow* wmain = glfwCreateWindow(atoi(argv[1]), atoi(argv[2]), "test", 0, 0); 

を変更私の問題を解決しました。右と下は実際には1ピクセルだけ四角形の外側にあります。同じルールに従わないOpenGLの正しい幅と高さを得るには、GetClientRectから返されたRECTを使って遊ぶ必要があります。 –

+0

多くのありがとうMinchael Royは働いていました – yesex

答えて

0

マイケル・ロイの方法は、その私はちょうど

GLFWwindow* wmain = glfwCreateWindow(atoi(argv[1]) + 1, atoi(argv[2]) + 1, "test", 0, 0); 
+0

身長のために同じことをしなければならないことを忘れないでください。 –

関連する問題

 関連する問題