ZooScol.cpp Les modes fenetres et fullscreen sont stockés dans des variables globales windowedmode et fullscreenmode. _CRsurface() - Fonctionne si l'on n'est pas en mode fullscreen. - Créer des surfaces avant de basculer en fullscreen doit donc, à ce stade, théoriquement fonctionner (A posteriori, non, voir plus bas). - windowedmode est mis à 1. _CRfullscreenSurface() - Fonctionne si l'on n'est pas déjà en mode fenêtré. Arg. - fullscreenmode est mis à 1. Une surface est visiblement décrite par 4 variables: - Son type (fenetre ou fullscreen) - Le Device Context (lié à la "fenêtre surface") - Le Rendering Context (lié au DC) - La "fenêtre surface" (la surface est essentiellement une fenêtre fille dépendant de la fenêtre principale Scol) _BLTsurface() - Cette fonction est ineffective sur une surface fullscreen. - On a un controle sur l'OPENGL Current Rendering Context puis un SwapBuffers (car le travail se fait sur 2 zones mémoires (Render / Display)). _BLTsurfaceFullScreen() - Cette fonction est ineffective sur une surface fenetree. - On a ici un SwapBuffers mais point de contrôle sur le CRC. _MX3renderEx() - Cette fonction appelle la macro GLOBAL_RENDER_FILL qui appelle la méthode scene->display (basic/zooscene.cpp) qui appelle moult méthodes de l'objet world (basic/zooworld.cpp). A mon sens, le problème principal, au delà des sécurités mises dans le code sur le type d'affichage, vient du fait que l'accès et l'affichage d'un nouveau rendu se fait d'un coup via SwapBuffers. On n'a pas de fonction Scol pour accéder au contenu du buffer de display sans l'afficher. Surface2Bitmap ? 070314: - On doit pouvoir trouver une solution en passant par un ReadPixel (comme dans Surface2Bitmap) et appliquer une solution type _BLTbitmap, en intégrant la couleur de background en transparence et en optimisant au maximum le traitement.