Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - phantom

#1
General / Re: Caelis Studios
05 de Enero de 2007, 07:55:36 AM
Ya esta abierto el concept en los foros.
Pueden ingresar por el .com ahora:
http://foros.caelis-studios.com

Salu2
y dejen algo de feedback :wink:
#2
General / Caelis Studios
16 de Diciembre de 2006, 05:28:28 AM
Hola a todos!
si se dan una vuelta por la web, veran que hemos inaugurado la seccino de concept-art :)..."prematuramente"  :roll:  pero es porque no pudimos esperar a hacer esto que tanto nos gusta, que es el game development :D

Estan todos invitados a debatir el concept en los foros de Caelis  :wink:

Salu2
PD: en mi firma las urls de la web y el foro.
#3
Programación gráfica / Multithreading En SDL
07 de Diciembre de 2006, 11:55:02 PM
Bueno, misteriosamente si creo una aplicacion de ejemplo y añado un thread, funciona =S, pero mi pregunta es:

Si le añado un thread, el thread se ejecuta 1 sola vez:
¿como puedo hacer para que se ejecute varias veces?

La linea de mLog->... ... ... es totalmente obvio que no esta 100% bien :), comprobado esta que no me tilda la aplicacion, y tampoco imprime exactamente lo que yo querria, puesto que esta hecho "on-the-fly" y no necesariamente para que funcione como se esperaria.

Gracias!.

Salu2
#4
General / Caelis Studios
07 de Diciembre de 2006, 11:46:32 PM
Jaja, gracias por el humor  :wink:
De veras que es una fecha estimada, porque no creo que ninguno del equipo este laburando (trabajando) para esa fecha, y vos que decis?.

Bueno, si, esa es la fecha desde la que se empezara a colgar todo el material que tengamos, y a hacer los muestreos de los avances semanalmente (quizas quincenalmente).

En fin, gracias por la participacion.
La web estara mas llena cuando tengamos el primer release del CaelisEngine (antes de año nuevo) y otras cosas.

Salu2
#5
General / Caelis Studios
07 de Diciembre de 2006, 05:02:49 AM
Hola a todos!

Somos un gupo de desarrollo que tiene ya casi 2 años de pie, y un par de trimestres BIEN conformado :P...

Este 25 de diciembre empezamos el desarrollo Oficial de Aerial Death, el proyecto cabecera de Caelis Studios.

Mientras tanto, en los foros pueden ver noticias y documentos sobre el proyecto y otros proyectos (como el CaelisEngine).

Espeero minima participacion  :wink:

Gracias a todos!
Salu2

PD: en mi firma la url.
#6
Programación gráfica / Multithreading En SDL
05 de Diciembre de 2006, 11:55:20 PM
Hola, uso SDL 1.2.11, CodeBlocks y copmilo con el GCC.

El caso es este, hasta hace tiempo estuve haciendo algunas clases para simplifacar el Multithreading via SDL en mi lib, pero no consigo mucho :S...

Aqui el codigo:
(el codigo fue escrito por Lucas Tavolaro Ortiz, a.k.a Tavo, antiguo colaborador al motor, pero ahora que se fue, estoy yo a cargo de esto tambien y le hice algunas modificaciones [NUNCA funciono esta parte])
Código:
PhantomSDL_CMULTITHREADING *PhantomSDL_CMULTITHREADING::mInstance = 0;

PhantomSDL_CMULTITHREADING::PhantomSDL_CMULTITHREADING()
   {
   mLog = PhantomSDL_CLOG::getInstance();
   mLog->write(2,"[CMultiThreading]-> Singleton Created.");
   }

PhantomSDL_CMULTITHREADING::~PhantomSDL_CMULTITHREADING()
   {
   mLog->write(2,"[CMultiThreading]-> Singleton Destroyed.");
   PhantomSDL_CMULTITHREADING::waitAllThreads();
   PhantomSDL_CMULTITHREADING::killAllThreads();
   }

