Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2D Grafikprogrammierung auf Mac



Teelicht
05.11.2006, 19:33
Hallo,

ich bin nicht besonders gut in C++, aber auch kein Anfänger mehr, deshalb würde ich mich gern weiterbilden... und zwar am liebsten in Grafikprogrammierung, spezieller 2D Grafik.

Also mal angefangen bei Bildern anzeigen, über vielleicht ein Malprogramm a lá Paint und irgendwann vielleicht auch mal ein Vektorgrafikprogramm...

Es wär gut, wenn ich das alles auf meinem Mac mit OS X machen könnte - hat jemand Ideen, welche Grafiklib geeignet wäre? Also relativ einfach zu bedienen, gut dokumentiert mit Tutorials und Hilfen und vielleicht ein nettes Forum mit kompetenten Leuten (sowas wie hier das)? Natürlich Mac kompatibel...

Hab in den Tutorials nichts gefunden, in Google auch nicht... Ich bin mir nicht sicher, ob das Maceigene Quartz das richtige für mich ist, denn eine deutsche Anleitung habe ich nirgend gesehen...

Gruß, Micha

MagicMagor
05.11.2006, 21:08
Also zuerst würde ich dir raten, wenn du für OSX entwickeln willst, objective-C (objC) zu lernen und das anstatt C++ zu verwenden. Das hat den Grund, daß cocoa das Haupt-Framework von OSX in objC geschrieben ist und nur in objC angesprochen werden kann (zumindest ohne Zusatz-Libs, es gibt zwar auch cocoa für Java, aber das wird glaube ich in Zukunft nicht mehr unterstützt).
Unter C++ gibt es noch das alte Framework Carbon, was aber der Vergangenheit angehört und irgendwann wohl aus OSX verschwinden wird.

Du kannst einerseits auf bekannte portable 2D-Libaries zugreifen, wie SDL (www.libsdl.com) oder auch Allegro (www.allegro.cc) wobei letzteres erst wirklich nützlich wird wenn man damit ein Spiel schreiben will.

