OGLplus (0.52.0) a C++ wrapper for OpenGL

fwd.hpp
Go to the documentation of this file.
1 
12 #pragma once
13 #ifndef OGLPLUS_FWD_1107121519_HPP
14 #define OGLPLUS_FWD_1107121519_HPP
15 
16 #include <oglplus/config/compiler.hpp>
17 #include <type_traits>
18 #include <cstddef>
19 
20 namespace oglplus {
21 
22 // Angle
23 template <typename T>
24 class Angle;
25 
26 template <typename T>
27 T Radians(const Angle<T>&);
28 
29 template <typename T>
30 T Degrees(const Angle<T>&);
31 
32 template <typename T>
33 T Sin(const Angle<T>&);
34 
35 template <typename T>
36 T Cos(const Angle<T>&);
37 
38 template <typename T>
39 T Tan(const Angle<T>&);
40 
41 // Vector
42 template <typename T, std::size_t N>
43 class Vector;
44 
45 template <typename T, std::size_t N>
46 const T* Data(const Vector<T, N>& a);
47 
48 template <typename T, std::size_t N>
49 std::size_t Size(const Vector<T, N>&);
50 
51 template <typename T, std::size_t N>
52 T At(const Vector<T, N>& a, std::size_t i);
53 
54 template <typename T, std::size_t N>
55 T At(const Vector<T, N>& a, std::size_t i, T fallback);
56 
57 // Quaternion
58 template <typename T>
59 class Quaternion;
60 
61 // Matrix
62 template <typename T, std::size_t Rows, std::size_t Cols>
63 class Matrix;
64 
65 template <typename T, std::size_t R, std::size_t C>
66 const T* Data(const Matrix<T, R, C>& matrix);
67 
68 template <typename T, std::size_t R, std::size_t C>
69 std::size_t Size(const Matrix<T, R, C>&);
70 
71 template <typename T, std::size_t R, std::size_t C>
72 std::size_t Rows(const Matrix<T, R, C>&);
73 
74 template <typename T, std::size_t R, std::size_t C>
75 std::size_t Cols(const Matrix<T, R, C>&);
76 
77 template <typename T, std::size_t R, std::size_t C>
78 T At(const Matrix<T, R, C>& matrix, std::size_t i, std::size_t j);
79 
80 // Tags
81 namespace tag {
82 
83 struct OGLplus;
84 
85 struct ObjectName;
86 struct ObjectOps;
87 struct Object;
88 struct ProgVar;
89 
90 struct Generate;
91 struct Create;
92 
93 struct Renderbuffer;
94 struct Framebuffer;
95 struct Texture;
96 struct Buffer;
97 struct Query;
98 struct ProgramPipeline;
99 struct Program;
100 struct TransformFeedback;
101 struct Sampler;
102 struct VertexArray;
103 struct Shader;
104 struct PerfMonitorAMD;
105 struct PathNV;
106 
107 struct VertexAttrib;
108 struct Uniform;
109 struct UniformBlock;
110 struct Subroutine;
111 struct SubroutineUniform;
112 struct FragData;
113 
114 struct NativeTypes;
115 struct MatrixTypes;
116 
117 struct DirectInit;
118 struct EagerInit;
119 struct LazyInit;
120 
121 struct Typecheck;
122 struct NoTypecheck;
123 
124 struct ExplicitSel;
125 struct ImplicitSel;
126 struct DirectState;
127 struct DirectStateEXT;
128 struct CurrentBound;
129 } // namespace tag
130 
131 template <typename X>
132 struct Classify;
133 
134 // Object
135 template <typename ObjTag>
137 
138 template <typename ObjName>
139 class Sequence;
140 
141 template <typename ObjTag>
142 class ObjGenDelOps;
143 
144 template <typename OpsTag, typename ObjTag>
145 struct ObjGenTag;
146 
147 template <typename ObjTag>
148 class ObjBindingOps;
149 
150 template <typename ObjTag>
152 
153 template <typename ObjTag>
154 class BoundObjOps;
155 
156 template <typename OpsTag, typename ObjTag>
158 
159 template <typename CommonOps>
160 class ObjectZero;
161 
162 template <typename ObjectOps>
163 class Object;
164 
165 template <typename ObjTag>
166 struct ObjectSubtype;
167 
168 template <typename Target>
169 struct ObjectTargetTag;
170 
171 template <typename ObjectT>
172 class Reference;
173 
174 template <typename ObjectT>
175 struct Classify<Reference<ObjectT>>
176  : Classify<ObjectT>
177 { };
178 
179 template <typename X>
180 class Optional;
181 
182 template <typename Object>
183 class Array;
184 
185 template <typename Object>
186 class Group;
187 
188 class Shader;
189 
190 template <typename VarTag>
192 
199 
200 template <typename VarTag>
201 class ProgVarLocOps;
202 
203 template <typename VarTag>
204 class ProgVarTypeOps;
205 
206 template <typename ChkTag, typename VarTag>
207 class ProgVarTypecheck;
208 
209 template <typename OpsTag, typename VarTag, typename TypTag>
210 class ProgVarSetters;
211 
212 template <typename OpsTag, typename T>
213 class ProgVarCallers;
214 
215 template <typename VarTag>
216 class ProgVarCommonOps;
217 
218 template <typename OpsTag, typename VarTag, typename T>
219 class ProgVarGetSetOps;
220 
221 template <typename OpsTag, typename VarTag, typename ChkTag, typename T>
222 class ProgVar;
223 
224 template <typename OpsTg, typename VarTg, typename ChkTg, typename T>
225 struct Classify<ProgVar<OpsTg, VarTg, ChkTg, T>>
226 {
227  typedef ProgVar<OpsTg, VarTg, ChkTg, T> Base;
228  typedef tag::ProgVar Tag;
229  typedef OpsTg OpsTag;
230  typedef VarTg VarTag;
231  typedef ChkTg ChkTag;
232  typedef T Type;
233 };
234 
235 template <typename ProgVar>
236 class Typechecked;
237 
238 template <typename ProgVar>
239 class Lazy;
240 
241 } // namespace oglplus
242 
243 #endif // include guard
Specialization of ProgVar for subroutine uniformss.
Definition: uniform_subroutines.hpp:224
Common base class for Object name sequences.
Definition: fwd.hpp:139
Template class for quaternions.
Definition: fwd.hpp:59
Object< PerfMonitorAMDOps > PerfMonitorAMD
An oglplus_object encapsulating the performance monitor functionality.
Definition: AMD_performance_monitor.hpp:503
Class implementing planar angle-related functionality.
Definition: fwd.hpp:24
Object< TransformFeedbackOps > TransformFeedback
An oglplus_object encapsulating the OpenGL transform feedback functionality.
Definition: transform_feedback.hpp:408
Object< TextureOps > Texture
An oglplus_object encapsulating the texture object functionality.
Definition: texture.hpp:3217
Wrapper encapsulating program variable location/index.
Definition: fwd.hpp:191
Object< SamplerOps > Sampler
An oglplus_object encapsulating the OpenGL sampler functionality.
Definition: sampler.hpp:877
Implements operations applicable to named (non-zero) objects.
Definition: wrap_tpl.hpp:45
Object< ProgramPipelineOps > ProgramPipeline
An oglplus_object encapsulating the OpenGL program pipeline functionality.
Definition: program_pipeline.hpp:348
Specialization of ProgVar for subroutines.
Definition: uniform_subroutines.hpp:114
Implements operations applicable to any object including object 0 (zero)
Definition: fwd.hpp:157
Object< QueryOps > Query
An oglplus_object encapsulating the asynchronous query functionality.
Definition: query.hpp:537
An object encasulating the shader object functionality.
Definition: shader.hpp:363
Program variable (vertex attrib / uniform ) wrapper.
Definition: fwd.hpp:222
Object< ProgramOps > Program
An oglplus_object encapsulating the program object functionality.
Definition: program.hpp:867
Base template for Matrix.
Definition: fwd.hpp:63
Object< BufferOps > Buffer
An oglplus_object encapsulating the OpenGL buffer functionality.
Definition: buffer.hpp:1056
Implements operations applicable to any object and any operation kind.
Definition: fwd.hpp:151
Basic template for vector types.
Definition: fwd.hpp:43
Allows to allocate and manage several instances of Object at the same time.
Definition: fwd.hpp:183
Object< FramebufferOps > Framebuffer
An oglplus_object encapsulating the framebuffer object functionality.
Definition: framebuffer.hpp:733
A common template for "named" objects like textures, buffers, etc.
Definition: fwd.hpp:136
Object< VertexArrayOps > VertexArray
An oglplus_object encapsulating vertex array object functionality.
Definition: vertex_array.hpp:150
Object< PathNVOps > PathNV
An oglplus_object encapsulating the nVidia path functionality.
Definition: path.hpp:1019
Allows to make managed copies of instances of Object.
Definition: fwd.hpp:172
Object< RenderbufferOps > Renderbuffer
An oglplus_object encapsulating the renderbuffer object functionality.
Definition: renderbuffer.hpp:401

Copyright © 2010-2014 Matúš Chochlík, University of Žilina, Žilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Mon Sep 22 2014 by Doxygen (version 1.8.6).