2012-11-14 1 views
1

빨간색으로 클리어되지 않았다 보여 주지만, 화면의 중앙에는 포인트는 여기에 방법이 전체 코드입니다 :간단한 glfw 무승부 점은 나는 화면을 볼 수있는 건 아무것도

#include "GL/glfw.h" 
void render_loop() 
{ 
    glClearColor (.7, .1, .1, 1.0f); 
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glViewport(0,0,1024,768); 
    glMatrixMode(GL_PROJECTION); 
    //gluPerspective(65.0, (double)1024/(double)768, 1.0, 60.0); 
    glOrtho(0,1024,768,0,100,-100); 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 

    glPointSize(10); 
    glBegin(GL_POINTS); 
    glColor4f(1,1,1,1); 
    glVertex3f(512,384,0); 
    glEnd(); 

    glfwSwapBuffers(); 

} 
int main (int argc, char* argv[]) 
{ 
    //init glfw 
    glfwInit(); 

    glfwOpenWindow (1024, 768, 8, 8, 8, 8, 24, 0, GLFW_WINDOW); 

    do { 
     render_loop(); 
    } while (glfwGetWindowParam (GLFW_OPENED)); 

    glfwTerminate(); 
} 

를 사용하여 컴파일 : 나는 여전히 같은 gluPerspective(65.0, (double)1024/(double)768, 1.0, 60.0);를 사용하여 컴파일하는 경우

[email protected]:~> gcc --version 
gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773] 
Copyright (C) 2012 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

는 화면의 중앙에있는 아무 점도, 나는 그것을 컴파일이 makefile을 사용하지 :

#makefile for example1 on linux 

CC=gcc -std=c99 -Wno-unused-function -Wno-unused-variable 


SRC=\ 
a.c \ 

OBJS=$(SRC:.c=.o) 

NAME=testglpoints 

CFLAGS = -Wall $(INCLUDE) 

LFLAGS =\ 
-lGL \ 
-lglut \ 
-lGLU \ 
-lGLEW \ 
-ldl \ 
-lpthread \ 
-lm \ 
-lglfw 


all: debug 

debug:override CFLAGS = -g3 -O0 -Wall 

debug:$(OBJS) 
    $(CC) $(CFLAGS) $(LFLAGS) $(SRC) -o $(NAME) 

clean: 
    @rm -f *.o 
+1

['glOrtho()'] (http://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml)에서'left'와'right' 둘 다에 0을 전달하는 것은 확실히 isn ' 어떤 호의를 베풀지 않아. – genpfault

+0

감사합니다. 적절한 glortho 매개 변수로 변경되었지만 여전히 그 점을 볼 수 없습니다. – steave

답변

1

glOrtho() 전에 glLoadIdentity()이 필요합니다.

glOrtho() 그것에 의해 현재 행렬 그것을 승산을 설정하지 않는다. 따라서 호출하기 전에 현재 행렬을 알려진 값 (glLoadIdentity()을 통해 항등 매트릭스)으로 설정하십시오.