Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





HLGL

Iniciado por LC0, 13 de Septiembre de 2006, 01:16:18 PM

« anterior - próximo »

LC0

Llevaba bastante tiempo pensando en hacer un motorcillo 3D, aunque siempre me echaba algo para atrás el peso que conlleva mantenerlo, actualizarlo, añadirle nuevas features... Sobre todo si se encarga de él una sola persona.

Así que, pensando en algo que podría realizar en relativamente poco tiempo, he realizado una bibliotequilla para gráficos en 2D con aceleración gráfica.

Las siglas vienen a significar "High Level Graphics Library" (si se os ocurre algo mejor, estoy abierto a sugerencias :P).

Básicamente, es un abstract factory en el  que se puede elegir la API gráfica que se desea usar de fondo (D3D u OpenGL, aunque yo solo he implementado OGL, ya que no me manejo con D3D).

Con esto, el usuario puede crear una serie de sprites que podrá mover, rotar, escalar, cambiar el alpha y demás pamplinas. Un ejemplo de código de uso muy básico:

Citar
#include "core.h"
using namespace hlgl;
int main()
{
   Core::getSingleton()->setRenderer(Core::SDL_GL);
   Core::getSingleton()->init(800, 600, CD_32, false);
   
     cPointer<Sprite> sprite = Core::getSingleton()->getRenderer()->createSprite();
     cPointer<Sprite> bg = Core::getSingleton()->getRenderer()->createSprite();

   sprite->loadFrame("logo.png");
   bg->loadFrame("background.jpg");
   bg->unsetColorKey();
   bg->setZ(0.0);
   sprite->setZ(1.0);
   
   while(1)
   {
      sprite->setX(sprite->getY() + 0.01);
      sprite->setY(sprite->getY() + 0.01);
      Core::getSingleton()->render();
   }
   return 0;
}

No pongo ningún screenshot porque es una tontería, solo se vería un sprite con el "logo" (bastante cutre, todo hay que decirlo :)) y otro con un paisaje.

Aparte de la implementación para D3D, falta la implementación de sistemas de partículas y, lo más importante, convertirlo a DLL (el proyecto por ahora es un ejecutable). Ah! Y la documentación, que es prácticamente lo más importante.

Imagino que cuando tenga algo decente liberaré el código, ya que supongo que, si todo me va bien, pronto encontraré curro y no podré dedicarle mucho tiempo a esto (aunque siempre se podrá encontrar algún ratejo infinitesimal).


Hasta otra.






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.