Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Bgl + Opengl

Iniciado por sés, 17 de Marzo de 2005, 08:59:08 PM

« anterior - próximo »

sés

 Acabo de añadir soporte para OpenGL a BGL.

Para seleccionar el controlador de video, basta con indicarlo al obtenerlo la primera vez:
getSystem()->getVideoDriver( VideoDriver::OPENGL )

Los controladores actuales son:
DEFAULT: Controlador por defecto del sistema.
SOFTWARE: Controlador sorftare por defecto del sistema.
OPENGL: OpenGL.

Aun estoy probando el nuevo controlador para OpenGL (seguramente haga una nueva versión de Escape :P).
Cuando suba la nueva versión espero sugerencias de los que tengan experiencia con Open GL. Seguramente a mí se me pasen muuuchos detalles -.- (además lo he hecho en un par de horas).

A ver si este finde la subo.
Soy indeciso... ¿o no?

TheAzazel

 ¿Te refieres a que has portado tus funciones de dibujo (las que ya tenias) a OpenGL? pq si has hecho todo eso en un par de horas...eres una bestia humana!!! :)

sés

 XD

No, solo he añadido soporte para OpenGL. Vamos, que puedes inicializar la ventana con OpenGL y luego... el resto es cosa tuya.
Aun tengo que pensar si pasar lo que tengo a OpenGL o hacer un módulo aparte específico para OpenGL, ya que las imágenes se dibujarían de forma diferente... en fin, ya lo pensaré. Estoy muy verde en esto y todavía no sé muy bien por dónde cogerlo.
Soy indeciso... ¿o no?

TheAzazel

 ¿pero quieres que BGL sea 2D,3D o para ambos?
desde luego por portabilidad(como querias portarlo a linux).....yo me olvidaria de directX y usaria OpenGL :)
por cierto, aunq estes verde...y lo q estas y vas a aprender que eh?? anda q no mola :) jajaja
a mi me pasa como a ti, voy abordando temas y aprendiendo mas y mas..... :rolleyes:  

sés

Cita de: "TheAzazel"¿pero quieres que BGL sea 2D,3D o para ambos?
En un principio para 2D, pero no me cuesta nada dar la posibilidad de utilizar OpenGL.
BGL es un base (más los módulos opcionales). Esa base ahora mismo da la posibilidad de inicializar el modo de video, recoger eventos, etc. vamos, lo básico.
Lo único que he añadido es que la ventana se puede inicilizar con OpenGL. O sea, que ahora, que te ahorras el código de inicialización dependiente del sistema.

Evidentemente, si trabajas con OpenGL, el lock/unlock (no sé si simularlo algún día) no hace mucho (más bien nada :P). Solo funciona el método flip().

Que cada uno haga sobre esto lo que mejor le venga. Yo solo tengo idea (de momento) de hacer cosas para 2D, ya sea haciendo que BGL Video también funcione con OpenGL o con otro módulo aparte.
Soy indeciso... ¿o no?

Sacrifai

 Aunque sea un poco latazo, yo te recomendaría que hicieses dos librerías dinámicas con las definiciones de las funciones de dibujo para Opengl y Direct X. Así en caso de querer usar uno u otro solo habría que llamar a cierta función que llamase a esas DLL. Además podrías ir actualizando el render sin tener que bajarse todo.

sés

 Ha dicho esa... esa palabra... O_O

D...L.... *argh*
Soy indeciso... ¿o no?

Sacrifai

Cita de: "sés"Ha dicho esa... esa palabra... O_O

D...L.... *argh*
¿¿??  :blink:  

zupervaca

 creo que el mayor problema de las dlls es que la mayoria no sabemos como hacer que exportes las clases directamente sin hacer funciones globales

saludos

pd: estaria bien si alguien sabe hacerlo que lo dijera ya que yo estuve una temporada buscando info sobre ello y la unica manera es siempre con funciones globales

TheAzazel

Cita de: "zupervaca"creo que el mayor problema de las dlls es que la mayoria no sabemos como hacer que exportes las clases directamente sin hacer funciones globales

saludos

pd: estaria bien si alguien sabe hacerlo que lo dijera ya que yo estuve una temporada buscando info sobre ello y la unica manera es siempre con funciones globales
Uhmm.... pueden pasar dos cosas... q no nos refiramos a lo mismo o que si, y sea lo mismo q ya he hecho... veras, mi libreria CRM32Pro...es un conjunto de clases e interfaces(son clases tambien pero autoiniciadas y unicas), estan en una DLL y exporto todo lo q quiero... echale si quieres un vistazo o pregunta lo que sea pq me he pegado bastante con ese tema.
Para mi entender, la unica pega q tienen las DLL es que si usas clases... no te queda otra que crear DLL/lib de importacion dependientes del compilador que has usado por el temita de las funciones decoradas. Yo no encontre solucion a esto y le dedique tiempo.... aunq no me creo q no exista esa posibilidad...lance la cuestion de que... directx son tambien clases (utilizan funciones decoradas por tanto) y tu puedes utilizar las dll/lib de directx con visual C, borland, mingw, etc... ahora, como lo hacen? I don't know.
Pos eso, si quieres saber algo...pregunta pregunta y si sabes como resolver ese problemon...o alguien tiene idea q lo comente please.
thanks

gdl

 TheAzazel: Creo que deberías echarle un vistazo a las COM y las assembly.

TheAzazel

Cita de: "gdl"TheAzazel: Creo que deberías echarle un vistazo a las COM y las assembly.
Podrias dar mas informacion???? gracias por adelantado

_Grey

 Pues aprobecho y me meto!

Si metes clases que NO funciones en una DLL, la unica manera de recuperarlas seria con funciones que creasen la clase y retornaran un puntero a esta??????
Y si tienes una clase de X (supongamos una de render o algo asi) que tanto funciona con DX como con OpenG, al ser 2 clases distintas, pero con la misma "definicion", habria que usar clases abstractas, es decir una clase con metodos virtual=0 como inteface(que seria algo asi como las COM) ??????

Saludos.

zupervaca

 en efecto el problema que tuve yo es que cada compilador lo hace a su manera y al final me encerre en el visual c++ con lo que cada vez que me encuentro que necesito hacer dlls me dan escalofrios  :D

otro de los problemas gordos es derivar una clase dentro de una dll, como no tienes el codigo fuente al intentar llamar a la funcion de la clase base te dara un error tocho diciendo que no encuentra es funcion, me parece que para esto no hay solucion y lo que se suele hacer es crear un metodo virtual puro, pero claro, el programador de esa dll tiene que dejarlo preparado para ello y si no, pues la hemos liado  ;)

saludos

pd: tamos liando un offtopic de lo que era el hilo :)  

ethernet

 En mi opinión el único problema que tienen las dll es que no vale todo.

Con respecto a C++ el único problema que me he encontrado yo ha sido a la hora de usar ciertos tipos (templatizados), lo demás, sin problemas, incluso la compatibilidad entre compiladores (al menos los más usados).

Como bien decía TheAzazel es perfectamente posible exportar clases y no es necesario a recurrir a artefactos como COM u otros si no es necesaria la compatibilidad binaria. Al hilo de esto hay un artículo de DrGUI sobre COM en la página de MS que estaba bastante bien para empezar con COM aunque quizás es algo tarde teniendo .NET ya.

saludos







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.