OVH Cloud OVH Cloud

[ Comment programmer cela ]

7 réponses
Avatar
hackervalley
Bonjour à tous,

Je vous expose succintement ce à quoi, j'aimerai arriver mais à
implémenter c'est autre chose.

J'aimerai pouvoir appeler un pointeur engine, dans la méthode
OpenGLWindow::draw () qui implémente une méthode virtuelle.

Quelle est d'après vous la méthode la plus élégante pour réaliser cette
implémentation ?

class Gui
{
public:
//OpenGL RenderWindow
OpenGLWindow *glWindow;
...
};

Gui::Gui ()
{
glWindow = NULL;
...
}

void
Gui::create_main_window ()
{
// glWindow
glWindow = new OpenGLWindow
...
}

class OpenGLWindow:public Fl_Gl_Window
{
void draw ();
}


class Engine
{
public:
Engine();
void draw();
};


void
OpenGLWindow::draw ()
{
engine->draw();
}

J'espère avoir transmis suffisamment d'informations.

Par avance merci pour les éclaircissements.

hackervalley
http://hackervalley.free.fr

7 réponses

Avatar
drkm
hackervalley writes:

J'aimerai pouvoir appeler un pointeur engine, dans la méthode
OpenGLWindow::draw () qui implémente une méthode virtuelle.

Quelle est d'après vous la méthode la plus élégante pour réaliser
cette implémentation ?


Heu, je n'ai pas compris ce que tu voulais faire.

--drkm

Avatar
Sébastien
"hackervalley" a écrit dans le message de
news:40c620d0$0$12739$
drkm wrote:
hackervalley writes:


J'aimerai pouvoir appeler un pointeur engine, dans la méthode
OpenGLWindow::draw () qui implémente une méthode virtuelle.



Quelle est d'après vous la méthode la plus élégante pour réaliser
cette implémentation ?



Heu, je n'ai pas compris ce que tu voulais faire.

--drkm


Je ne sais pas ou et comment déclarer engine pour pouvoir l'utiliser dans

void
OpenGLWindow::draw ()
{
engine->draw();
}

J'espère que c'est un peu plus clair .

A++



class OpenGLWindow:public Fl_Gl_Window
{
Engine * engine;
void draw ();
}

C'est pas beau ?



Avatar
Fabien LE LEZ
On Tue, 08 Jun 2004 23:30:06 +0000, hackervalley
wrote:

Je ne sais pas ou et comment déclarer engine pour pouvoir l'utiliser dans

void
OpenGLWindow::draw ()
{
engine->draw();


D'où il sort, ce "engine" ?
AMHA, tu devrais faire l'effort d'expliquer clairement ce que tu
cherches à réaliser in fine. Non seulement ça nous permettra de
comprendre ton problème et ainsi de t'aider (voire te proposer une
autre solution), mais en plus ça te permettra de voir plus clairement
la situation, et peut-être de trouver toi-même la solution.

Je parle d'expérience : il m'est arrivé de bloquer sur des problèmes ;
le simple fait de rédiger un message clair pour fclc++ m'a permis de
trouver la solution.

--
;-)
FLL, Epagneul Breton

Avatar
Sébastien
"Fabien LE LEZ" a écrit dans le message de
news:
On Tue, 08 Jun 2004 23:30:06 +0000, hackervalley
wrote:

Je ne sais pas ou et comment déclarer engine pour pouvoir l'utiliser dans

void
OpenGLWindow::draw ()
{
engine->draw();


D'où il sort, ce "engine" ?
AMHA, tu devrais faire l'effort d'expliquer clairement ce que tu
cherches à réaliser in fine. Non seulement ça nous permettra de
comprendre ton problème et ainsi de t'aider (voire te proposer une
autre solution), mais en plus ça te permettra de voir plus clairement
la situation, et peut-être de trouver toi-même la solution.

Je parle d'expérience : il m'est arrivé de bloquer sur des problèmes ;
le simple fait de rédiger un message clair pour fclc++ m'a permis de
trouver la solution.

--
;-)
FLL, Epagneul Breton


c'était justement son probleme
sortir le engine ;)


Avatar
hackervalley
drkm wrote:
hackervalley writes:


J'aimerai pouvoir appeler un pointeur engine, dans la méthode
OpenGLWindow::draw () qui implémente une méthode virtuelle.



Quelle est d'après vous la méthode la plus élégante pour réaliser
cette implémentation ?



Heu, je n'ai pas compris ce que tu voulais faire.

--drkm


Je ne sais pas ou et comment déclarer engine pour pouvoir l'utiliser dans

void
OpenGLWindow::draw ()
{
engine->draw();
}

J'espère que c'est un peu plus clair .

A++


Avatar
hackervalley
Sébastien wrote:
"hackervalley" a écrit dans le message de
news:40c620d0$0$12739$

drkm wrote:

hackervalley writes:



J'aimerai pouvoir appeler un pointeur engine, dans la méthode
OpenGLWindow::draw () qui implémente une méthode virtuelle.



Quelle est d'après vous la méthode la plus élégante pour réaliser
cette implémentation ?



Heu, je n'ai pas compris ce que tu voulais faire.

--drkm


Je ne sais pas ou et comment déclarer engine pour pouvoir l'utiliser dans

void
OpenGLWindow::draw ()
{
engine->draw();
}

J'espère que c'est un peu plus clair .

A++




class OpenGLWindow:public Fl_Gl_Window
{
Engine * engine;
void draw ();
}

C'est pas beau ?


Si c'est beau. Et tellement simple.


Merci

A++




Avatar
Florent 'flure' C.
Le Tue, 08 Jun 2004 23:52:49 +0000, hackervalley a écrit :

Si c'est beau. Et tellement simple.


Je suppose qu'il y a un seul engine possible dans ton application. Je
suggèrerais donc que tu utilises le pattern singleton ; ainsi tu n'as
pour ainsi dire à le déclarer nulle part, et tu peux y accéder de
partout, d'une manière élégante :

GLEngine* engine = GLEngine::GetInstance()

--
Florent "flure" C.
Décrypter l'@ pour répondre
Coders don't die, they just JMP without RET !