PhantomSDL_CMULTITHREADING* PhantomSDL_CMULTITHREADING::getInstance()
   {
   if ( PhantomSDL_CMULTITHREADING::mInstance == 0 )
       {
       mInstance = new PhantomSDL_CMULTITHREADING;
       }
   return mInstance;
   }

void PhantomSDL_CMULTITHREADING::erase()
   {
   if( PhantomSDL_CMULTITHREADING::mInstance != 0)
       {
       delete mInstance;
       }
   }

void PhantomSDL_CMULTITHREADING::addThread(int (*THREADName)(void*), void* THREADData)
   {
   mThreads.push_back(SDL_CreateThread(THREADName, THREADData));
   mLog->write(2,"[CMultiThreading]-> added a Thread with the following name: %s & data: %s",THREADName, THREADData);
   }

void PhantomSDL_CMULTITHREADING::deleteThread(SDL_Thread* THREADName)
   {
   if(mThreads.empty())
       {
       mLog->write(2,"[CMultiThreading]-> no threads to kill.");
       return;
       }
   std::list<SDL_Thread*>::iterator it;
   for(it = mThreads.begin(); it != mThreads.end(); it++)
       {
       if( (*it) == THREADName)
           {
           SDL_KillThread( (*it) );
           mThreads.erase(it);
           (*it) = NULL;
           mLog->write(2,"[CMultiThreading]-> the thread with the following name was killed: %s.",THREADName);
           break;
           }
       }
   }

void PhantomSDL_CMULTITHREADING::waitForThread(SDL_Thread* THREADName, int* Status)
   {
   std::list<SDL_Thread*>::iterator it;

   for(it = mThreads.begin(); it != mThreads.end(); it++)
       {
       if( (*it) == THREADName)
           {
           SDL_WaitThread( (*it),NULL );
           break;
           }
       }
   }

void PhantomSDL_CMULTITHREADING::waitAllThreads()
   {
   std::list<SDL_Thread*>::iterator it;

   for(it = mThreads.begin(); it != mThreads.end(); it++)
       {
       SDL_WaitThread( (*it),NULL);
       mThreads.erase(it);
       (*it) = NULL;
       }
   }

void PhantomSDL_CMULTITHREADING::killAllThreads()
   {
   std::list<SDL_Thread*>::iterator it;

   for(it = mThreads.begin(); it != mThreads.end(); it++)
       {
       SDL_KillThread( (*it) );
       mThreads.erase(it);
       (*it) = NULL;
       }
   }


Creo que esta todo claro.
Por las dudas, dejo el .h
Código:
#ifndef _PHANTOMSDL_MULTI_THREADING
   #define _PHANTOMSDL_MULTI_THREADING
       class PHANTOMSDL_EXPORT PhantomSDL_CMULTITHREADING
           {
           private:
               //Private Properties And Methods For Singleton Pattern
               static PhantomSDL_CMULTITHREADING* mInstance;
               PhantomSDL_CMULTITHREADING();

               //Private Properties And Methods For Multithreading Handling
               std::list<SDL_Thread*> mThreads;
               PhantomSDL_CLOG *mLog;

           public:
               //Public Properties And Methods For Singleton Pattern
               static PhantomSDL_CMULTITHREADING* getInstance();
               static void erase();
               ~PhantomSDL_CMULTITHREADING();

               //Public Properties And Methods For Multithreading Handling
               void addThread( int (*THREADName)(void*), void* THREADData = NULL);
               void deleteThread(SDL_Thread* THREADName);
               void waitForThread(SDL_Thread* THREADName, int* Status = 0);

               void waitAllThreads();
               void killAllThreads();
           };
   #endif

Los problemas estan, de seguro para agregar threads :S...pero no entiendo bien como se manejan, y no logro hacerlos funcionar.

Si alguno tiene experiencia y tiene algo que decirme al respecto, le daria mil gracias.

Salu2





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.