0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_togl_begin_layer_mode.cxx
diff --git a/src/OpenGl/OpenGl_togl_begin_layer_mode.cxx b/src/OpenGl/OpenGl_togl_begin_layer_mode.cxx
deleted file mode 100755 (executable)
index 5729b1e..0000000
+++ /dev/null
@@ -1,1142 +0,0 @@
-/***********************************************************************
-
-FONCTION :
-----------
-file OpenGl_togl_begin_layer_mode.c :
-
-REMARQUES:
-----------
-
-HISTORIQUE DES MODIFICATIONS   :
---------------------------------
-01-12-98 : CAL ; Creation. S4062. Ajout des layers.
-02.14.100 : JR : Warnings on WNT truncations from double to float
-
-************************************************************************/
-
-/*----------------------------------------------------------------------*/
-/*
-* Includes
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if defined(HAVE_MALLOC_H) || defined(WNT)
-#include <malloc.h>
-#endif
-
-#include <OpenGl_tgl_all.hxx>
-
-#include <math.h>
-#include <GL/gl.h>
-#include <stdio.h>
-
-#include <InterfaceGraphic_Labels.hxx>
-#include <InterfaceGraphic_Graphic3d.hxx>
-#include <InterfaceGraphic_Visual3d.hxx>
-
-#include <OpenGl_tsm_ws.hxx>
-#include <OpenGl_txgl.hxx>
-#include <OpenGl_tgl_tox.hxx>
-#include <OpenGl_tgl_funcs.hxx>
-#include <OpenGl_telem_filters.hxx>
-#include <OpenGl_telem.hxx>
-#include <OpenGl_telem_util.hxx>
-#include <OpenGl_telem_view.hxx>
-
-#include <OpenGl_TextRender.hxx>
-
-/*OCC6247*/
-#include <OpenGl_telem_attri.hxx>
-#include <OpenGl_LightBox.hxx>
-
-#include <Visual3d_Layer.hxx>
-
-#include <OpenGl_Extension.hxx>
-#include <OpenGl_PrinterContext.hxx>
-
-/*----------------------------------------------------------------------*/
-/*
-* Constantes
-*/
-
-#define NO_PRINT
-#define NOTRACE
-#define NO_DEBUG
-#define NO_TRACE_MAT
-#define NO_TRACE_TEXT
-
-#define IsNotModified 0
-#define IsModified 1
-
-/*----------------------------------------------------------------------*/
-/*
-* Variables externes
-*/
-
-extern GLuint linestyleBase;
-extern GLuint fontBase;
-
-#if defined(__sun)  || defined (__osf__) || defined (__hp) || defined (__sgi)
-#else
-extern PFNGLBLENDEQUATIONEXTPROC glBlendEquationOp;
-#endif
-/*----------------------------------------------------------------------*/
-/*
-* Prototypes fonctions
-*/
-
-/*----------------------------------------------------------------------*/
-/*
-* Prototypes Private functions
-*/
-
-/*----------------------------------------------------------------------*/
-/*
-* Variables statiques
-*/
-
-static CALL_DEF_LAYER ACLayer;
-
-static GLboolean layerOpen      = GL_FALSE;
-static float     layerHeight    = -1.;
-static float     layerWidth     = -1.;
-static int       layerPoints    = 0;
-static Tchar    *layerFont      = NULL;
-static int       layerType      = -1;
-static int       layerFontFlag  = IsModified;
-static int       layerFontType  = 0;
-static float     layerRed       = -1.;
-static float     layerGreen     = -1.;
-static float     layerBlue      = -1.;
-static float     layerFontRed   = -1.;
-static float     layerFontGreen = -1.;
-static float     layerFontBlue  = -1.;
-
-static OSD_FontAspect FTGLLayerFontAspect = OSD_FA_Regular;
-static Tint           FTGLLayerFontHeight = 16;
-static Tint           FTGLLayerFontAscent = 0;
-static Tint           FTGLLayerFontDescent = 0;
-static Tint           FTGLLayerFontWidth = 0;
-static Tfloat         FTGLLayerFontXScale = 1.f;
-static Tfloat         FTGLLayerFontYScale = 1.f;
-static Tchar          FTGLLayerFontName[100];
-static Tint           FTGLLayerFontCurrent = 0;
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_layer2d
-(
- CALL_DEF_LAYER * alayer
- )
-{
-  //call_def_ptrLayer ptrLayer;
-
-#ifdef PRINT
-  printf ("call_togl_layer2d\n");
-#endif
-  alayer->ptrLayer = (call_def_ptrLayer) malloc (sizeof (CALL_DEF_PTRLAYER)); 
-  alayer->ptrLayer->listIndex = glGenLists (1);
-  ACLayer = *alayer;
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_removelayer2d
-(
- CALL_DEF_LAYER * alayer
- )
-{
-  if (alayer->ptrLayer == NULL) return;
-  if (alayer->ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_removelayer2d %d\n", ptrLayer->listIndex);
-#endif
-
-  /*
-  * On detruit la display-list associee au layer.
-  */
-  glDeleteLists (alayer->ptrLayer->listIndex, 1);
-  alayer->ptrLayer->listIndex = 0;
-  ACLayer = *alayer;
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_clear_layer2d (
-                         CALL_DEF_LAYER * aLayer
-                         )
-{
-  if (aLayer->ptrLayer == NULL) return;
-  if (aLayer->ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_clear_layer2d %d\n", ptrLayer->listIndex);
-#endif
-
-  /*
-  * On clear la display-list associee au layer.
-  */
-  /*
-  * On detruit la display-list associee au layer.
-  */
-  glDeleteLists (aLayer->ptrLayer->listIndex, 1);
-  aLayer->ptrLayer->listIndex = 0;
-  /*
-  * On cree la display-list associee au layer.
-  */
-  aLayer->ptrLayer->listIndex = glGenLists (1);
-  //alayer->ptrLayer = /*(void *) */ptrLayer;
-  ACLayer = *aLayer;
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_redraw_layer2d (
-                          CALL_DEF_VIEW * aview,
-                          CALL_DEF_LAYER * alayer
-                          )
-{
-  float left, right, bottom, top;
-  float delta, ratio;
-  int attach;
-#ifdef TRACE_MAT
-  GLdouble modelMatrix[16], projMatrix[16];
-  GLint viewport[4];
-  int i, j;
-#endif
-  GLsizei dispWidth, dispHeight;
-  GLboolean isl = IsLightOn(); /*OCC6247*/
-
-  if ( aview->DefBitmap.bitmap ) {
-    dispWidth = aview->DefBitmap.width;
-    dispHeight = aview->DefBitmap.height;
-  }
-  else {
-    dispWidth = (GLsizei) alayer->viewport[0];
-    dispHeight = (GLsizei) alayer->viewport[1];
-  }
-
-  if (alayer->ptrLayer == NULL) return;
-  if (alayer->ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_redraw_layer2d %d\n", ptrLayer->listIndex);
-  printf ("\twindow size %f %f\n",
-    aview->DefWindow.dx, aview->DefWindow.dy);
-  printf ("\tviewport %f %f\n", (float) dispWidth, (float) dispHeight);
-#endif
-
-  if(isl) {
-    LightOff(); /*OCC6247*/
-  }
-
-  /*
-  * On positionne la projection
-  */
-  glMatrixMode( GL_MODELVIEW );
-  glPushMatrix ();
-  glLoadIdentity ();
-
-  glMatrixMode (GL_PROJECTION);
-  glPushMatrix ();
-  glLoadIdentity ();
-
-  if (alayer->sizeDependent == 0)
-    glViewport (0, 0, dispWidth, dispHeight);
-
-  left = alayer->ortho[0],
-    right = alayer->ortho[1],
-    bottom = alayer->ortho[2],
-    top = alayer->ortho[3];
-  attach = alayer->attach;
-#ifdef TRACE
-  printf ("\tattach %d ortho %f %f %f %f %d\n",
-    attach, left, right, bottom, top);
-#endif
-  if (alayer->sizeDependent == 0)
-    ratio = (float) dispWidth/dispHeight;
-  else
-    ratio = aview->DefWindow.dx/aview->DefWindow.dy;
-  if (ratio >= 1.0) { /* fenetre horizontale */
-    delta = (float )((top - bottom)/2.0);
-    switch (attach) {
-      case 0: /* Aspect_TOC_BOTTOM_LEFT */
-        top = bottom + 2*delta/ratio;
-        break;
-      case 1: /* Aspect_TOC_BOTTOM_RIGHT */
-        top = bottom + 2*delta/ratio;
-        break;
-      case 2: /* Aspect_TOC_TOP_LEFT */
-        bottom = top - 2*delta/ratio;
-        break;
-      case 3: /* Aspect_TOC_TOP_RIGHT */
-        bottom = top - 2*delta/ratio;
-        break;
-    }
-  }
-  else { /* fenetre verticale */
-    delta = (float )((right - left)/2.0);
-    switch (attach) {
-      case 0: /* Aspect_TOC_BOTTOM_LEFT */
-        right = left + 2*delta*ratio;
-        break;
-      case 1: /* Aspect_TOC_BOTTOM_RIGHT */
-        left = right - 2*delta*ratio;
-        break;
-      case 2: /* Aspect_TOC_TOP_LEFT */
-        right = left + 2*delta*ratio;
-        break;
-      case 3: /* Aspect_TOC_TOP_RIGHT */
-        left = right - 2*delta*ratio;
-        break;
-    }
-  }
-#ifdef TRACE
-  printf ("\tratio %f new ortho %f %f %f %f\n",
-    ratio, left, right, bottom, top);
-#endif
-
-#ifdef WNT
-  // Check printer context that exists only for print operation
-  OpenGl_PrinterContext* aPrinterContext = 
-    OpenGl_PrinterContext::GetPrinterContext (GET_GL_CONTEXT());
-
-  if (aPrinterContext)
-  {
-    // additional transformation matrix could be applied to
-    // render only those parts of viewport that will be
-    // passed to a printer as a current "frame" to provide
-    // tiling; scaling of graphics by matrix helps render a
-    // part of a view (frame) in same viewport, but with higher
-    // resolution
-    GLfloat aProjMatrix[16];
-    aPrinterContext->GetProjTransformation (aProjMatrix);
-    glLoadMatrixf ((GLfloat*) aProjMatrix);
-
-    // printing operation also assumes other viewport dimension
-    // to comply with transformation matrix or graphics scaling
-    // factors for tiling for layer redraw
-    GLsizei anViewportX = 0;
-    GLsizei anViewportY = 0;
-    aPrinterContext->GetLayerViewport (anViewportX, anViewportY);
-    if (anViewportX != 0 && anViewportY != 0)
-      glViewport (0, 0, anViewportX, anViewportY);
-  }
-#endif 
-
-  glOrtho (left, right, bottom, top, -1.0, 1.0);
-
-#ifdef TRACE_MAT
-  glGetIntegerv (GL_VIEWPORT, viewport);
-  glGetDoublev (GL_MODELVIEW_MATRIX, modelMatrix);
-  glGetDoublev (GL_PROJECTION_MATRIX, projMatrix);
-  printf ("viewport :\n");
-  printf ("\t");
-  for (i = 0; i < 4; i++)
-    printf ("%d ", viewport[i]);
-  printf ("\n");
-  printf ("modelMatrix :\n");
-  for (i = 0; i < 4; i++) {
-    printf ("\t");
-    for (j = 0; j < 4; j++)
-      printf ("%f ", modelMatrix[i*4+j]);
-    printf ("\n");
-  }
-  printf ("projMatrix :\n");
-  for (i = 0; i < 4; i++) {
-    printf ("\t");
-    for (j = 0; j < 4; j++)
-      printf ("%f ", projMatrix[i*4+j]);
-    printf ("\n");
-  }
-#endif
-
-  /*
-  * On trace la display-list associee au layer.
-  */
-#ifdef TRACE
-  if (glIsList (alayer->ptrLayer->listIndex))
-    printf ("\t%d is a list\n", alayer->ptrLayer->listIndex);
-  else
-    printf ("\t%d is not a list\n", alayer->ptrLayer->listIndex);
-#endif
-  glPushAttrib (
-    GL_LIGHTING_BIT | GL_LINE_BIT | GL_POLYGON_BIT |
-    GL_DEPTH_BUFFER_BIT | GL_CURRENT_BIT | GL_TEXTURE_BIT );
-  glDisable (GL_DEPTH_TEST);
-  glCallList (alayer->ptrLayer->listIndex);
-
-
-  //calling dynamic render of LayerItems
-  if ( alayer->ptrLayer->layerData ) {
-    ACLayer = *alayer;
-    Visual3d_Layer* layer = (Visual3d_Layer*)alayer->ptrLayer->layerData;
-    layer->RenderLayerItems();
-    ACLayer.ptrLayer = NULL;
-  }
-
-
-  glPopAttrib ();
-
-  /*
-  * On retire la projection
-  */
-  glMatrixMode (GL_PROJECTION);
-  glPopMatrix ();
-
-  glMatrixMode( GL_MODELVIEW );
-  glPopMatrix ();
-
-  /*
-  * Restauration du Viewport en cas de modification
-  */
-  if (alayer->sizeDependent == 0) 
-    glViewport (0, 0,
-    (GLsizei) aview->DefWindow.dx,
-    (GLsizei) aview->DefWindow.dy);
-
-  glFlush ();
-
-  if(isl) {
-    LightOn(); /*OCC6247*/
-  }
-
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_begin_layer2d
-(
- CALL_DEF_LAYER * alayer
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ACLayer = *alayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_begin_layer2d %d\n", ptrLayer->listIndex);
-#endif
-
-  //abd
-  glEnable(GL_TEXTURE_2D);
-  GLboolean stat = glIsEnabled( GL_TEXTURE_2D );
-
-  glNewList (ptrLayer->listIndex, GL_COMPILE);
-  layerOpen = GL_TRUE;
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_end_layer2d
-(
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_end_layer2d %d\n", ptrLayer->listIndex);
-#endif
-
-  /*
-  * On ferme la display-list associee au layer.
-  */
-  if (layerOpen) 
-    glEndList ();
-  layerOpen = GL_FALSE;
-
-  ACLayer.ptrLayer = NULL;
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_begin_polyline2d (
-                            )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_begin_polyline2d %d\n", ptrLayer->listIndex);
-#endif
-
-  layerPoints = 0;
-  glBegin (GL_LINE_STRIP);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_end_polyline2d (
-                          )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_end_polyline2d %d\n", ptrLayer->listIndex);
-#endif
-
-  glEnd ();
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_begin_polygon2d (
-                           )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_begin_polygon2d %d\n", ptrLayer->listIndex);
-#endif
-
-  layerPoints = 0;
-  glBegin (GL_POLYGON);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_end_polygon2d (
-                         )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_end_polygon2d %d\n", ptrLayer->listIndex);
-#endif
-
-  glEnd ();
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_edge2d (
-                  float x,
-                  float y
-                  )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_edge2d %d\n", ptrLayer->listIndex);
-  printf ("\tcoord %f %f\n", x, y);
-#endif
-
-  layerPoints ++;
-  glVertex3f (x, y, 0.);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_draw2d
-(
- float x,
- float y
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_draw2d %d\n", ptrLayer->listIndex);
-  printf ("\tcoord %f %f\n", x, y);
-#endif
-
-  layerPoints ++;
-  glVertex3f (x, y, 0.);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_move2d
-(
- float x,
- float y
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_move2d %d\n", ptrLayer->listIndex);
-  printf ("\tcoord %f %f\n", x, y);
-#endif
-
-  if (layerPoints != 0) {
-    call_togl_end_polyline2d ();
-    call_togl_begin_polyline2d ();
-  }
-
-  layerPoints ++;
-  glVertex3f (x, y, 0.);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_rectangle2d
-(
- float x,
- float y,
- float w,
- float h
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_rectangle2d %d\n", ptrLayer->listIndex);
-  printf ("\trectangle %f %f %f %f\n", x, y, w, h);
-#endif
-
-  glRectf (x, y, x + w, y + h);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_text2d ( Techar *s,
-                  float x,
-                  float y,
-                  float height )
-{
-#ifndef WNT
-  Tint dispWidth, dispHeight;
-#endif
-  GLdouble objx1, objy1, objz1;
-
-  call_def_ptrLayer ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (!ptrLayer) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef TRACE_TEXT
-  printf ("call_togl_text2d %d\n", ptrLayer->listIndex);
-  printf ("\ttext %s %f %f %f\n", s, x, y, height);
-#endif
-
-  OpenGl_TextRender* textRender=OpenGl_TextRender::instance();
-
-  FTGLLayerFontCurrent = textRender->FindFont( FTGLLayerFontName,
-                                               FTGLLayerFontAspect,
-                                               FTGLLayerFontHeight,
-                                               FTGLLayerFontXScale,
-                                               FTGLLayerFontYScale );
-
-  objx1 = x,
-  objy1 = y,
-  objz1 = 0.0;
-
-  //szv: conversion of Techar to wchar_t
-  wchar_t *s1 = (wchar_t*)s;
-  if (sizeof(Techar) != sizeof(wchar_t))
-  {
-    Tint i = 0; while (s[i++]);
-    s1 = new wchar_t[i];
-    i = 0; while (s1[i++] = (wchar_t)(*s++));
-  }
-
-  /*
-  * On traite les differents types d'affichage de texte
-  */
-  switch (layerFontType) {
-  case 0 : /* Aspect_TODT_Normal */
-#ifdef DEBUG
-    printf ("---------------------\n");
-    printf ("texte normal %f %f\n", objx1, objy1);
-#endif
-
-    textRender->RenderText(s1, fontBase, 1, (float )objx1, (float )objy1, 0.f );
-
-    break;
-  case 1 : /* Aspect_TODT_SubTitle */
-#ifdef OK
-#ifdef DEBUG
-    printf ("---------------------\n");
-    printf ("texte subtitle %f %f\n", objx1, objy1);
-#endif
-    glGetIntegerv (GL_VIEWPORT, viewport);
-    glGetDoublev (GL_MODELVIEW_MATRIX, modelMatrix);
-    glGetDoublev (GL_PROJECTION_MATRIX, projMatrix);
-#ifdef TRACE_MAT
-    printf ("viewport :\n");
-    printf ("\t");
-    for (i = 0; i < 4; i++)
-      printf ("%d ", viewport[i]);
-    printf ("\n");
-    printf ("modelMatrix :\n");
-    for (i = 0; i < 4; i++) {
-      printf ("\t");
-      for (j = 0; j < 4; j++)
-        printf ("%f ", modelMatrix[i*4+j]);
-      printf ("\n");
-    }
-    printf ("projMatrix :\n");
-    for (i = 0; i < 4; i++) {
-      printf ("\t");
-      for (j = 0; j < 4; j++)
-        printf ("%f ", projMatrix[i*4+j]);
-      printf ("\n");
-    }
-#endif
-    /*
-    * dimensionString("Methode cadre", &sWidth, &sAscent, &sDescent);
-    */
-    sWidth = 2.;
-    sAscent = .2;
-    sDescent = .2;
-
-    objx2 = objx1; objy2 = objy1; objz2 = objz1;
-    objx3 = objx1; objy3 = objy1; objz3 = objz1;
-    objx4 = objx1; objy4 = objy1; objz4 = objz1;
-    objx5 = objx1; objy5 = objy1; objz5 = objz1;
-
-    status = gluProject (objx1, objy1, objz1,
-                         modelMatrix, projMatrix, viewport,
-                         &winx1, &winy1, &winz1);
-
-    winx2 = winx1;
-    winy2 = winy1-sDescent;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-                           modelMatrix, projMatrix, viewport,
-                           &objx2, &objy2, &objz2);
-
-    winx2 = winx1 + sWidth;
-    winy2 = winy1-sDescent;
-    winz2 = winz1+0.00001; /* il vaut mieux F+B / 1000000 ? */
-    status = gluUnProject (winx2, winy2, winz2,
-                           modelMatrix, projMatrix, viewport,
-                           &objx3, &objy3, &objz3);
-
-    winx2 = winx1 + sWidth;
-    winy2 = winy1 + sAscent;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-                           modelMatrix, projMatrix, viewport,
-                           &objx4, &objy4, &objz4);
-
-    winx2 = winx1;
-    winy2 = winy1+ sAscent;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-                           modelMatrix, projMatrix, viewport,
-                           &objx5, &objy5, &objz5);
-
-    glColor3f (layerFontRed, layerFontGreen, layerFontBlue);
-    glBegin(GL_POLYGON);
-    glVertex3d(objx2, objy2, objz2);
-    glVertex3d(objx3, objy3, objz3);
-    glVertex3d(objx4, objy4, objz4);
-    glVertex3d(objx5, objy5, objz5);
-    glEnd();
-    glColor3f (layerRed, layerGreen, layerBlue);
-#endif /* OK */
-
-    textRender->RenderText(s1, fontBase, 1, (float )objx1, (float )objy1, 0.f); 
-
-    break;
-  case 2 : /* Aspect_TODT_Dekale */
-#ifdef OK
-#ifdef DEBUG
-    printf ("---------------------\n");
-    printf ("texte dekale %f %f\n", objx1, objy1);
-#endif
-    glGetIntegerv (GL_VIEWPORT, viewport);
-    glGetDoublev (GL_MODELVIEW_MATRIX, modelMatrix);
-    glGetDoublev (GL_PROJECTION_MATRIX, projMatrix);
-#ifdef DEBUG
-    printf ("viewport :\n");
-    printf ("\t");
-    for (i = 0; i < 4; i++)
-      printf ("%d ", viewport[i]);
-    printf ("\n");
-    printf ("modelMatrix :\n");
-    for (i = 0; i < 4; i++) {
-      printf ("\t");
-      for (j = 0; j < 4; j++)
-        printf ("%f ", modelMatrix[i*4+j]);
-      printf ("\n");
-    }
-    printf ("projMatrix :\n");
-    for (i = 0; i < 4; i++) {
-      printf ("\t");
-      for (j = 0; j < 4; j++)
-        printf ("%f ", projMatrix[i*4+j]);
-      printf ("\n");
-    }
-#endif
-    status = gluProject (objx1, objy1, objz1,
-      modelMatrix, projMatrix, viewport,
-      &winx1, &winy1, &winz1);
-#ifdef DEBUG
-    printf ("status %s\n", (status == GL_FALSE ? "ko" : "ok"));
-#endif
-    winx2 = winx1+1;
-    winy2 = winy1+1;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-      modelMatrix, projMatrix, viewport,
-      &objx2, &objy2, &objz2);
-#ifdef DEBUG
-    printf ("status %s\n", (status == GL_FALSE ? "ko" : "ok"));
-#endif
-    glColor3f (layerFontRed, layerFontGreen, layerFontBlue);
-
-
-    OpenGl_TextRender* textRender=OpenGl_TextRender::instance();
-    textRender->RenderText(s1, fontBase, 1, objx2, objy2, 0.f);
-
-
-    winx2 = winx1-1;
-    winy2 = winy1-1;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-      modelMatrix, projMatrix, viewport,
-      &objx2, &objy2, &objz2);
-#ifdef DEBUG
-    printf ("status %s\n", (status == GL_FALSE ? "ko" : "ok"));
-#endif
-
-    textRender->RenderText(s1, fontBase, 1, objx2, objy2, 0.f);
-
-
-    winx2 = winx1-1;
-    winy2 = winy1+1;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-      modelMatrix, projMatrix, viewport,
-      &objx2, &objy2, &objz2);
-#ifdef DEBUG
-    printf ("status %s\n", (status == GL_FALSE ? "ko" : "ok"));
-#endif
-
-
-    textRender->RenderText(s1, fontBase, 1, objx2, objy2, 0.f);
-
-    winx2 = winx1+1;
-    winy2 = winy1-1;
-    winz2 = winz1+0.00001;
-    status = gluUnProject (winx2, winy2, winz2,
-      modelMatrix, projMatrix, viewport,
-      &objx2, &objy2, &objz2);
-#ifdef DEBUG
-    printf ("status %s\n", (status == GL_FALSE ? "ko" : "ok"));
-#endif
-
-    textRender->RenderText(s1, fontBase, 1, objx2, objy2, 0.f);
-
-    glColor3f (layerRed, layerGreen, layerBlue);
-#endif /* OK */
-
-    textRender->RenderText(s1, fontBase, 1, (float )objx1, (float )objy1, 0.f);
-
-#ifdef DEBUG
-    printf ("---------------------\n");
-#endif
-    break;
-  case 3 : /* Aspect_TODT_Blend */
-#ifdef OK
-#ifndef WNT
-#ifndef __sun
-    if ( (PFNGLBLENDEQUATIONEXTPROC)glBlendEquationOp == (PFNGLBLENDEQUATIONEXTPROC)INVALID_EXT_FUNCTION_PTR )
-    {
-      if(QueryExtension("GL_EXT_blend_logic_op"))   
-        glBlendEquationOp = (PFNGLBLENDEQUATIONEXTPROC)glXGetProcAddress((GLubyte*)"glBlendEquationOp");
-      else
-       glBlendEquationOp = NULL;
-    }
-
-    if ( glBlendEquationOp )
-#endif //__sun
-    {
-      glEnable(GL_BLEND);
-#ifndef __sun
-      glBlendEquationOp(GL_LOGIC_OP);
-#else
-      glBlendEquation(GL_LOGIC_OP);
-#endif //__sun
-      glLogicOp(GL_XOR); 
-      glColor3f (layerRed, layerGreen, layerBlue);
-      glRasterPos2f (objx1, objy1);             
-      glDisable (GL_BLEND);
-    }
-#else
-    glColor3f (layerRed, layerGreen, layerBlue);
-
-    textRender->RenderText(s1, fontBase, 1, (float )objx1, (float )objy1, 0.f);
-
-
-#endif //WNT
-
-#else /* OK */
-#ifdef DEBUG
-    printf ("---------------------\n");
-    printf ("texte blend %f %f\n", objx1, objy1);
-#endif
-
-    textRender->RenderText(s1, fontBase, 1, (float )objx1, (float )objy1, 0.f);
-
-#ifdef DEBUG
-    printf ("---------------------\n");
-#endif
-#endif /* OK */
-    break;
-  }
-  //szv: delete temporary wide string
-  if (sizeof(Techar) != sizeof(wchar_t))
-    delete[] s1;
-}
-
-void EXPORT
-call_togl_textsize2d
-(
- Techar *s,
- float height,
- float *width,
- float *ascent,
- float *descent
- )
-{
-#ifndef WNT
-  Tint dispWidth, dispHeight;
-#endif
-
-  call_def_ptrLayer ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (!ptrLayer) return;
-  if (ptrLayer->listIndex == 0) return;
-
-  OpenGl_TextRender* textRender =  OpenGl_TextRender::instance();
-
-  if ( FTGLLayerFontHeight != height || layerFontFlag == IsModified || FTGLLayerFontCurrent == 0 )
-  {
-    layerFontFlag = IsNotModified;
-    FTGLLayerFontHeight = height;  
-    FTGLLayerFontCurrent = textRender -> FindFont(FTGLLayerFontName, FTGLLayerFontAspect, FTGLLayerFontHeight);
-  }
-
-  //szv: conversion of Techar to wchar_t
-  wchar_t *s1 = (wchar_t*)s, *s2 = 0;
-  if (sizeof(Techar) != sizeof(wchar_t))
-  {
-    Tint i = 0; while (s[i++]);
-    s1 = s2 = new wchar_t[i];
-    i = 0; while (s1[i++] = (wchar_t)(*s++));
-  }
-  textRender->StringSize(s1, &FTGLLayerFontWidth, &FTGLLayerFontAscent, &FTGLLayerFontDescent);
-  //szv: delete temporary wide string
-  if (s2) delete[] s2;
-
-  *width = (float) FTGLLayerFontWidth;
-  *ascent = (float) FTGLLayerFontAscent;
-  *descent = (float) FTGLLayerFontDescent;
-
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_set_color
-(
- float r,
- float g,
- float b
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_set_color %d\n", ptrLayer->listIndex);
-  printf ("\tcolor %f %f %f\n", r, g, b);
-#endif
-
-  layerRed = r,
-    layerGreen = g,
-    layerBlue = b;
-  glColor3f (r, g, b);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_set_transparency
-(
- float a
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_set_transparency %d\n", ptrLayer->listIndex);
-  printf ("\ttransparency %f\n", a);
-#endif
-
-  glEnable (GL_BLEND);
-  glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-  glColor4f (layerRed, layerGreen, layerBlue, a);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_unset_transparency
-(
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_set_untransparency %d\n", ptrLayer->listIndex);
-#endif
-
-  glDisable (GL_BLEND);
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_set_line_attributes
-(
- long type,
- float width
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_set_line_attributes %d\n", ptrLayer->listIndex);
-  printf ("\ttype, width %d %f\n", type, width);
-#endif
-  if (layerType != type) {
-    layerType = type;
-    if (layerType == 0) { /* TOL_SOLID */
-      glDisable (GL_LINE_STIPPLE);
-    }
-    else {
-      if (layerType) {
-        glCallList (linestyleBase+layerType);
-        glEnable (GL_LINE_STIPPLE);
-      }
-    }
-  }
-  if (layerWidth != width) {
-    layerWidth = width;
-    glLineWidth ((GLfloat) layerWidth);
-  }
-}
-
-/*----------------------------------------------------------------------*/
-void EXPORT
-call_togl_set_text_attributes
-(
- Tchar* font,
- long type,
- float r,
- float g,
- float b
- )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-#ifdef PRINT
-  printf ("call_togl_set_text_attributes %d\n", ptrLayer->listIndex);
-  printf ("\tfont %s type %ld\n", font, type);
-  printf ("\tcolor %f %f %f\n", r, g, b);
-#endif
-
-  if ( strcmp( (char*)FTGLLayerFontName, (char*)font ) != 0 ) {
-    FTGLLayerFontName[0] = '\0';
-    strcat( (char*)FTGLLayerFontName, (char*)font );
-    FTGLLayerFontAspect = OSD_FA_Regular;
-
-    OpenGl_TextRender*  textRender =  OpenGl_TextRender::instance();
-    FTGLLayerFontCurrent = textRender -> FindFont(FTGLLayerFontName, FTGLLayerFontAspect, FTGLLayerFontHeight);
-
-    layerFontType = type;
-    layerFontRed = r;
-    layerFontGreen = g;
-    layerFontBlue = b;         
-    layerFontFlag = IsModified; 
-  }
-  else 
-    return;                                   
-}
-
-void call_togl_set_text_attributes( Tchar* font,
-                                    Tint height,
-                                    OSD_FontAspect aspect,
-                                    float r,
-                                    float g,
-                                    float b )
-{
-  call_def_ptrLayer ptrLayer;
-
-  ptrLayer = (call_def_ptrLayer) ACLayer.ptrLayer;
-  if (ptrLayer == NULL) return;
-  if (ptrLayer->listIndex == 0) return;
-
-#ifdef PRINT
-  printf ("call_togl_set_text_attributes %d\n", ptrLayer->listIndex);
-  printf ("\tfont %s type \n", font);
-  printf ("\tcolor %f %f %f\n", r, g, b);
-#endif
-  /*
-  * On gere le type de font (ASCII !)
-  */
-  if ( strcmp( (char*)FTGLLayerFontName, (char*)font ) != 0 &&
-       FTGLLayerFontAspect == aspect && 
-       FTGLLayerFontHeight == height
-      ) 
-  {
-    FTGLLayerFontName[0] = '\0';
-    strcat( (char*)FTGLLayerFontName, (char*)font );
-    FTGLLayerFontHeight = height;
-    FTGLLayerFontAspect = aspect;
-    layerFontFlag = IsModified;
-    FTGLLayerFontXScale = FTGLLayerFontYScale = 1.f;
-    OpenGl_TextRender*  textRender =  OpenGl_TextRender::instance();
-    FTGLLayerFontCurrent = textRender -> FindFont(FTGLLayerFontName, FTGLLayerFontAspect, FTGLLayerFontHeight);
-
-    layerFontRed = r;
-    layerFontGreen = g;
-    layerFontBlue = b;
-  }
-
-}
-