Bonjour,

J'ai codé un projet sous Linux...pas de problèmes. Maintenant, je dois le transférer sous Windows..et les problèmes commencent. J'ai un petit programme qui doit afficher un cube. Sous Linux ça va, mais avec Visual Studio j'ai juste la fenêtre bleue. Pouvez-vous vérifier si le petit programme affiche la bonne affaire? Avez-vous une idée du pourquoi il n'affiche pas les objets osg? (c'est si simple avec LINUX)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include<SDL.h>
#include<osg/ref_ptr>
#include<osg/CameraNode>
#include<osg/Group>
#include<osg/Node>
#include <osgUtil/SceneView>
#include<iostream>
#include<osg/ShapeDrawable>
#include<osg/Geode>
 
#pragma comment(lib,"SDL.lib")
 
 
using namespace std;
using namespace osg;
using namespace osgUtil;
 
int main(int argc,char **argv)
{
	if(SDL_Init(SDL_INIT_VIDEO))
	{
		cout<<"err init video"<<endl;
		exit(1);
    }
 
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
 
    if(!SDL_SetVideoMode(640, 480, 0, SDL_OPENGL))
	{
		cout<<"err set video"<<endl;
		exit(1);
    }	
 
	ref_ptr<SceneView> sceneView = new SceneView;
	ref_ptr<CameraNode> globalCamera = new CameraNode;
 
	sceneView->setDefaults();
    sceneView->setComputeNearFarMode(
               osgUtil::CullVisitor::DO_NOT_COMPUTE_NEAR_FAR);
    globalCamera = sceneView->getCamera();
    globalCamera->setViewport(0, 0, 640, 480);
    globalCamera->setProjectionMatrixAsPerspective(
       45.0,
       globalCamera->getViewport()->aspectRatio(),
       0.1,
       1000.0
    );
 
	globalCamera->setViewMatrixAsLookAt(Vec3d(0,0,20),Vec3d(0,0,-20),Vec3d(0,1,0));
 
    sceneView->init();
 
	ref_ptr<Group> root = new Group;
 
 
	ref_ptr<Box> lBox = new Box(Vec3(0,0,0),1,1,1);
	ref_ptr<ShapeDrawable> lBoxDrawable = new ShapeDrawable(lBox.get());
	ref_ptr<Geode>lGeode = new Geode();
	lGeode->addDrawable(lBoxDrawable.get());
 
	root->addChild(lGeode.get());	
 
	sceneView->setSceneData(root.get());	
 
	SDL_Event event;
 
    while(true)
	{
        if (SDL_PollEvent(&event))
		{
            switch(event.type)
			{
                case SDL_QUIT:
                    return 0;
                case SDL_KEYDOWN:
                    if(event.key.keysym.sym == SDLK_ESCAPE)
					{
                        return 0;
                    }
            }
		}
		sceneView->update();
		sceneView->cull();
		sceneView->draw();
 
		SDL_GL_SwapBuffers();
 
      }	
 
	SDL_Quit();
    return 0;
 
}

Merci Beaucoup !!!!!