Mi sources.list Kubuntu Edgy Eft 6.10

Este sources.list tiene repositorios para harto software alternativo
los primeras 2 líneas son para agregar las claves GPG de los repositorios firmados.

gpg --keyserver subkeys.pgp.net --recv KEY
gpg --export --armor KEY | sudo apt-key add -

donde KEY es el número por el que reclamen los errores que aparezcan al hacer:

sudo apt-get update

con repositorios que aun no se le agregan las firmas.

A continuación el archivo:
Seguir leyendo Mi sources.list Kubuntu Edgy Eft 6.10

Mi xorg.conf de Kubuntu Edgy Eft 6.10 [NVIDIA FX 5200]

/etc/X11/xorg.conf

Este archivo me funciona 100% con una Nvidia FX5200. Aun cuando considero que podría mejorarse. Las opciones para twainview y esas cosas las definí en nvidia-settings.

Section “ServerLayout”
Identifier “Layout0”
Screen 0 “Screen0” 0 0
InputDevice “Keyboard0” “CoreKeyboard”
InputDevice “Mouse0” “CorePointer”
EndSection

Section “Files”
RgbPath “/usr/lib/X11/rgb”
EndSection

Section “Module”
Load “i2c”
Load “bitmap”
Load “ddc”
Load “extmod”
Load “freetype”
Load “glx”
Load “int10”
Load “type1”
Load “vbe”
EndSection

Section “ServerFlags”
Option “Xinerama” “0”
EndSection

Section “InputDevice”
# generated from default
Identifier “Mouse0”
Driver “mouse”
Option “Protocol” “auto”
Option “Device” “/dev/psaux”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5”
EndSection

Section “InputDevice”
# generated from default
Identifier “Keyboard0”
Driver “kbd”
EndSection

Section “Monitor”
# HorizSync source: edid, VertRefresh source: edid
Identifier “Monitor0”
VendorName “Unknown”
ModelName “Samsung”
HorizSync 30.0 – 61.0
VertRefresh 50.0 – 120.0
Option “DPMS”
EndSection

Section “Device”
Identifier “Videocard0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce FX 5200”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Videocard0”
Monitor “Monitor0”
DefaultDepth 24
Option “TwinView” “1”
Option “metamodes” “CRT: 1024×768 +0+0, TV: nvidia-auto-select +0+0; CRT: 800×600 +0+0, TV: nvidia-auto-select +800+0; CRT: 640×480 +0+0, TV: nvidia-auto-select +640+0”
Option “AddARGBGLXVisuals” “True”
Option “DisableGLXRootClipping” “True”
SubSection “Display”
Depth 24
Modes “1024×768” “800×600” “640×480”
EndSubSection
EndSection

Compilando GDT en Kubuntu con Kdevelop

Este vendría siendo el primer gran recordatorio, la primera manera que hallé para compilar GDT en Linux.

La idea es crear más adelante unos scripts que hagan toda esta pega más facil, y solo preocuparse de programar bien la librería, no de las mañas para poder compilar.

Preparar Paquetes

Los siguientes paquetes son herramientas de compilación:

gcc g++ build-essential automake libtool

Los siguientes paquetes son librerías y headers:

liblua5.1-0-dev libalut-dev libalut0 libopenal0a libopenal-dev libogg-dev libvorbis-dev

Nota1: los paquetes tienen esos nombres en ubuntu, pueden variar en otras distros.

Nota2: estos paquetes tienes varias dependencias, así que no hay que dedudar en instalarlas todas.

Preparar archivos y directorios

* Preparar un directorio para todo lo que se va a hacer.
por ejemplo “dev”, en este mismi directorio es conveniente más adelante guardar los proyectos basados en gdt e irrlicht.
Sugerencia: no use rutas con espacios en blanco.

* En este directorio “dev” crear uno para los headers de gdt e irrlicht, de preferencia uno para cada cual para que no se mezclen las cosas.
Sugerencia: nombrar al directorio “.include” para que quede oculto

Ejemplo:
dev/.include/gdt //Directorio headers de gdt
dev/.include/irrlicht //Directorio headers de irrlicht.

* Ahora, copiar todos los .h de gdt e irrlicht en las carpetas destinadas correspondientes.

* En el directorio “dev” crear una carpeta para las librerías de gdt e irrlicht.
Sugerencia: nombrar al directorio “.lib/linux-x86”

Ejemplo:
dev/.lib/linux-x86

* Copiar en el directorio “.lib/linux-x86” el archivos libIrrlicht.a del paquete de irrlicht, la librería precompilada para Linux.

* Crear proyecto Kdevelop de C++ (el hello world u otro que sea simple)

