20/4/09

phpMedia 2.0




Hace unos 5 años, hice una extensión para php que permitía hacer aplicaciones multimedia 2D. Por aquel entonces usaba PHP4 y Allegro. Todo el tema gráfico se hacía por software y no permitía conseguir un buen rendimiento. El API no era orientado a objetos y PHP4  estaba mucho más limitado que en la actualidad. El proyecto se alojaba en sourceforge aquí.

Hace un par de semanas, decidí que estaría bien revivir aquello, pero hacerlo mucho mejor: con una interfaz orientada a objetos para PHP5.3 y usando OpenGL con aceleración completa por hardware.

Establecí un proyecto en googlecode. Y me puse a idear el API que tendría. El objetivo es conseguir un API sencillo y útil. Que no sea totalmente versatil, pero que deje hacer bastantes cosas.
Hice un prototipo de interfaz en PHP, y un generador de documentación para googlecode.
Aunque no hice nada, ya tenía mas o menos pensada parte del API.
Esta tarde/noche, me he puesto con ello. Con unos resultados muy prometedores. He tenido muy pocos problemas y ha ido todo como esperaba o incluso mejor.

Como resultado he sacado una primera versión usable, para PHP5.3. En la página del proyecto está.

Lo que he hecho:
  • Soporte básico de teclado. Las teclas principales. Detectar pulsaciones o detectar si está pulsada o levantada la tecla.
  • Inicialización gráfica (ventana o pantalla completa)
  • Clase Bitmap (bastante avanzada). Permite crear nuevos bitmaps, cargar desde archivos o desde cadenas. Permite hacer recortes, clonar réplicas.
Lo que falta:
  • Mejorar el soporte de teclado.
  • Soporte para ratón.
  • Soporte para gamepad.
  • Todo el tema del audio.
  • Shaders.

Ejemplo de prueba + archivos necesarios:

      Para probar el ejemplo, bajar todos los archivos. Y ejecutar el archivo test.bat. Teclas del cursor para desplazar la imagen. W/S para acercar/alejar la imagen. A/D para rotar la imagen. ESC para salir del ejemplo.

      Página del proyecto: http://code.google.com/p/phpmedia/

      3 comentarios:

      1. se ve prometedor hare pruebas con ello aver que sale xD

        ResponderEliminar
      2. Hola, tengo problemas para probar la extension la distribucion minima de php 5.3. No puede ejecutar ninguno de los ejemplos ya puestos. En el test_phpmedia sale una ventana de fallo de php-cli.
        Mientras que en los demas ejemplos, se generan excepcion de cargas de imagenes por parte de la clase Bitmap.

        Espero me puedas ayudar....

        ResponderEliminar
      3. Esto es demasiado genial.
        Alguien comento en #php-gtk (irc.freenode.net) que deseabas utilizar PHP-GTK con esta extension que estas haciendo, lo mejor seria crear un Widget SDL-GTK en C y hacer un wrap para ese widget en PHP-GTK, creo que esto seria muy provechoso para ambos projectos, pero existen algunos temas... Seria muy bueno que tu projecto se transformara en un projecto "oficial" de PECL, pero para ello debes cambiarle el nombre ya que estas violando la licencia PHP y con esto ultimo es muy dificil que se agregue soporte para tu extension al proyecto PHP-GTK.

        Bueno espero que tu proyecto continue adelante ya que esta muy prometedor

        Saludos

        ResponderEliminar