elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  sfml paso por parametro de window
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: sfml paso por parametro de window  (Leído 1,777 veces)
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
sfml paso por parametro de window
« en: 18 Octubre 2014, 19:24 pm »

Hola recién empiezo con sfml y estoy probando las funciones.
Es bastante fácil  ;D
pero lei que no se puede crear una cola de mensajes desde un thread que no ha sido el creador del window ya que quería poner la cola (el while) en otro thread separado.
Luego cree el window dentro del thread que tiene la cola pero necesito tener acceso al window desde la función main.

Se me ocurrió pasar por parámetro un RenderWindow ** al thread pero tampoco funciona porque en la función main utilizo el puntero antes de que se haya creado el window.


Código
  1. #include <SFML/Graphics.hpp>
  2. #include <iostream>
  3. #include <thread>
  4.  
  5.  
  6. using namespace std;
  7. using namespace sf;
  8.  
  9. void window_manage(RenderWindow **);
  10.  
  11.  
  12. int main()
  13. {
  14. sf::VideoMode desktop = VideoMode::getDesktopMode();
  15.  
  16.  
  17. RenderWindow * window = NULL;
  18. thread manage(window_manage,&window);
  19. manage.detach();
  20. window->setTitle("test");
  21. manage.detach();
  22. cout << "aa";
  23. getchar();
  24.    return 0;
  25. }
  26.  
  27. void window_manage(RenderWindow ** _window){
  28. sf::RenderWindow window(VideoMode(200,200), "SFML works!");
  29. *_window = &window;
  30. while (window.isOpen()){
  31.        sf::Event event;
  32.        while (window.pollEvent(event))
  33.        {
  34.            if (event.type == sf::Event::Closed)
  35.                window.close();
  36.        }
  37. }
  38. }


Resumen: Como asignar la dirección del windows creado a un puntero RenderWindow * pasado por parámetro?

No se si me explico bien.

Saludos

@Edit:

Conseguí hacer lo así:
Código
  1. void manage(RenderWindow *window);
  2.  
  3.  
  4. int main()
  5. {
  6. sf::VideoMode desktop = VideoMode::getDesktopMode();
  7. RenderWindow window(VideoMode(200,200),"My first windows with SFLM");
  8. thread _manage(manage,&window);
  9. _manage.detach();
  10.  
  11. while(window.isOpen()){
  12. Event event;
  13. while(window.pollEvent(event)){
  14. if(event.type == Event::Closed)
  15. window.close();
  16. }
  17. }
  18.    return 0;
  19. }
  20.  
  21. void manage(RenderWindow * window){
  22. sleep(milliseconds(1000));
  23. window->setSize(Vector2u(300,300));
  24. }

Pero esto solo me sirve para un window. Para crear mas loops para mas windows?


« Última modificación: 21 Octubre 2014, 12:06 pm por patilanz » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas metodo con parametro (solucionado) era sin parametro XD
Java
rub'n 6 6,946 Último mensaje 25 Noviembre 2010, 16:45 pm
por Afsoon
Paso de flujos por parametro
Programación C/C++
darkvidhack 3 2,740 Último mensaje 17 Mayo 2011, 22:48 pm
por satu
Paso de parametro por referencia
Programación C/C++
abad023 5 3,453 Último mensaje 6 Diciembre 2011, 08:21 am
por x64core
Duda con matrices y paso por parametro « 1 2 3 »
Programación C/C++
patilanz 21 8,064 Último mensaje 24 Abril 2014, 17:08 pm
por vangodp
Problema con Paso de Tablas Bidimensionales como parámetro
Programación C/C++
jamatbar 1 2,312 Último mensaje 10 Diciembre 2014, 16:21 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines