Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
OpenGLConvertExtensions.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 #if SILICONSTUDIO_PARADOX_GRAPHICS_API_OPENGL
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Text;
8 #if SILICONSTUDIO_PARADOX_GRAPHICS_API_OPENGLES
9 using OpenTK.Graphics.ES30;
10 #else
11 using OpenTK.Graphics.OpenGL;
12 #endif
13 
14 namespace SiliconStudio.Paradox.Graphics
15 {
16  public static class OpenGLConvertExtensions
17  {
18  public static ErrorCode GetErrorCode()
19  {
20 #if SILICONSTUDIO_PLATFORM_ANDROID || SILICONSTUDIO_PLATFORM_IOS
21  return GL.GetErrorCode();
22 #else
23  return GL.GetError();
24 #endif
25  }
26 
27  public static PixelInternalFormat ToOpenGL(this PixelInternalFormat format)
28  {
29  return format;
30  }
31 
32  public static BeginMode ToOpenGL(this PrimitiveType primitiveType)
33  {
34  switch (primitiveType)
35  {
36  case PrimitiveType.PointList:
37  return BeginMode.Points;
38  case PrimitiveType.LineList:
39  return BeginMode.Lines;
40  case PrimitiveType.LineStrip:
41  return BeginMode.LineStrip;
42  case PrimitiveType.TriangleList:
43  return BeginMode.Triangles;
44  case PrimitiveType.TriangleStrip:
45  return BeginMode.TriangleStrip;
46  default:
47  throw new NotImplementedException();
48  }
49  }
50 
51  public static TextureWrapMode ToOpenGL(this TextureAddressMode addressMode)
52  {
53  switch (addressMode)
54  {
55 #if !SILICONSTUDIO_PARADOX_GRAPHICS_API_OPENGLES
56  case TextureAddressMode.Border:
57  return TextureWrapMode.ClampToBorder;
58 #endif
59  case TextureAddressMode.Clamp:
60  return TextureWrapMode.ClampToEdge;
61  case TextureAddressMode.Mirror:
62  return TextureWrapMode.MirroredRepeat;
63  case TextureAddressMode.Wrap:
64  return TextureWrapMode.Repeat;
65  default:
66  throw new NotImplementedException();
67  }
68  }
69 
70  public static DepthFunction ToOpenGLDepthFunction(this CompareFunction function)
71  {
72  switch (function)
73  {
74  case CompareFunction.Always:
75  return DepthFunction.Always;
76  case CompareFunction.Equal:
77  return DepthFunction.Equal;
78  case CompareFunction.GreaterEqual:
79  return DepthFunction.Gequal;
80  case CompareFunction.Greater:
81  return DepthFunction.Greater;
82  case CompareFunction.LessEqual:
83  return DepthFunction.Lequal;
84  case CompareFunction.Less:
85  return DepthFunction.Less;
86  case CompareFunction.Never:
87  return DepthFunction.Never;
88  case CompareFunction.NotEqual:
89  return DepthFunction.Notequal;
90  default:
91  throw new NotImplementedException();
92  }
93  }
94 
95  public static StencilFunction ToOpenGLStencilFunction(this CompareFunction function)
96  {
97  switch (function)
98  {
99  case CompareFunction.Always:
100  return StencilFunction.Always;
101  case CompareFunction.Equal:
102  return StencilFunction.Equal;
103  case CompareFunction.GreaterEqual:
104  return StencilFunction.Gequal;
105  case CompareFunction.Greater:
106  return StencilFunction.Greater;
107  case CompareFunction.LessEqual:
108  return StencilFunction.Lequal;
109  case CompareFunction.Less:
110  return StencilFunction.Less;
111  case CompareFunction.Never:
112  return StencilFunction.Never;
113  case CompareFunction.NotEqual:
114  return StencilFunction.Notequal;
115  default:
116  throw new NotImplementedException();
117  }
118  }
119 
120  public static StencilOp ToOpenGL(this StencilOperation operation)
121  {
122  switch (operation)
123  {
124  case StencilOperation.Keep:
125  return StencilOp.Keep;
126  case StencilOperation.Zero:
127  return StencilOp.Zero;
128  case StencilOperation.Replace:
129  return StencilOp.Replace;
130  case StencilOperation.IncrementSaturation:
131  return StencilOp.Incr;
132  case StencilOperation.DecrementSaturation:
133  return StencilOp.Decr;
134  case StencilOperation.Invert:
135  return StencilOp.Invert;
136  case StencilOperation.Increment:
137  return StencilOp.IncrWrap;
138  case StencilOperation.Decrement:
139  return StencilOp.DecrWrap;
140  default:
141  throw new ArgumentOutOfRangeException("operation");
142  }
143  }
144  }
145 }
146 
147 #endif
TextureAddressMode
Identify a technique for resolving texture coordinates that are outside of the boundaries of a textur...
CompareFunction
Comparison options.
SiliconStudio.Paradox.Graphics.PrimitiveType PrimitiveType
_In_ size_t _In_ size_t _In_ DXGI_FORMAT format
Definition: DirectXTexP.h:175