SFML community forums
Help => Window => Topic started by: baccari on June 20, 2011, 06:30:06 pm
-
i'm trying to draw a cube using openGL and then to view it from different angles. i did it using GLUT and it works well. But, using SFML, it doesn't look right because i can see 4 faces of the cube when i should be seeing only 3, and i can see 2 faces when i should be seeing only 2 :-s
here is the code:#include <SFML/Graphics.hpp>
int main()
{
sf::Window App(sf::VideoMode(600, 600, 32), "SFML OpenGL", sf::Style::Close);
GLdouble h = 0.0d;
GLdouble v = 0.0d;
GLdouble l = 0.0d;
while (App.IsOpened())
{
App.SetActive();
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glRotated(l,0.0d,0.0d,0.2d);
glRotated(h,0.2d,0.0d,0.0d);
glRotated(v,0.0d,0.2d,0.0d);
glBegin(GL_QUADS);
//back
glColor3f(1.0f,0.0f,0.0f); //red
glVertex3f(-0.2f,0.2f,0.2f); //top left
glVertex3f(0.2f,0.2f,0.2f); //top right
glVertex3f(0.2f,-0.2f,0.2f); //bottom right
glVertex3f(-0.2f,-0.2f,0.2f); //bottom left
//bottom
glColor3f(0.0f,1.0f,0.0f); //green
glVertex3f(0.2f,-0.2f,0.2f); //back right
glVertex3f(-0.2f,-0.2f,0.2f); //back left
glVertex3f(-0.2f,-0.2f,-0.2f); //front left
glVertex3f(0.2f,-0.2f,-0.2f); //front right
//front
glColor3f(0.0f,0.0f,1.0f); //blue
glVertex3f(0.2f,-0.2f,-0.2f); //bottom right
glVertex3f(-0.2f,-0.2f,-0.2f); //bottom left
glVertex3f(-0.2f,0.2f,-0.2f); //top left
glVertex3f(0.2f,0.2f,-0.2f); //top right
//top
glColor3f(1.0f,1.0f,0.0f); //yellow
glVertex3f(0.2f,0.2f,-0.2f); //front right
glVertex3f(-0.2f,0.2f,-0.2f); //front left
glVertex3f(-0.2f,0.2f,0.2f); //back left
glVertex3f(0.2f,0.2f,0.2f); //back right
//left
glColor3f(0.0f,1.0f,1.0f); //pink
glVertex3f(-0.2f,-0.2f,-0.2f); //bottom front
glVertex3f(-0.2f,-0.2f,0.2f); //bottom back
glVertex3f(-0.2f,0.2f,0.2f); //top back
glVertex3f(-0.2f,0.2f,-0.2f); //top front
//right
glColor3f(1.0f,0.0f,1.0f); //cyan
glVertex3f(0.2f,-0.2f,-0.2f); //bottom front
glVertex3f(0.2f,-0.2f,0.2f); //bottom back
glVertex3f(0.2f,0.2f,0.2f); //top back
glVertex3f(0.2f,0.2f,-0.2f); //top front
glEnd();
glFlush();
App.Display();
sf::Event Event;
while (App.GetEvent(Event))
{
if (Event.Type == sf::Event::Closed)
App.Close();
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
App.Close();
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Right))
v+=10.0d;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Left))
v-=10.0d;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Up))
h+=10.0d;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Down))
h-=10.0d;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::PageUp))
l+=10.0d;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::PageDown))
l-=10.0d;
}
}
return EXIT_SUCCESS;
}
(https://lh4.googleusercontent.com/-RB2d-7exTdw/Tf90r18hCFI/AAAAAAAAAGg/8vOi0krkAn4/Capturer1.JPG)(https://lh3.googleusercontent.com/-Js_UiAdM_JY/Tf90sEJHUhI/AAAAAAAAAGk/9Yi8fG2-d0w/Capturer.JPG)
am i using SFML in a wrong way ?
-
Depth buffer is missing. See http://www.sfml-dev.org/tutorials/1.6/window-opengl.php for more information.
-
thanks, it works now.