Ansonsten, wenn es dir um reine OSX-Anwendungen geht kannst du direkt auf OSX-eigene API zugreifen, das ist Quartz2D für 2D-Sachen und OpenGL für 3D. Hilfe dazu findest du auf der Apple-Seite:
Graphics & Imaging Reference (http://developer.apple.com/referencelibrary/GraphicsImaging/index.html)
Eventuell musst du dich als Entwickler registrieren, aber die Online-Mitgliedschaft ist kostenlos und nur zu empfehlen.

Deutsche Anleitung ist mir auch nicht bekannt, aber wer programmieren will sollte das Englisch nicht scheuen. Als Forum ist vielleicht www.macuser.de zu nennen, die zentrale Sammelstelle für alle deutschsprachigen Mac-User. Es gibt dort auch ein Unterforum für Programmierung und einige sehr kompetente Benutzer.

Mog
05.11.2006, 23:00
Alergo ist doch schon veraltet. :P


Fuer 2D ist SDL eigentlich das beste was du finden wirst. Etwas anderes anzuschauen waere wohl eher ein Schuss ins Knie, als eine gute Idee. Besonderst fuer Anfaenger gibt es hier auch viele deutsche Beschreibungen, insofern man es noetig hat. SChau mal unter Wiki-Books; dort gibt es glaube ich sogar im passenden Shelter eine Lektuere.



Aber, so generell: ObjC verliert. :P

Rolus
06.11.2006, 10:55
Aber, so generell: ObjC verliert. :P
Aber, so generell: Troll-Postings verlieren. :p
So eine verurteilende Aussage bedarf sicherlich einiger Begründungen, wenn es nicht als pure Provokation verstanden werden soll. Andernfalls sollte es zumindest als subjektive Meinung gekennzeichnet werden.

freundliche Grüße, Rolus

MagicMagor
06.11.2006, 12:54
Dito mit Rolus.
Davon abgesehen reden wir hier von Programmierung unter OSX. Wenn man zu C++ und Carbon greift, benutzt man ein veraltetes Framework, was nicht mehr weiterentwickelt und offiziell auch irgendwann nicht mehr unterstützt wird. Sicherlich nicht die beste Wahl wenn man Programme schreiben will die auch in einigen Jahren noch benutzt werden sollen.
Java ist nunmal Java und sieht nicht unbedingt nativ aus ist also auch nur bedingt zweite Wahl (es sei denn man will unbedingt portable schreiben).
Was bleibt übrig? In reinem C mit Zugriff auf Toolkits wie wxWidgets schreiben? Ist deutlich aufwendiger als das Benutzen des Interface Builders und cocoa.

Cocoa und damit auch zwangsweise objC ist unter OSX nunmal die erste Wahl wenn man GUI-Programme schreiben will, unabhängig davon was man von der Sprache an sich hält.

Lukas
06.11.2006, 13:02
[topic]
Ich wuerde sagen, guck dir SDL und Allegro an und dann entscheide dich fuer eins von beiden. Ich bastle momentan mit SDL an einem Projekt, urspruenglich wollten wir das mit Allegro machen, aber das hatte diverse Nachteile (z.B. hat SDL die fuer unsere Zwecke besseren Libs (kennt jemand 'ne vernuenftige Font-Library fuer Allegro?)). Und irgendwie kommt mir SDL allgemein moderner vor.

[OT Obj C]
Ich denke, man koennte auch eine Scriptsprache, fuer die Cocoa-Bindings existieren (z.B. Python oder Ruby), benutzen. Ich z.B. wuerde denke ich auch nicht mit Obj C arbeiten, wenn ich fuer Mac programmieren wuerde, sondern den Kram mit Python machen.
Okay, ich weiss nicht, wie gut andere Sprachen in XCode integriert sind, aber die meisten Interface-Builder, die ich kenne, koennen entweder Code fuer mehrere Sprachen oder irgendein sprachunabhaengiges Datenformat (z.B. hat Glade ein XML-Format) speichern.

Und ich glaube, Mog ist auch der Meinung, dass C++ verliert :D

Mog
06.11.2006, 16:00
Ich denke, man koennte auch eine Scriptsprache, fuer die Cocoa-Bindings existieren (z.B. Python oder Ruby), benutzen. Ich z.B. wuerde denke ich auch nicht mit Obj C arbeiten, wenn ich fuer Mac programmieren wuerde, sondern den Kram mit Python machen.


So wuerde ich es auch machen. ObjC hat leider diese SmalTalk-Syntax uebernommen, die einfach nur grausig viel Schreibarbeit bedeutet. Das OO-Konzept ist auch sehr unangenehm impelemtiert. Das Arbeiten und Lesen des Codes ist einfach aufwaendiger, als bei anderen Sprachen. Ueber das Parsen reden wir garnicht; da ist ja schon C schlimm. Aber, das ist einfach nur perversion, wenn man es in einen Baum umwandeln moechte.

Und Informatikforen sind fuer Trolle wie geschafen. Hier herumzutrollen erweckt das Trollherz im Mog. :P




Und ich glaube, Mog ist auch der Meinung, dass C++ verliert :D

Hm?^^ Ich finde C gewinnt in meinem Bereich ziemlich gewaltig, und C++ hat einen schrecklichen Overhead. (Ich habe 128MB Raum a)



Generell verlieren (Achtung, das ist eine subjektive Meinung, die millionen Menschen teilen\Rolus. :D ) alle Programme, die nicht portabel sind. Es gibt zz. drei Betriebssysteme, die man unterstuetzen sollte. Folglich ist sowieso eher zu waehlen, dass ueber Cocoa liegt.

Lukas
06.11.2006, 16:06
Hm?^^ Ich finde C gewinnt in meinem Bereich ziemlich gewaltig, und C++ hat einen schrecklichen Overhead. (Ich habe 128MB Raum a)Jap, das hattest du schon mal gepostet, und das meinte ich mit meinem Kommentar auch (ich bin btw der selben Meinung ^^). Aber laeufst du ernsthaft mit 128 MB RAM rum?

Ansonsten dito, die Syntax von Obj C mag ich auch nicht (das ist der Hauptgrund dafuer, dass ich mir Smalltalk nie angeguckt habe). Mal abgesehen davon will ich erstmal keine weiteren Sprachen lernen, Python und C sind eigentlich ganz brauchbar. Und wenn man nicht fuer OS X programmiert, kann man mit Obj C nicht wirklich viel anfangen.

Mog
06.11.2006, 18:56
Jap, das hattest du schon mal gepostet, und das meinte ich mit meinem Kommentar auch (ich bin btw der selben Meinung ^^). Aber laeufst du ernsthaft mit 128 MB RAM rum?

Ansonsten dito, die Syntax von Obj C mag ich auch nicht (das ist der Hauptgrund dafuer, dass ich mir Smalltalk nie angeguckt habe). Mal abgesehen davon will ich erstmal keine weiteren Sprachen lernen, Python und C sind eigentlich ganz brauchbar. Und wenn man nicht fuer OS X programmiert, kann man mit Obj C nicht wirklich viel anfangen.


Braucht man eigentlich mehr RAM?

Schau dir aber vllt. Cpp trotzdem noch an. Templates sind schon sehr sexy, wenn man inetwa Ahnung hat, wie sie uebersetzt werden. (Da muss man sehr gut darauf achtgeben, wie man die in den Quellcodes verteilt. Zumindest, insofern man so viele perversionen beim Programmieren besitzt, wie ich. ^^d
Naja, in erster Linie resultieren aus den Templates ja noch die intelligenten Pointer. Muss man einfach lieben. Muss man. Oder, man hasst sie.)