Estoy buscando alguna librería que me libre de realizar todo tipo de código de sistema que dependa de la plataforma, por lo tanto la librería debe tener esto:
- Manejo de ficheros, enumerar ficheros de un directorio, ejecutar un fichero externo, crear nombre con ruta correcto en base a un nombre relativo al ejecutable.
- Manejo de ventanas, creación, aplicar un gamma determinado, recibir eventos (alt+tab,terminación, etc), crear ventanas de dialogos (MessageBox), minimizar ventana
- Obtener información del sistema: modelo de tarjeta gráfica, procesador y MHz, cantidad de memoria RAM, etc.
Requisitos deseados:
- Cambiar de fullscreen a ventana 'al vuelo'
- Obtener estado de drivers de la tarjeta gráfica
- Lo más ligera posible :)
¿alguno conoce alguna?
BGL ^_^
Pero está en desarrollo, solo está la base y aun es solo para Windows.
Aquí empezó todo.
Si (ahora) sólo es para windows no me sirve de nada XD
Cómo mínimo necesito Windows y Mac OS X.
Pórtala a Mac :P
precisamente es mi total ignorancia lo que me lleva a buscar una librería como esta..
:P No soy muy entendido del tema, pero ¿la
SDL no te sirve?
Cita de: Sacrifai:P No soy muy entendido del tema, pero ¿la SDL no te sirve?
A la SDL le faltan muchas de las cosas que he nombrado.. una verdaderísima pena.
SDL+Python te dará todo eso...juraría :P
Cita de: GrugnorrSDL+Python te dará todo eso...juraría :P
el problema es que quiero que sea todo C++ :\
Yo tambien busco lo mismo!
Una libreria que funque en windows, linux y mac.
Controle sonido, video y archivos.
Glut es un estandar y hay que compilar con distintas librerias para cada plataforma?
Si encontras algo avisame.
No sé si tiene soporte para mac pero hace buena pinta
Free GlutVinCenT
En Realidad Python era por simplificar las GUIs, juraría que GTK y demás está en C nativamente
Hola,
Te comento cuales son las librerias multiplataforma mas conocidas, y las principales caracteristicas de cada una.
Todas tienen versiones para los sistemas operativos mas conocidos. Aunque no se si todas incorporan todas las funcionalidades que quieres (lo de que te digan la tarjeta de video lo veo crudo aunque eso lo puedes ver con OpenGL).
wxWindows - www.wxwindows.org
- Open Source
- Es un wrapper, es decir usa los controles de cada SO (lo que para mi es una ventaja)
- C++
- Soporte para OpenGL estable y en el nucleo
- Facil de usar, muy estilo el awt de Java, es mi favorita ;)
GTK - www.gtk.org
- Open Source
- Controles propios (y feos)
- C (aunque hay tambien wrappers para C++)
- Soporta OpenGL aunque no en el nucleo (con extensiones que hizo peña)
- Version de windows medio inestable
- Es lo que usa el gimp (de hecho las inciales significan Gimp Toolkit)
QT - www.trolltech.com
- Propietaria (en windows solo hay gratis una version anticuada)
- Controles propios
- C++
- Soporta OpenGL
- Lo usa KDE
GTK no me gusta y QT tiene el inconveniente de tener propietaria la parte de windows.
wxwidgets (la librería anteriormente conocida como wxwindows xD) es la que más me había interesado, pero puedo usarla sólo para ese tipo de cosas que he descrito (es decir, que no voy a usar la GUI para nada.)
GTK no me gusta y QT tiene el inconveniente de tener propietaria la parte de windows.
wxwidgets (la librería anteriormente conocida como wxwindows xD) es la que más me había interesado, pero puedo usarla sólo para ese tipo de cosas que he descrito (es decir, que no voy a usar la GUI para nada.)?
Yo no soy muy entendido en el tema. Y me doy cuenta que se menos de lo que creia.
En todas si o si tienes que hacer una compilacion para cada sistema operativo?
No existe una librería multiplataforma donde solo haces un .exe y este funcionará en cada OS?
Saludos.
No veo yo un .exe rulando en linux asi porque sí como no sea en una máquina virtual :)
Supongo que habrá que hacer una compilación para cada sistema, y que será lo más transparente posible para el programador.
Como bien apunta Loover, lo que dices, Pogacha, sería imposible en C++. Es lo que ocurre con Java y otros lenguajes interpretados (quieras que no Java es interpretado), porque lo que es dependiente de la plataforma es el interprete y no el programa (que en C++ es simplemente código máquina). La gracia de estas librerías es que con los mínimos cambios, el mismo código compile para varias plataformas (lo ideal sería que sin ningún cambio en absoluto, pero eso es mucho pedir xD). Cada vez veo más claro que voy a tener que currármelo yo :-\
¿Porque no le dará a Apple por hacerse un interprete/compilador de C#? XD o al menos contribuir a que Mono soporte Mac, que de momento creo que sólo funciona en Linux.
Hola,
creo que hay un proyecto para portar .NET a Mac, pero ni idea de como van de adelantados... Un saludo!
Vicente
Posiblemente el que lleva GNU, pero van aún más retrasados que Mono.
De todas formas debe haber bindings de alguna librería multiplataforma para C#, desde C# es muy simple invocar funciones de C en una dll
la solucion al problema es java :lol:
Quzas quieras echarle un vistazo a las librerias boost, estan hechas por la misma gente que la libreria estandar de C/C++. www.boost.org
En cualquier caso si se procura programar en C++ estandar y usando una libreria de estas, o se aisla el codigo dependiente de la plataforma, la portabilidad no deberia ser un problema. Claro, si se usa el .NET a saco querer portabilidad es absurdo, cuando se trata de tecnologia propietaria de Microsoft y nunca se van a tomar en serio otros SOs. Si se usa C# peor aún, ya que el lenguaje en si mismo es de Microsoft.
Según esto deduzo que (al menos la 1.0) Mono es compatible con Mac OS X. Aunque tiene evidentemente el problema de que no todo el código c# que compilaría en Visual c# compilaría en Mono (básicamente código que haga llamadas a APIs de Microsoft, como todo el tema DirectX). Aún así ya es una mejora :D
¿Colson tienes un mac para ir probando o vas a usar un emulador o algo así? Lo digo porque si conoces alguna emulador decente avisame.
ninguna de las dos XD pero tengo vistas al futuro
Honestamente creo que MAC se caga solo al no desarrollar portalizaciones importadores! ... supongamos que no quieren exportar pues se creen originales y exclusivos pero realmente ni ganas me dan de programar para MAC!.
Todo esto despues de investigar un rato ...
Saludos.
Aunque java sea interpretado (...)creo que gcc tiene opción para compilarlo a binario nativo.
SDL no lo tiene todo pero tiene gran parte (unido a otras librerías como boost) y siempre tienes su código para solucionar los posibles problemas
una pregunta: por qué esa fijación con mac ?
conclusión: colson pide más que una banda de ciegos
@ethy: el mercado mac en el mundo del shareware es muy importante, la gente que vende tanto en PC como en Windows suele tener una relación de 50/50
Por cierto, tienes razón, creo que entre SDL y Boost, tengo más o menos todo lo que quería. La pega es que acabaré teniendo diez mil dependencias (sumandole otras que ya tengo como TinyXML..) xD
CitarNo veo yo un .exe rulando en linux asi porque sí como no sea en una máquina virtual
me acuerdo que leí hace cosa de uno o dos meses, no se si por este foro u otros, un
vaporware de una
compañía que había creado una máquina virtual de esas, pero que ejecutaba bloques de
instrucciones y ejecutaba el código nativo del otro sistema al 90% de velocidad
vamos, un wmware a lo burro, me acuerdo que pensé lo de Santo Tomás, la explicacion muy bonita, pero no me la trago, hasta que no lo vea no soy creyente
ParaGUI sobre SDL.
http://www.bms-austria.com/projects/paragui/Para el tema de la sintaxis propia de cada sistema en modo prompt no creo que sea dificil encontrar por ahí alguna librería. Yo pal tema de ficheros me arreglaría con el empaquetado basado en Zlib de ParaGUI, pero si necesitas ejecutar otras aplicaciones desde afuera por línea de comando y esa clase de cosas, no creo que te sirva.
Acabo de ver una noticia sobre el lanzamiento de BlitzMax , una libreria 2D para Windows, Linux y Mac OS X:
http://www.blitzmax.com/newsletter/newslet...er.php?issue=13PD: Yo tb me las voy apuntando.. pq estoy pensando en adquirir un PowerBook el año que viene (genial)
Cita de: ZaelSiuSAcabo de ver una noticia sobre el lanzamiento de BlitzMax , una libreria 2D para Windows, Linux y Mac OS X:
http://www.blitzmax.com/newsletter/newslet...er.php?issue=13
PD: Yo tb me las voy apuntando.. pq estoy pensando en adquirir un PowerBook el año que viene (genial)
Estuve mirando BlitzMax y pinta muy bien pero no veo soporta para redes. ¿ Alguien puede aclararme si las versiones anteriores traían ese soporte ?
No me suena nada de redes, pero siempre puedes recurrir a usar una libreria externa:
Citar
- External language support for interfacing with C/C++/ObjectiveC or assembly code
Edito:
Al menos Blitz Plus y Blitz 3D sí tienen soporte para redes
http://www.blitzmax.com/bpdocs/command_list_2d_cat.phpSupongo que Blitz Max, que parece el sucesor multiplataforma de Plus, tambien debe tener redes...
BlitzMax es sobre OpenGL y el Blitz3d era sobre directX no?
Cierto. Hace tiempo que esperaba su release y por fin está aquí, y en cuanto salga para PC me lo pillaré (ahora sólo ha salido para Mac OSX para probarlo con una base de usuarios menor). No es la solución definitiva, porque no es para C++, pero mejora muchíiisimas cosas del lenguaje (OO, punteros, y demás) y proporciona funcionalidad nueva que me interesa como lo que decía del sistema de ficheros (paths, ficheros y directorios, etc). Está muy muy bien.
Seguramente si tendrá soporte para red como dice Zaelsius. La verdad es que pinta muy bien.
GarageGames Announces Torque 2D Support of Tigerhttp://www.garagegames.com/index.php?sec=m...e=view&qid=6986Parece que GarageGames va a sacar una producto de desarrollo 2D(C++?) , compatible con Mac OS X y Windows(se da por hecho aunque no lo ponga). Lo han anunciado hoy en la MacWorld SanFrancisco.
Me parece apreciar una tendencia de apertura del mundo Indy hacia Mac OS X últimamente.. jeje:rolleyes:
Joer la respuesta me parece tan obia que me da vergüenza ajena:
JAVA, lo demás es perder el tiempo
Pues la respuesta no es Java porque la pregunta era una librería para C++. Pero vamos, sólo conozco dos desarrolladores indie que usan java.
1-
Sillysoft que en OSX le va bastante bien (se dedicaba sólo a él a pesar de usar Java hasta hace poco) pero en windows creo que le pasa como al sujeto nº2
2-
PuppyGames por lo que se tiene muchos problemas técnicos mayormente en usuarios de Windows, primero por Java (que no tienen el JDK y ni de coña se van a bajar veintipico MBs) y segundo por OpenGL (drivers no actualizados, básicamente).
Así que no me hace mucha ilusión Java, además que como lenguaje no me atrae demasiado.
Colson2, me imagino q ya habras visto CRM32Pro (con la werrita q he dao..pa no verla jeje). He leido y practicamente cumple todos los requesitos.... lo unico, q no esta compilado para Mac... pero.... a unas malas, te podria pasar el codigo y pruebas con mac..no creo q sea muy dificil... y para linux... es aun mas sencillo, me he puesto a hacer pruebas y en poco, pondre la lib rulando en linux...
si no, de todos modos... te recomiendo SDL+SDL_net y ale, ya tienes tus requisitos cumplidos, multiplataforma y soporte de red.
tahora
pero mejora muchíiisimas cosas del lenguaje (OO, punteros, y demás) CitarCierto. Hace tiempo que esperaba su release y por fin está aquí, y en cuanto salga para PC me lo pillaré (ahora sólo ha salido para Mac OSX para probarlo con una base de usuarios menor). No es la solución definitiva, porque no es para C++, pero mejora muchíiisimas cosas del lenguaje (OO, punteros, y demás) y proporciona funcionalidad nueva que me interesa como lo que decía del sistema de ficheros (paths, ficheros y directorios, etc). Está muy muy bien.
:huh:
Aún no conozco nada que supere al manejo de punteros de C++, de hecho es una de las caracteristicas mas poderosas de C/C++.
Pero ojo, no digo que no exista nada, simplemente al menos yo no conozco...
me gustaria saber a qué mejoras te referís, ya que si hay mejoras + potentes en este sentido de verdad debe ser bueno (uoh)
@ZüNdFoLGe: Si hubiera un 'what's new' en la doc de BMax te lo pastearía, pero no es así. Y como la demo pública disponible es sólo para Mac (si tienes uno ya sabes) no puedes descomprimirlo. Aunque creo que había un descompresor de .sit para Windows, googlea a ver. Por cierto, si comprais BMax, en los foros privados SÍ hay las versiones de Windows y creo que de Linux también. Aunque en estado beta (lo más verde es el editor pero ya hay varios hechos por la comunidad) van de coña.
@TheAzazel: Librerías como esa ya hay muchas, el problema es que, como dices, 'no son compatibles para Mac', y eso para alguien que no tiene ni ganas (ni idea) de cómo funciona esa plataforma (equivalente a Win API, etc) pues es un problema importante. Yo quiero meterlo en XCode o Codewarrior y que compile 'a la primera'.