0022149: Strings with Japanese characters can not be displayed in 3D viewer
[occt.git] / src / OpenGl / OpenGl_GraphicDriver_713.cxx
1 // File         OpenGl_GraphicDriver_713.cxx
2 // Created      22-10-01
3 // Author       SAV
4
5 // SAV 09/07/02 merged with OpenGl_GraphicDriver_713.cxx created 16/06/2000 by ATS,SPK,GG : G005
6 //              implementation of PARRAY method
7
8 #include <OpenGl_GraphicDriver.jxx>
9
10 #include <Aspect_DriverDefinitionError.hxx>
11
12
13 #include <OpenGl_tgl_funcs.hxx>
14 #include <OpenGl_telem_util.hxx>
15
16
17 #define  BUC61044    /* 25/10/01 SAV ; added functionality to control gl depth testing
18 from higher API */
19 #define  BUC61045    /* 25/10/01 SAV ; added functionality to control gl lighting 
20 from higher API */
21
22
23 void OpenGl_GraphicDriver::SetDepthTestEnabled( const Graphic3d_CView& view,
24                                                const Standard_Boolean isEnabled ) const
25 {
26
27 #ifdef BUC61044
28   Graphic3d_CView MyCView = view;
29   call_togl_depthtest( &MyCView, isEnabled );
30 #endif
31
32 }
33
34 Standard_Boolean OpenGl_GraphicDriver
35 ::IsDepthTestEnabled( const Graphic3d_CView& view ) const
36 {
37 #ifdef BUC61044
38   Graphic3d_CView MyCView = view;
39   return (call_togl_isdepthtest( &MyCView ) != 0);
40 #endif
41 }
42
43 void OpenGl_GraphicDriver::ReadDepths( const Graphic3d_CView& view,
44                                        const Standard_Integer x,
45                                        const Standard_Integer y,
46                                        const Standard_Integer width,
47                                        const Standard_Integer height,
48                                        const Standard_Address buffer ) const
49 {
50   TelReadDepths (view.WsId, x, y, width, height, (float*) buffer);
51 }
52
53 void OpenGl_GraphicDriver::SetGLLightEnabled( const Graphic3d_CView& view,
54                                              const Standard_Boolean isEnabled ) const
55 {
56 #ifdef BUC61045
57   Graphic3d_CView MyCView = view;
58   call_togl_gllight( &MyCView, isEnabled );
59 #endif
60 }
61
62 Standard_Boolean OpenGl_GraphicDriver
63 ::IsGLLightEnabled( const Graphic3d_CView& view ) const
64 {
65 #ifdef BUC61045
66   Graphic3d_CView MyCView = view;
67   return (call_togl_isgllight( &MyCView ) != 0);
68 #endif
69 }
70
71 void OpenGl_GraphicDriver :: PrimitiveArray( const Graphic3d_CGroup& ACGroup,
72                                              const Graphic3d_PrimitiveArray& parray,
73                                                  const Standard_Boolean EvalMinMax )
74 {
75   Graphic3d_CGroup MyCGroup = ACGroup;
76
77   if( parray ) call_togl_parray (&MyCGroup,parray);
78 }
79
80
81 void OpenGl_GraphicDriver :: UserDraw ( const Graphic3d_CGroup& ACGroup,
82                                         const Graphic3d_CUserDraw& AUserDraw )
83 {
84   Graphic3d_CGroup MyCGroup = ACGroup;
85   Graphic3d_CUserDraw MyUserDraw = AUserDraw;
86
87   call_togl_userdraw (&MyCGroup,&MyUserDraw);
88 }
89
90 extern int VBOenabled;
91
92 void OpenGl_GraphicDriver :: EnableVBO( const Standard_Boolean flag )
93 {
94   VBOenabled = flag;
95 }