Tobias Bohnen avatar Tobias Bohnen committed dd76451

* minor fix

Comments (0)

Files changed (10)

CgNet.OpenTK/CgGL.cs

 
         public static string[] GetOptimalOptions(this ProfileType profile)
         {
-            return Cg.IntPtrToStringArray(NativeMethods.cgGLGetOptimalOptions(profile));
+            return Utils.IntPtrToStringArray(NativeMethods.cgGLGetOptimalOptions(profile));
         }
 
         public static bool IsSupported(this ProfileType profile)

CgNet.OpenTK/CgGLContext.cs

 
         public static string[] GetOptimalOptions(this Context context, ProfileType profile)
         {
-            return Cg.IntPtrToStringArray(NativeMethods.cgGLGetContextOptimalOptions(context.Handle, profile));
+            return Utils.IntPtrToStringArray(NativeMethods.cgGLGetContextOptimalOptions(context.Handle, profile));
         }
 
         public static void RegisterStates(this Context context)

CgNet.SlimDX/D3D9/CgD3D9.cs

 
         public static string[] GetOptimalOptions(this ProfileType profile)
         {
-            return Cg.IntPtrToStringArray(NativeMethods.cgD3D9GetOptimalOptions(profile));
+            return Utils.IntPtrToStringArray(NativeMethods.cgD3D9GetOptimalOptions(profile));
         }
 
         public static bool IsSupported(this ProfileType profile)

CgNet/Annotation.cs

         {
             int count;
             var values = NativeMethods.cgGetBoolAnnotationValues(this.Handle, out count);
-            return Cg.IntPtrToBoolArray(values, count);
+            return Utils.IntPtrToBoolArray(values, count);
         }
 
         /// <summary>
             return NativeMethods.cgGetFirstError();
         }
 
-        public static string GetLastErrorString(out ErrorType error)
+        public static string GetLastErrorString(ErrorType error)
         {
-            return Marshal.PtrToStringAnsi(NativeMethods.cgGetLastErrorString(out error));
+            return Marshal.PtrToStringAnsi(NativeMethods.cgGetLastErrorString(error));
         }
 
         public static ParameterType GetMatrixSize(ParameterType type, out int nrows, out int ncols)
             return NativeMethods.cgGetTypeSizes(type, out nrows, out ncols);
         }
 
-        public static unsafe string[] IntPtrToStringArray(IntPtr ptr)
-        {
-            if (ptr == IntPtr.Zero)
-            {
-                return null;
-            }
-
-            var byteArray = (byte**)ptr;
-            var lines = new List<string>();
-            var buffer = new List<byte>();
-
-            for (; ; )
-            {
-                byte* b = *byteArray;
-                for (; ; )
-                {
-                    if (b == null || *b == '\0')
-                    {
-                        if (buffer.Count > 0)
-                        {
-                            char[] cc = Encoding.ASCII.GetChars(buffer.ToArray());
-                            lines.Add(new string(cc));
-                            buffer.Clear();
-                        }
-                        break;
-                    }
-
-                    buffer.Add(*b);
-                    b++;
-                }
-
-                byteArray++;
-
-                if (b == null)
-                {
-                    break;
-                }
-            }
-
-            return lines.Count == 0 ? null : lines.ToArray();
-        }
-
         public static bool IsInterfaceType(ParameterType type)
         {
             return NativeMethods.cgIsInterfaceType(type);
 
         #endregion Public Static Methods
 
-        #region Internal Static Methods
-
-        internal static bool[] IntPtrToBoolArray(IntPtr values, int count)
-        {
-            if (count > 0)
-            {
-                var retValue = new bool[count];
-                unsafe
-                {
-                    var ii = (int*)values;
-                    for (int i = 0; i < count; i++)
-                    {
-                        retValue[i] = ii[i] == NativeMethods.CgTrue;
-                    }
-                }
-
-                return retValue;
-            }
-
-            return null;
-        }
-
-        #endregion Internal Static Methods
-
         #region Private Static Methods
 
         private static void OnError()

CgNet/CgNet.csproj

     <Compile Include="State.cs" />
     <Compile Include="StateAssignment.cs" />
     <Compile Include="Technique.cs" />
+    <Compile Include="Utils.cs" />
     <Compile Include="WrapperObject.cs" />
     <Compile Include="CgEnums.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />

CgNet/NativeMethods.cs

 
         [DllImport(CgNativeLibrary, CallingConvention = Convention)]
         [SuppressUnmanagedCodeSecurity]
-        public static extern IntPtr cgGetLastErrorString(out ErrorType error);
+        public static extern IntPtr cgGetLastErrorString(ErrorType error);
 
         [DllImport(CgNativeLibrary, CallingConvention = Convention)]
         [SuppressUnmanagedCodeSecurity]
         {
             get
             {
-                return Cg.IntPtrToStringArray(NativeMethods.cgGetProgramOptions(this.Handle));
+                return Utils.IntPtrToStringArray(NativeMethods.cgGetProgramOptions(this.Handle));
             }
         }
 

CgNet/StateAssignment.cs

         {
             int count;
             var values = NativeMethods.cgGetBoolStateAssignmentValues(this.Handle, out count);
-            return Cg.IntPtrToBoolArray(values, count);
+            return Utils.IntPtrToBoolArray(values, count);
         }
 
         public Parameter GetDependentParameter(int index)
+/*
+ CgNet v1.0
+ Copyright (c) 2010 Tobias Bohnen
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this
+ software and associated documentation files (the "Software"), to deal in the Software
+ without restriction, including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+ to whom the Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ */
+namespace CgNet
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Text;
+
+    public static class Utils
+    {
+        #region Methods
+
+        #region Public Static Methods
+
+        public static bool[] IntPtrToBoolArray(IntPtr values, int count)
+        {
+            if (count > 0)
+            {
+                var retValue = new bool[count];
+                unsafe
+                {
+                    var ii = (int*)values;
+                    for (int i = 0; i < count; i++)
+                    {
+                        retValue[i] = ii[i] == NativeMethods.CgTrue;
+                    }
+                }
+
+                return retValue;
+            }
+
+            return null;
+        }
+
+        public static unsafe string[] IntPtrToStringArray(IntPtr ptr)
+        {
+            if (ptr == IntPtr.Zero)
+            {
+                return null;
+            }
+
+            var byteArray = (byte**)ptr;
+            var lines = new List<string>();
+            var buffer = new List<byte>();
+
+            for (; ; )
+            {
+                byte* b = *byteArray;
+                for (; ; )
+                {
+                    if (b == null || *b == '\0')
+                    {
+                        if (buffer.Count > 0)
+                        {
+                            char[] cc = Encoding.ASCII.GetChars(buffer.ToArray());
+                            lines.Add(new string(cc));
+                            buffer.Clear();
+                        }
+                        break;
+                    }
+
+                    buffer.Add(*b);
+                    b++;
+                }
+
+                byteArray++;
+
+                if (b == null)
+                {
+                    break;
+                }
+            }
+
+            return lines.Count == 0 ? null : lines.ToArray();
+        }
+
+        #endregion Public Static Methods
+
+        #endregion Methods
+    }
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.