Welcome, Guest. Please login or register. Did you miss your activation email?

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.


Messages - KilledWhale

Pages: [1]
1
Window / Checking when window is ready for drawing
« on: January 08, 2012, 10:22:57 am »
Quote from: "Laurent"
Have you tried to add event handling or not?

I tried adding event handling like this but no difference.
Code: [Select]
#include <stdint.h>
#include <iostream>
#include <SFML/Graphics.hpp>

int main() {
sf::RenderWindow window(sf::VideoMode(800, 800), "");

sf::Vertex points[2];
points[0].Position.y = 50;
points[0].Position.x = 50;
points[1].Position.y = 400;
points[1].Position.x = 500;

window.Draw(points, 2, sf::Lines);
window.Display();

sf::Event ev;

while(window.WaitEvent(ev)) {
if (ev.Type == sf::Event::Closed) break;
if (ev.Type == sf::Event::KeyPressed) break;
}

return 0;
}

2
Window / Checking when window is ready for drawing
« on: January 08, 2012, 01:26:53 am »
Quote from: "Laurent"
You probably need to handle your window's events. If you don't, the OS events will never reach your SFML window and it will remain frozen/inactive.

Quote
I believe you must call Clear(). I recently tried to omit it because I filled the whole background with an image, which resulted in strange display bugs.

This is strange, Clear is definitely not needed if you fill the entire target.

But that still doens't explain why it works with sleep() but not without it :/

3
Window / Checking when window is ready for drawing
« on: January 07, 2012, 04:55:28 pm »
Quote from: "Nexus"
I believe you must call Clear(). I recently tried to omit it because I filled the whole background with an image, which resulted in strange display bugs.

Calling Clear() doesn't help. Also it would make no sense as the program works if I use the sleep() to wait after creation  :(

4
Window / Checking when window is ready for drawing
« on: January 07, 2012, 04:50:11 pm »
Following code draws the line as it should but without the sleep(1); it doesn't display a thing. Not even a black background.

Is some part of window initialization done asynchronously?

Happens at least on linux x64.

I wonder if there's any way to check if the window's ready for drawing or not because this solution seems kinda hacky.

Discovered the issue when I was trying to draw sierpinski triangle line-by-line without clearing the screen between each line drawing.

Code: [Select]
#include <stdint.h>
#include <iostream>
#include <SFML/Graphics.hpp>

int main() {
  sf::RenderWindow window(sf::VideoMode(800, 800), "");

  sleep(1);
 
  sf::Vertex points[2];
  points[0].Position.y = 50;
  points[0].Position.x = 50;
  points[1].Position.y = 400;
  points[1].Position.x = 500;

  window.Draw(points, 2, sf::Lines);
  window.Display();
 
  sleep(500);

  return 0;
}

Pages: [1]