EDIT: Nevermind it was culling that caused this ._.Hi...
I need a bit of help figuring out how to use the graphics module with OpenGL.
My attempt:
#include "application.h"
Application::Application(Configuration c) :
vmode(c.width, c.height, c.depth),
win(vmode, c.title, sf::Style::Default, c.gfx),
fpsTimer(),
deltaTimer() {
// INITIALIZE
win.setVerticalSyncEnabled(true); // call it once, after creating the window
// OR win.setFramerateLimit(60); // --||--
Input::init();
is_running = true;
// SETUP
game = new Game(c.width, c.height);
//OPENGL
// Create a sprite for the background
texture = 0;
{
sf::Image image;
if (!image.loadFromFile("data/gfx/crate.bmp"))
is_running = false;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
}
// Setup an ortographic projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, c.width, 0.0, c.height, -1.0, 1.0);
glViewport(0, 0, c.width, c.height);
//Culling
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
glCullFace(GL_BACK);
glColor4f(1.f, 1.f, 1.f, 1.f);
// MISC
//ALpha
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
config = c;
}
Application::~Application() {
// Don't forget to destroy the texture
glDeleteTextures(1, &texture);
//oss.str(""); //DO THIS IF DRAWING TEXT
delete game;
}
void Application::run() {
while (is_running)
{
// E V E N T S
// Handle inp presses or releases
Input::frame();
sf::Event event;
while (win.pollEvent(event))
{
Input::sync(event);
switch(event.type) {
case sf::Event::Closed:
// Window closed
is_running = false;
break;
case sf::Event::Resized:
// adjust the viewport when the window is resized
glViewport(0, 0, event.size.width, event.size.height);
break;
case sf::Event::KeyReleased:
// ESC released
if(event.key.code==sf::Keyboard::Escape) is_running = false;
break;
default:
break;
}
}
// L O G I C
double fps = 0;
double framerate = fpsTimer.getElapsedTime().asSeconds();
if(framerate>0.0) fps = 1.0/framerate;
else fps = config.fps;
fpsTimer.restart();
game->update(deltaTimer.getElapsedTime().asMilliseconds());
// G F X
// Activate the first window
win.setActive(true);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
game->drawGL(win);
win.pushGLStates();
game->drawSFML(win);
win.popGLStates();
win.display();
}
}
It draw the OpenGL graphics but seemingly the OpenGL graphics is either the only thing drawn or is drawn after the SFML graphics.
Any hints?
Also it would be nice with a page about it on the wiki .
EDIT: Nevermind it was culling that caused this ._.