* Eliminar el unico “target” desde el panel de Automake MAnager

* Agregar un nuevo “target” con:
Primary: Library
Prefix: noinst
File Name: libgdt

* Agregar a nuestro target (panel de Automake Manager, boton derecho en el target -> Add Existing Files) nuevo todos los .cpp de GDT

* Ir al menú Project -> Project Options -> Build Configuration
Seleccionar default

* Ir al menú Project -> Project Options -> Configure Options

* Agregar en C/C++ preprocessor flags (CPPFLAGS):
-I../../.include/gdt -I../../.include/irrlicht -I/usr/include/AL -I/usr/include/ogg -I/usr/include/vorbis -I/usr/include/lua5.1

Nota: estas rutas corresponden a los headers, las 2 primeras son las carpetas de headers de los pasos anteriores, las otras son de las demás librerías que se pueden instalar con paquetes, por lo mismo, cabe verificar que sean las rutas correctas ya que pueden variar de una distro a otra.

* Agregar en Linker Flags (LDFLAGS):
-L../../.lib/linux-x86/

Nota: esta es la carpeta donde está la librería libIrrlicht.a y donde futuramente copiaremos la libgdt.a para que este disponibles para los otros proyectos.

* En el panel Automake Manager, click derecho sobre el target “libgdt.a” -> Options -> Flags -> Linker Flags (LDFLAGS), en la caja “Other” llenar con:

$(all_libraries) -lalut -logg -lopenal -lvorbis -lvorbisenc -lvorbisfile -llua5.1 -lGL

* Construir 😛

* Copiar gdt/src/libgdta.a al directorio “.lib/linux-x86”

C/C++ preprocessor flags (CPPFLAGS):
-I../../.include/gdt -I../../.include/irrlicht -I/usr/include/AL -I/usr/include/ogg -I/usr/include/vorbis -I/usr/include/lua5.1

Linker Flags (LDFLAGS):
-L../../.lib/linux-x86/

Crear una aplicación GDT con la librería construida

* se necesitan librarias para opengl y X11 y sus dependencias
libglut-dev libxxf86vm-dev

* Ir al menú Project -> Project Options -> Build Configuration
Seleccionar default

* Ir al menú Project -> Project Options -> Configure Options

* Crear un nuevo proyecto, darle nombre y guardarlo en nuestra carpeta dev

* Configurar Kdevelop con los siguientes parametros como en la sección anterior:

C/C++ preprocessor flags (CPPFLAGS):
-I../../.include/gdt -I../../.include/irrlicht -I/usr/include/AL -I/usr/include/ogg -I/usr/include/vorbis -I/usr/include/lua5.1

Linker Flags (LDFLAGS):
-L../../.lib/linux-x86

* Configurar el target, en el panel Automake Manager, click derecho sobre el target correspondiente (lleva el nombre del proyecto) -> Options -> Flags -> Linker Flags (LDFLAGS), en la caja “Other” llenar con:

$(all_libraries) -lgdt -lIrrlicht -lalut -logg -lopenal -lvorbis -lvorbisenc -lvorbisfile -llua5.1 -lGL -lGLU -lXxf86vm -lXext -lX11

* Escribir el codigo o copiar un demo, guardarlos en la carpeta dev/nombre_del_proyecto/src, luego agregar los archivos .cpp/.h al target ( panel de Automake Manager, boton derecho en el target -> Add Existing Files )

* Compilar y Correr

* Una vez creado el proyecto y que se ha comprobado que compila y se ejecuta correctamente, es posible distribuir el código fuente para cualquier distro, basta que en el usuario baje el paquete, lo descomprima, abra una consola o un terminar y valla a la carpeta donde descompimio el código, entonces debe usar los comandos:

./configure
make

Nota: aun no he probado como hacer que make sirva para instalar el código una vez compilado, con el clásico comando “make install”, por el momento, basta con entrar a la carpeta src y ejecutar el binario creado con “make”

#################################
## CAMBIOS EN EL CODIGO FUENTE ##
#################################
[nombre_archivo:linea] [agregado:]
… tal codigo …
[cambiado por]
…. otro codigo …

***********[gdt.h:1]
//Musica
#include “gd_musik.h”

***********[cambiado por]
//Musica
#ifdef WIN32
// ESTA FUNCIONA SOLO EN WINDOWS.
#include “gd_musik.h”
// HACK PARA QUE LA FUNCION SWPRINTF ESTE DEFINIDA COMO EL ESTANDAR UNIX
#define swprintf _snwprintf
#endif

***********[gd_nodo.h:9]
#include “gd_Sistema.h”

***********[cambiado por]
#include “gd_sistema.h”

***********[gd_textura.h:17]
#include “gd_Sistema.h”

