Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - jackdaws

#1
Help requests / VS2013 Tutorial - Open GL issue.
12 February 2014, 13:39:27
I was following the tutorial for TGUI in Visual Studio 2013 Pro (Win 8.1 64bit enterprise) when I ran across this problem. Everything compiles fine but when I go to debug the program only the username and password text is displayed the image is not.

The exact error is "An internal OpenGL call failed in RenderTarget.cpp : GL_IVALID_VALUE, a numeric argument is out of range"

I have no idea what that means and the only thing I found on google like that was https://github.com/texus/TGUI/issues/17 .

(Copy paste my code)

ifdef SFML_STATIC
#pragma comment(lib, "glew.lib")
#pragma comment(lib, "freetype.lib")
#pragma comment(lib, "jpeg.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "gdi32.lib") 
#endif // SFML_STATIC


#include <SFML/Graphics.hpp>

#include <TGUI/TGUI.hpp>

void loadWidgets(tgui::Gui& gui);

int main()
{
// Create the window
sf::RenderWindow window(sf::VideoMode(800, 600), "Window");
tgui::Gui gui(window);

// Load the font (you should check the return value to make sure that it is loaded)
gui.setGlobalFont("DejaVuSans.ttf");

loadWidgets(gui);

while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();

// Pass the event to all the widgets (if there would be widgets)
gui.handleEvent(event);
}

// The callback loop
tgui::Callback callback;
while (gui.pollCallback(callback))
{
// Make sure tha callback comes from the button
if (callback.id == 1)
{
// Get the username and password
tgui::EditBox::Ptr editBoxUsername = gui.get("Username");
tgui::EditBox::Ptr editBoxPassword = gui.get("Password");

sf::String username = editBoxUsername->getText();
sf::String password = editBoxPassword->getText();

// Continue here by checking if the username and password are correct ...
}
}


window.clear();

// Draw all created widgets
gui.draw();

window.display();
}

return EXIT_SUCCESS;
}

void loadWidgets(tgui::Gui& gui)
{
// Create the background image
tgui::Picture::Ptr picture(gui);
picture->load("miranda.jpg");
picture->setSize(800, 600);

// Create the username label
tgui::Label::Ptr labelUsername(gui);
labelUsername->setText("Username:");
labelUsername->setPosition(200, 100);

// Create the password label
tgui::Label::Ptr labelPassword(gui);
labelPassword->setText("Password:");
labelPassword->setPosition(200, 250);

// Create the username edit box
tgui::EditBox::Ptr editBoxUsername(gui, "Username");
editBoxUsername->load("TGUI/widgets/Black.conf");
editBoxUsername->setSize(400, 40);
editBoxUsername->setPosition(200, 140);

// Create the password edit box (we will copy the previously created edit box)
tgui::EditBox::Ptr editBoxPassword = gui.copy(editBoxUsername, "Password");
editBoxPassword->setPosition(200, 290);
editBoxPassword->setPasswordCharacter('*');

// Create the login button
tgui::Button::Ptr button(gui);
button->load("TGUI/widgets/Black.conf");
button->setSize(260, 60);
button->setPosition(270, 440);
button->setText("Login");
button->bindCallback(tgui::Button::LeftMouseClicked);
button->setCallbackId(1);
}