Lancer application développée avec Xcode

Wicket88

Membre confirmé
22 Février 2010
10
0
Bonjour,
Je viens de finir de développer une application avec Xcode.
C'est un programme à base de C, de GLUT et de GLUI. :D
Il marche très bien quand je le lance avec Xcode, la fenêtre OpenGL s'ouvre sans problème.
Mais j'aimerais maintenant pouvoir lancer l'appli sans passer par Xcode...
J'ai trouvé dans le dossier Debug de mon projet un fichier qui me semble bien être l'executable, mais quand je le lance, rien ne se passe, ma fenêtre OpenGL ne s'ouvre pas. :(
Quelqu'un pourrait-il m'aider?
Merci!
 
Tu dois probablement la lancer via le terminal avec la commande "./tonApplication" (sans les guillemets) Si tu souhaite la lancer en double-clic, je pense que tu devras faire un app en objective-c qui appelle ton app écrite en c (il y a la classe NSTask pour ça en obj-C) Je ne suis pas sûr de ce que je t'affirme...
 
dans xcode:
creer un bundle (app cocoa);
creer un nouvelle NSView Class dans ton projet: CocoaGLUTView.m / CocoaGLUTView.h

dans IB drag une Custom View sur la fenetre de ton appli

dans xcode: ajoute: linked framework -> existing Framework -> OpenGl et GLUT

http://developer.apple.com/mac/libr...s/NSOpenGLView_Class/Reference/Reference.html

Bloc de code:
// CocoaGLUTView.h
#import <Cocoa/Cocoa.h>
@interface CocoaGLUTView : NSOpenGLView {

}
@end
Bloc de code:
#import "CocoaGLUTView.h"

static void drawOvale(float radius) {
    int32_t i = 0;
    glBegin(GL_LINE_LOOP);
    do {
        glVertex2f(cos(i* (M_PI / 180)) * radius, sin(i* (M_PI / 180)) * radius);
    } while(++i < 360);    
    glEnd();
}

@implementation CocoaGLUTView

- (id)initWithFrame:(NSRect)frame {
    if((self = [super initWithFrame:frame pixelFormat:[NSOpenGLView defaultPixelFormat]])) {
    
    }
    return self;
}

- (void)drawRect:(NSRect)rect {
    glClearColor(.4, .6, .3, 1);
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT+GL_STENCIL_BUFFER_BIT);
    glColor3f(0, 0, 0);
    glNormal3f(1,0,0);
    drawOvale(.3);
    glFlush();
}

@end
change l'identité de ta Custom View Dans IB pour pointer sur CocoaGLUTView, et voila tu as une vue OpenGl dans une appli Cocoa, pas besoin de te soucier du context et des callbacks reshape ecetera

tu peux suivre un tuto sur comment creer ma premier app cocoa.

:zen: