1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 2.0.12
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 module ovr;
10 
11 static import ovr_im;
12 static import core.stdc.config;
13 
14 static import std.conv;
15 static import std.string;
16 
17 
18 class ovrVector2i {
19   private void* swigCPtr;
20   protected bool swigCMemOwn;
21 
22   public this(void* cObject, bool ownCObject) {
23     swigCPtr = cObject;
24     swigCMemOwn = ownCObject;
25   }
26 
27   public static void* swigGetCPtr(ovrVector2i obj) {
28     return (obj is null) ? null : obj.swigCPtr;
29   }
30 
31   mixin ovr_im.SwigOperatorDefinitions;
32 
33   ~this() {
34     dispose();
35   }
36 
37   public void dispose() {
38     synchronized(this) {
39       if (swigCPtr !is null) {
40         if (swigCMemOwn) {
41           swigCMemOwn = false;
42           ovr_im.delete_ovrVector2i(cast(void*)swigCPtr);
43         }
44         swigCPtr = null;
45       }
46     }
47   }
48 
49   public void x(int value) @property {
50     ovr_im.ovrVector2i_x_set(cast(void*)swigCPtr, value);
51   }
52 
53   public int x() @property const {
54     auto ret = ovr_im.ovrVector2i_x_get(cast(void*)swigCPtr);
55     return ret;
56   }
57 
58   public void y(int value) @property {
59     ovr_im.ovrVector2i_y_set(cast(void*)swigCPtr, value);
60   }
61 
62   public int y() @property const {
63     auto ret = ovr_im.ovrVector2i_y_get(cast(void*)swigCPtr);
64     return ret;
65   }
66 
67   public this() {
68     this(ovr_im.new_ovrVector2i(), true);
69   }
70 }
71 
72 class ovrSizei {
73   private void* swigCPtr;
74   protected bool swigCMemOwn;
75 
76   public this(void* cObject, bool ownCObject) {
77     swigCPtr = cObject;
78     swigCMemOwn = ownCObject;
79   }
80 
81   public static void* swigGetCPtr(ovrSizei obj) {
82     return (obj is null) ? null : obj.swigCPtr;
83   }
84 
85   mixin ovr_im.SwigOperatorDefinitions;
86 
87   ~this() {
88     dispose();
89   }
90 
91   public void dispose() {
92     synchronized(this) {
93       if (swigCPtr !is null) {
94         if (swigCMemOwn) {
95           swigCMemOwn = false;
96           ovr_im.delete_ovrSizei(cast(void*)swigCPtr);
97         }
98         swigCPtr = null;
99       }
100     }
101   }
102 
103   public void w(int value) @property {
104     ovr_im.ovrSizei_w_set(cast(void*)swigCPtr, value);
105   }
106 
107   public int w() @property const {
108     auto ret = ovr_im.ovrSizei_w_get(cast(void*)swigCPtr);
109     return ret;
110   }
111 
112   public void h(int value) @property {
113     ovr_im.ovrSizei_h_set(cast(void*)swigCPtr, value);
114   }
115 
116   public int h() @property const {
117     auto ret = ovr_im.ovrSizei_h_get(cast(void*)swigCPtr);
118     return ret;
119   }
120 
121   public this() {
122     this(ovr_im.new_ovrSizei(), true);
123   }
124 }
125 
126 class ovrRecti {
127   private void* swigCPtr;
128   protected bool swigCMemOwn;
129 
130   public this(void* cObject, bool ownCObject) {
131     swigCPtr = cObject;
132     swigCMemOwn = ownCObject;
133   }
134 
135   public static void* swigGetCPtr(ovrRecti obj) {
136     return (obj is null) ? null : obj.swigCPtr;
137   }
138 
139   mixin ovr_im.SwigOperatorDefinitions;
140 
141   ~this() {
142     dispose();
143   }
144 
145   public void dispose() {
146     synchronized(this) {
147       if (swigCPtr !is null) {
148         if (swigCMemOwn) {
149           swigCMemOwn = false;
150           ovr_im.delete_ovrRecti(cast(void*)swigCPtr);
151         }
152         swigCPtr = null;
153       }
154     }
155   }
156 
157   public void Pos(ovrVector2i value) @property {
158     ovr_im.ovrRecti_Pos_set(cast(void*)swigCPtr, ovrVector2i.swigGetCPtr(value));
159   }
160 
161   public ovrVector2i Pos() @property const {
162     void* cPtr = ovr_im.ovrRecti_Pos_get(cast(void*)swigCPtr);
163     ovrVector2i ret = (cPtr is null) ? null : new ovrVector2i(cPtr, false);
164     return ret;
165   }
166 
167   public void Size(ovrSizei value) @property {
168     ovr_im.ovrRecti_Size_set(cast(void*)swigCPtr, ovrSizei.swigGetCPtr(value));
169   }
170 
171   public ovrSizei Size() @property const {
172     void* cPtr = ovr_im.ovrRecti_Size_get(cast(void*)swigCPtr);
173     ovrSizei ret = (cPtr is null) ? null : new ovrSizei(cPtr, false);
174     return ret;
175   }
176 
177   public this() {
178     this(ovr_im.new_ovrRecti(), true);
179   }
180 }
181 
182 class ovrQuatf {
183   private void* swigCPtr;
184   protected bool swigCMemOwn;
185 
186   public this(void* cObject, bool ownCObject) {
187     swigCPtr = cObject;
188     swigCMemOwn = ownCObject;
189   }
190 
191   public static void* swigGetCPtr(ovrQuatf obj) {
192     return (obj is null) ? null : obj.swigCPtr;
193   }
194 
195   mixin ovr_im.SwigOperatorDefinitions;
196 
197   ~this() {
198     dispose();
199   }
200 
201   public void dispose() {
202     synchronized(this) {
203       if (swigCPtr !is null) {
204         if (swigCMemOwn) {
205           swigCMemOwn = false;
206           ovr_im.delete_ovrQuatf(cast(void*)swigCPtr);
207         }
208         swigCPtr = null;
209       }
210     }
211   }
212 
213   public void x(float value) @property {
214     ovr_im.ovrQuatf_x_set(cast(void*)swigCPtr, value);
215   }
216 
217   public float x() @property const {
218     auto ret = ovr_im.ovrQuatf_x_get(cast(void*)swigCPtr);
219     return ret;
220   }
221 
222   public void y(float value) @property {
223     ovr_im.ovrQuatf_y_set(cast(void*)swigCPtr, value);
224   }
225 
226   public float y() @property const {
227     auto ret = ovr_im.ovrQuatf_y_get(cast(void*)swigCPtr);
228     return ret;
229   }
230 
231   public void z(float value) @property {
232     ovr_im.ovrQuatf_z_set(cast(void*)swigCPtr, value);
233   }
234 
235   public float z() @property const {
236     auto ret = ovr_im.ovrQuatf_z_get(cast(void*)swigCPtr);
237     return ret;
238   }
239 
240   public void w(float value) @property {
241     ovr_im.ovrQuatf_w_set(cast(void*)swigCPtr, value);
242   }
243 
244   public float w() @property const {
245     auto ret = ovr_im.ovrQuatf_w_get(cast(void*)swigCPtr);
246     return ret;
247   }
248 
249   public this() {
250     this(ovr_im.new_ovrQuatf(), true);
251   }
252 }
253 
254 class ovrVector2f {
255   private void* swigCPtr;
256   protected bool swigCMemOwn;
257 
258   public this(void* cObject, bool ownCObject) {
259     swigCPtr = cObject;
260     swigCMemOwn = ownCObject;
261   }
262 
263   public static void* swigGetCPtr(ovrVector2f obj) {
264     return (obj is null) ? null : obj.swigCPtr;
265   }
266 
267   mixin ovr_im.SwigOperatorDefinitions;
268 
269   ~this() {
270     dispose();
271   }
272 
273   public void dispose() {
274     synchronized(this) {
275       if (swigCPtr !is null) {
276         if (swigCMemOwn) {
277           swigCMemOwn = false;
278           ovr_im.delete_ovrVector2f(cast(void*)swigCPtr);
279         }
280         swigCPtr = null;
281       }
282     }
283   }
284 
285   public void x(float value) @property {
286     ovr_im.ovrVector2f_x_set(cast(void*)swigCPtr, value);
287   }
288 
289   public float x() @property const {
290     auto ret = ovr_im.ovrVector2f_x_get(cast(void*)swigCPtr);
291     return ret;
292   }
293 
294   public void y(float value) @property {
295     ovr_im.ovrVector2f_y_set(cast(void*)swigCPtr, value);
296   }
297 
298   public float y() @property const {
299     auto ret = ovr_im.ovrVector2f_y_get(cast(void*)swigCPtr);
300     return ret;
301   }
302 
303   public this() {
304     this(ovr_im.new_ovrVector2f(), true);
305   }
306 }
307 
308 class ovrVector3f {
309   private void* swigCPtr;
310   protected bool swigCMemOwn;
311 
312   public this(void* cObject, bool ownCObject) {
313     swigCPtr = cObject;
314     swigCMemOwn = ownCObject;
315   }
316 
317   public static void* swigGetCPtr(ovrVector3f obj) {
318     return (obj is null) ? null : obj.swigCPtr;
319   }
320 
321   mixin ovr_im.SwigOperatorDefinitions;
322 
323   ~this() {
324     dispose();
325   }
326 
327   public void dispose() {
328     synchronized(this) {
329       if (swigCPtr !is null) {
330         if (swigCMemOwn) {
331           swigCMemOwn = false;
332           ovr_im.delete_ovrVector3f(cast(void*)swigCPtr);
333         }
334         swigCPtr = null;
335       }
336     }
337   }
338 
339   public void x(float value) @property {
340     ovr_im.ovrVector3f_x_set(cast(void*)swigCPtr, value);
341   }
342 
343   public float x() @property const {
344     auto ret = ovr_im.ovrVector3f_x_get(cast(void*)swigCPtr);
345     return ret;
346   }
347 
348   public void y(float value) @property {
349     ovr_im.ovrVector3f_y_set(cast(void*)swigCPtr, value);
350   }
351 
352   public float y() @property const {
353     auto ret = ovr_im.ovrVector3f_y_get(cast(void*)swigCPtr);
354     return ret;
355   }
356 
357   public void z(float value) @property {
358     ovr_im.ovrVector3f_z_set(cast(void*)swigCPtr, value);
359   }
360 
361   public float z() @property const {
362     auto ret = ovr_im.ovrVector3f_z_get(cast(void*)swigCPtr);
363     return ret;
364   }
365 
366   public this() {
367     this(ovr_im.new_ovrVector3f(), true);
368   }
369 }
370 
371 class ovrMatrix4f {
372   private void* swigCPtr;
373   protected bool swigCMemOwn;
374 
375   public this(void* cObject, bool ownCObject) {
376     swigCPtr = cObject;
377     swigCMemOwn = ownCObject;
378   }
379 
380   public static void* swigGetCPtr(ovrMatrix4f obj) {
381     return (obj is null) ? null : obj.swigCPtr;
382   }
383 
384   mixin ovr_im.SwigOperatorDefinitions;
385 
386   ~this() {
387     dispose();
388   }
389 
390   public void dispose() {
391     synchronized(this) {
392       if (swigCPtr !is null) {
393         if (swigCMemOwn) {
394           swigCMemOwn = false;
395           ovr_im.delete_ovrMatrix4f(cast(void*)swigCPtr);
396         }
397         swigCPtr = null;
398       }
399     }
400   }
401 
402   public void M(SWIGTYPE_p_a_4__float value) @property {
403     ovr_im.ovrMatrix4f_M_set(cast(void*)swigCPtr, SWIGTYPE_p_a_4__float.swigGetCPtr(value));
404   }
405 
406   public SWIGTYPE_p_a_4__float M() @property const {
407     void* cPtr = ovr_im.ovrMatrix4f_M_get(cast(void*)swigCPtr);
408     SWIGTYPE_p_a_4__float ret = (cPtr is null) ? null : new SWIGTYPE_p_a_4__float(cPtr, false);
409     return ret;
410   }
411 
412   public this() {
413     this(ovr_im.new_ovrMatrix4f(), true);
414   }
415 }
416 
417 class ovrPosef {
418   private void* swigCPtr;
419   protected bool swigCMemOwn;
420 
421   public this(void* cObject, bool ownCObject) {
422     swigCPtr = cObject;
423     swigCMemOwn = ownCObject;
424   }
425 
426   public static void* swigGetCPtr(ovrPosef obj) {
427     return (obj is null) ? null : obj.swigCPtr;
428   }
429 
430   mixin ovr_im.SwigOperatorDefinitions;
431 
432   ~this() {
433     dispose();
434   }
435 
436   public void dispose() {
437     synchronized(this) {
438       if (swigCPtr !is null) {
439         if (swigCMemOwn) {
440           swigCMemOwn = false;
441           ovr_im.delete_ovrPosef(cast(void*)swigCPtr);
442         }
443         swigCPtr = null;
444       }
445     }
446   }
447 
448   public void Orientation(ovrQuatf value) @property {
449     ovr_im.ovrPosef_Orientation_set(cast(void*)swigCPtr, ovrQuatf.swigGetCPtr(value));
450   }
451 
452   public ovrQuatf Orientation() @property const {
453     void* cPtr = ovr_im.ovrPosef_Orientation_get(cast(void*)swigCPtr);
454     ovrQuatf ret = (cPtr is null) ? null : new ovrQuatf(cPtr, false);
455     return ret;
456   }
457 
458   public void Position(ovrVector3f value) @property {
459     ovr_im.ovrPosef_Position_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
460   }
461 
462   public ovrVector3f Position() @property const {
463     void* cPtr = ovr_im.ovrPosef_Position_get(cast(void*)swigCPtr);
464     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
465     return ret;
466   }
467 
468   public this() {
469     this(ovr_im.new_ovrPosef(), true);
470   }
471 }
472 
473 class ovrPoseStatef {
474   private void* swigCPtr;
475   protected bool swigCMemOwn;
476 
477   public this(void* cObject, bool ownCObject) {
478     swigCPtr = cObject;
479     swigCMemOwn = ownCObject;
480   }
481 
482   public static void* swigGetCPtr(ovrPoseStatef obj) {
483     return (obj is null) ? null : obj.swigCPtr;
484   }
485 
486   mixin ovr_im.SwigOperatorDefinitions;
487 
488   ~this() {
489     dispose();
490   }
491 
492   public void dispose() {
493     synchronized(this) {
494       if (swigCPtr !is null) {
495         if (swigCMemOwn) {
496           swigCMemOwn = false;
497           ovr_im.delete_ovrPoseStatef(cast(void*)swigCPtr);
498         }
499         swigCPtr = null;
500       }
501     }
502   }
503 
504   public void Pose(ovrPosef value) @property {
505     ovr_im.ovrPoseStatef_Pose_set(cast(void*)swigCPtr, ovrPosef.swigGetCPtr(value));
506   }
507 
508   public ovrPosef Pose() @property const {
509     void* cPtr = ovr_im.ovrPoseStatef_Pose_get(cast(void*)swigCPtr);
510     ovrPosef ret = (cPtr is null) ? null : new ovrPosef(cPtr, false);
511     return ret;
512   }
513 
514   public void AngularVelocity(ovrVector3f value) @property {
515     ovr_im.ovrPoseStatef_AngularVelocity_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
516   }
517 
518   public ovrVector3f AngularVelocity() @property const {
519     void* cPtr = ovr_im.ovrPoseStatef_AngularVelocity_get(cast(void*)swigCPtr);
520     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
521     return ret;
522   }
523 
524   public void LinearVelocity(ovrVector3f value) @property {
525     ovr_im.ovrPoseStatef_LinearVelocity_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
526   }
527 
528   public ovrVector3f LinearVelocity() @property const {
529     void* cPtr = ovr_im.ovrPoseStatef_LinearVelocity_get(cast(void*)swigCPtr);
530     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
531     return ret;
532   }
533 
534   public void AngularAcceleration(ovrVector3f value) @property {
535     ovr_im.ovrPoseStatef_AngularAcceleration_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
536   }
537 
538   public ovrVector3f AngularAcceleration() @property const {
539     void* cPtr = ovr_im.ovrPoseStatef_AngularAcceleration_get(cast(void*)swigCPtr);
540     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
541     return ret;
542   }
543 
544   public void LinearAcceleration(ovrVector3f value) @property {
545     ovr_im.ovrPoseStatef_LinearAcceleration_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
546   }
547 
548   public ovrVector3f LinearAcceleration() @property const {
549     void* cPtr = ovr_im.ovrPoseStatef_LinearAcceleration_get(cast(void*)swigCPtr);
550     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
551     return ret;
552   }
553 
554   public void TimeInSeconds(double value) @property {
555     ovr_im.ovrPoseStatef_TimeInSeconds_set(cast(void*)swigCPtr, value);
556   }
557 
558   public double TimeInSeconds() @property const {
559     auto ret = ovr_im.ovrPoseStatef_TimeInSeconds_get(cast(void*)swigCPtr);
560     return ret;
561   }
562 
563   public this() {
564     this(ovr_im.new_ovrPoseStatef(), true);
565   }
566 }
567 
568 class ovrFovPort {
569   private void* swigCPtr;
570   protected bool swigCMemOwn;
571 
572   public this(void* cObject, bool ownCObject) {
573     swigCPtr = cObject;
574     swigCMemOwn = ownCObject;
575   }
576 
577   public static void* swigGetCPtr(ovrFovPort obj) {
578     return (obj is null) ? null : obj.swigCPtr;
579   }
580 
581   mixin ovr_im.SwigOperatorDefinitions;
582 
583   ~this() {
584     dispose();
585   }
586 
587   public void dispose() {
588     synchronized(this) {
589       if (swigCPtr !is null) {
590         if (swigCMemOwn) {
591           swigCMemOwn = false;
592           ovr_im.delete_ovrFovPort(cast(void*)swigCPtr);
593         }
594         swigCPtr = null;
595       }
596     }
597   }
598 
599   public void UpTan(float value) @property {
600     ovr_im.ovrFovPort_UpTan_set(cast(void*)swigCPtr, value);
601   }
602 
603   public float UpTan() @property const {
604     auto ret = ovr_im.ovrFovPort_UpTan_get(cast(void*)swigCPtr);
605     return ret;
606   }
607 
608   public void DownTan(float value) @property {
609     ovr_im.ovrFovPort_DownTan_set(cast(void*)swigCPtr, value);
610   }
611 
612   public float DownTan() @property const {
613     auto ret = ovr_im.ovrFovPort_DownTan_get(cast(void*)swigCPtr);
614     return ret;
615   }
616 
617   public void LeftTan(float value) @property {
618     ovr_im.ovrFovPort_LeftTan_set(cast(void*)swigCPtr, value);
619   }
620 
621   public float LeftTan() @property const {
622     auto ret = ovr_im.ovrFovPort_LeftTan_get(cast(void*)swigCPtr);
623     return ret;
624   }
625 
626   public void RightTan(float value) @property {
627     ovr_im.ovrFovPort_RightTan_set(cast(void*)swigCPtr, value);
628   }
629 
630   public float RightTan() @property const {
631     auto ret = ovr_im.ovrFovPort_RightTan_get(cast(void*)swigCPtr);
632     return ret;
633   }
634 
635   public this() {
636     this(ovr_im.new_ovrFovPort(), true);
637   }
638 }
639 
640 enum ovrHmdType {
641   ovrHmd_None = 0,
642   ovrHmd_DK1 = 3,
643   ovrHmd_DKHD = 4,
644   ovrHmd_CrystalCoveProto = 5,
645   ovrHmd_DK2 = 6,
646   ovrHmd_Other
647 }
648 
649 enum ovrHmdCapBits {
650   ovrHmdCap_Present = 0x0001,
651   ovrHmdCap_Available = 0x0002,
652   ovrHmdCap_Orientation = 0x0010,
653   ovrHmdCap_YawCorrection = 0x0020,
654   ovrHmdCap_Position = 0x0040,
655   ovrHmdCap_LowPersistence = 0x0080,
656   ovrHmdCap_LatencyTest = 0x0100,
657   ovrHmdCap_DynamicPrediction = 0x0200,
658   ovrHmdCap_NoVSync = 0x1000
659 }
660 
661 enum ovrDistortionCaps {
662   ovrDistortion_Chromatic = 0x01,
663   ovrDistortion_TimeWarp = 0x02,
664   ovrDistortion_Vignette = 0x08
665 }
666 
667 enum ovrEyeType {
668   ovrEye_Left = 0,
669   ovrEye_Right = 1,
670   ovrEye_Count = 2
671 }
672 
673 class ovrHmdDesc {
674   private void* swigCPtr;
675   protected bool swigCMemOwn;
676 
677   public this(void* cObject, bool ownCObject) {
678     swigCPtr = cObject;
679     swigCMemOwn = ownCObject;
680   }
681 
682   public static void* swigGetCPtr(ovrHmdDesc obj) {
683     return (obj is null) ? null : obj.swigCPtr;
684   }
685 
686   mixin ovr_im.SwigOperatorDefinitions;
687 
688   ~this() {
689     dispose();
690   }
691 
692   public void dispose() {
693     synchronized(this) {
694       if (swigCPtr !is null) {
695         if (swigCMemOwn) {
696           swigCMemOwn = false;
697           ovr_im.delete_ovrHmdDesc(cast(void*)swigCPtr);
698         }
699         swigCPtr = null;
700       }
701     }
702   }
703 
704   public void Handle(SWIGTYPE_p_ovrHmdStruct value) @property {
705     ovr_im.ovrHmdDesc_Handle_set(cast(void*)swigCPtr, SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(value));
706   }
707 
708   public SWIGTYPE_p_ovrHmdStruct Handle() @property const {
709     void* cPtr = ovr_im.ovrHmdDesc_Handle_get(cast(void*)swigCPtr);
710     SWIGTYPE_p_ovrHmdStruct ret = (cPtr is null) ? null : new SWIGTYPE_p_ovrHmdStruct(cPtr, false);
711     return ret;
712   }
713 
714   public void Type(ovrHmdType value) @property {
715     ovr_im.ovrHmdDesc_Type_set(cast(void*)swigCPtr, cast(int)value);
716   }
717 
718   public ovrHmdType Type() @property const {
719     ovrHmdType ret = cast(ovrHmdType)ovr_im.ovrHmdDesc_Type_get(cast(void*)swigCPtr);
720     return ret;
721   }
722 
723   public void ProductName(string value) @property {
724     ovr_im.ovrHmdDesc_ProductName_set(cast(void*)swigCPtr, (value ? std..string.toStringz(value) : null));
725   }
726 
727   public string ProductName() @property const {
728     string ret = std.conv.to!string(ovr_im.ovrHmdDesc_ProductName_get(cast(void*)swigCPtr));
729     return ret;
730   }
731 
732   public void Manufacturer(string value) @property {
733     ovr_im.ovrHmdDesc_Manufacturer_set(cast(void*)swigCPtr, (value ? std..string.toStringz(value) : null));
734   }
735 
736   public string Manufacturer() @property const {
737     string ret = std.conv.to!string(ovr_im.ovrHmdDesc_Manufacturer_get(cast(void*)swigCPtr));
738     return ret;
739   }
740 
741   public void Caps(uint value) @property {
742     ovr_im.ovrHmdDesc_Caps_set(cast(void*)swigCPtr, value);
743   }
744 
745   public uint Caps() @property const {
746     auto ret = ovr_im.ovrHmdDesc_Caps_get(cast(void*)swigCPtr);
747     return ret;
748   }
749 
750   public void DistortionCaps(uint value) @property {
751     ovr_im.ovrHmdDesc_DistortionCaps_set(cast(void*)swigCPtr, value);
752   }
753 
754   public uint DistortionCaps() @property const {
755     auto ret = ovr_im.ovrHmdDesc_DistortionCaps_get(cast(void*)swigCPtr);
756     return ret;
757   }
758 
759   public void Resolution(ovrSizei value) @property {
760     ovr_im.ovrHmdDesc_Resolution_set(cast(void*)swigCPtr, ovrSizei.swigGetCPtr(value));
761   }
762 
763   public ovrSizei Resolution() @property const {
764     void* cPtr = ovr_im.ovrHmdDesc_Resolution_get(cast(void*)swigCPtr);
765     ovrSizei ret = (cPtr is null) ? null : new ovrSizei(cPtr, false);
766     return ret;
767   }
768 
769   public void WindowsPos(ovrVector2i value) @property {
770     ovr_im.ovrHmdDesc_WindowsPos_set(cast(void*)swigCPtr, ovrVector2i.swigGetCPtr(value));
771   }
772 
773   public ovrVector2i WindowsPos() @property const {
774     void* cPtr = ovr_im.ovrHmdDesc_WindowsPos_get(cast(void*)swigCPtr);
775     ovrVector2i ret = (cPtr is null) ? null : new ovrVector2i(cPtr, false);
776     return ret;
777   }
778 
779   public void DefaultEyeFov(ovrFovPort value) @property {
780     ovr_im.ovrHmdDesc_DefaultEyeFov_set(cast(void*)swigCPtr, ovrFovPort.swigGetCPtr(value));
781   }
782 
783   public ovrFovPort DefaultEyeFov() @property const {
784     void* cPtr = ovr_im.ovrHmdDesc_DefaultEyeFov_get(cast(void*)swigCPtr);
785     ovrFovPort ret = (cPtr is null) ? null : new ovrFovPort(cPtr, false);
786     return ret;
787   }
788 
789   public void MaxEyeFov(ovrFovPort value) @property {
790     ovr_im.ovrHmdDesc_MaxEyeFov_set(cast(void*)swigCPtr, ovrFovPort.swigGetCPtr(value));
791   }
792 
793   public ovrFovPort MaxEyeFov() @property const {
794     void* cPtr = ovr_im.ovrHmdDesc_MaxEyeFov_get(cast(void*)swigCPtr);
795     ovrFovPort ret = (cPtr is null) ? null : new ovrFovPort(cPtr, false);
796     return ret;
797   }
798 
799   public void EyeRenderOrder(SWIGTYPE_p_ovrEyeType value) @property {
800     ovr_im.ovrHmdDesc_EyeRenderOrder_set(cast(void*)swigCPtr, SWIGTYPE_p_ovrEyeType.swigGetCPtr(value));
801   }
802 
803   public SWIGTYPE_p_ovrEyeType EyeRenderOrder() @property const {
804     void* cPtr = ovr_im.ovrHmdDesc_EyeRenderOrder_get(cast(void*)swigCPtr);
805     SWIGTYPE_p_ovrEyeType ret = (cPtr is null) ? null : new SWIGTYPE_p_ovrEyeType(cPtr, false);
806     return ret;
807   }
808 
809   public void DisplayDeviceName(string value) @property {
810     ovr_im.ovrHmdDesc_DisplayDeviceName_set(cast(void*)swigCPtr, (value ? std..string.toStringz(value) : null));
811   }
812 
813   public string DisplayDeviceName() @property const {
814     string ret = std.conv.to!string(ovr_im.ovrHmdDesc_DisplayDeviceName_get(cast(void*)swigCPtr));
815     return ret;
816   }
817 
818   public void DisplayId(core.stdc.config.c_long value) @property {
819     ovr_im.ovrHmdDesc_DisplayId_set(cast(void*)swigCPtr, value);
820   }
821 
822   public core.stdc.config.c_long DisplayId() @property const {
823     auto ret = ovr_im.ovrHmdDesc_DisplayId_get(cast(void*)swigCPtr);
824     return ret;
825   }
826 
827   public this() {
828     this(ovr_im.new_ovrHmdDesc(), true);
829   }
830 }
831 
832 enum ovrStatusBits {
833   ovrStatus_OrientationTracked = 0x0001,
834   ovrStatus_PositionTracked = 0x0002,
835   ovrStatus_PositionConnected = 0x0020,
836   ovrStatus_HmdConnected = 0x0080
837 }
838 
839 class ovrSensorState {
840   private void* swigCPtr;
841   protected bool swigCMemOwn;
842 
843   public this(void* cObject, bool ownCObject) {
844     swigCPtr = cObject;
845     swigCMemOwn = ownCObject;
846   }
847 
848   public static void* swigGetCPtr(ovrSensorState obj) {
849     return (obj is null) ? null : obj.swigCPtr;
850   }
851 
852   mixin ovr_im.SwigOperatorDefinitions;
853 
854   ~this() {
855     dispose();
856   }
857 
858   public void dispose() {
859     synchronized(this) {
860       if (swigCPtr !is null) {
861         if (swigCMemOwn) {
862           swigCMemOwn = false;
863           ovr_im.delete_ovrSensorState(cast(void*)swigCPtr);
864         }
865         swigCPtr = null;
866       }
867     }
868   }
869 
870   public void Predicted(ovrPoseStatef value) @property {
871     ovr_im.ovrSensorState_Predicted_set(cast(void*)swigCPtr, ovrPoseStatef.swigGetCPtr(value));
872   }
873 
874   public ovrPoseStatef Predicted() @property const {
875     void* cPtr = ovr_im.ovrSensorState_Predicted_get(cast(void*)swigCPtr);
876     ovrPoseStatef ret = (cPtr is null) ? null : new ovrPoseStatef(cPtr, false);
877     return ret;
878   }
879 
880   public void Recorded(ovrPoseStatef value) @property {
881     ovr_im.ovrSensorState_Recorded_set(cast(void*)swigCPtr, ovrPoseStatef.swigGetCPtr(value));
882   }
883 
884   public ovrPoseStatef Recorded() @property const {
885     void* cPtr = ovr_im.ovrSensorState_Recorded_get(cast(void*)swigCPtr);
886     ovrPoseStatef ret = (cPtr is null) ? null : new ovrPoseStatef(cPtr, false);
887     return ret;
888   }
889 
890   public void Temperature(float value) @property {
891     ovr_im.ovrSensorState_Temperature_set(cast(void*)swigCPtr, value);
892   }
893 
894   public float Temperature() @property const {
895     auto ret = ovr_im.ovrSensorState_Temperature_get(cast(void*)swigCPtr);
896     return ret;
897   }
898 
899   public void StatusFlags(uint value) @property {
900     ovr_im.ovrSensorState_StatusFlags_set(cast(void*)swigCPtr, value);
901   }
902 
903   public uint StatusFlags() @property const {
904     auto ret = ovr_im.ovrSensorState_StatusFlags_get(cast(void*)swigCPtr);
905     return ret;
906   }
907 
908   public this() {
909     this(ovr_im.new_ovrSensorState(), true);
910   }
911 }
912 
913 class ovrSensorDesc {
914   private void* swigCPtr;
915   protected bool swigCMemOwn;
916 
917   public this(void* cObject, bool ownCObject) {
918     swigCPtr = cObject;
919     swigCMemOwn = ownCObject;
920   }
921 
922   public static void* swigGetCPtr(ovrSensorDesc obj) {
923     return (obj is null) ? null : obj.swigCPtr;
924   }
925 
926   mixin ovr_im.SwigOperatorDefinitions;
927 
928   ~this() {
929     dispose();
930   }
931 
932   public void dispose() {
933     synchronized(this) {
934       if (swigCPtr !is null) {
935         if (swigCMemOwn) {
936           swigCMemOwn = false;
937           ovr_im.delete_ovrSensorDesc(cast(void*)swigCPtr);
938         }
939         swigCPtr = null;
940       }
941     }
942   }
943 
944   public void VendorId(short value) @property {
945     ovr_im.ovrSensorDesc_VendorId_set(cast(void*)swigCPtr, value);
946   }
947 
948   public short VendorId() @property const {
949     auto ret = ovr_im.ovrSensorDesc_VendorId_get(cast(void*)swigCPtr);
950     return ret;
951   }
952 
953   public void ProductId(short value) @property {
954     ovr_im.ovrSensorDesc_ProductId_set(cast(void*)swigCPtr, value);
955   }
956 
957   public short ProductId() @property const {
958     auto ret = ovr_im.ovrSensorDesc_ProductId_get(cast(void*)swigCPtr);
959     return ret;
960   }
961 
962   public void SerialNumber(string value) @property {
963     ovr_im.ovrSensorDesc_SerialNumber_set(cast(void*)swigCPtr, (value ? std..string.toStringz(value) : null));
964   }
965 
966   public string SerialNumber() @property const {
967     string ret = std.conv.to!string(ovr_im.ovrSensorDesc_SerialNumber_get(cast(void*)swigCPtr));
968     return ret;
969   }
970 
971   public this() {
972     this(ovr_im.new_ovrSensorDesc(), true);
973   }
974 }
975 
976 class ovrFrameTiming {
977   private void* swigCPtr;
978   protected bool swigCMemOwn;
979 
980   public this(void* cObject, bool ownCObject) {
981     swigCPtr = cObject;
982     swigCMemOwn = ownCObject;
983   }
984 
985   public static void* swigGetCPtr(ovrFrameTiming obj) {
986     return (obj is null) ? null : obj.swigCPtr;
987   }
988 
989   mixin ovr_im.SwigOperatorDefinitions;
990 
991   ~this() {
992     dispose();
993   }
994 
995   public void dispose() {
996     synchronized(this) {
997       if (swigCPtr !is null) {
998         if (swigCMemOwn) {
999           swigCMemOwn = false;
1000           ovr_im.delete_ovrFrameTiming(cast(void*)swigCPtr);
1001         }
1002         swigCPtr = null;
1003       }
1004     }
1005   }
1006 
1007   public void DeltaSeconds(float value) @property {
1008     ovr_im.ovrFrameTiming_DeltaSeconds_set(cast(void*)swigCPtr, value);
1009   }
1010 
1011   public float DeltaSeconds() @property const {
1012     auto ret = ovr_im.ovrFrameTiming_DeltaSeconds_get(cast(void*)swigCPtr);
1013     return ret;
1014   }
1015 
1016   public void ThisFrameSeconds(double value) @property {
1017     ovr_im.ovrFrameTiming_ThisFrameSeconds_set(cast(void*)swigCPtr, value);
1018   }
1019 
1020   public double ThisFrameSeconds() @property const {
1021     auto ret = ovr_im.ovrFrameTiming_ThisFrameSeconds_get(cast(void*)swigCPtr);
1022     return ret;
1023   }
1024 
1025   public void TimewarpPointSeconds(double value) @property {
1026     ovr_im.ovrFrameTiming_TimewarpPointSeconds_set(cast(void*)swigCPtr, value);
1027   }
1028 
1029   public double TimewarpPointSeconds() @property const {
1030     auto ret = ovr_im.ovrFrameTiming_TimewarpPointSeconds_get(cast(void*)swigCPtr);
1031     return ret;
1032   }
1033 
1034   public void NextFrameSeconds(double value) @property {
1035     ovr_im.ovrFrameTiming_NextFrameSeconds_set(cast(void*)swigCPtr, value);
1036   }
1037 
1038   public double NextFrameSeconds() @property const {
1039     auto ret = ovr_im.ovrFrameTiming_NextFrameSeconds_get(cast(void*)swigCPtr);
1040     return ret;
1041   }
1042 
1043   public void ScanoutMidpointSeconds(double value) @property {
1044     ovr_im.ovrFrameTiming_ScanoutMidpointSeconds_set(cast(void*)swigCPtr, value);
1045   }
1046 
1047   public double ScanoutMidpointSeconds() @property const {
1048     auto ret = ovr_im.ovrFrameTiming_ScanoutMidpointSeconds_get(cast(void*)swigCPtr);
1049     return ret;
1050   }
1051 
1052   public void EyeScanoutSeconds(SWIGTYPE_p_double value) @property {
1053     ovr_im.ovrFrameTiming_EyeScanoutSeconds_set(cast(void*)swigCPtr, SWIGTYPE_p_double.swigGetCPtr(value));
1054   }
1055 
1056   public SWIGTYPE_p_double EyeScanoutSeconds() @property const {
1057     void* cPtr = ovr_im.ovrFrameTiming_EyeScanoutSeconds_get(cast(void*)swigCPtr);
1058     SWIGTYPE_p_double ret = (cPtr is null) ? null : new SWIGTYPE_p_double(cPtr, false);
1059     return ret;
1060   }
1061 
1062   public this() {
1063     this(ovr_im.new_ovrFrameTiming(), true);
1064   }
1065 }
1066 
1067 class ovrEyeDesc {
1068   private void* swigCPtr;
1069   protected bool swigCMemOwn;
1070 
1071   public this(void* cObject, bool ownCObject) {
1072     swigCPtr = cObject;
1073     swigCMemOwn = ownCObject;
1074   }
1075 
1076   public static void* swigGetCPtr(ovrEyeDesc obj) {
1077     return (obj is null) ? null : obj.swigCPtr;
1078   }
1079 
1080   mixin ovr_im.SwigOperatorDefinitions;
1081 
1082   ~this() {
1083     dispose();
1084   }
1085 
1086   public void dispose() {
1087     synchronized(this) {
1088       if (swigCPtr !is null) {
1089         if (swigCMemOwn) {
1090           swigCMemOwn = false;
1091           ovr_im.delete_ovrEyeDesc(cast(void*)swigCPtr);
1092         }
1093         swigCPtr = null;
1094       }
1095     }
1096   }
1097 
1098   public void Eye(ovrEyeType value) @property {
1099     ovr_im.ovrEyeDesc_Eye_set(cast(void*)swigCPtr, cast(int)value);
1100   }
1101 
1102   public ovrEyeType Eye() @property const {
1103     ovrEyeType ret = cast(ovrEyeType)ovr_im.ovrEyeDesc_Eye_get(cast(void*)swigCPtr);
1104     return ret;
1105   }
1106 
1107   public void TextureSize(ovrSizei value) @property {
1108     ovr_im.ovrEyeDesc_TextureSize_set(cast(void*)swigCPtr, ovrSizei.swigGetCPtr(value));
1109   }
1110 
1111   public ovrSizei TextureSize() @property const {
1112     void* cPtr = ovr_im.ovrEyeDesc_TextureSize_get(cast(void*)swigCPtr);
1113     ovrSizei ret = (cPtr is null) ? null : new ovrSizei(cPtr, false);
1114     return ret;
1115   }
1116 
1117   public void RenderViewport(ovrRecti value) @property {
1118     ovr_im.ovrEyeDesc_RenderViewport_set(cast(void*)swigCPtr, ovrRecti.swigGetCPtr(value));
1119   }
1120 
1121   public ovrRecti RenderViewport() @property const {
1122     void* cPtr = ovr_im.ovrEyeDesc_RenderViewport_get(cast(void*)swigCPtr);
1123     ovrRecti ret = (cPtr is null) ? null : new ovrRecti(cPtr, false);
1124     return ret;
1125   }
1126 
1127   public void Fov(ovrFovPort value) @property {
1128     ovr_im.ovrEyeDesc_Fov_set(cast(void*)swigCPtr, ovrFovPort.swigGetCPtr(value));
1129   }
1130 
1131   public ovrFovPort Fov() @property const {
1132     void* cPtr = ovr_im.ovrEyeDesc_Fov_get(cast(void*)swigCPtr);
1133     ovrFovPort ret = (cPtr is null) ? null : new ovrFovPort(cPtr, false);
1134     return ret;
1135   }
1136 
1137   public this() {
1138     this(ovr_im.new_ovrEyeDesc(), true);
1139   }
1140 }
1141 
1142 class ovrEyeRenderDesc {
1143   private void* swigCPtr;
1144   protected bool swigCMemOwn;
1145 
1146   public this(void* cObject, bool ownCObject) {
1147     swigCPtr = cObject;
1148     swigCMemOwn = ownCObject;
1149   }
1150 
1151   public static void* swigGetCPtr(ovrEyeRenderDesc obj) {
1152     return (obj is null) ? null : obj.swigCPtr;
1153   }
1154 
1155   mixin ovr_im.SwigOperatorDefinitions;
1156 
1157   ~this() {
1158     dispose();
1159   }
1160 
1161   public void dispose() {
1162     synchronized(this) {
1163       if (swigCPtr !is null) {
1164         if (swigCMemOwn) {
1165           swigCMemOwn = false;
1166           ovr_im.delete_ovrEyeRenderDesc(cast(void*)swigCPtr);
1167         }
1168         swigCPtr = null;
1169       }
1170     }
1171   }
1172 
1173   public void Desc(ovrEyeDesc value) @property {
1174     ovr_im.ovrEyeRenderDesc_Desc_set(cast(void*)swigCPtr, ovrEyeDesc.swigGetCPtr(value));
1175   }
1176 
1177   public ovrEyeDesc Desc() @property const {
1178     void* cPtr = ovr_im.ovrEyeRenderDesc_Desc_get(cast(void*)swigCPtr);
1179     ovrEyeDesc ret = (cPtr is null) ? null : new ovrEyeDesc(cPtr, false);
1180     return ret;
1181   }
1182 
1183   public void DistortedViewport(ovrRecti value) @property {
1184     ovr_im.ovrEyeRenderDesc_DistortedViewport_set(cast(void*)swigCPtr, ovrRecti.swigGetCPtr(value));
1185   }
1186 
1187   public ovrRecti DistortedViewport() @property const {
1188     void* cPtr = ovr_im.ovrEyeRenderDesc_DistortedViewport_get(cast(void*)swigCPtr);
1189     ovrRecti ret = (cPtr is null) ? null : new ovrRecti(cPtr, false);
1190     return ret;
1191   }
1192 
1193   public void PixelsPerTanAngleAtCenter(ovrVector2f value) @property {
1194     ovr_im.ovrEyeRenderDesc_PixelsPerTanAngleAtCenter_set(cast(void*)swigCPtr, ovrVector2f.swigGetCPtr(value));
1195   }
1196 
1197   public ovrVector2f PixelsPerTanAngleAtCenter() @property const {
1198     void* cPtr = ovr_im.ovrEyeRenderDesc_PixelsPerTanAngleAtCenter_get(cast(void*)swigCPtr);
1199     ovrVector2f ret = (cPtr is null) ? null : new ovrVector2f(cPtr, false);
1200     return ret;
1201   }
1202 
1203   public void ViewAdjust(ovrVector3f value) @property {
1204     ovr_im.ovrEyeRenderDesc_ViewAdjust_set(cast(void*)swigCPtr, ovrVector3f.swigGetCPtr(value));
1205   }
1206 
1207   public ovrVector3f ViewAdjust() @property const {
1208     void* cPtr = ovr_im.ovrEyeRenderDesc_ViewAdjust_get(cast(void*)swigCPtr);
1209     ovrVector3f ret = (cPtr is null) ? null : new ovrVector3f(cPtr, false);
1210     return ret;
1211   }
1212 
1213   public this() {
1214     this(ovr_im.new_ovrEyeRenderDesc(), true);
1215   }
1216 }
1217 
1218 enum ovrRenderAPIType {
1219   ovrRenderAPI_None,
1220   ovrRenderAPI_OpenGL,
1221   ovrRenderAPI_Android_GLES,
1222   ovrRenderAPI_D3D9,
1223   ovrRenderAPI_D3D10,
1224   ovrRenderAPI_D3D11,
1225   ovrRenderAPI_Count
1226 }
1227 
1228 class ovrRenderAPIConfigHeader {
1229   private void* swigCPtr;
1230   protected bool swigCMemOwn;
1231 
1232   public this(void* cObject, bool ownCObject) {
1233     swigCPtr = cObject;
1234     swigCMemOwn = ownCObject;
1235   }
1236 
1237   public static void* swigGetCPtr(ovrRenderAPIConfigHeader obj) {
1238     return (obj is null) ? null : obj.swigCPtr;
1239   }
1240 
1241   mixin ovr_im.SwigOperatorDefinitions;
1242 
1243   ~this() {
1244     dispose();
1245   }
1246 
1247   public void dispose() {
1248     synchronized(this) {
1249       if (swigCPtr !is null) {
1250         if (swigCMemOwn) {
1251           swigCMemOwn = false;
1252           ovr_im.delete_ovrRenderAPIConfigHeader(cast(void*)swigCPtr);
1253         }
1254         swigCPtr = null;
1255       }
1256     }
1257   }
1258 
1259   public void API(ovrRenderAPIType value) @property {
1260     ovr_im.ovrRenderAPIConfigHeader_API_set(cast(void*)swigCPtr, cast(int)value);
1261   }
1262 
1263   public ovrRenderAPIType API() @property const {
1264     ovrRenderAPIType ret = cast(ovrRenderAPIType)ovr_im.ovrRenderAPIConfigHeader_API_get(cast(void*)swigCPtr);
1265     return ret;
1266   }
1267 
1268   public void RTSize(ovrSizei value) @property {
1269     ovr_im.ovrRenderAPIConfigHeader_RTSize_set(cast(void*)swigCPtr, ovrSizei.swigGetCPtr(value));
1270   }
1271 
1272   public ovrSizei RTSize() @property const {
1273     void* cPtr = ovr_im.ovrRenderAPIConfigHeader_RTSize_get(cast(void*)swigCPtr);
1274     ovrSizei ret = (cPtr is null) ? null : new ovrSizei(cPtr, false);
1275     return ret;
1276   }
1277 
1278   public void Multisample(int value) @property {
1279     ovr_im.ovrRenderAPIConfigHeader_Multisample_set(cast(void*)swigCPtr, value);
1280   }
1281 
1282   public int Multisample() @property const {
1283     auto ret = ovr_im.ovrRenderAPIConfigHeader_Multisample_get(cast(void*)swigCPtr);
1284     return ret;
1285   }
1286 
1287   public this() {
1288     this(ovr_im.new_ovrRenderAPIConfigHeader(), true);
1289   }
1290 }
1291 
1292 class ovrRenderAPIConfig {
1293   private void* swigCPtr;
1294   protected bool swigCMemOwn;
1295 
1296   public this(void* cObject, bool ownCObject) {
1297     swigCPtr = cObject;
1298     swigCMemOwn = ownCObject;
1299   }
1300 
1301   public static void* swigGetCPtr(ovrRenderAPIConfig obj) {
1302     return (obj is null) ? null : obj.swigCPtr;
1303   }
1304 
1305   mixin ovr_im.SwigOperatorDefinitions;
1306 
1307   ~this() {
1308     dispose();
1309   }
1310 
1311   public void dispose() {
1312     synchronized(this) {
1313       if (swigCPtr !is null) {
1314         if (swigCMemOwn) {
1315           swigCMemOwn = false;
1316           ovr_im.delete_ovrRenderAPIConfig(cast(void*)swigCPtr);
1317         }
1318         swigCPtr = null;
1319       }
1320     }
1321   }
1322 
1323   public void Header(ovrRenderAPIConfigHeader value) @property {
1324     ovr_im.ovrRenderAPIConfig_Header_set(cast(void*)swigCPtr, ovrRenderAPIConfigHeader.swigGetCPtr(value));
1325   }
1326 
1327   public ovrRenderAPIConfigHeader Header() @property const {
1328     void* cPtr = ovr_im.ovrRenderAPIConfig_Header_get(cast(void*)swigCPtr);
1329     ovrRenderAPIConfigHeader ret = (cPtr is null) ? null : new ovrRenderAPIConfigHeader(cPtr, false);
1330     return ret;
1331   }
1332 
1333   public void PlatformData(SWIGTYPE_p_uintptr_t value) @property {
1334     ovr_im.ovrRenderAPIConfig_PlatformData_set(cast(void*)swigCPtr, SWIGTYPE_p_uintptr_t.swigGetCPtr(value));
1335   }
1336 
1337   public SWIGTYPE_p_uintptr_t PlatformData() @property const {
1338     void* cPtr = ovr_im.ovrRenderAPIConfig_PlatformData_get(cast(void*)swigCPtr);
1339     SWIGTYPE_p_uintptr_t ret = (cPtr is null) ? null : new SWIGTYPE_p_uintptr_t(cPtr, false);
1340     return ret;
1341   }
1342 
1343   public this() {
1344     this(ovr_im.new_ovrRenderAPIConfig(), true);
1345   }
1346 }
1347 
1348 class ovrTextureHeader {
1349   private void* swigCPtr;
1350   protected bool swigCMemOwn;
1351 
1352   public this(void* cObject, bool ownCObject) {
1353     swigCPtr = cObject;
1354     swigCMemOwn = ownCObject;
1355   }
1356 
1357   public static void* swigGetCPtr(ovrTextureHeader obj) {
1358     return (obj is null) ? null : obj.swigCPtr;
1359   }
1360 
1361   mixin ovr_im.SwigOperatorDefinitions;
1362 
1363   ~this() {
1364     dispose();
1365   }
1366 
1367   public void dispose() {
1368     synchronized(this) {
1369       if (swigCPtr !is null) {
1370         if (swigCMemOwn) {
1371           swigCMemOwn = false;
1372           ovr_im.delete_ovrTextureHeader(cast(void*)swigCPtr);
1373         }
1374         swigCPtr = null;
1375       }
1376     }
1377   }
1378 
1379   public void API(ovrRenderAPIType value) @property {
1380     ovr_im.ovrTextureHeader_API_set(cast(void*)swigCPtr, cast(int)value);
1381   }
1382 
1383   public ovrRenderAPIType API() @property const {
1384     ovrRenderAPIType ret = cast(ovrRenderAPIType)ovr_im.ovrTextureHeader_API_get(cast(void*)swigCPtr);
1385     return ret;
1386   }
1387 
1388   public void TextureSize(ovrSizei value) @property {
1389     ovr_im.ovrTextureHeader_TextureSize_set(cast(void*)swigCPtr, ovrSizei.swigGetCPtr(value));
1390   }
1391 
1392   public ovrSizei TextureSize() @property const {
1393     void* cPtr = ovr_im.ovrTextureHeader_TextureSize_get(cast(void*)swigCPtr);
1394     ovrSizei ret = (cPtr is null) ? null : new ovrSizei(cPtr, false);
1395     return ret;
1396   }
1397 
1398   public void RenderViewport(ovrRecti value) @property {
1399     ovr_im.ovrTextureHeader_RenderViewport_set(cast(void*)swigCPtr, ovrRecti.swigGetCPtr(value));
1400   }
1401 
1402   public ovrRecti RenderViewport() @property const {
1403     void* cPtr = ovr_im.ovrTextureHeader_RenderViewport_get(cast(void*)swigCPtr);
1404     ovrRecti ret = (cPtr is null) ? null : new ovrRecti(cPtr, false);
1405     return ret;
1406   }
1407 
1408   public this() {
1409     this(ovr_im.new_ovrTextureHeader(), true);
1410   }
1411 }
1412 
1413 class ovrTexture {
1414   private void* swigCPtr;
1415   protected bool swigCMemOwn;
1416 
1417   public this(void* cObject, bool ownCObject) {
1418     swigCPtr = cObject;
1419     swigCMemOwn = ownCObject;
1420   }
1421 
1422   public static void* swigGetCPtr(ovrTexture obj) {
1423     return (obj is null) ? null : obj.swigCPtr;
1424   }
1425 
1426   mixin ovr_im.SwigOperatorDefinitions;
1427 
1428   ~this() {
1429     dispose();
1430   }
1431 
1432   public void dispose() {
1433     synchronized(this) {
1434       if (swigCPtr !is null) {
1435         if (swigCMemOwn) {
1436           swigCMemOwn = false;
1437           ovr_im.delete_ovrTexture(cast(void*)swigCPtr);
1438         }
1439         swigCPtr = null;
1440       }
1441     }
1442   }
1443 
1444   public void Header(ovrTextureHeader value) @property {
1445     ovr_im.ovrTexture_Header_set(cast(void*)swigCPtr, ovrTextureHeader.swigGetCPtr(value));
1446   }
1447 
1448   public ovrTextureHeader Header() @property const {
1449     void* cPtr = ovr_im.ovrTexture_Header_get(cast(void*)swigCPtr);
1450     ovrTextureHeader ret = (cPtr is null) ? null : new ovrTextureHeader(cPtr, false);
1451     return ret;
1452   }
1453 
1454   public void PlatformData(SWIGTYPE_p_uintptr_t value) @property {
1455     ovr_im.ovrTexture_PlatformData_set(cast(void*)swigCPtr, SWIGTYPE_p_uintptr_t.swigGetCPtr(value));
1456   }
1457 
1458   public SWIGTYPE_p_uintptr_t PlatformData() @property const {
1459     void* cPtr = ovr_im.ovrTexture_PlatformData_get(cast(void*)swigCPtr);
1460     SWIGTYPE_p_uintptr_t ret = (cPtr is null) ? null : new SWIGTYPE_p_uintptr_t(cPtr, false);
1461     return ret;
1462   }
1463 
1464   public this() {
1465     this(ovr_im.new_ovrTexture(), true);
1466   }
1467 }
1468 
1469 char ovr_Initialize() {
1470   auto ret = ovr_im.ovr_Initialize();
1471   return ret;
1472 }
1473 
1474 void ovr_Shutdown() {
1475   ovr_im.ovr_Shutdown();
1476 }
1477 
1478 int ovrHmd_Detect() {
1479   auto ret = ovr_im.ovrHmd_Detect();
1480   return ret;
1481 }
1482 
1483 SWIGTYPE_p_ovrHmdStruct ovrHmd_Create(int index) {
1484   void* cPtr = ovr_im.ovrHmd_Create(index);
1485   SWIGTYPE_p_ovrHmdStruct ret = (cPtr is null) ? null : new SWIGTYPE_p_ovrHmdStruct(cPtr, false);
1486   return ret;
1487 }
1488 
1489 void ovrHmd_Destroy(SWIGTYPE_p_ovrHmdStruct hmd) {
1490   ovr_im.ovrHmd_Destroy(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1491 }
1492 
1493 SWIGTYPE_p_ovrHmdStruct ovrHmd_CreateDebug(ovrHmdType type) {
1494   void* cPtr = ovr_im.ovrHmd_CreateDebug(cast(int)type);
1495   SWIGTYPE_p_ovrHmdStruct ret = (cPtr is null) ? null : new SWIGTYPE_p_ovrHmdStruct(cPtr, false);
1496   return ret;
1497 }
1498 
1499 string ovrHmd_GetLastError(SWIGTYPE_p_ovrHmdStruct hmd) {
1500   string ret = std.conv.to!string(ovr_im.ovrHmd_GetLastError(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd)));
1501   return ret;
1502 }
1503 
1504 char ovrHmd_StartSensor(SWIGTYPE_p_ovrHmdStruct hmd, uint supportedCaps, uint requiredCaps) {
1505   auto ret = ovr_im.ovrHmd_StartSensor(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), supportedCaps, requiredCaps);
1506   return ret;
1507 }
1508 
1509 void ovrHmd_StopSensor(SWIGTYPE_p_ovrHmdStruct hmd) {
1510   ovr_im.ovrHmd_StopSensor(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1511 }
1512 
1513 void ovrHmd_ResetSensor(SWIGTYPE_p_ovrHmdStruct hmd) {
1514   ovr_im.ovrHmd_ResetSensor(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1515 }
1516 
1517 ovrSensorState ovrHmd_GetSensorState(SWIGTYPE_p_ovrHmdStruct hmd, double absTime) {
1518   ovrSensorState ret = new ovrSensorState(ovr_im.ovrHmd_GetSensorState(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), absTime), true);
1519   return ret;
1520 }
1521 
1522 char ovrHmd_GetSensorDesc(SWIGTYPE_p_ovrHmdStruct hmd, ovrSensorDesc descOut) {
1523   auto ret = ovr_im.ovrHmd_GetSensorDesc(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrSensorDesc.swigGetCPtr(descOut));
1524   return ret;
1525 }
1526 
1527 void ovrHmd_GetDesc(SWIGTYPE_p_ovrHmdStruct hmd, ovrHmdDesc desc) {
1528   ovr_im.ovrHmd_GetDesc(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrHmdDesc.swigGetCPtr(desc));
1529 }
1530 
1531 ovrSizei ovrHmd_GetFovTextureSize(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeType eye, ovrFovPort fov, float pixelsPerDisplayPixel) {
1532   ovrSizei ret = new ovrSizei(ovr_im.ovrHmd_GetFovTextureSize(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), cast(int)eye, ovrFovPort.swigGetCPtr(fov), pixelsPerDisplayPixel), true);
1533   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1534   return ret;
1535 }
1536 
1537 char ovrHmd_ConfigureRendering(SWIGTYPE_p_ovrHmdStruct hmd, ovrRenderAPIConfig apiConfig, uint hmdCaps, uint distortionCaps, ovrEyeDesc eyeDescIn, ovrEyeRenderDesc eyeRenderDescOut) {
1538   auto ret = ovr_im.ovrHmd_ConfigureRendering(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrRenderAPIConfig.swigGetCPtr(apiConfig), hmdCaps, distortionCaps, ovrEyeDesc.swigGetCPtr(eyeDescIn), ovrEyeRenderDesc.swigGetCPtr(eyeRenderDescOut));
1539   return ret;
1540 }
1541 
1542 ovrFrameTiming ovrHmd_BeginFrame(SWIGTYPE_p_ovrHmdStruct hmd, uint frameIndex) {
1543   ovrFrameTiming ret = new ovrFrameTiming(ovr_im.ovrHmd_BeginFrame(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), frameIndex), true);
1544   return ret;
1545 }
1546 
1547 void ovrHmd_EndFrame(SWIGTYPE_p_ovrHmdStruct hmd) {
1548   ovr_im.ovrHmd_EndFrame(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1549 }
1550 
1551 ovrPosef ovrHmd_BeginEyeRender(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeType eye) {
1552   ovrPosef ret = new ovrPosef(ovr_im.ovrHmd_BeginEyeRender(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), cast(int)eye), true);
1553   return ret;
1554 }
1555 
1556 void ovrHmd_EndEyeRender(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeType eye, ovrPosef renderPose, ovrTexture eyeTexture) {
1557   ovr_im.ovrHmd_EndEyeRender(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), cast(int)eye, ovrPosef.swigGetCPtr(renderPose), ovrTexture.swigGetCPtr(eyeTexture));
1558   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1559 }
1560 
1561 ovrEyeRenderDesc ovrHmd_GetRenderDesc(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeDesc eyeDesc) {
1562   ovrEyeRenderDesc ret = new ovrEyeRenderDesc(ovr_im.ovrHmd_GetRenderDesc(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrEyeDesc.swigGetCPtr(eyeDesc)), true);
1563   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1564   return ret;
1565 }
1566 
1567 class ovrDistortionVertex {
1568   private void* swigCPtr;
1569   protected bool swigCMemOwn;
1570 
1571   public this(void* cObject, bool ownCObject) {
1572     swigCPtr = cObject;
1573     swigCMemOwn = ownCObject;
1574   }
1575 
1576   public static void* swigGetCPtr(ovrDistortionVertex obj) {
1577     return (obj is null) ? null : obj.swigCPtr;
1578   }
1579 
1580   mixin ovr_im.SwigOperatorDefinitions;
1581 
1582   ~this() {
1583     dispose();
1584   }
1585 
1586   public void dispose() {
1587     synchronized(this) {
1588       if (swigCPtr !is null) {
1589         if (swigCMemOwn) {
1590           swigCMemOwn = false;
1591           ovr_im.delete_ovrDistortionVertex(cast(void*)swigCPtr);
1592         }
1593         swigCPtr = null;
1594       }
1595     }
1596   }
1597 
1598   public void Pos(ovrVector2f value) @property {
1599     ovr_im.ovrDistortionVertex_Pos_set(cast(void*)swigCPtr, ovrVector2f.swigGetCPtr(value));
1600   }
1601 
1602   public ovrVector2f Pos() @property const {
1603     void* cPtr = ovr_im.ovrDistortionVertex_Pos_get(cast(void*)swigCPtr);
1604     ovrVector2f ret = (cPtr is null) ? null : new ovrVector2f(cPtr, false);
1605     return ret;
1606   }
1607 
1608   public void TimeWarpFactor(float value) @property {
1609     ovr_im.ovrDistortionVertex_TimeWarpFactor_set(cast(void*)swigCPtr, value);
1610   }
1611 
1612   public float TimeWarpFactor() @property const {
1613     auto ret = ovr_im.ovrDistortionVertex_TimeWarpFactor_get(cast(void*)swigCPtr);
1614     return ret;
1615   }
1616 
1617   public void VignetteFactor(float value) @property {
1618     ovr_im.ovrDistortionVertex_VignetteFactor_set(cast(void*)swigCPtr, value);
1619   }
1620 
1621   public float VignetteFactor() @property const {
1622     auto ret = ovr_im.ovrDistortionVertex_VignetteFactor_get(cast(void*)swigCPtr);
1623     return ret;
1624   }
1625 
1626   public void TexR(ovrVector2f value) @property {
1627     ovr_im.ovrDistortionVertex_TexR_set(cast(void*)swigCPtr, ovrVector2f.swigGetCPtr(value));
1628   }
1629 
1630   public ovrVector2f TexR() @property const {
1631     void* cPtr = ovr_im.ovrDistortionVertex_TexR_get(cast(void*)swigCPtr);
1632     ovrVector2f ret = (cPtr is null) ? null : new ovrVector2f(cPtr, false);
1633     return ret;
1634   }
1635 
1636   public void TexG(ovrVector2f value) @property {
1637     ovr_im.ovrDistortionVertex_TexG_set(cast(void*)swigCPtr, ovrVector2f.swigGetCPtr(value));
1638   }
1639 
1640   public ovrVector2f TexG() @property const {
1641     void* cPtr = ovr_im.ovrDistortionVertex_TexG_get(cast(void*)swigCPtr);
1642     ovrVector2f ret = (cPtr is null) ? null : new ovrVector2f(cPtr, false);
1643     return ret;
1644   }
1645 
1646   public void TexB(ovrVector2f value) @property {
1647     ovr_im.ovrDistortionVertex_TexB_set(cast(void*)swigCPtr, ovrVector2f.swigGetCPtr(value));
1648   }
1649 
1650   public ovrVector2f TexB() @property const {
1651     void* cPtr = ovr_im.ovrDistortionVertex_TexB_get(cast(void*)swigCPtr);
1652     ovrVector2f ret = (cPtr is null) ? null : new ovrVector2f(cPtr, false);
1653     return ret;
1654   }
1655 
1656   public this() {
1657     this(ovr_im.new_ovrDistortionVertex(), true);
1658   }
1659 }
1660 
1661 class ovrDistortionMesh {
1662   private void* swigCPtr;
1663   protected bool swigCMemOwn;
1664 
1665   public this(void* cObject, bool ownCObject) {
1666     swigCPtr = cObject;
1667     swigCMemOwn = ownCObject;
1668   }
1669 
1670   public static void* swigGetCPtr(ovrDistortionMesh obj) {
1671     return (obj is null) ? null : obj.swigCPtr;
1672   }
1673 
1674   mixin ovr_im.SwigOperatorDefinitions;
1675 
1676   ~this() {
1677     dispose();
1678   }
1679 
1680   public void dispose() {
1681     synchronized(this) {
1682       if (swigCPtr !is null) {
1683         if (swigCMemOwn) {
1684           swigCMemOwn = false;
1685           ovr_im.delete_ovrDistortionMesh(cast(void*)swigCPtr);
1686         }
1687         swigCPtr = null;
1688       }
1689     }
1690   }
1691 
1692   public void pVertexData(ovrDistortionVertex value) @property {
1693     ovr_im.ovrDistortionMesh_pVertexData_set(cast(void*)swigCPtr, ovrDistortionVertex.swigGetCPtr(value));
1694   }
1695 
1696   public ovrDistortionVertex pVertexData() @property const {
1697     void* cPtr = ovr_im.ovrDistortionMesh_pVertexData_get(cast(void*)swigCPtr);
1698     ovrDistortionVertex ret = (cPtr is null) ? null : new ovrDistortionVertex(cPtr, false);
1699     return ret;
1700   }
1701 
1702   public void pIndexData(ushort* value) @property {
1703     ovr_im.ovrDistortionMesh_pIndexData_set(cast(void*)swigCPtr, cast(void*)value);
1704   }
1705 
1706   public ushort* pIndexData() @property const {
1707     auto ret = cast(ushort*)ovr_im.ovrDistortionMesh_pIndexData_get(cast(void*)swigCPtr);
1708     return ret;
1709   }
1710 
1711   public void VertexCount(uint value) @property {
1712     ovr_im.ovrDistortionMesh_VertexCount_set(cast(void*)swigCPtr, value);
1713   }
1714 
1715   public uint VertexCount() @property const {
1716     auto ret = ovr_im.ovrDistortionMesh_VertexCount_get(cast(void*)swigCPtr);
1717     return ret;
1718   }
1719 
1720   public void IndexCount(uint value) @property {
1721     ovr_im.ovrDistortionMesh_IndexCount_set(cast(void*)swigCPtr, value);
1722   }
1723 
1724   public uint IndexCount() @property const {
1725     auto ret = ovr_im.ovrDistortionMesh_IndexCount_get(cast(void*)swigCPtr);
1726     return ret;
1727   }
1728 
1729   public this() {
1730     this(ovr_im.new_ovrDistortionMesh(), true);
1731   }
1732 }
1733 
1734 char ovrHmd_CreateDistortionMesh(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeDesc eyeDesc, uint distortionCaps, ovrVector2f uvScaleOffsetOut, ovrDistortionMesh meshData) {
1735   auto ret = ovr_im.ovrHmd_CreateDistortionMesh(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrEyeDesc.swigGetCPtr(eyeDesc), distortionCaps, ovrVector2f.swigGetCPtr(uvScaleOffsetOut), ovrDistortionMesh.swigGetCPtr(meshData));
1736   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1737   return ret;
1738 }
1739 
1740 void ovrHmd_DestroyDistortionMesh(ovrDistortionMesh meshData) {
1741   ovr_im.ovrHmd_DestroyDistortionMesh(ovrDistortionMesh.swigGetCPtr(meshData));
1742 }
1743 
1744 void ovrHmd_GetRenderScaleAndOffset(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeDesc eyeDesc, uint distortionCaps, ovrVector2f uvScaleOffsetOut) {
1745   ovr_im.ovrHmd_GetRenderScaleAndOffset(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), ovrEyeDesc.swigGetCPtr(eyeDesc), distortionCaps, ovrVector2f.swigGetCPtr(uvScaleOffsetOut));
1746   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1747 }
1748 
1749 ovrFrameTiming ovrHmd_GetFrameTiming(SWIGTYPE_p_ovrHmdStruct hmd, uint frameIndex) {
1750   ovrFrameTiming ret = new ovrFrameTiming(ovr_im.ovrHmd_GetFrameTiming(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), frameIndex), true);
1751   return ret;
1752 }
1753 
1754 ovrFrameTiming ovrHmd_BeginFrameTiming(SWIGTYPE_p_ovrHmdStruct hmd, uint frameIndex) {
1755   ovrFrameTiming ret = new ovrFrameTiming(ovr_im.ovrHmd_BeginFrameTiming(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), frameIndex), true);
1756   return ret;
1757 }
1758 
1759 void ovrHmd_EndFrameTiming(SWIGTYPE_p_ovrHmdStruct hmd) {
1760   ovr_im.ovrHmd_EndFrameTiming(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1761 }
1762 
1763 void ovrHmd_ResetFrameTiming(SWIGTYPE_p_ovrHmdStruct hmd, uint frameIndex, char vsync) {
1764   ovr_im.ovrHmd_ResetFrameTiming(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), frameIndex, vsync);
1765 }
1766 
1767 ovrPosef ovrHmd_GetEyePose(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeType eye) {
1768   ovrPosef ret = new ovrPosef(ovr_im.ovrHmd_GetEyePose(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), cast(int)eye), true);
1769   return ret;
1770 }
1771 
1772 void ovrHmd_GetEyeTimewarpMatrices(SWIGTYPE_p_ovrHmdStruct hmd, ovrEyeType eye, ovrPosef renderPose, ovrMatrix4f twmOut) {
1773   ovr_im.ovrHmd_GetEyeTimewarpMatrices(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), cast(int)eye, ovrPosef.swigGetCPtr(renderPose), ovrMatrix4f.swigGetCPtr(twmOut));
1774   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1775 }
1776 
1777 ovrMatrix4f ovrMatrix4f_Projection(ovrFovPort fov, float znear, float zfar, char rightHanded) {
1778   ovrMatrix4f ret = new ovrMatrix4f(ovr_im.ovrMatrix4f_Projection(ovrFovPort.swigGetCPtr(fov), znear, zfar, rightHanded), true);
1779   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1780   return ret;
1781 }
1782 
1783 ovrMatrix4f ovrMatrix4f_OrthoSubProjection(ovrMatrix4f projection, ovrVector2f orthoScale, float orthoDistance, float eyeViewAdjustX) {
1784   ovrMatrix4f ret = new ovrMatrix4f(ovr_im.ovrMatrix4f_OrthoSubProjection(ovrMatrix4f.swigGetCPtr(projection), ovrVector2f.swigGetCPtr(orthoScale), orthoDistance, eyeViewAdjustX), true);
1785   if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1786   return ret;
1787 }
1788 
1789 double ovr_GetTimeInSeconds() {
1790   auto ret = ovr_im.ovr_GetTimeInSeconds();
1791   return ret;
1792 }
1793 
1794 double ovr_WaitTillTime(double absTime) {
1795   auto ret = ovr_im.ovr_WaitTillTime(absTime);
1796   return ret;
1797 }
1798 
1799 char ovrHmd_ProcessLatencyTest(SWIGTYPE_p_ovrHmdStruct hmd, SWIGTYPE_p_unsigned_char rgbColorOut) {
1800   auto ret = ovr_im.ovrHmd_ProcessLatencyTest(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), SWIGTYPE_p_unsigned_char.swigGetCPtr(rgbColorOut));
1801   return ret;
1802 }
1803 
1804 string ovrHmd_GetLatencyTestResult(SWIGTYPE_p_ovrHmdStruct hmd) {
1805   string ret = std.conv.to!string(ovr_im.ovrHmd_GetLatencyTestResult(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd)));
1806   return ret;
1807 }
1808 
1809 double ovrHmd_GetMeasuredLatencyTest2(SWIGTYPE_p_ovrHmdStruct hmd) {
1810   auto ret = ovr_im.ovrHmd_GetMeasuredLatencyTest2(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd));
1811   return ret;
1812 }
1813 
1814 string OVR_KEY_USER() @property {
1815   string ret = std.conv.to!string(ovr_im.OVR_KEY_USER_get());
1816   return ret;
1817 }
1818 
1819 string OVR_KEY_NAME() @property {
1820   string ret = std.conv.to!string(ovr_im.OVR_KEY_NAME_get());
1821   return ret;
1822 }
1823 
1824 string OVR_KEY_GENDER() @property {
1825   string ret = std.conv.to!string(ovr_im.OVR_KEY_GENDER_get());
1826   return ret;
1827 }
1828 
1829 string OVR_KEY_PLAYER_HEIGHT() @property {
1830   string ret = std.conv.to!string(ovr_im.OVR_KEY_PLAYER_HEIGHT_get());
1831   return ret;
1832 }
1833 
1834 string OVR_KEY_EYE_HEIGHT() @property {
1835   string ret = std.conv.to!string(ovr_im.OVR_KEY_EYE_HEIGHT_get());
1836   return ret;
1837 }
1838 
1839 string OVR_KEY_IPD() @property {
1840   string ret = std.conv.to!string(ovr_im.OVR_KEY_IPD_get());
1841   return ret;
1842 }
1843 
1844 string OVR_KEY_NECK_TO_EYE_HORIZONTAL() @property {
1845   string ret = std.conv.to!string(ovr_im.OVR_KEY_NECK_TO_EYE_HORIZONTAL_get());
1846   return ret;
1847 }
1848 
1849 string OVR_KEY_NECK_TO_EYE_VERTICAL() @property {
1850   string ret = std.conv.to!string(ovr_im.OVR_KEY_NECK_TO_EYE_VERTICAL_get());
1851   return ret;
1852 }
1853 
1854 string OVR_DEFAULT_GENDER() @property {
1855   string ret = std.conv.to!string(ovr_im.OVR_DEFAULT_GENDER_get());
1856   return ret;
1857 }
1858 
1859 double OVR_DEFAULT_PLAYER_HEIGHT() @property {
1860   auto ret = ovr_im.OVR_DEFAULT_PLAYER_HEIGHT_get();
1861   return ret;
1862 }
1863 
1864 double OVR_DEFAULT_EYE_HEIGHT() @property {
1865   auto ret = ovr_im.OVR_DEFAULT_EYE_HEIGHT_get();
1866   return ret;
1867 }
1868 
1869 double OVR_DEFAULT_IPD() @property {
1870   auto ret = ovr_im.OVR_DEFAULT_IPD_get();
1871   return ret;
1872 }
1873 
1874 double OVR_DEFAULT_NECK_TO_EYE_HORIZONTAL() @property {
1875   auto ret = ovr_im.OVR_DEFAULT_NECK_TO_EYE_HORIZONTAL_get();
1876   return ret;
1877 }
1878 
1879 double OVR_DEFAULT_NECK_TO_EYE_VERTICAL() @property {
1880   auto ret = ovr_im.OVR_DEFAULT_NECK_TO_EYE_VERTICAL_get();
1881   return ret;
1882 }
1883 
1884 float ovrHmd_GetFloat(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName, float defaultVal) {
1885   auto ret = ovr_im.ovrHmd_GetFloat(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null), defaultVal);
1886   return ret;
1887 }
1888 
1889 char ovrHmd_SetFloat(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName, float value) {
1890   auto ret = ovr_im.ovrHmd_SetFloat(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null), value);
1891   return ret;
1892 }
1893 
1894 uint ovrHmd_GetFloatArray(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName, SWIGTYPE_p_float values, uint arraySize) {
1895   auto ret = ovr_im.ovrHmd_GetFloatArray(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null), SWIGTYPE_p_float.swigGetCPtr(values), arraySize);
1896   return ret;
1897 }
1898 
1899 char ovrHmd_SetFloatArray(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName, SWIGTYPE_p_float values, uint arraySize) {
1900   auto ret = ovr_im.ovrHmd_SetFloatArray(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null), SWIGTYPE_p_float.swigGetCPtr(values), arraySize);
1901   return ret;
1902 }
1903 
1904 string ovrHmd_GetString(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName, string defaultVal) {
1905   string ret = std.conv.to!string(ovr_im.ovrHmd_GetString(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null), (defaultVal ? std..string.toStringz(defaultVal) : null)));
1906   return ret;
1907 }
1908 
1909 uint ovrHmd_GetArraySize(SWIGTYPE_p_ovrHmdStruct hmd, string propertyName) {
1910   auto ret = ovr_im.ovrHmd_GetArraySize(SWIGTYPE_p_ovrHmdStruct.swigGetCPtr(hmd), (propertyName ? std..string.toStringz(propertyName) : null));
1911   return ret;
1912 }
1913 
1914 class ovrGLConfigData {
1915   private void* swigCPtr;
1916   protected bool swigCMemOwn;
1917 
1918   public this(void* cObject, bool ownCObject) {
1919     swigCPtr = cObject;
1920     swigCMemOwn = ownCObject;
1921   }
1922 
1923   public static void* swigGetCPtr(ovrGLConfigData obj) {
1924     return (obj is null) ? null : obj.swigCPtr;
1925   }
1926 
1927   mixin ovr_im.SwigOperatorDefinitions;
1928 
1929   ~this() {
1930     dispose();
1931   }
1932 
1933   public void dispose() {
1934     synchronized(this) {
1935       if (swigCPtr !is null) {
1936         if (swigCMemOwn) {
1937           swigCMemOwn = false;
1938           ovr_im.delete_ovrGLConfigData(cast(void*)swigCPtr);
1939         }
1940         swigCPtr = null;
1941       }
1942     }
1943   }
1944 
1945   public void Header(ovrRenderAPIConfigHeader value) @property {
1946     ovr_im.ovrGLConfigData_Header_set(cast(void*)swigCPtr, ovrRenderAPIConfigHeader.swigGetCPtr(value));
1947   }
1948 
1949   public ovrRenderAPIConfigHeader Header() @property const {
1950     void* cPtr = ovr_im.ovrGLConfigData_Header_get(cast(void*)swigCPtr);
1951     ovrRenderAPIConfigHeader ret = (cPtr is null) ? null : new ovrRenderAPIConfigHeader(cPtr, false);
1952     return ret;
1953   }
1954 
1955   public void Window(SWIGTYPE_p_HWND value) @property {
1956     ovr_im.ovrGLConfigData_Window_set(cast(void*)swigCPtr, SWIGTYPE_p_HWND.swigGetCPtr(value));
1957     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1958   }
1959 
1960   public SWIGTYPE_p_HWND Window() @property const {
1961     SWIGTYPE_p_HWND ret = new SWIGTYPE_p_HWND(ovr_im.ovrGLConfigData_Window_get(cast(void*)swigCPtr), true);
1962     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1963     return ret;
1964   }
1965 
1966   public void WglContext(SWIGTYPE_p_HGLRC value) @property {
1967     ovr_im.ovrGLConfigData_WglContext_set(cast(void*)swigCPtr, SWIGTYPE_p_HGLRC.swigGetCPtr(value));
1968     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1969   }
1970 
1971   public SWIGTYPE_p_HGLRC WglContext() @property const {
1972     SWIGTYPE_p_HGLRC ret = new SWIGTYPE_p_HGLRC(ovr_im.ovrGLConfigData_WglContext_get(cast(void*)swigCPtr), true);
1973     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1974     return ret;
1975   }
1976 
1977   public void GdiDc(SWIGTYPE_p_HDC value) @property {
1978     ovr_im.ovrGLConfigData_GdiDc_set(cast(void*)swigCPtr, SWIGTYPE_p_HDC.swigGetCPtr(value));
1979     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1980   }
1981 
1982   public SWIGTYPE_p_HDC GdiDc() @property const {
1983     SWIGTYPE_p_HDC ret = new SWIGTYPE_p_HDC(ovr_im.ovrGLConfigData_GdiDc_get(cast(void*)swigCPtr), true);
1984     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
1985     return ret;
1986   }
1987 
1988   public this() {
1989     this(ovr_im.new_ovrGLConfigData(), true);
1990   }
1991 }
1992 
1993 class ovrGLConfig {
1994   private void* swigCPtr;
1995   protected bool swigCMemOwn;
1996 
1997   public this(void* cObject, bool ownCObject) {
1998     swigCPtr = cObject;
1999     swigCMemOwn = ownCObject;
2000   }
2001 
2002   public static void* swigGetCPtr(ovrGLConfig obj) {
2003     return (obj is null) ? null : obj.swigCPtr;
2004   }
2005 
2006   mixin ovr_im.SwigOperatorDefinitions;
2007 
2008   ~this() {
2009     dispose();
2010   }
2011 
2012   public void dispose() {
2013     synchronized(this) {
2014       if (swigCPtr !is null) {
2015         if (swigCMemOwn) {
2016           swigCMemOwn = false;
2017           ovr_im.delete_ovrGLConfig(cast(void*)swigCPtr);
2018         }
2019         swigCPtr = null;
2020       }
2021     }
2022   }
2023 
2024   public void Config(ovrRenderAPIConfig value) @property {
2025     ovr_im.ovrGLConfig_Config_set(cast(void*)swigCPtr, ovrRenderAPIConfig.swigGetCPtr(value));
2026   }
2027 
2028   public ovrRenderAPIConfig Config() @property const {
2029     void* cPtr = ovr_im.ovrGLConfig_Config_get(cast(void*)swigCPtr);
2030     ovrRenderAPIConfig ret = (cPtr is null) ? null : new ovrRenderAPIConfig(cPtr, false);
2031     return ret;
2032   }
2033 
2034   public void OGL(ovrGLConfigData value) @property {
2035     ovr_im.ovrGLConfig_OGL_set(cast(void*)swigCPtr, ovrGLConfigData.swigGetCPtr(value));
2036   }
2037 
2038   public ovrGLConfigData OGL() @property const {
2039     void* cPtr = ovr_im.ovrGLConfig_OGL_get(cast(void*)swigCPtr);
2040     ovrGLConfigData ret = (cPtr is null) ? null : new ovrGLConfigData(cPtr, false);
2041     return ret;
2042   }
2043 
2044   public this() {
2045     this(ovr_im.new_ovrGLConfig(), true);
2046   }
2047 }
2048 
2049 class ovrGLTextureData {
2050   private void* swigCPtr;
2051   protected bool swigCMemOwn;
2052 
2053   public this(void* cObject, bool ownCObject) {
2054     swigCPtr = cObject;
2055     swigCMemOwn = ownCObject;
2056   }
2057 
2058   public static void* swigGetCPtr(ovrGLTextureData obj) {
2059     return (obj is null) ? null : obj.swigCPtr;
2060   }
2061 
2062   mixin ovr_im.SwigOperatorDefinitions;
2063 
2064   ~this() {
2065     dispose();
2066   }
2067 
2068   public void dispose() {
2069     synchronized(this) {
2070       if (swigCPtr !is null) {
2071         if (swigCMemOwn) {
2072           swigCMemOwn = false;
2073           ovr_im.delete_ovrGLTextureData(cast(void*)swigCPtr);
2074         }
2075         swigCPtr = null;
2076       }
2077     }
2078   }
2079 
2080   public void Header(ovrTextureHeader value) @property {
2081     ovr_im.ovrGLTextureData_Header_set(cast(void*)swigCPtr, ovrTextureHeader.swigGetCPtr(value));
2082   }
2083 
2084   public ovrTextureHeader Header() @property const {
2085     void* cPtr = ovr_im.ovrGLTextureData_Header_get(cast(void*)swigCPtr);
2086     ovrTextureHeader ret = (cPtr is null) ? null : new ovrTextureHeader(cPtr, false);
2087     return ret;
2088   }
2089 
2090   public void TexId(SWIGTYPE_p_GLuint value) @property {
2091     ovr_im.ovrGLTextureData_TexId_set(cast(void*)swigCPtr, SWIGTYPE_p_GLuint.swigGetCPtr(value));
2092     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
2093   }
2094 
2095   public SWIGTYPE_p_GLuint TexId() @property const {
2096     SWIGTYPE_p_GLuint ret = new SWIGTYPE_p_GLuint(ovr_im.ovrGLTextureData_TexId_get(cast(void*)swigCPtr), true);
2097     if (ovr_im.SwigPendingException.isPending) throw ovr_im.SwigPendingException.retrieve();
2098     return ret;
2099   }
2100 
2101   public this() {
2102     this(ovr_im.new_ovrGLTextureData(), true);
2103   }
2104 }
2105 
2106 class ovrGLTexture {
2107   private void* swigCPtr;
2108   protected bool swigCMemOwn;
2109 
2110   public this(void* cObject, bool ownCObject) {
2111     swigCPtr = cObject;
2112     swigCMemOwn = ownCObject;
2113   }
2114 
2115   public static void* swigGetCPtr(ovrGLTexture obj) {
2116     return (obj is null) ? null : obj.swigCPtr;
2117   }
2118 
2119   mixin ovr_im.SwigOperatorDefinitions;
2120 
2121   ~this() {
2122     dispose();
2123   }
2124 
2125   public void dispose() {
2126     synchronized(this) {
2127       if (swigCPtr !is null) {
2128         if (swigCMemOwn) {
2129           swigCMemOwn = false;
2130           ovr_im.delete_ovrGLTexture(cast(void*)swigCPtr);
2131         }
2132         swigCPtr = null;
2133       }
2134     }
2135   }
2136 
2137   public void Texture(ovrTexture value) @property {
2138     ovr_im.ovrGLTexture_Texture_set(cast(void*)swigCPtr, ovrTexture.swigGetCPtr(value));
2139   }
2140 
2141   public ovrTexture Texture() @property const {
2142     void* cPtr = ovr_im.ovrGLTexture_Texture_get(cast(void*)swigCPtr);
2143     ovrTexture ret = (cPtr is null) ? null : new ovrTexture(cPtr, false);
2144     return ret;
2145   }
2146 
2147   public void OGL(ovrGLTextureData value) @property {
2148     ovr_im.ovrGLTexture_OGL_set(cast(void*)swigCPtr, ovrGLTextureData.swigGetCPtr(value));
2149   }
2150 
2151   public ovrGLTextureData OGL() @property const {
2152     void* cPtr = ovr_im.ovrGLTexture_OGL_get(cast(void*)swigCPtr);
2153     ovrGLTextureData ret = (cPtr is null) ? null : new ovrGLTextureData(cPtr, false);
2154     return ret;
2155   }
2156 
2157   public this() {
2158     this(ovr_im.new_ovrGLTexture(), true);
2159   }
2160 }
2161 
2162 class SWIGTYPE_p_unsigned_char {
2163   private void* swigCPtr;
2164 
2165   public this(void* cObject, bool futureUse) {
2166     swigCPtr = cObject;
2167   }
2168 
2169   protected this() {
2170     swigCPtr = null;
2171   }
2172 
2173   public static void* swigGetCPtr(SWIGTYPE_p_unsigned_char obj) {
2174     return (obj is null) ? null : obj.swigCPtr;
2175   }
2176 
2177   mixin ovr_im.SwigOperatorDefinitions;
2178 }
2179 
2180 class SWIGTYPE_p_a_4__float {
2181   private void* swigCPtr;
2182 
2183   public this(void* cObject, bool futureUse) {
2184     swigCPtr = cObject;
2185   }
2186 
2187   protected this() {
2188     swigCPtr = null;
2189   }
2190 
2191   public static void* swigGetCPtr(SWIGTYPE_p_a_4__float obj) {
2192     return (obj is null) ? null : obj.swigCPtr;
2193   }
2194 
2195   mixin ovr_im.SwigOperatorDefinitions;
2196 }
2197 
2198 class SWIGTYPE_p_float {
2199   private void* swigCPtr;
2200 
2201   public this(void* cObject, bool futureUse) {
2202     swigCPtr = cObject;
2203   }
2204 
2205   protected this() {
2206     swigCPtr = null;
2207   }
2208 
2209   public static void* swigGetCPtr(SWIGTYPE_p_float obj) {
2210     return (obj is null) ? null : obj.swigCPtr;
2211   }
2212 
2213   mixin ovr_im.SwigOperatorDefinitions;
2214 }
2215 
2216 class SWIGTYPE_p_HWND {
2217   private void* swigCPtr;
2218 
2219   public this(void* cObject, bool futureUse) {
2220     swigCPtr = cObject;
2221   }
2222 
2223   protected this() {
2224     swigCPtr = null;
2225   }
2226 
2227   public static void* swigGetCPtr(SWIGTYPE_p_HWND obj) {
2228     return (obj is null) ? null : obj.swigCPtr;
2229   }
2230 
2231   mixin ovr_im.SwigOperatorDefinitions;
2232 }
2233 
2234 class SWIGTYPE_p_HGLRC {
2235   private void* swigCPtr;
2236 
2237   public this(void* cObject, bool futureUse) {
2238     swigCPtr = cObject;
2239   }
2240 
2241   protected this() {
2242     swigCPtr = null;
2243   }
2244 
2245   public static void* swigGetCPtr(SWIGTYPE_p_HGLRC obj) {
2246     return (obj is null) ? null : obj.swigCPtr;
2247   }
2248 
2249   mixin ovr_im.SwigOperatorDefinitions;
2250 }
2251 
2252 class SWIGTYPE_p_HDC {
2253   private void* swigCPtr;
2254 
2255   public this(void* cObject, bool futureUse) {
2256     swigCPtr = cObject;
2257   }
2258 
2259   protected this() {
2260     swigCPtr = null;
2261   }
2262 
2263   public static void* swigGetCPtr(SWIGTYPE_p_HDC obj) {
2264     return (obj is null) ? null : obj.swigCPtr;
2265   }
2266 
2267   mixin ovr_im.SwigOperatorDefinitions;
2268 }
2269 
2270 class SWIGTYPE_p_double {
2271   private void* swigCPtr;
2272 
2273   public this(void* cObject, bool futureUse) {
2274     swigCPtr = cObject;
2275   }
2276 
2277   protected this() {
2278     swigCPtr = null;
2279   }
2280 
2281   public static void* swigGetCPtr(SWIGTYPE_p_double obj) {
2282     return (obj is null) ? null : obj.swigCPtr;
2283   }
2284 
2285   mixin ovr_im.SwigOperatorDefinitions;
2286 }
2287 
2288 class SWIGTYPE_p_ovrHmdStruct {
2289   private void* swigCPtr;
2290 
2291   public this(void* cObject, bool futureUse) {
2292     swigCPtr = cObject;
2293   }
2294 
2295   protected this() {
2296     swigCPtr = null;
2297   }
2298 
2299   public static void* swigGetCPtr(SWIGTYPE_p_ovrHmdStruct obj) {
2300     return (obj is null) ? null : obj.swigCPtr;
2301   }
2302 
2303   mixin ovr_im.SwigOperatorDefinitions;
2304 }
2305 
2306 class SWIGTYPE_p_GLuint {
2307   private void* swigCPtr;
2308 
2309   public this(void* cObject, bool futureUse) {
2310     swigCPtr = cObject;
2311   }
2312 
2313   protected this() {
2314     swigCPtr = null;
2315   }
2316 
2317   public static void* swigGetCPtr(SWIGTYPE_p_GLuint obj) {
2318     return (obj is null) ? null : obj.swigCPtr;
2319   }
2320 
2321   mixin ovr_im.SwigOperatorDefinitions;
2322 }
2323 
2324 class SWIGTYPE_p_ovrEyeType {
2325   private void* swigCPtr;
2326 
2327   public this(void* cObject, bool futureUse) {
2328     swigCPtr = cObject;
2329   }
2330 
2331   protected this() {
2332     swigCPtr = null;
2333   }
2334 
2335   public static void* swigGetCPtr(SWIGTYPE_p_ovrEyeType obj) {
2336     return (obj is null) ? null : obj.swigCPtr;
2337   }
2338 
2339   mixin ovr_im.SwigOperatorDefinitions;
2340 }
2341 
2342 class SWIGTYPE_p_uintptr_t {
2343   private void* swigCPtr;
2344 
2345   public this(void* cObject, bool futureUse) {
2346     swigCPtr = cObject;
2347   }
2348 
2349   protected this() {
2350     swigCPtr = null;
2351   }
2352 
2353   public static void* swigGetCPtr(SWIGTYPE_p_uintptr_t obj) {
2354     return (obj is null) ? null : obj.swigCPtr;
2355   }
2356 
2357   mixin ovr_im.SwigOperatorDefinitions;
2358 }