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;
}
am i using SFML in a wrong way ?