0028466: Visualization, OpenGl_Context - read GPU memory using WGL_AMD_gpu_associatio...
[occt.git] / src / OpenGl / OpenGl_Vec.hxx
1 // Created on: 2013-01-29
2 // Created by: Kirill GAVRILOV
3 // Copyright (c) 2013-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _OpenGl_Vec_H__
17 #define _OpenGl_Vec_H__
18
19 #include <Graphic3d_Vec.hxx>
20
21 typedef Graphic3d_Vec2i  OpenGl_Vec2i;
22 typedef Graphic3d_Vec3i  OpenGl_Vec3i;
23 typedef Graphic3d_Vec4i  OpenGl_Vec4i;
24
25 typedef Graphic3d_Vec2b  OpenGl_Vec2b;
26 typedef Graphic3d_Vec3b  OpenGl_Vec3b;
27 typedef Graphic3d_Vec4b  OpenGl_Vec4b;
28
29 typedef Graphic3d_Vec2u  OpenGl_Vec2u;
30 typedef Graphic3d_Vec3u  OpenGl_Vec3u;
31 typedef Graphic3d_Vec4u  OpenGl_Vec4u;
32
33 typedef Graphic3d_Vec2ub OpenGl_Vec2ub;
34 typedef Graphic3d_Vec3ub OpenGl_Vec3ub;
35 typedef Graphic3d_Vec4ub OpenGl_Vec4ub;
36
37 typedef Graphic3d_Vec2   OpenGl_Vec2;
38 typedef Graphic3d_Vec3   OpenGl_Vec3;
39 typedef Graphic3d_Vec4   OpenGl_Vec4;
40
41 typedef Graphic3d_Vec2d  OpenGl_Vec2d;
42 typedef Graphic3d_Vec3d  OpenGl_Vec3d;
43 typedef Graphic3d_Vec4d  OpenGl_Vec4d;
44
45 typedef Graphic3d_Mat4   OpenGl_Mat4;
46 typedef Graphic3d_Mat4d  OpenGl_Mat4d;
47
48 namespace OpenGl
49 {
50   //! Tool class for selecting appropriate vector type.
51   //! \tparam T Numeric data type
52   template<class T> struct VectorType
53   {
54     // Not implemented
55   };
56
57   template<> struct VectorType<Standard_Real>
58   {
59     typedef OpenGl_Vec2d Vec2;
60     typedef OpenGl_Vec3d Vec3;
61     typedef OpenGl_Vec4d Vec4;
62   };
63
64   template<> struct VectorType<Standard_ShortReal>
65   {
66     typedef OpenGl_Vec2 Vec2;
67     typedef OpenGl_Vec3 Vec3;
68     typedef OpenGl_Vec4 Vec4;
69   };
70
71   //! Tool class for selecting appropriate matrix type.
72   //! \tparam T Numeric data type
73   template<class T> struct MatrixType
74   {
75     // Not implemented
76   };
77
78   template<> struct MatrixType<Standard_Real>
79   {
80     typedef OpenGl_Mat4d Mat4;
81   };
82
83   template<> struct MatrixType<Standard_ShortReal>
84   {
85     typedef OpenGl_Mat4 Mat4;
86   };
87 }
88
89 #endif // _OpenGl_Vec_H__