***********[cambiado por]
#include “gd_sistema.h”

***********[gd_malla.h:82]
ISceneNode* GD_Malla::RetornarNodoHuesoX(c8* Nombre );
ISceneNode* GD_Malla::RetornarNodoHuesoMS3D(c8* Nombre );

***********[cambiado por]
ISceneNode* RetornarNodoHuesoX(c8* Nombre );
ISceneNode* RetornarNodoHuesoMS3D(c8* Nombre );

***********[gd_musik.h:1] [agregado:]
// Este archivo funciona solo en win32
#ifdef WIN32
***********[gd_musik.h:68] [agregado:]
// Este archivo funciona solo en win32
#endif

***********[gd_musik.cpp:1] [agregado:]
// Este archivo funciona solo en win32
#ifdef WIN32
***********[gd_musik.cpp:192] [agregado:]
// Este archivo funciona solo en win32
#endif

***********[Nota: tambien vale omitir gd_musik.cpp en la compilacion, pero prefiero dejarlo mientras hasta encontrar alguna alternativa para tocar midi en linux] ********

***********[gd_sistemamatematicas.cpp:3]
#include “GD_SistemaMatematicas.h” // class’s header file

***********[cambiado por]
#include “gd_sistemamatematicas.h” // class’s header file

***********[gd_sistemasonido.cpp:60]
pDevice = alcOpenDevice((ALCubyte*)tipo);

***********[cambiado por]
#ifdef WIN32
pDevice = alcOpenDevice((ALCubyte*)tipo);
#else
pDevice = alcOpenDevice((ALCchar*)tipo);
#endif

###########################
### ERRORES AL COMPILAR ###
###########################
hay que revizar estos warnings:

gd_sonido3d.cpp:32: warning: alutLoadWAVFile is deprecated (declared at /usr/include/AL/alut.h:102)
gd_sonido3d.cpp:32: warning: alutLoadWAVFile is deprecated (declared at /usr/include/AL/alut.h:102)
gd_sonido3d.cpp:35: warning: alutUnloadWAV is deprecated (declared at /usr/include/AL/alut.h:105)
gd_sonido3d.cpp:35: warning: alutUnloadWAV is deprecated (declared at /usr/include/AL/alut.h:105)

GDT Postula en SourceForge

Hoy complete el registro de GDT en SourceForge con el fin de contar con un lugar de desarrollo centralizado, ya que hasta el día de hoy, cada uno de los fundadores de GDT y algunos otros cuentan con versiones diferentes del código fuente, y se desarrollan en paralelo, situación que deja a muchos esperando a que se decida una versión final publicada en la web original.

Por el momento, logre capturar un brevísimo video de la ejecución de un Juego Demo (el demo 20 de la web oficial actual), que consiste en un juego en tercera persona donde el protagonista es un ogro.

Debo dar las disculpas del caso, ya que la captura me salió acelerada (valla a saber por que

Doy Inicio a Mi BLog/Respaldo/Anti-Amnesia…

Ok, este es el primer topic de este blog.

Quiero dejar claro que el motivo inicial de este es simplemente tener un lugar donde respaldar cierta información que concidero útil recordar, y revelar a más personas.

Para que quede claro el ámbito de esta información, me presento:

Soy Gonzalo, nací en chile, estudio ingeniería civil informática (ouch!), y me interesa mucho el desarrollo de software. Usuario y promotor del software libre, le tengo mucha fé al desarrollo de linux, actualmente usuario de Kubuntu, pero habiendo pasado por Mandrake, RedHat, Debian, Fedora Core, y Ubuntu.

Últimamente me he concentrado en el desarrollo de 2 proyectos.

Primero, un cms propio desarrollado en php, el cual nunca se ha dado a conocer a la luz pública, no tiene fecha de lanzamiento, no tiene nombre, y de hecho apenas tiene código. Esta completamente en pañales y realmente no tiene ni forma de cms :S .

El Segundo, es una librería para el desarrollo de juegos mutiplataforma (para windows/linux/macosx al menos) el Games Developers Toolkit, del cual espero publicar mucho aquí. Proximamente estará disponible en SourceForge para que el código fuente este al alcance de todos, mietras me he pasado leyendo sobre el tema de la adopción de licencias y todo lo que significa, para poder facilitar la difusión y desarrollo de GDT.

 

En síntesis, este blog es principalmente para tener un lugar de recordatorio personal sobre este tipo de información (aunque me permito algun desliz y públicar alguna que otra tontera), así que desde ya cualquier lector queda advertido del contenido, y así mismo, quedan cordialmente invitados a participar y opinar.

Salu2

blog respaldo anti-amnesia