mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-07-01 10:08:26 +00:00
Merge pull request #549 from Nihlus/remove-obsolete-code
Remove code marked obsolete
This commit is contained in:
commit
7bf31b18e1
|
@ -13,10 +13,10 @@
|
||||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
// permit persons to whom the Software is furnished to do so, subject to
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
// the following conditions:
|
// the following conditions:
|
||||||
//
|
//
|
||||||
// The above copyright notice and this permission notice shall be
|
// The above copyright notice and this permission notice shall be
|
||||||
// included in all copies or substantial portions of the Software.
|
// included in all copies or substantial portions of the Software.
|
||||||
//
|
//
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
@ -37,16 +37,16 @@
|
||||||
// A Getopt::Long-inspired option parsing library for C#.
|
// A Getopt::Long-inspired option parsing library for C#.
|
||||||
//
|
//
|
||||||
// NDesk.Options.OptionSet is built upon a key/value table, where the
|
// NDesk.Options.OptionSet is built upon a key/value table, where the
|
||||||
// key is a option format string and the value is a delegate that is
|
// key is a option format string and the value is a delegate that is
|
||||||
// invoked when the format string is matched.
|
// invoked when the format string is matched.
|
||||||
//
|
//
|
||||||
// Option format strings:
|
// Option format strings:
|
||||||
// Regex-like BNF Grammar:
|
// Regex-like BNF Grammar:
|
||||||
// name: .+
|
// name: .+
|
||||||
// type: [=:]
|
// type: [=:]
|
||||||
// sep: ( [^{}]+ | '{' .+ '}' )?
|
// sep: ( [^{}]+ | '{' .+ '}' )?
|
||||||
// aliases: ( name type sep ) ( '|' name type sep )*
|
// aliases: ( name type sep ) ( '|' name type sep )*
|
||||||
//
|
//
|
||||||
// Each '|'-delimited name is an alias for the associated action. If the
|
// Each '|'-delimited name is an alias for the associated action. If the
|
||||||
// format string ends in a '=', it has a required value. If the format
|
// format string ends in a '=', it has a required value. If the format
|
||||||
// string ends in a ':', it has an optional value. If neither '=' or ':'
|
// string ends in a ':', it has an optional value. If neither '=' or ':'
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
// p.Parse (new string[]{"-v", "--v", "/v", "-name=A", "/name", "B", "extra"});
|
// p.Parse (new string[]{"-v", "--v", "/v", "-name=A", "/name", "B", "extra"});
|
||||||
//
|
//
|
||||||
// The above would parse the argument string array, and would invoke the
|
// The above would parse the argument string array, and would invoke the
|
||||||
// lambda expression three times, setting `verbose' to 3 when complete.
|
// lambda expression three times, setting `verbose' to 3 when complete.
|
||||||
// It would also print out "A" and "B" to standard output.
|
// It would also print out "A" and "B" to standard output.
|
||||||
// The returned array would contain the string "extra".
|
// The returned array would contain the string "extra".
|
||||||
//
|
//
|
||||||
|
@ -208,7 +208,7 @@ namespace Mono.Options
|
||||||
if (c.Option.OptionValueType == OptionValueType.Required &&
|
if (c.Option.OptionValueType == OptionValueType.Required &&
|
||||||
index >= values.Count)
|
index >= values.Count)
|
||||||
throw new OptionException (string.Format (
|
throw new OptionException (string.Format (
|
||||||
c.OptionSet.MessageLocalizer ("Missing required value for option '{0}'."), c.OptionName),
|
c.OptionSet.MessageLocalizer ("Missing required value for option '{0}'."), c.OptionName),
|
||||||
c.OptionName);
|
c.OptionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ namespace Mono.Options
|
||||||
set {option = value;}
|
set {option = value;}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string OptionName {
|
public string OptionName {
|
||||||
get {return name;}
|
get {return name;}
|
||||||
set {name = value;}
|
set {name = value;}
|
||||||
}
|
}
|
||||||
|
@ -277,7 +277,7 @@ namespace Mono.Options
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum OptionValueType {
|
public enum OptionValueType {
|
||||||
None,
|
None,
|
||||||
Optional,
|
Optional,
|
||||||
Required,
|
Required,
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,7 @@ namespace Mono.Options
|
||||||
throw new ArgumentException (
|
throw new ArgumentException (
|
||||||
string.Format ("Cannot provide maxValueCount of {0} for OptionValueType.None.", maxValueCount),
|
string.Format ("Cannot provide maxValueCount of {0} for OptionValueType.None.", maxValueCount),
|
||||||
"maxValueCount");
|
"maxValueCount");
|
||||||
if (Array.IndexOf (names, "<>") >= 0 &&
|
if (Array.IndexOf (names, "<>") >= 0 &&
|
||||||
((names.Length == 1 && this.type != OptionValueType.None) ||
|
((names.Length == 1 && this.type != OptionValueType.None) ||
|
||||||
(names.Length > 1 && this.MaxValueCount > 1)))
|
(names.Length > 1 && this.MaxValueCount > 1)))
|
||||||
throw new ArgumentException (
|
throw new ArgumentException (
|
||||||
|
@ -346,8 +346,8 @@ namespace Mono.Options
|
||||||
protected static T Parse<T> (string value, OptionContext c)
|
protected static T Parse<T> (string value, OptionContext c)
|
||||||
{
|
{
|
||||||
Type tt = typeof (T);
|
Type tt = typeof (T);
|
||||||
bool nullable = tt.IsValueType && tt.IsGenericType &&
|
bool nullable = tt.IsValueType && tt.IsGenericType &&
|
||||||
!tt.IsGenericTypeDefinition &&
|
!tt.IsGenericTypeDefinition &&
|
||||||
tt.GetGenericTypeDefinition () == typeof (Nullable<>);
|
tt.GetGenericTypeDefinition () == typeof (Nullable<>);
|
||||||
Type targetType = nullable ? tt.GetGenericArguments () [0] : typeof (T);
|
Type targetType = nullable ? tt.GetGenericArguments () [0] : typeof (T);
|
||||||
TypeConverter conv = TypeDescriptor.GetConverter (targetType);
|
TypeConverter conv = TypeDescriptor.GetConverter (targetType);
|
||||||
|
@ -386,7 +386,7 @@ namespace Mono.Options
|
||||||
names [i] = name.Substring (0, end);
|
names [i] = name.Substring (0, end);
|
||||||
if (type == '\0' || type == name [end])
|
if (type == '\0' || type == name [end])
|
||||||
type = name [end];
|
type = name [end];
|
||||||
else
|
else
|
||||||
throw new ArgumentException (
|
throw new ArgumentException (
|
||||||
string.Format ("Conflicting option types: '{0}' vs. '{1}'.", type, name [end]),
|
string.Format ("Conflicting option types: '{0}' vs. '{1}'.", type, name [end]),
|
||||||
"prototype");
|
"prototype");
|
||||||
|
@ -529,19 +529,6 @@ namespace Mono.Options
|
||||||
throw new InvalidOperationException ("Option has no names!");
|
throw new InvalidOperationException ("Option has no names!");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete ("Use KeyedCollection.this[string]")]
|
|
||||||
protected Option GetOptionForName (string option)
|
|
||||||
{
|
|
||||||
if (option == null)
|
|
||||||
throw new ArgumentNullException ("option");
|
|
||||||
try {
|
|
||||||
return base [option];
|
|
||||||
}
|
|
||||||
catch (KeyNotFoundException) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void InsertItem (int index, Option item)
|
protected override void InsertItem (int index, Option item)
|
||||||
{
|
{
|
||||||
base.InsertItem (index, item);
|
base.InsertItem (index, item);
|
||||||
|
@ -616,7 +603,7 @@ namespace Mono.Options
|
||||||
{
|
{
|
||||||
if (action == null)
|
if (action == null)
|
||||||
throw new ArgumentNullException ("action");
|
throw new ArgumentNullException ("action");
|
||||||
Option p = new ActionOption (prototype, description, 1,
|
Option p = new ActionOption (prototype, description, 1,
|
||||||
delegate (OptionValueCollection v) { action (v [0]); });
|
delegate (OptionValueCollection v) { action (v [0]); });
|
||||||
base.Add (p);
|
base.Add (p);
|
||||||
return this;
|
return this;
|
||||||
|
@ -631,7 +618,7 @@ namespace Mono.Options
|
||||||
{
|
{
|
||||||
if (action == null)
|
if (action == null)
|
||||||
throw new ArgumentNullException ("action");
|
throw new ArgumentNullException ("action");
|
||||||
Option p = new ActionOption (prototype, description, 2,
|
Option p = new ActionOption (prototype, description, 2,
|
||||||
delegate (OptionValueCollection v) {action (v [0], v [1]);});
|
delegate (OptionValueCollection v) {action (v [0], v [1]);});
|
||||||
base.Add (p);
|
base.Add (p);
|
||||||
return this;
|
return this;
|
||||||
|
@ -705,18 +692,18 @@ namespace Mono.Options
|
||||||
OptionContext c = CreateOptionContext ();
|
OptionContext c = CreateOptionContext ();
|
||||||
c.OptionIndex = -1;
|
c.OptionIndex = -1;
|
||||||
var def = GetOptionForName ("<>");
|
var def = GetOptionForName ("<>");
|
||||||
var unprocessed =
|
var unprocessed =
|
||||||
from argument in arguments
|
from argument in arguments
|
||||||
where ++c.OptionIndex >= 0 && (process || def != null)
|
where ++c.OptionIndex >= 0 && (process || def != null)
|
||||||
? process
|
? process
|
||||||
? argument == "--"
|
? argument == "--"
|
||||||
? (process = false)
|
? (process = false)
|
||||||
: !Parse (argument, c)
|
: !Parse (argument, c)
|
||||||
? def != null
|
? def != null
|
||||||
? Unprocessed (null, def, c, argument)
|
? Unprocessed (null, def, c, argument)
|
||||||
: true
|
: true
|
||||||
: false
|
: false
|
||||||
: def != null
|
: def != null
|
||||||
? Unprocessed (null, def, c, argument)
|
? Unprocessed (null, def, c, argument)
|
||||||
: true
|
: true
|
||||||
: true
|
: true
|
||||||
|
@ -809,7 +796,7 @@ namespace Mono.Options
|
||||||
c.Option.Invoke (c);
|
c.Option.Invoke (c);
|
||||||
break;
|
break;
|
||||||
case OptionValueType.Optional:
|
case OptionValueType.Optional:
|
||||||
case OptionValueType.Required:
|
case OptionValueType.Required:
|
||||||
ParseValue (v, c);
|
ParseValue (v, c);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -828,17 +815,17 @@ namespace Mono.Options
|
||||||
private void ParseValue (string option, OptionContext c)
|
private void ParseValue (string option, OptionContext c)
|
||||||
{
|
{
|
||||||
if (option != null)
|
if (option != null)
|
||||||
foreach (string o in c.Option.ValueSeparators != null
|
foreach (string o in c.Option.ValueSeparators != null
|
||||||
? option.Split (c.Option.ValueSeparators, StringSplitOptions.None)
|
? option.Split (c.Option.ValueSeparators, StringSplitOptions.None)
|
||||||
: new string[]{option}) {
|
: new string[]{option}) {
|
||||||
c.OptionValues.Add (o);
|
c.OptionValues.Add (o);
|
||||||
}
|
}
|
||||||
if (c.OptionValues.Count == c.Option.MaxValueCount ||
|
if (c.OptionValues.Count == c.Option.MaxValueCount ||
|
||||||
c.Option.OptionValueType == OptionValueType.Optional)
|
c.Option.OptionValueType == OptionValueType.Optional)
|
||||||
c.Option.Invoke (c);
|
c.Option.Invoke (c);
|
||||||
else if (c.OptionValues.Count > c.Option.MaxValueCount) {
|
else if (c.OptionValues.Count > c.Option.MaxValueCount) {
|
||||||
throw new OptionException (localizer (string.Format (
|
throw new OptionException (localizer (string.Format (
|
||||||
"Error: Found {0} option values when expecting {1}.",
|
"Error: Found {0} option values when expecting {1}.",
|
||||||
c.OptionValues.Count, c.Option.MaxValueCount)),
|
c.OptionValues.Count, c.Option.MaxValueCount)),
|
||||||
c.OptionName);
|
c.OptionName);
|
||||||
}
|
}
|
||||||
|
@ -922,7 +909,7 @@ namespace Mono.Options
|
||||||
bool indent = false;
|
bool indent = false;
|
||||||
string prefix = new string (' ', OptionWidth+2);
|
string prefix = new string (' ', OptionWidth+2);
|
||||||
foreach (string line in GetLines (localizer (GetDescription (p.Description)))) {
|
foreach (string line in GetLines (localizer (GetDescription (p.Description)))) {
|
||||||
if (indent)
|
if (indent)
|
||||||
o.Write (prefix);
|
o.Write (prefix);
|
||||||
o.WriteLine (line);
|
o.WriteLine (line);
|
||||||
indent = true;
|
indent = true;
|
||||||
|
@ -947,7 +934,7 @@ namespace Mono.Options
|
||||||
Write (o, ref written, names [0]);
|
Write (o, ref written, names [0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = GetNextOptionIndex (names, i+1);
|
for ( i = GetNextOptionIndex (names, i+1);
|
||||||
i < names.Length; i = GetNextOptionIndex (names, i+1)) {
|
i < names.Length; i = GetNextOptionIndex (names, i+1)) {
|
||||||
Write (o, ref written, ", ");
|
Write (o, ref written, ", ");
|
||||||
Write (o, ref written, names [i].Length == 1 ? "-" : "--");
|
Write (o, ref written, names [i].Length == 1 ? "-" : "--");
|
||||||
|
@ -960,7 +947,7 @@ namespace Mono.Options
|
||||||
Write (o, ref written, localizer ("["));
|
Write (o, ref written, localizer ("["));
|
||||||
}
|
}
|
||||||
Write (o, ref written, localizer ("=" + GetArgumentName (0, p.MaxValueCount, p.Description)));
|
Write (o, ref written, localizer ("=" + GetArgumentName (0, p.MaxValueCount, p.Description)));
|
||||||
string sep = p.ValueSeparators != null && p.ValueSeparators.Length > 0
|
string sep = p.ValueSeparators != null && p.ValueSeparators.Length > 0
|
||||||
? p.ValueSeparators [0]
|
? p.ValueSeparators [0]
|
||||||
: " ";
|
: " ";
|
||||||
for (int c = 1; c < p.MaxValueCount; ++c) {
|
for (int c = 1; c < p.MaxValueCount; ++c) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ using System.Runtime.InteropServices;
|
||||||
namespace OpenTK.Platform.MacOS
|
namespace OpenTK.Platform.MacOS
|
||||||
{
|
{
|
||||||
#pragma warning disable 0169
|
#pragma warning disable 0169
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Macintosh device type.
|
** Macintosh device type.
|
||||||
*/
|
*/
|
||||||
|
@ -58,16 +58,16 @@ namespace OpenTK.Platform.MacOS
|
||||||
|
|
||||||
unsafe static partial class Agl
|
unsafe static partial class Agl
|
||||||
{
|
{
|
||||||
|
|
||||||
const string agl = "/System/Library/Frameworks/AGL.framework/Versions/Current/AGL";
|
const string agl = "/System/Library/Frameworks/AGL.framework/Versions/Current/AGL";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** AGL API version.
|
** AGL API version.
|
||||||
*/
|
*/
|
||||||
const int AGL_VERSION_2_0 = 1;
|
const int AGL_VERSION_2_0 = 1;
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Attribute names for aglChoosePixelFormat and aglDescribePixelFormat.
|
** Attribute names for aglChoosePixelFormat and aglDescribePixelFormat.
|
||||||
*/
|
*/
|
||||||
|
@ -196,7 +196,7 @@ namespace OpenTK.Platform.MacOS
|
||||||
AGL_SURFACE_BACKING_SIZE = 304, /* 2 params. Width/height of surface backing size */
|
AGL_SURFACE_BACKING_SIZE = 304, /* 2 params. Width/height of surface backing size */
|
||||||
AGL_ENABLE_SURFACE_BACKING_SIZE = 305, /* Enable or disable surface backing size override */
|
AGL_ENABLE_SURFACE_BACKING_SIZE = 305, /* Enable or disable surface backing size override */
|
||||||
AGL_SURFACE_VOLATILE = 306, /* Flag surface to candidate for deletion */
|
AGL_SURFACE_VOLATILE = 306, /* Flag surface to candidate for deletion */
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
** Option names for aglConfigure.
|
** Option names for aglConfigure.
|
||||||
*/
|
*/
|
||||||
|
@ -278,7 +278,7 @@ namespace OpenTK.Platform.MacOS
|
||||||
internal enum AglError
|
internal enum AglError
|
||||||
{
|
{
|
||||||
NoError = 0, /* no error */
|
NoError = 0, /* no error */
|
||||||
|
|
||||||
BadAttribute = 10000, /* invalid pixel format attribute */
|
BadAttribute = 10000, /* invalid pixel format attribute */
|
||||||
BadProperty = 10001, /* invalid renderer property */
|
BadProperty = 10001, /* invalid renderer property */
|
||||||
BadPixelFormat = 10002, /* invalid pixel format */
|
BadPixelFormat = 10002, /* invalid pixel format */
|
||||||
|
@ -299,7 +299,7 @@ namespace OpenTK.Platform.MacOS
|
||||||
BadConnection = 10017, /* invalid CoreGraphics connection */
|
BadConnection = 10017, /* invalid CoreGraphics connection */
|
||||||
}
|
}
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Pixel format functions
|
** Pixel format functions
|
||||||
*/
|
*/
|
||||||
|
@ -319,9 +319,7 @@ namespace OpenTK.Platform.MacOS
|
||||||
[DllImport(agl)] internal static extern void aglDestroyPixelFormat(AGLPixelFormat pix);
|
[DllImport(agl)] internal static extern void aglDestroyPixelFormat(AGLPixelFormat pix);
|
||||||
[DllImport(agl)] internal static extern AGLPixelFormat aglNextPixelFormat(AGLPixelFormat pix);
|
[DllImport(agl)] internal static extern AGLPixelFormat aglNextPixelFormat(AGLPixelFormat pix);
|
||||||
[DllImport(agl)] internal static extern bool aglDescribePixelFormat(AGLPixelFormat pix, PixelFormatAttribute attrib, out int value);
|
[DllImport(agl)] internal static extern bool aglDescribePixelFormat(AGLPixelFormat pix, PixelFormatAttribute attrib, out int value);
|
||||||
[Obsolete("Use aglDisplaysOfPixelFormat instead.")]
|
|
||||||
[DllImport(agl)] static extern AGLDevice *aglDevicesOfPixelFormat(AGLPixelFormat pix, int *ndevs);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Renderer information functions
|
** Renderer information functions
|
||||||
*/
|
*/
|
||||||
|
@ -329,7 +327,7 @@ namespace OpenTK.Platform.MacOS
|
||||||
[DllImport(agl)] static extern void aglDestroyRendererInfo(AGLRendererInfo rend);
|
[DllImport(agl)] static extern void aglDestroyRendererInfo(AGLRendererInfo rend);
|
||||||
[DllImport(agl)] static extern AGLRendererInfo aglNextRendererInfo(AGLRendererInfo rend);
|
[DllImport(agl)] static extern AGLRendererInfo aglNextRendererInfo(AGLRendererInfo rend);
|
||||||
[DllImport(agl)] static extern byte aglDescribeRenderer(AGLRendererInfo rend, int prop, out int value);
|
[DllImport(agl)] static extern byte aglDescribeRenderer(AGLRendererInfo rend, int prop, out int value);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Context functions
|
** Context functions
|
||||||
*/
|
*/
|
||||||
|
@ -362,12 +360,12 @@ namespace OpenTK.Platform.MacOS
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[DllImport(agl)] internal static extern AGLContext aglGetCurrentContext();
|
[DllImport(agl)] internal static extern AGLContext aglGetCurrentContext();
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Drawable Functions
|
** Drawable Functions
|
||||||
*/
|
*/
|
||||||
[DllImport(agl,EntryPoint="aglSetDrawable")]
|
[DllImport(agl,EntryPoint="aglSetDrawable")]
|
||||||
static extern byte _aglSetDrawable(AGLContext ctx, AGLDrawable draw);
|
static extern byte _aglSetDrawable(AGLContext ctx, AGLDrawable draw);
|
||||||
|
|
||||||
internal static void aglSetDrawable(AGLContext ctx, AGLDrawable draw)
|
internal static void aglSetDrawable(AGLContext ctx, AGLDrawable draw)
|
||||||
|
@ -405,22 +403,22 @@ namespace OpenTK.Platform.MacOS
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern byte aglSetVirtualScreen(AGLContext ctx, int screen);
|
[DllImport(agl)] static extern byte aglSetVirtualScreen(AGLContext ctx, int screen);
|
||||||
[DllImport(agl)] static extern int aglGetVirtualScreen(AGLContext ctx);
|
[DllImport(agl)] static extern int aglGetVirtualScreen(AGLContext ctx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Obtain version numbers
|
** Obtain version numbers
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern void aglGetVersion(int *major, int *minor);
|
[DllImport(agl)] static extern void aglGetVersion(int *major, int *minor);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Global library options
|
** Global library options
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern byte aglConfigure(GLenum pname, uint param);
|
[DllImport(agl)] static extern byte aglConfigure(GLenum pname, uint param);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Swap functions
|
** Swap functions
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] internal static extern void aglSwapBuffers(AGLContext ctx);
|
[DllImport(agl)] internal static extern void aglSwapBuffers(AGLContext ctx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Per context options
|
** Per context options
|
||||||
*/
|
*/
|
||||||
|
@ -454,31 +452,31 @@ namespace OpenTK.Platform.MacOS
|
||||||
{
|
{
|
||||||
return Marshal.PtrToStringAnsi(_aglErrorString(code));
|
return Marshal.PtrToStringAnsi(_aglErrorString(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Soft reset function
|
** Soft reset function
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern void aglResetLibrary();
|
[DllImport(agl)] static extern void aglResetLibrary();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Surface texture function
|
** Surface texture function
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern void aglSurfaceTexture (AGLContext context, GLenum target, GLenum internalformat, AGLContext surfacecontext) ;
|
[DllImport(agl)] static extern void aglSurfaceTexture (AGLContext context, GLenum target, GLenum internalformat, AGLContext surfacecontext) ;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** PBuffer functions
|
** PBuffer functions
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern byte aglCreatePBuffer (int width, int height, GLenum target, GLenum internalFormat, long max_level, AGLPbuffer *pbuffer);
|
[DllImport(agl)] static extern byte aglCreatePBuffer (int width, int height, GLenum target, GLenum internalFormat, long max_level, AGLPbuffer *pbuffer);
|
||||||
[DllImport(agl)] static extern byte aglDestroyPBuffer (AGLPbuffer pbuffer);
|
[DllImport(agl)] static extern byte aglDestroyPBuffer (AGLPbuffer pbuffer);
|
||||||
[DllImport(agl)] static extern byte aglDescribePBuffer (AGLPbuffer pbuffer, int *width, int *height, GLenum *target, GLenum *internalFormat, int *max_level);
|
[DllImport(agl)] static extern byte aglDescribePBuffer (AGLPbuffer pbuffer, int *width, int *height, GLenum *target, GLenum *internalFormat, int *max_level);
|
||||||
[DllImport(agl)] static extern byte aglTexImagePBuffer (AGLContext ctx, AGLPbuffer pbuffer, int source);
|
[DllImport(agl)] static extern byte aglTexImagePBuffer (AGLContext ctx, AGLPbuffer pbuffer, int source);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Pbuffer Drawable Functions
|
** Pbuffer Drawable Functions
|
||||||
*/
|
*/
|
||||||
[DllImport(agl)] static extern byte aglSetPBuffer (AGLContext ctx, AGLPbuffer pbuffer, int face, int level, int screen) ;
|
[DllImport(agl)] static extern byte aglSetPBuffer (AGLContext ctx, AGLPbuffer pbuffer, int face, int level, int screen) ;
|
||||||
[DllImport(agl)] static extern byte aglGetPBuffer (AGLContext ctx, AGLPbuffer *pbuffer, int *face, int *level, int *screen) ;
|
[DllImport(agl)] static extern byte aglGetPBuffer (AGLContext ctx, AGLPbuffer *pbuffer, int *face, int *level, int *screen) ;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CGL functions
|
** CGL functions
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -104,7 +104,7 @@ namespace OpenTK
|
||||||
{
|
{
|
||||||
Backend = PlatformBackend.PreferNative
|
Backend = PlatformBackend.PreferNative
|
||||||
});
|
});
|
||||||
|
|
||||||
SetStyle(ControlStyles.Opaque, true);
|
SetStyle(ControlStyles.Opaque, true);
|
||||||
SetStyle(ControlStyles.UserPaint, true);
|
SetStyle(ControlStyles.UserPaint, true);
|
||||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
@ -273,7 +273,7 @@ namespace OpenTK
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Configuration.RunningOnMacOS)
|
if (Configuration.RunningOnMacOS)
|
||||||
{
|
{
|
||||||
DelayUpdate delay = PerformContextUpdate;
|
DelayUpdate delay = PerformContextUpdate;
|
||||||
BeginInvoke(delay); //Need the native window to resize first otherwise our control will be in the wrong place.
|
BeginInvoke(delay); //Need the native window to resize first otherwise our control will be in the wrong place.
|
||||||
|
@ -480,38 +480,6 @@ namespace OpenTK
|
||||||
{
|
{
|
||||||
get { return implementation.WindowInfo; }
|
get { return implementation.WindowInfo; }
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region public Bitmap GrabScreenshot()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Grabs a screenshot of the frontbuffer contents.
|
|
||||||
/// When using multiple <c>GLControl</c>s, ensure that <see cref="Context"/>
|
|
||||||
/// is current before accessing this property.
|
|
||||||
/// <seealso cref="Context"/>
|
|
||||||
/// <seealso cref="MakeCurrent"/>
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>A System.Drawing.Bitmap, containing the contents of the frontbuffer.</returns>
|
|
||||||
/// <exception cref="OpenTK.Graphics.GraphicsContextException">
|
|
||||||
/// Occurs when no OpenTK.Graphics.GraphicsContext is current in the calling thread.
|
|
||||||
/// </exception>
|
|
||||||
[Obsolete("This method will not work correctly with OpenGL|ES. Please use GL.ReadPixels to capture the contents of the framebuffer (refer to http://www.opentk.com/doc/graphics/save-opengl-rendering-to-disk for more information).")]
|
|
||||||
public Bitmap GrabScreenshot()
|
|
||||||
{
|
|
||||||
ValidateState();
|
|
||||||
ValidateContext("GrabScreenshot()");
|
|
||||||
|
|
||||||
Bitmap bmp = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
|
|
||||||
System.Drawing.Imaging.BitmapData data =
|
|
||||||
bmp.LockBits(this.ClientRectangle, System.Drawing.Imaging.ImageLockMode.WriteOnly,
|
|
||||||
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
|
|
||||||
GL.ReadPixels(0, 0, this.ClientSize.Width, this.ClientSize.Height, PixelFormat.Bgr, PixelType.UnsignedByte,
|
|
||||||
data.Scan0);
|
|
||||||
bmp.UnlockBits(data);
|
|
||||||
bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);
|
|
||||||
return bmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -41,24 +41,6 @@ namespace OpenTK
|
||||||
{
|
{
|
||||||
#region Fields
|
#region Fields
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// A reflection handle to the nested type that contains the function delegates.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Not used")]
|
|
||||||
readonly protected Type DelegatesClass;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// A refection handle to the nested type that contains core functions (i.e. not extensions).
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Not used")]
|
|
||||||
readonly protected Type CoreClass;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// A mapping of core function names to MethodInfo handles.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Not used")]
|
|
||||||
readonly protected SortedList<string, MethodInfo> CoreFunctionMap;
|
|
||||||
|
|
||||||
bool rebuildExtensionList = true;
|
bool rebuildExtensionList = true;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -106,7 +88,7 @@ namespace OpenTK
|
||||||
/// Gets an object that can be used to synchronize access to the bindings implementation.
|
/// Gets an object that can be used to synchronize access to the bindings implementation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>This object should be unique across bindings but consistent between bindings
|
/// <remarks>This object should be unique across bindings but consistent between bindings
|
||||||
/// of the same type. For example, ES10.GL, OpenGL.GL and CL10.CL should all return
|
/// of the same type. For example, ES10.GL, OpenGL.GL and CL10.CL should all return
|
||||||
/// unique objects, but all instances of ES10.GL should return the same object.</remarks>
|
/// unique objects, but all instances of ES10.GL should return the same object.</remarks>
|
||||||
protected abstract object SyncRoot { get; }
|
protected abstract object SyncRoot { get; }
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -51,7 +51,7 @@ namespace OpenTK
|
||||||
DisplayResolution original_resolution;
|
DisplayResolution original_resolution;
|
||||||
List<DisplayResolution> available_resolutions = new List<DisplayResolution>();
|
List<DisplayResolution> available_resolutions = new List<DisplayResolution>();
|
||||||
IList<DisplayResolution> available_resolutions_readonly;
|
IList<DisplayResolution> available_resolutions_readonly;
|
||||||
|
|
||||||
internal object Id; // A platform-specific id for this monitor
|
internal object Id; // A platform-specific id for this monitor
|
||||||
|
|
||||||
static readonly object display_lock = new object();
|
static readonly object display_lock = new object();
|
||||||
|
@ -287,31 +287,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public static IList<DisplayDevice> AvailableDisplays
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the list of available <see cref="DisplayDevice"/> objects.
|
|
||||||
/// This function allocates memory.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use GetDisplay(DisplayIndex) instead.")]
|
|
||||||
public static IList<DisplayDevice> AvailableDisplays
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
List<DisplayDevice> displays = new List<DisplayDevice>();
|
|
||||||
for (int i = 0; i < 6; i++)
|
|
||||||
{
|
|
||||||
DisplayDevice dev = GetDisplay(DisplayIndex.First + i);
|
|
||||||
if (dev != null)
|
|
||||||
displays.Add(dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
return displays.AsReadOnly();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region public static DisplayDevice Default
|
#region public static DisplayDevice Default
|
||||||
|
|
||||||
/// <summary>Gets the default (primary) display of this system.</summary>
|
/// <summary>Gets the default (primary) display of this system.</summary>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -79,19 +79,13 @@ namespace OpenTK
|
||||||
|
|
||||||
readonly Stopwatch watch = new Stopwatch();
|
readonly Stopwatch watch = new Stopwatch();
|
||||||
|
|
||||||
#pragma warning disable 612,618
|
|
||||||
readonly IJoystickDriver LegacyJoystick =
|
|
||||||
Factory.Default.CreateLegacyJoystickDriver();
|
|
||||||
#pragma warning restore 612,618
|
|
||||||
|
|
||||||
|
|
||||||
IGraphicsContext glContext;
|
IGraphicsContext glContext;
|
||||||
|
|
||||||
bool isExiting = false;
|
bool isExiting = false;
|
||||||
|
|
||||||
double update_period, render_period;
|
double update_period, render_period;
|
||||||
double target_update_period, target_render_period;
|
double target_update_period, target_render_period;
|
||||||
|
|
||||||
double update_time; // length of last UpdateFrame event
|
double update_time; // length of last UpdateFrame event
|
||||||
double render_time; // length of last RenderFrame event
|
double render_time; // length of last RenderFrame event
|
||||||
|
|
||||||
|
@ -462,7 +456,7 @@ namespace OpenTK
|
||||||
while (elapsed > 0 && elapsed + update_epsilon >= TargetUpdatePeriod)
|
while (elapsed > 0 && elapsed + update_epsilon >= TargetUpdatePeriod)
|
||||||
{
|
{
|
||||||
RaiseUpdateFrame(elapsed, ref timestamp);
|
RaiseUpdateFrame(elapsed, ref timestamp);
|
||||||
|
|
||||||
// Calculate difference (positive or negative) between
|
// Calculate difference (positive or negative) between
|
||||||
// actual elapsed time and target elapsed time. We must
|
// actual elapsed time and target elapsed time. We must
|
||||||
// compensate for this difference.
|
// compensate for this difference.
|
||||||
|
@ -581,51 +575,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Joysticks
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets a readonly IList containing all available OpenTK.Input.JoystickDevices.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use OpenTK.Input.Joystick and GamePad instead")]
|
|
||||||
public IList<JoystickDevice> Joysticks
|
|
||||||
{
|
|
||||||
get { return LegacyJoystick.Joysticks; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Keyboard
|
|
||||||
|
|
||||||
#pragma warning disable 0612
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the primary Keyboard device, or null if no Keyboard exists.
|
|
||||||
/// </summary>
|
|
||||||
public KeyboardDevice Keyboard
|
|
||||||
{
|
|
||||||
get { return InputDriver.Keyboard.Count > 0 ? InputDriver.Keyboard[0] : null; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma warning restore 0612
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mouse
|
|
||||||
|
|
||||||
#pragma warning disable 0612
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the primary Mouse device, or null if no Mouse exists.
|
|
||||||
/// </summary>
|
|
||||||
public MouseDevice Mouse
|
|
||||||
{
|
|
||||||
get { return InputDriver.Mouse.Count > 0 ? InputDriver.Mouse[0] : null; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma warning restore 0612
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region --- GameWindow Timing ---
|
#region --- GameWindow Timing ---
|
||||||
|
|
||||||
// TODO: Disabled because it is not reliable enough. Use vsync as a workaround.
|
// TODO: Disabled because it is not reliable enough. Use vsync as a workaround.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -47,17 +47,17 @@ namespace OpenTK.Graphics
|
||||||
/// The red component of this Color4 structure.
|
/// The red component of this Color4 structure.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float R;
|
public float R;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The green component of this Color4 structure.
|
/// The green component of this Color4 structure.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float G;
|
public float G;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The blue component of this Color4 structure.
|
/// The blue component of this Color4 structure.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float B;
|
public float B;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The alpha component of this Color4 structure.
|
/// The alpha component of this Color4 structure.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -97,15 +97,6 @@ namespace OpenTK.Graphics
|
||||||
A = a / (float)Byte.MaxValue;
|
A = a / (float)Byte.MaxValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructs a new Color4 structure from the specified System.Drawing.Color.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="color">The System.Drawing.Color containing the component values.</param>
|
|
||||||
[Obsolete("Use new Color4(r, g, b, a) instead.")]
|
|
||||||
public Color4(Color color)
|
|
||||||
: this(color.R, color.G, color.B, color.A)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public Members
|
#region Public Members
|
||||||
|
@ -1276,7 +1267,7 @@ namespace OpenTK.Graphics
|
||||||
return new Vector4(x, y, z, rgb.A);
|
return new Vector4(x, y, z, rgb.A);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region YUV
|
#region YUV
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -36,22 +36,6 @@ namespace OpenTK.Graphics
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class GraphicsBindingsBase : BindingsBase
|
public abstract class GraphicsBindingsBase : BindingsBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Contains the list of API entry points (function pointers).
|
|
||||||
/// This field must be set by an inheriting class.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Not used - this field remains for 1.1 API compatibility")]
|
|
||||||
protected IntPtr[] EntryPointsInstance;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// with the 1.1 API.
|
|
||||||
/// Contains the list of API entry point names.
|
|
||||||
/// This field must be set by an inheriting class.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Not used - this field remains for 1.1 API compatibility")]
|
|
||||||
protected string[] EntryPointNamesInstance;
|
|
||||||
|
|
||||||
|
|
||||||
internal IntPtr[] _EntryPointsInstance;
|
internal IntPtr[] _EntryPointsInstance;
|
||||||
internal byte[] _EntryPointNamesInstance;
|
internal byte[] _EntryPointNamesInstance;
|
||||||
internal int[] _EntryPointNameOffsetsInstance;
|
internal int[] _EntryPointNameOffsetsInstance;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -40,7 +40,7 @@ namespace OpenTK.Graphics
|
||||||
public sealed class GraphicsContext : IGraphicsContext, IGraphicsContextInternal
|
public sealed class GraphicsContext : IGraphicsContext, IGraphicsContextInternal
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used to retrive function pointers by name.
|
/// Used to retrive function pointers by name.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="function">The function name.</param>
|
/// <param name="function">The function name.</param>
|
||||||
/// <returns>A function pointer to <paramref name="function"/>, or <c>IntPtr.Zero</c></returns>
|
/// <returns>A function pointer to <paramref name="function"/>, or <c>IntPtr.Zero</c></returns>
|
||||||
|
@ -67,7 +67,7 @@ namespace OpenTK.Graphics
|
||||||
|
|
||||||
static bool share_contexts = true;
|
static bool share_contexts = true;
|
||||||
static bool direct_rendering = true;
|
static bool direct_rendering = true;
|
||||||
readonly static object SyncRoot = new object();
|
readonly static object SyncRoot = new object();
|
||||||
// Maps OS-specific context handles to GraphicsContext instances.
|
// Maps OS-specific context handles to GraphicsContext instances.
|
||||||
readonly static Dictionary<ContextHandle, IGraphicsContext> available_contexts =
|
readonly static Dictionary<ContextHandle, IGraphicsContext> available_contexts =
|
||||||
new Dictionary<ContextHandle, IGraphicsContext>();
|
new Dictionary<ContextHandle, IGraphicsContext>();
|
||||||
|
@ -102,7 +102,8 @@ namespace OpenTK.Graphics
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructs a new GraphicsContext with the specified GraphicsMode, version and flags, and attaches it to the specified window.
|
/// Constructs a new GraphicsContext with the specified GraphicsMode, version and flags, and attaches it to the specified window. A dummy context will be created if both
|
||||||
|
/// the handle and the window are null.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="mode">The OpenTK.Graphics.GraphicsMode of the GraphicsContext.</param>
|
/// <param name="mode">The OpenTK.Graphics.GraphicsMode of the GraphicsContext.</param>
|
||||||
/// <param name="window">The OpenTK.Platform.IWindowInfo to attach the GraphicsContext to.</param>
|
/// <param name="window">The OpenTK.Platform.IWindowInfo to attach the GraphicsContext to.</param>
|
||||||
|
@ -252,7 +253,8 @@ namespace OpenTK.Graphics
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructs a new GraphicsContext from a pre-existing context created outside of OpenTK.
|
/// Constructs a new GraphicsContext from a pre-existing context created outside of OpenTK. A dummy context will be created if both
|
||||||
|
/// the handle and the window are null.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="handle">The handle of the existing context. This must be a valid, unique handle that is not known to OpenTK.</param>
|
/// <param name="handle">The handle of the existing context. This must be a valid, unique handle that is not known to OpenTK.</param>
|
||||||
/// <param name="window">This parameter is reserved.</param>
|
/// <param name="window">This parameter is reserved.</param>
|
||||||
|
@ -360,45 +362,6 @@ namespace OpenTK.Graphics
|
||||||
|
|
||||||
#region --- Static Members ---
|
#region --- Static Members ---
|
||||||
|
|
||||||
#region public static GraphicsContext CreateDummyContext()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a dummy GraphicsContext to allow OpenTK to work with contexts created by external libraries.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>A new, dummy GraphicsContext instance.</returns>
|
|
||||||
/// <remarks>
|
|
||||||
/// <para>Instances created by this method will not be functional. Instance methods will have no effect.</para>
|
|
||||||
/// <para>This method requires that a context is current on the calling thread.</para>
|
|
||||||
/// </remarks>
|
|
||||||
[Obsolete("Use GraphicsContext(ContextHandle, IWindowInfo) constructor instead")]
|
|
||||||
public static GraphicsContext CreateDummyContext()
|
|
||||||
{
|
|
||||||
ContextHandle handle = GetCurrentContext();
|
|
||||||
if (handle == ContextHandle.Zero)
|
|
||||||
throw new InvalidOperationException("No GraphicsContext is current on the calling thread.");
|
|
||||||
|
|
||||||
return CreateDummyContext(handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a dummy GraphicsContext to allow OpenTK to work with contexts created by external libraries.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="handle">The handle of a context.</param>
|
|
||||||
/// <returns>A new, dummy GraphicsContext instance.</returns>
|
|
||||||
/// <remarks>
|
|
||||||
/// <para>Instances created by this method will not be functional. Instance methods will have no effect.</para>
|
|
||||||
/// </remarks>
|
|
||||||
[Obsolete("Use GraphicsContext(ContextHandle, IWindowInfo) constructor instead")]
|
|
||||||
public static GraphicsContext CreateDummyContext(ContextHandle handle)
|
|
||||||
{
|
|
||||||
if (handle == ContextHandle.Zero)
|
|
||||||
throw new ArgumentOutOfRangeException("handle");
|
|
||||||
|
|
||||||
return new GraphicsContext(handle, (IWindowInfo)null);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region public static void Assert()
|
#region public static void Assert()
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -538,31 +501,11 @@ namespace OpenTK.Graphics
|
||||||
private set { disposed = value; }
|
private set { disposed = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// [obsolete] Use SwapInterval property instead.
|
|
||||||
/// Gets or sets a value indicating whether VSync is enabled. When VSync is
|
|
||||||
/// enabled, <see cref="SwapBuffers()"/> calls will be synced to the refresh
|
|
||||||
/// rate of the <see cref="DisplayDevice"/> that contains improving visual
|
|
||||||
/// quality and reducing CPU usage. However, systems that cannot maintain
|
|
||||||
/// the requested rendering rate will suffer from large jumps in performance.
|
|
||||||
/// This can be counteracted by increasing the <see cref="SwapInterval"/>
|
|
||||||
/// value.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use SwapInterval property instead.")]
|
|
||||||
public bool VSync
|
|
||||||
{
|
|
||||||
#pragma warning disable 0612, 0618 // CS0612/CS0618: 'member' is obsolete
|
|
||||||
get { return implementation.VSync; }
|
|
||||||
set { implementation.VSync = value; }
|
|
||||||
#pragma warning restore 0612, 0618
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a positive integer in the range [1, n), indicating the number of
|
/// Gets or sets a positive integer in the range [1, n), indicating the number of
|
||||||
/// <see cref="DisplayDevice"/> refreshes between consecutive
|
/// <see cref="DisplayDevice"/> refreshes between consecutive
|
||||||
/// <see cref="SwapBuffers()"/> calls. The maximum value for n is
|
/// <see cref="SwapBuffers()"/> calls. The maximum value for n is
|
||||||
/// implementation-dependent. The default value is 1.
|
/// implementation-dependent. The default value is 1.
|
||||||
/// This value will only affect instances where <see cref="VSync"/> is enabled.
|
|
||||||
/// Invalid values will be clamped to the valid range.
|
/// Invalid values will be clamped to the valid range.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int SwapInterval
|
public int SwapInterval
|
||||||
|
@ -594,7 +537,7 @@ namespace OpenTK.Graphics
|
||||||
|
|
||||||
implementation.LoadAll();
|
implementation.LoadAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region --- IGraphicsContextInternal Members ---
|
#region --- IGraphicsContextInternal Members ---
|
||||||
|
|
|
@ -41,24 +41,11 @@ namespace OpenTK.Graphics
|
||||||
/// </summary>
|
/// </summary>
|
||||||
bool IsDisposed { get; }
|
bool IsDisposed { get; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a value indicating whether VSync is enabled. When VSync is
|
|
||||||
/// enabled, <see cref="SwapBuffers()"/> calls will be synced to the refresh
|
|
||||||
/// rate of the <see cref="DisplayDevice"/> that contains improving visual
|
|
||||||
/// quality and reducing CPU usage. However, systems that cannot maintain
|
|
||||||
/// the requested rendering rate will suffer from large jumps in performance.
|
|
||||||
/// This can be counteracted by increasing the <see cref="SwapInterval"/>
|
|
||||||
/// value.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use SwapInterval property instead.")]
|
|
||||||
bool VSync { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a positive integer in the range [1, n), indicating the number of
|
/// Gets or sets a positive integer in the range [1, n), indicating the number of
|
||||||
/// <see cref="DisplayDevice"/> refreshes between consecutive
|
/// <see cref="DisplayDevice"/> refreshes between consecutive
|
||||||
/// <see cref="SwapBuffers()"/> calls. The maximum value for n is
|
/// <see cref="SwapBuffers()"/> calls. The maximum value for n is
|
||||||
/// implementation-dependent. The default value is 1.
|
/// implementation-dependent. The default value is 1.
|
||||||
/// This value will only affect instances where <see cref="VSync"/> is enabled.
|
|
||||||
/// Invalid values will be clamped to the valid range.
|
/// Invalid values will be clamped to the valid range.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
int SwapInterval { get; set; }
|
int SwapInterval { get; set; }
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -97,20 +97,6 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region --- Public Members ---
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Loads all OpenGL entry points (core and extension).
|
|
||||||
/// This method is provided for compatibility purposes with older OpenTK versions.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("If you are using a context constructed outside of OpenTK, create a new GraphicsContext and pass your context handle to it. Otherwise, there is no need to call this method.")]
|
|
||||||
public static void LoadAll()
|
|
||||||
{
|
|
||||||
new GL().LoadEntryPoints();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region --- Protected Members ---
|
#region --- Protected Members ---
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -125,11 +111,6 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
|
|
||||||
#region --- GL Overloads ---
|
#region --- GL Overloads ---
|
||||||
|
|
||||||
#pragma warning disable 3019
|
|
||||||
#pragma warning disable 1591
|
|
||||||
#pragma warning disable 1572
|
|
||||||
#pragma warning disable 1573
|
|
||||||
|
|
||||||
// Note: Mono 1.9.1 truncates StringBuilder results (for 'out string' parameters).
|
// Note: Mono 1.9.1 truncates StringBuilder results (for 'out string' parameters).
|
||||||
// We work around this issue by doubling the StringBuilder capacity.
|
// We work around this issue by doubling the StringBuilder capacity.
|
||||||
|
|
||||||
|
@ -1380,230 +1361,13 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
[Obsolete("Use DisableClientState(ArrayCap) instead")]
|
|
||||||
public static void DisableClientState(OpenTK.Graphics.OpenGL.EnableCap array)
|
|
||||||
{
|
|
||||||
DisableClientState((ArrayCap)array);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use EnableClientState(ArrayCap) instead.")]
|
|
||||||
public static void EnableClientState(OpenTK.Graphics.OpenGL.EnableCap array)
|
|
||||||
{
|
|
||||||
EnableClientState((ArrayCap)array);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, ArbUniformBufferObject pname, [OutAttribute] Int32[] @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, uniformIndices, (ActiveUniformParameter)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, ArbUniformBufferObject pname, [OutAttribute] out Int32 @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, ref uniformIndices, (ActiveUniformParameter)pname, out @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.CLSCompliant(false)]
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, ArbUniformBufferObject pname, [OutAttribute] Int32* @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, uniformIndices, (ActiveUniformParameter)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.CLSCompliant(false)]
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, ArbUniformBufferObject pname, [OutAttribute] Int32[] @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, uniformIndices, (ActiveUniformParameter)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.CLSCompliant(false)]
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, ArbUniformBufferObject pname, [OutAttribute] out Int32 @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, ref uniformIndices, (ActiveUniformParameter)pname, out @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.CLSCompliant(false)]
|
|
||||||
[Obsolete("Use GetActiveUniforms(..., ActiveUniformParameter, ...) instead.")]
|
|
||||||
public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, ArbUniformBufferObject pname, [OutAttribute] Int32* @params)
|
|
||||||
{
|
|
||||||
GetActiveUniforms(program, uniformCount, uniformIndices, (ActiveUniformParameter)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use strongly-typed overload instead")]
|
|
||||||
public static void GetBufferParameteri64(Version32 target, Version32 pname, [OutAttribute] Int64[] @params)
|
|
||||||
{
|
|
||||||
GL.GetBufferParameter((BufferTarget)target, (BufferParameterName)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use strongly-typed overload instead")]
|
|
||||||
public static void GetBufferParameteri64(Version32 target, Version32 pname, out Int64 @params)
|
|
||||||
{
|
|
||||||
GL.GetBufferParameter((BufferTarget)target, (BufferParameterName)pname, out @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use strongly-typed overload instead")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static unsafe void GetBufferParameteri64(Version32 target, Version32 pname, [OutAttribute] Int64* @params)
|
|
||||||
{
|
|
||||||
GL.GetBufferParameter((BufferTarget)target, (BufferParameterName)pname, @params);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use GL.Arb.FramebufferTextureFace instead (OpenGL spec bug)")]
|
|
||||||
public static void FramebufferTextureFace(Version32 target, Version32 attachment,
|
|
||||||
int texture, int level, Version32 face)
|
|
||||||
{
|
|
||||||
Arb.FramebufferTextureFace((FramebufferTarget)target,
|
|
||||||
(FramebufferAttachment)attachment, texture, level, (TextureTarget)face);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use GL.Arb.FramebufferTextureFace instead (OpenGL spec bug)")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void FramebufferTextureFace(Version32 target, Version32 attachment,
|
|
||||||
uint texture, int level, Version32 face)
|
|
||||||
{
|
|
||||||
Arb.FramebufferTextureFace((FramebufferTarget)target,
|
|
||||||
(FramebufferAttachment)attachment, texture, level, (TextureTarget)face);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static partial class Arb
|
|
||||||
{
|
|
||||||
[Obsolete("Use ProgramParameter(..., AssemblyProgramParameterArb, ...) instead.")]
|
|
||||||
public static void ProgramParameter(Int32 program, ArbGeometryShader4 pname, Int32 value)
|
|
||||||
{
|
|
||||||
ProgramParameter(program, (AssemblyProgramParameterArb)pname, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use ProgramParameter(..., AssemblyProgramParameterArb, ...) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ProgramParameter(UInt32 program, ArbGeometryShader4 pname, Int32 value)
|
|
||||||
{
|
|
||||||
ProgramParameter(program, (AssemblyProgramParameterArb)pname, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static partial class Ext
|
|
||||||
{
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, IntPtr data)
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[,] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[,,] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T6 data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, ref data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, IntPtr data)
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[,] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T6[,,] data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>[requires: EXT_direct_state_access]</summary>
|
|
||||||
[Obsolete("Use ClearNamedBufferSubData(..., format, type, data) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T6 data)
|
|
||||||
where T6 : struct
|
|
||||||
{
|
|
||||||
ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, ref data);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use ProgramParameter(..., AssemblyProgramParameterArb, ...) instead.")]
|
|
||||||
public static void ProgramParameter(Int32 program, ExtGeometryShader4 pname, Int32 value)
|
|
||||||
{
|
|
||||||
ProgramParameter(program, (AssemblyProgramParameterArb)pname, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use ProgramParameter(..., AssemblyProgramParameterArb, ...) instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public static void ProgramParameter(UInt32 program, ExtGeometryShader4 pname, Int32 value)
|
|
||||||
{
|
|
||||||
ProgramParameter(program, (AssemblyProgramParameterArb)pname, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#pragma warning restore 3019
|
|
||||||
#pragma warning restore 1591
|
|
||||||
#pragma warning restore 1572
|
|
||||||
#pragma warning restore 1573
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning disable 1574 // XML comment cref attribute could not be resolved, compiler bug in Mono 3.4.0
|
#pragma warning disable 1574 // XML comment cref attribute could not be resolved, compiler bug in Mono 3.4.0
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the signature of a debug callback for
|
/// Defines the signature of a debug callback for
|
||||||
/// <see cref="GL.Amd.DebugMessageCallback"/>.
|
/// <see cref="GL.Amd.DebugMessageCallback"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The id of this debug message.</param>
|
/// <param name="id">The id of this debug message.</param>
|
||||||
|
@ -1618,7 +1382,7 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
int length, IntPtr message, IntPtr userParam);
|
int length, IntPtr message, IntPtr userParam);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the signature of a debug callback for
|
/// Defines the signature of a debug callback for
|
||||||
/// <see cref="GL.Arb.DebugMessageCallback"/>.
|
/// <see cref="GL.Arb.DebugMessageCallback"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
||||||
|
@ -1635,7 +1399,7 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
IntPtr userParam);
|
IntPtr userParam);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the signature of a debug callback for
|
/// Defines the signature of a debug callback for
|
||||||
/// <see cref="GL.DebugMessageCallback"/>.
|
/// <see cref="GL.DebugMessageCallback"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
||||||
|
@ -1652,7 +1416,7 @@ namespace OpenTK.Graphics.OpenGL
|
||||||
IntPtr userParam);
|
IntPtr userParam);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the signature of a debug callback for
|
/// Defines the signature of a debug callback for
|
||||||
/// <see cref="GL.Khr.DebugMessageCallback"/>.
|
/// <see cref="GL.Khr.DebugMessageCallback"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
/// <param name="source">The <see cref="DebugSource"/> for this debug message.</param>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -37,7 +37,7 @@ using OpenTK.Platform;
|
||||||
namespace OpenTK
|
namespace OpenTK
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the interface for a native window.
|
/// Defines the interface for a native window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface INativeWindow : IDisposable
|
public interface INativeWindow : IDisposable
|
||||||
{
|
{
|
||||||
|
@ -50,32 +50,32 @@ namespace OpenTK
|
||||||
/// Gets or sets the title of the window.
|
/// Gets or sets the title of the window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
string Title { get; set; }
|
string Title { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a System.Boolean that indicates whether this window has input focus.
|
/// Gets a System.Boolean that indicates whether this window has input focus.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
bool Focused { get; }
|
bool Focused { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a System.Boolean that indicates whether the window is visible.
|
/// Gets or sets a System.Boolean that indicates whether the window is visible.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
bool Visible { get; set; }
|
bool Visible { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a System.Boolean that indicates whether the window has been created and has not been destroyed.
|
/// Gets a System.Boolean that indicates whether the window has been created and has not been destroyed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
bool Exists { get; }
|
bool Exists { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the <see cref="OpenTK.Platform.IWindowInfo"/> for this window.
|
/// Gets the <see cref="OpenTK.Platform.IWindowInfo"/> for this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
IWindowInfo WindowInfo { get; }
|
IWindowInfo WindowInfo { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="OpenTK.WindowState"/> for this window.
|
/// Gets or sets the <see cref="OpenTK.WindowState"/> for this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
WindowState WindowState { get; set; }
|
WindowState WindowState { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="OpenTK.WindowBorder"/> for this window.
|
/// Gets or sets the <see cref="OpenTK.WindowBorder"/> for this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -86,54 +86,48 @@ namespace OpenTK
|
||||||
/// External bounds include the title bar, borders and drawing area of the window.
|
/// External bounds include the title bar, borders and drawing area of the window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Rectangle Bounds { get; set; }
|
Rectangle Bounds { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a <see cref="System.Drawing.Point"/> structure that contains the location of this window on the desktop.
|
/// Gets or sets a <see cref="System.Drawing.Point"/> structure that contains the location of this window on the desktop.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Point Location { get; set; }
|
Point Location { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a <see cref="System.Drawing.Size"/> structure that contains the external size of this window.
|
/// Gets or sets a <see cref="System.Drawing.Size"/> structure that contains the external size of this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Size Size { get; set; }
|
Size Size { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the horizontal location of this window on the desktop.
|
/// Gets or sets the horizontal location of this window on the desktop.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
int X { get; set; }
|
int X { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the vertical location of this window on the desktop.
|
/// Gets or sets the vertical location of this window on the desktop.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
int Y { get; set; }
|
int Y { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the external width of this window.
|
/// Gets or sets the external width of this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
int Width { get; set; }
|
int Width { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the external height of this window.
|
/// Gets or sets the external height of this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
int Height { get; set; }
|
int Height { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a <see cref="System.Drawing.Rectangle"/> structure that contains the internal bounds of this window, in client coordinates.
|
/// Gets or sets a <see cref="System.Drawing.Rectangle"/> structure that contains the internal bounds of this window, in client coordinates.
|
||||||
/// The internal bounds include the drawing area of the window, but exclude the titlebar and window borders.
|
/// The internal bounds include the drawing area of the window, but exclude the titlebar and window borders.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Rectangle ClientRectangle { get; set; }
|
Rectangle ClientRectangle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a <see cref="System.Drawing.Size"/> structure that contains the internal size this window.
|
/// Gets or sets a <see cref="System.Drawing.Size"/> structure that contains the internal size this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Size ClientSize { get; set; }
|
Size ClientSize { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This property is deprecated and should not be used.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use OpenTK.Input.Mouse/Keyboard/Joystick/GamePad instead.")]
|
|
||||||
OpenTK.Input.IInputDriver InputDriver { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="OpenTK.MouseCursor"/> for this window.
|
/// Gets or sets the <see cref="OpenTK.MouseCursor"/> for this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -154,14 +148,14 @@ namespace OpenTK
|
||||||
/// Closes this window.
|
/// Closes this window.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void Close();
|
void Close();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Processes pending window events.
|
/// Processes pending window events.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ProcessEvents();
|
void ProcessEvents();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Transforms the specified point from screen to client coordinates.
|
/// Transforms the specified point from screen to client coordinates.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="point">
|
/// <param name="point">
|
||||||
/// A <see cref="System.Drawing.Point"/> to transform.
|
/// A <see cref="System.Drawing.Point"/> to transform.
|
||||||
|
@ -170,9 +164,9 @@ namespace OpenTK
|
||||||
/// The point transformed to client coordinates.
|
/// The point transformed to client coordinates.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
Point PointToClient(Point point);
|
Point PointToClient(Point point);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Transforms the specified point from client to screen coordinates.
|
/// Transforms the specified point from client to screen coordinates.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="point">
|
/// <param name="point">
|
||||||
/// A <see cref="System.Drawing.Point"/> to transform.
|
/// A <see cref="System.Drawing.Point"/> to transform.
|
||||||
|
@ -183,32 +177,32 @@ namespace OpenTK
|
||||||
Point PointToScreen(Point point);
|
Point PointToScreen(Point point);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs whenever the window is moved.
|
/// Occurs whenever the window is moved.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<EventArgs> Move;
|
event EventHandler<EventArgs> Move;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs whenever the window is resized.
|
/// Occurs whenever the window is resized.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<EventArgs> Resize;
|
event EventHandler<EventArgs> Resize;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when the window is about to close.
|
/// Occurs when the window is about to close.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<CancelEventArgs> Closing;
|
event EventHandler<CancelEventArgs> Closing;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs after the window has closed.
|
/// Occurs after the window has closed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<EventArgs> Closed;
|
event EventHandler<EventArgs> Closed;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when the window is disposed.
|
/// Occurs when the window is disposed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<EventArgs> Disposed;
|
event EventHandler<EventArgs> Disposed;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when the <see cref="Icon"/> property of the window changes.
|
/// Occurs when the <see cref="Icon"/> property of the window changes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<EventArgs> IconChanged;
|
event EventHandler<EventArgs> IconChanged;
|
||||||
|
|
||||||
|
@ -246,7 +240,7 @@ namespace OpenTK
|
||||||
/// Occurs whenever a character is typed.
|
/// Occurs whenever a character is typed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<KeyPressEventArgs> KeyPress;
|
event EventHandler<KeyPressEventArgs> KeyPress;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs whenever a keyboard key is released.
|
/// Occurs whenever a keyboard key is released.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
#region --- License ---
|
|
||||||
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
|
|
||||||
* See license.txt for license info
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace OpenTK.Input
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Defines the interface for an input driver.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("This interface has been replaced by OpenTK.Input.Keyboard, Mouse, Joystick and GamePad.")]
|
|
||||||
public interface IInputDriver : IKeyboardDriver, IMouseDriver, IJoystickDriver, IDisposable
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Updates the state of the driver.
|
|
||||||
/// </summary>
|
|
||||||
void Poll();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
#region License
|
|
||||||
//
|
|
||||||
// The Open Toolkit Library License
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2008 the Open Toolkit library, except where noted.
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace OpenTK.Input
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Defines the interface for JoystickDevice drivers.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete]
|
|
||||||
public interface IJoystickDriver
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the list of available JoystickDevices.
|
|
||||||
/// </summary>
|
|
||||||
IList<JoystickDevice> Joysticks { get; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
#region --- License ---
|
|
||||||
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
|
|
||||||
* See license.txt for license info
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace OpenTK.Input
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Defines the interface for KeyboardDevice drivers.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete]
|
|
||||||
public interface IKeyboardDriver
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the list of available KeyboardDevices.
|
|
||||||
/// </summary>
|
|
||||||
IList<KeyboardDevice> Keyboard { get; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
#region --- License ---
|
|
||||||
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
|
|
||||||
* See license.txt for license info
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace OpenTK.Input
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Defines the interface for MouseDevice drivers.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete]
|
|
||||||
public interface IMouseDriver
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the list of available MouseDevices.
|
|
||||||
/// </summary>
|
|
||||||
IList<MouseDevice> Mouse { get; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -75,7 +75,7 @@ namespace OpenTK.Input
|
||||||
#region public InputDeviceType DeviceType
|
#region public InputDeviceType DeviceType
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a value indicating the InputDeviceType of this InputDevice.
|
/// Gets a value indicating the InputDeviceType of this InputDevice.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public InputDeviceType DeviceType
|
public InputDeviceType DeviceType
|
||||||
{
|
{
|
||||||
|
@ -303,67 +303,5 @@ namespace OpenTK.Input
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region COMPAT_REV1519
|
|
||||||
|
|
||||||
#if COMPAT_REV1519
|
|
||||||
|
|
||||||
#region public int WheelDelta
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets an integer representing the relative wheel movement.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("WheelDelta is only defined for a single WheelChanged event. Use the OpenTK.Input.MouseWheelEventArgs::Delta property with the OpenTK.Input.MouseDevice::WheelChanged event.", false)]
|
|
||||||
public int WheelDelta
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
int result = (int)Math.Round(state.WheelPrecise - wheel_last_accessed, MidpointRounding.AwayFromZero);
|
|
||||||
wheel_last_accessed = state.Wheel;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region public int XDelta
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets an integer representing the relative x movement of the pointer, in pixel coordinates.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("XDelta is only defined for a single Move event. Use the OpenTK.Input.MouseMoveEventArgs::Delta property with the OpenTK.Input.MouseDevice::Move event.", false)]
|
|
||||||
public int XDelta
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
int result = state.X - pos_last_accessed.X;
|
|
||||||
pos_last_accessed.X = state.X;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region public int YDelta
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets an integer representing the relative y movement of the pointer, in pixel coordinates.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("YDelta is only defined for a single Move event. Use the OpenTK.Input.MouseMoveEventArgs::Delta property with the OpenTK.Input.MouseDevice::Move event.", false)]
|
|
||||||
public int YDelta
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
int result = state.Y - pos_last_accessed.Y;
|
|
||||||
pos_last_accessed.Y = state.Y;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,371 +0,0 @@
|
||||||
#region --- License ---
|
|
||||||
/* Licensed under the MIT/X11 license.
|
|
||||||
* Copyright (c) 2006-2008 the OpenTK Team.
|
|
||||||
* This notice may not be removed from any source distribution.
|
|
||||||
* See license.txt for licensing detailed licensing details.
|
|
||||||
*
|
|
||||||
* Contributions by Andy Gill, James Talton and Georg Wächter.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace OpenTK
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Contains mathematical functions for the OpenTK.Math toolkit.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use OpenTK.MathHelper instead.")]
|
|
||||||
public static class Functions
|
|
||||||
{
|
|
||||||
#region NextPowerOfTwo
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns the next power of two that is larger than the specified number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The specified number.</param>
|
|
||||||
/// <returns>The next power of two.</returns>
|
|
||||||
public static long NextPowerOfTwo(long n)
|
|
||||||
{
|
|
||||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
|
||||||
return (long)System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns the next power of two that is larger than the specified number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The specified number.</param>
|
|
||||||
/// <returns>The next power of two.</returns>
|
|
||||||
public static int NextPowerOfTwo(int n)
|
|
||||||
{
|
|
||||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
|
||||||
return (int)System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns the next power of two that is larger than the specified number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The specified number.</param>
|
|
||||||
/// <returns>The next power of two.</returns>
|
|
||||||
public static float NextPowerOfTwo(float n)
|
|
||||||
{
|
|
||||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
|
||||||
return (float)System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns the next power of two that is larger than the specified number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The specified number.</param>
|
|
||||||
/// <returns>The next power of two.</returns>
|
|
||||||
public static double NextPowerOfTwo(double n)
|
|
||||||
{
|
|
||||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
|
||||||
return System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Factorial
|
|
||||||
|
|
||||||
/// <summary>Calculates the factorial of a given natural number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The number.</param>
|
|
||||||
/// <returns>n!</returns>
|
|
||||||
public static long Factorial(int n)
|
|
||||||
{
|
|
||||||
long result = 1;
|
|
||||||
|
|
||||||
for (; n > 1; n--)
|
|
||||||
result *= n;
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region BinomialCoefficient
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Calculates the binomial coefficient <paramref name="n"/> above <paramref name="k"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="n">The n.</param>
|
|
||||||
/// <param name="k">The k.</param>
|
|
||||||
/// <returns>n! / (k! * (n - k)!)</returns>
|
|
||||||
public static long BinomialCoefficient(int n, int k)
|
|
||||||
{
|
|
||||||
return Factorial(n) / (Factorial(k) * Factorial(n - k));
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region InverseSqrtFast
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an approximation of the inverse square root of left number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">A number.</param>
|
|
||||||
/// <returns>An approximation of the inverse square root of the specified number, with an upper error bound of 0.001</returns>
|
|
||||||
/// <remarks>
|
|
||||||
/// This is an improved implementation of the the method known as Carmack's inverse square root
|
|
||||||
/// which is found in the Quake III source code. This implementation comes from
|
|
||||||
/// http://www.codemaestro.com/reviews/review00000105.html. For the history of this method, see
|
|
||||||
/// http://www.beyond3d.com/content/articles/8/
|
|
||||||
/// </remarks>
|
|
||||||
public static float InverseSqrtFast(float x)
|
|
||||||
{
|
|
||||||
unsafe
|
|
||||||
{
|
|
||||||
float xhalf = 0.5f * x;
|
|
||||||
int i = *(int*)&x; // Read bits as integer.
|
|
||||||
i = 0x5f375a86 - (i >> 1); // Make an initial guess for Newton-Raphson approximation
|
|
||||||
x = *(float*)&i; // Convert bits back to float
|
|
||||||
x = x * (1.5f - xhalf * x * x); // Perform left single Newton-Raphson step.
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an approximation of the inverse square root of left number.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">A number.</param>
|
|
||||||
/// <returns>An approximation of the inverse square root of the specified number, with an upper error bound of 0.001</returns>
|
|
||||||
/// <remarks>
|
|
||||||
/// This is an improved implementation of the the method known as Carmack's inverse square root
|
|
||||||
/// which is found in the Quake III source code. This implementation comes from
|
|
||||||
/// http://www.codemaestro.com/reviews/review00000105.html. For the history of this method, see
|
|
||||||
/// http://www.beyond3d.com/content/articles/8/
|
|
||||||
/// </remarks>
|
|
||||||
public static double InverseSqrtFast(double x)
|
|
||||||
{
|
|
||||||
return InverseSqrtFast((float)x);
|
|
||||||
// TODO: The following code is wrong. Fix it, to improve precision.
|
|
||||||
#if false
|
|
||||||
unsafe
|
|
||||||
{
|
|
||||||
double xhalf = 0.5f * x;
|
|
||||||
int i = *(int*)&x; // Read bits as integer.
|
|
||||||
i = 0x5f375a86 - (i >> 1); // Make an initial guess for Newton-Raphson approximation
|
|
||||||
x = *(float*)&i; // Convert bits back to float
|
|
||||||
x = x * (1.5f - xhalf * x * x); // Perform left single Newton-Raphson step.
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region DegreesToRadians
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Convert degrees to radians
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="degrees">An angle in degrees</param>
|
|
||||||
/// <returns>The angle expressed in radians</returns>
|
|
||||||
public static float DegreesToRadians(float degrees)
|
|
||||||
{
|
|
||||||
const float degToRad = (float)System.Math.PI / 180.0f;
|
|
||||||
return degrees * degToRad;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Convert radians to degrees
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="radians">An angle in radians</param>
|
|
||||||
/// <returns>The angle expressed in degrees</returns>
|
|
||||||
public static float RadiansToDegrees(float radians)
|
|
||||||
{
|
|
||||||
const float radToDeg = 180.0f / (float)System.Math.PI;
|
|
||||||
return radians * radToDeg;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mathematical constants
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly float PIF = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930382f;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly float RTODF = 180.0f / PIF;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly float DTORF = PIF / 180.0f;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly double PI = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930382d;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly double RTOD = 180.0d / PIF;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete. Do not use.
|
|
||||||
/// </summary>
|
|
||||||
public static readonly double DTOR = PIF / 180.0d;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Swap
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Swaps two float values.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">The first value.</param>
|
|
||||||
/// <param name="b">The second value.</param>
|
|
||||||
public static void Swap(ref double a, ref double b)
|
|
||||||
{
|
|
||||||
double temp = a;
|
|
||||||
a = b;
|
|
||||||
b = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Swaps two float values.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">The first value.</param>
|
|
||||||
/// <param name="b">The second value.</param>
|
|
||||||
public static void Swap(ref float a, ref float b)
|
|
||||||
{
|
|
||||||
float temp = a;
|
|
||||||
a = b;
|
|
||||||
b = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
|
|
||||||
#if false
|
|
||||||
public static partial class Math
|
|
||||||
{
|
|
||||||
#region --- Vectors ---
|
|
||||||
|
|
||||||
#region --- Addition ---
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector2 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector2 Add(Vector2 left, Vector2 right)
|
|
||||||
{
|
|
||||||
return new Vector2(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector3 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector3 Add(Vector2 left, Vector3 right)
|
|
||||||
{
|
|
||||||
return new Vector3(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector4 to the current Vector3. W-coordinate remains unaffected.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector4 containing the result of the addition.</returns>
|
|
||||||
public static Vector4 Add(Vector2 left, Vector4 right)
|
|
||||||
{
|
|
||||||
return new Vector4(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector2 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector3 Add(Vector3 left, Vector2 right)
|
|
||||||
{
|
|
||||||
return new Vector3(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector3 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector3 Add(Vector3 left, Vector3 right)
|
|
||||||
{
|
|
||||||
return new Vector3(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector4 to the current Vector3. W-coordinate remains unaffected.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector4 containing the result of the addition.</returns>
|
|
||||||
public static Vector4 Add(Vector3 left, Vector4 right)
|
|
||||||
{
|
|
||||||
return new Vector4(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector2 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector4 Add(Vector4 left, Vector2 right)
|
|
||||||
{
|
|
||||||
return new Vector4(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector3 to the current Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector3 containing the result of the addition.</returns>
|
|
||||||
public static Vector4 Add(Vector4 left, Vector3 right)
|
|
||||||
{
|
|
||||||
return new Vector4(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds the given Vector4 to the current Vector3. W-coordinate remains unaffected.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the addition.</param>
|
|
||||||
/// <returns>A new Vector4 containing the result of the addition.</returns>
|
|
||||||
public static Vector4 Add(Vector4 left, Vector4 right)
|
|
||||||
{
|
|
||||||
return new Vector4(left).Add(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region --- Subtraction ---
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region --- Cross ---
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Computes the cross product between the current and the given Vector3. The current Vector3 is set to the result of the computation.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="right">The right operand of the cross product</param>
|
|
||||||
/// <returns>The current </returns>
|
|
||||||
public static Vector3 Cross(Vector3 left, Vector3 right)
|
|
||||||
{
|
|
||||||
return new Vector3(left).Cross(right);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
|
@ -56,7 +56,7 @@ namespace OpenTK
|
||||||
/// Bottom row of the matrix.
|
/// Bottom row of the matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Vector4 Row3;
|
public Vector4 Row3;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The identity matrix.
|
/// The identity matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -284,7 +284,7 @@ namespace OpenTK
|
||||||
/// Gets or sets the value at row 4, column 4 of this instance.
|
/// Gets or sets the value at row 4, column 4 of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float M44 { get { return Row3.W; } set { Row3.W = value; } }
|
public float M44 { get { return Row3.W; } set { Row3.W = value; } }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the values along the main diagonal of the matrix.
|
/// Gets or sets the values along the main diagonal of the matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -525,9 +525,9 @@ namespace OpenTK
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
|
||||||
#region CreateFromAxisAngle
|
#region CreateFromAxisAngle
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Build a rotation matrix from the specified axis/angle rotation.
|
/// Build a rotation matrix from the specified axis/angle rotation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -571,7 +571,7 @@ namespace OpenTK
|
||||||
result.Row2.W = 0;
|
result.Row2.W = 0;
|
||||||
result.Row3 = Vector4.UnitW;
|
result.Row3 = Vector4.UnitW;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Build a rotation matrix from the specified axis/angle rotation.
|
/// Build a rotation matrix from the specified axis/angle rotation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -584,7 +584,7 @@ namespace OpenTK
|
||||||
CreateFromAxisAngle(axis, angle, out result);
|
CreateFromAxisAngle(axis, angle, out result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region CreateFromQuaternion
|
#region CreateFromQuaternion
|
||||||
|
@ -927,9 +927,9 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region CreatePerspectiveFieldOfView
|
#region CreatePerspectiveFieldOfView
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a perspective projection matrix.
|
/// Creates a perspective projection matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -958,7 +958,7 @@ namespace OpenTK
|
||||||
throw new ArgumentOutOfRangeException("zNear");
|
throw new ArgumentOutOfRangeException("zNear");
|
||||||
if (zFar <= 0)
|
if (zFar <= 0)
|
||||||
throw new ArgumentOutOfRangeException("zFar");
|
throw new ArgumentOutOfRangeException("zFar");
|
||||||
|
|
||||||
float yMax = zNear * (float)System.Math.Tan(0.5f * fovy);
|
float yMax = zNear * (float)System.Math.Tan(0.5f * fovy);
|
||||||
float yMin = -yMax;
|
float yMin = -yMax;
|
||||||
float xMin = yMin * aspect;
|
float xMin = yMin * aspect;
|
||||||
|
@ -966,7 +966,7 @@ namespace OpenTK
|
||||||
|
|
||||||
CreatePerspectiveOffCenter(xMin, xMax, yMin, yMax, zNear, zFar, out result);
|
CreatePerspectiveOffCenter(xMin, xMax, yMin, yMax, zNear, zFar, out result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a perspective projection matrix.
|
/// Creates a perspective projection matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -991,11 +991,11 @@ namespace OpenTK
|
||||||
CreatePerspectiveFieldOfView(fovy, aspect, zNear, zFar, out result);
|
CreatePerspectiveFieldOfView(fovy, aspect, zNear, zFar, out result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region CreatePerspectiveOffCenter
|
#region CreatePerspectiveOffCenter
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates an perspective projection matrix.
|
/// Creates an perspective projection matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1022,7 +1022,7 @@ namespace OpenTK
|
||||||
throw new ArgumentOutOfRangeException("zFar");
|
throw new ArgumentOutOfRangeException("zFar");
|
||||||
if (zNear >= zFar)
|
if (zNear >= zFar)
|
||||||
throw new ArgumentOutOfRangeException("zNear");
|
throw new ArgumentOutOfRangeException("zNear");
|
||||||
|
|
||||||
float x = (2.0f * zNear) / (right - left);
|
float x = (2.0f * zNear) / (right - left);
|
||||||
float y = (2.0f * zNear) / (top - bottom);
|
float y = (2.0f * zNear) / (top - bottom);
|
||||||
float a = (right + left) / (right - left);
|
float a = (right + left) / (right - left);
|
||||||
|
@ -1047,7 +1047,7 @@ namespace OpenTK
|
||||||
result.Row3.Z = d;
|
result.Row3.Z = d;
|
||||||
result.Row3.W = 0;
|
result.Row3.W = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates an perspective projection matrix.
|
/// Creates an perspective projection matrix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1075,187 +1075,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete Functions
|
|
||||||
|
|
||||||
#region Translation Functions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Builds a translation matrix.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trans">The translation vector.</param>
|
|
||||||
/// <returns>A new Matrix4 instance.</returns>
|
|
||||||
[Obsolete("Use CreateTranslation instead.")]
|
|
||||||
public static Matrix4 Translation(Vector3 trans)
|
|
||||||
{
|
|
||||||
return CreateTranslation(trans);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a translation matrix with the given translation
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">X translation</param>
|
|
||||||
/// <param name="y">Y translation</param>
|
|
||||||
/// <param name="z">Z translation</param>
|
|
||||||
/// <returns>A Translation matrix</returns>
|
|
||||||
[Obsolete("Use CreateTranslation instead.")]
|
|
||||||
public static Matrix4 Translation(float x, float y, float z)
|
|
||||||
{
|
|
||||||
return CreateTranslation(x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Rotation Functions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix that rotates about the x-axis
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="angle">angle in radians to rotate counter-clockwise around the x-axis</param>
|
|
||||||
/// <returns>A rotation matrix</returns>
|
|
||||||
[Obsolete("Use CreateRotationX instead.")]
|
|
||||||
public static Matrix4 RotateX(float angle)
|
|
||||||
{
|
|
||||||
return CreateRotationX(angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix that rotates about the y-axis
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="angle">angle in radians to rotate counter-clockwise around the y-axis</param>
|
|
||||||
/// <returns>A rotation matrix</returns>
|
|
||||||
[Obsolete("Use CreateRotationY instead.")]
|
|
||||||
public static Matrix4 RotateY(float angle)
|
|
||||||
{
|
|
||||||
return CreateRotationY(angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix that rotates about the z-axis
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="angle">angle in radians to rotate counter-clockwise around the z-axis</param>
|
|
||||||
/// <returns>A rotation matrix</returns>
|
|
||||||
[Obsolete("Use CreateRotationZ instead.")]
|
|
||||||
public static Matrix4 RotateZ(float angle)
|
|
||||||
{
|
|
||||||
return CreateRotationZ(angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix to rotate about the given axis
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="axis">the axis to rotate about</param>
|
|
||||||
/// <param name="angle">angle in radians to rotate counter-clockwise (looking in the direction of the given axis)</param>
|
|
||||||
/// <returns>A rotation matrix</returns>
|
|
||||||
[Obsolete("Use CreateFromAxisAngle instead.")]
|
|
||||||
public static Matrix4 Rotate(Vector3 axis, float angle)
|
|
||||||
{
|
|
||||||
return CreateFromAxisAngle(axis, angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix from a quaternion
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="q">the quaternion</param>
|
|
||||||
/// <returns>A rotation matrix</returns>
|
|
||||||
[Obsolete("Use CreateFromQuaternion instead.")]
|
|
||||||
public static Matrix4 Rotate(Quaternion q)
|
|
||||||
{
|
|
||||||
return CreateFromQuaternion(q);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Scale Functions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a scaling matrix
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="scale">Single scale factor for x,y and z axes</param>
|
|
||||||
/// <returns>A scaling matrix</returns>
|
|
||||||
[Obsolete("Use CreateScale instead.")]
|
|
||||||
public static Matrix4 Scale(float scale)
|
|
||||||
{
|
|
||||||
return Scale(scale, scale, scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a scaling matrix
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="scale">Scale factors for x,y and z axes</param>
|
|
||||||
/// <returns>A scaling matrix</returns>
|
|
||||||
[Obsolete("Use CreateScale instead.")]
|
|
||||||
public static Matrix4 Scale(Vector3 scale)
|
|
||||||
{
|
|
||||||
return Scale(scale.X, scale.Y, scale.Z);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a scaling matrix
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">Scale factor for x-axis</param>
|
|
||||||
/// <param name="y">Scale factor for y-axis</param>
|
|
||||||
/// <param name="z">Scale factor for z-axis</param>
|
|
||||||
/// <returns>A scaling matrix</returns>
|
|
||||||
[Obsolete("Use CreateScale instead.")]
|
|
||||||
public static Matrix4 Scale(float x, float y, float z)
|
|
||||||
{
|
|
||||||
Matrix4 result;
|
|
||||||
result.Row0 = Vector4.UnitX * x;
|
|
||||||
result.Row1 = Vector4.UnitY * y;
|
|
||||||
result.Row2 = Vector4.UnitZ * z;
|
|
||||||
result.Row3 = Vector4.UnitW;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Camera Helper Functions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a projection matrix
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="left">Left edge of the view frustum</param>
|
|
||||||
/// <param name="right">Right edge of the view frustum</param>
|
|
||||||
/// <param name="bottom">Bottom edge of the view frustum</param>
|
|
||||||
/// <param name="top">Top edge of the view frustum</param>
|
|
||||||
/// <param name="near">Distance to the near clip plane</param>
|
|
||||||
/// <param name="far">Distance to the far clip plane</param>
|
|
||||||
/// <returns>A projection matrix that transforms camera space to raster space</returns>
|
|
||||||
[Obsolete("Use CreatePerspectiveOffCenter instead.")]
|
|
||||||
public static Matrix4 Frustum(float left, float right, float bottom, float top, float near, float far)
|
|
||||||
{
|
|
||||||
float invRL = 1.0f / (right - left);
|
|
||||||
float invTB = 1.0f / (top - bottom);
|
|
||||||
float invFN = 1.0f / (far - near);
|
|
||||||
return new Matrix4(new Vector4(2.0f * near * invRL, 0.0f, 0.0f, 0.0f),
|
|
||||||
new Vector4(0.0f, 2.0f * near * invTB, 0.0f, 0.0f),
|
|
||||||
new Vector4((right + left) * invRL, (top + bottom) * invTB, -(far + near) * invFN, -1.0f),
|
|
||||||
new Vector4(0.0f, 0.0f, -2.0f * far * near * invFN, 0.0f));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a projection matrix
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="fovy">Angle of the field of view in the y direction (in radians)</param>
|
|
||||||
/// <param name="aspect">Aspect ratio of the view (width / height)</param>
|
|
||||||
/// <param name="near">Distance to the near clip plane</param>
|
|
||||||
/// <param name="far">Distance to the far clip plane</param>
|
|
||||||
/// <returns>A projection matrix that transforms camera space to raster space</returns>
|
|
||||||
[Obsolete("Use CreatePerspectiveFieldOfView instead.")]
|
|
||||||
public static Matrix4 Perspective(float fovy, float aspect, float near, float far)
|
|
||||||
{
|
|
||||||
float yMax = near * (float)System.Math.Tan(0.5f * fovy);
|
|
||||||
float yMin = -yMax;
|
|
||||||
float xMin = yMin * aspect;
|
|
||||||
float xMax = yMax * aspect;
|
|
||||||
|
|
||||||
return Frustum(xMin, xMax, yMin, yMax, near, far);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Camera Helper Functions
|
#region Camera Helper Functions
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1469,9 +1288,9 @@ namespace OpenTK
|
||||||
int[] pivotIdx = { -1, -1, -1, -1 };
|
int[] pivotIdx = { -1, -1, -1, -1 };
|
||||||
|
|
||||||
// convert the matrix to an array for easy looping
|
// convert the matrix to an array for easy looping
|
||||||
float[,] inverse = {{mat.Row0.X, mat.Row0.Y, mat.Row0.Z, mat.Row0.W},
|
float[,] inverse = {{mat.Row0.X, mat.Row0.Y, mat.Row0.Z, mat.Row0.W},
|
||||||
{mat.Row1.X, mat.Row1.Y, mat.Row1.Z, mat.Row1.W},
|
{mat.Row1.X, mat.Row1.Y, mat.Row1.Z, mat.Row1.W},
|
||||||
{mat.Row2.X, mat.Row2.Y, mat.Row2.Z, mat.Row2.W},
|
{mat.Row2.X, mat.Row2.Y, mat.Row2.Z, mat.Row2.W},
|
||||||
{mat.Row3.X, mat.Row3.Y, mat.Row3.Z, mat.Row3.W} };
|
{mat.Row3.X, mat.Row3.Y, mat.Row3.Z, mat.Row3.W} };
|
||||||
int icol = 0;
|
int icol = 0;
|
||||||
int irow = 0;
|
int irow = 0;
|
||||||
|
|
|
@ -53,7 +53,7 @@ namespace OpenTK
|
||||||
/// Bottom row of the matrix
|
/// Bottom row of the matrix
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Vector4d Row3;
|
public Vector4d Row3;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The identity matrix
|
/// The identity matrix
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -958,114 +958,6 @@ namespace OpenTK
|
||||||
CreateFromQuaternion(ref q, out result);
|
CreateFromQuaternion(ref q, out result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix from the specified quaternion.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="q">Quaternion to translate.</param>
|
|
||||||
/// <param name="m">Matrix result.</param>
|
|
||||||
[Obsolete("Use double-precision overload instead")]
|
|
||||||
public static void CreateFromQuaternion(ref Quaternion q,ref Matrix4 m)
|
|
||||||
{
|
|
||||||
m = Matrix4.Identity;
|
|
||||||
|
|
||||||
float X = q.X;
|
|
||||||
float Y = q.Y;
|
|
||||||
float Z = q.Z;
|
|
||||||
float W = q.W;
|
|
||||||
|
|
||||||
float xx = X * X;
|
|
||||||
float xy = X * Y;
|
|
||||||
float xz = X * Z;
|
|
||||||
float xw = X * W;
|
|
||||||
float yy = Y * Y;
|
|
||||||
float yz = Y * Z;
|
|
||||||
float yw = Y * W;
|
|
||||||
float zz = Z * Z;
|
|
||||||
float zw = Z * W;
|
|
||||||
|
|
||||||
m.M11 = 1 - 2 * (yy + zz);
|
|
||||||
m.M21 = 2 * (xy - zw);
|
|
||||||
m.M31 = 2 * (xz + yw);
|
|
||||||
m.M12 = 2 * (xy + zw);
|
|
||||||
m.M22 = 1 - 2 * (xx + zz);
|
|
||||||
m.M32 = 2 * (yz - xw);
|
|
||||||
m.M13 = 2 * (xz - yw);
|
|
||||||
m.M23 = 2 * (yz + xw);
|
|
||||||
m.M33 = 1 - 2 * (xx + yy);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a rotation matrix from the specified quaternion.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="q">Quaternion to translate.</param>
|
|
||||||
/// <returns>A matrix instance.</returns>
|
|
||||||
[Obsolete("Use double-precision overload instead")]
|
|
||||||
public static Matrix4 CreateFromQuaternion(ref Quaternion q)
|
|
||||||
{
|
|
||||||
Matrix4 result = Matrix4.Identity;
|
|
||||||
|
|
||||||
float X = q.X;
|
|
||||||
float Y = q.Y;
|
|
||||||
float Z = q.Z;
|
|
||||||
float W = q.W;
|
|
||||||
|
|
||||||
float xx = X * X;
|
|
||||||
float xy = X * Y;
|
|
||||||
float xz = X * Z;
|
|
||||||
float xw = X * W;
|
|
||||||
float yy = Y * Y;
|
|
||||||
float yz = Y * Z;
|
|
||||||
float yw = Y * W;
|
|
||||||
float zz = Z * Z;
|
|
||||||
float zw = Z * W;
|
|
||||||
|
|
||||||
result.M11 = 1 - 2 * (yy + zz);
|
|
||||||
result.M21 = 2 * (xy - zw);
|
|
||||||
result.M31 = 2 * (xz + yw);
|
|
||||||
result.M12 = 2 * (xy + zw);
|
|
||||||
result.M22 = 1 - 2 * (xx + zz);
|
|
||||||
result.M32 = 2 * (yz - xw);
|
|
||||||
result.M13 = 2 * (xz - yw);
|
|
||||||
result.M23 = 2 * (yz + xw);
|
|
||||||
result.M33 = 1 - 2 * (xx + yy);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Obsolete Functions
|
|
||||||
|
|
||||||
#region Translation Functions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a translation matrix with the given translation
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trans">The vector to translate along</param>
|
|
||||||
/// <returns>A Translation matrix</returns>
|
|
||||||
[Obsolete("Use CreateTranslation instead.")]
|
|
||||||
public static Matrix4d Translation(Vector3d trans)
|
|
||||||
{
|
|
||||||
return Translation(trans.X, trans.Y, trans.Z);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Build a translation matrix with the given translation
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">X translation</param>
|
|
||||||
/// <param name="y">Y translation</param>
|
|
||||||
/// <param name="z">Z translation</param>
|
|
||||||
/// <returns>A Translation matrix</returns>
|
|
||||||
[Obsolete("Use CreateTranslation instead.")]
|
|
||||||
public static Matrix4d Translation(double x, double y, double z)
|
|
||||||
{
|
|
||||||
Matrix4d result = Identity;
|
|
||||||
result.Row3 = new Vector4d(x, y, z, 1.0);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1443,9 +1335,9 @@ namespace OpenTK
|
||||||
int[] pivotIdx = { -1, -1, -1, -1 };
|
int[] pivotIdx = { -1, -1, -1, -1 };
|
||||||
|
|
||||||
// convert the matrix to an array for easy looping
|
// convert the matrix to an array for easy looping
|
||||||
double[,] inverse = {{mat.Row0.X, mat.Row0.Y, mat.Row0.Z, mat.Row0.W},
|
double[,] inverse = {{mat.Row0.X, mat.Row0.Y, mat.Row0.Z, mat.Row0.W},
|
||||||
{mat.Row1.X, mat.Row1.Y, mat.Row1.Z, mat.Row1.W},
|
{mat.Row1.X, mat.Row1.Y, mat.Row1.Z, mat.Row1.W},
|
||||||
{mat.Row2.X, mat.Row2.Y, mat.Row2.Z, mat.Row2.W},
|
{mat.Row2.X, mat.Row2.Y, mat.Row2.Z, mat.Row2.W},
|
||||||
{mat.Row3.X, mat.Row3.Y, mat.Row3.Z, mat.Row3.W} };
|
{mat.Row3.X, mat.Row3.Y, mat.Row3.Z, mat.Row3.W} };
|
||||||
int icol = 0;
|
int icol = 0;
|
||||||
int irow = 0;
|
int irow = 0;
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace OpenTK
|
||||||
/// The X, Y and Z components of this instance.
|
/// The X, Y and Z components of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Vector3 Xyz;
|
public Vector3 Xyz;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The W component of this instance.
|
/// The W component of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -113,19 +113,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
#pragma warning disable 3005 // Identifier differing only in case is not CLS-compliant, compiler bug in Mono 3.4.0
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets an OpenTK.Vector3 with the X, Y and Z components of this instance.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use Xyz property instead.")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
[XmlIgnore]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public Vector3 XYZ { get { return Xyz; } set { Xyz = value; } }
|
|
||||||
|
|
||||||
#pragma warning restore 3005
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the X component of this instance.
|
/// Gets or sets the X component of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -182,7 +169,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// This occurs when the angle is zero.
|
// This occurs when the angle is zero.
|
||||||
// Not a problem: just set an arbitrary normalized axis.
|
// Not a problem: just set an arbitrary normalized axis.
|
||||||
result.Xyz = Vector3.UnitX;
|
result.Xyz = Vector3.UnitX;
|
||||||
}
|
}
|
||||||
|
@ -350,35 +337,7 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mult
|
#region Multiply
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiplies two instances.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="left">The first instance.</param>
|
|
||||||
/// <param name="right">The second instance.</param>
|
|
||||||
/// <returns>A new instance containing the result of the calculation.</returns>
|
|
||||||
[Obsolete("Use Multiply instead.")]
|
|
||||||
public static Quaternion Mult(Quaternion left, Quaternion right)
|
|
||||||
{
|
|
||||||
return new Quaternion(
|
|
||||||
right.W * left.Xyz + left.W * right.Xyz + Vector3.Cross(left.Xyz, right.Xyz),
|
|
||||||
left.W * right.W - Vector3.Dot(left.Xyz, right.Xyz));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiplies two instances.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="left">The first instance.</param>
|
|
||||||
/// <param name="right">The second instance.</param>
|
|
||||||
/// <param name="result">A new instance containing the result of the calculation.</param>
|
|
||||||
[Obsolete("Use Multiply instead.")]
|
|
||||||
public static void Mult(ref Quaternion left, ref Quaternion right, out Quaternion result)
|
|
||||||
{
|
|
||||||
result = new Quaternion(
|
|
||||||
right.W * left.Xyz + left.W * right.Xyz + Vector3.Cross(left.Xyz, right.Xyz),
|
|
||||||
left.W * right.W - Vector3.Dot(left.Xyz, right.Xyz));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiplies two instances.
|
/// Multiplies two instances.
|
||||||
|
@ -662,7 +621,7 @@ namespace OpenTK
|
||||||
#region Slerp
|
#region Slerp
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Do Spherical linear interpolation between two quaternions
|
/// Do Spherical linear interpolation between two quaternions
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="q1">The first quaternion</param>
|
/// <param name="q1">The first quaternion</param>
|
||||||
/// <param name="q2">The second quaternion</param>
|
/// <param name="q2">The second quaternion</param>
|
||||||
|
@ -833,7 +792,7 @@ namespace OpenTK
|
||||||
#region public override bool Equals (object o)
|
#region public override bool Equals (object o)
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares this object instance to another object for equality.
|
/// Compares this object instance to another object for equality.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="other">The other object to be used in the comparison.</param>
|
/// <param name="other">The other object to be used in the comparison.</param>
|
||||||
/// <returns>True if both objects are Quaternions of equal value. Otherwise it returns false.</returns>
|
/// <returns>True if both objects are Quaternions of equal value. Otherwise it returns false.</returns>
|
||||||
|
@ -848,7 +807,7 @@ namespace OpenTK
|
||||||
#region public override int GetHashCode ()
|
#region public override int GetHashCode ()
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provides the hash code for this object.
|
/// Provides the hash code for this object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A hash code formed from the bitwise XOR of this objects members.</returns>
|
/// <returns>A hash code formed from the bitwise XOR of this objects members.</returns>
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
|
@ -868,7 +827,7 @@ namespace OpenTK
|
||||||
#region IEquatable<Quaternion> Members
|
#region IEquatable<Quaternion> Members
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares this Quaternion instance to another Quaternion for equality.
|
/// Compares this Quaternion instance to another Quaternion for equality.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="other">The other Quaternion to be used in the comparison.</param>
|
/// <param name="other">The other Quaternion to be used in the comparison.</param>
|
||||||
/// <returns>True if both instances are equal; false otherwise.</returns>
|
/// <returns>True if both instances are equal; false otherwise.</returns>
|
||||||
|
|
|
@ -45,7 +45,7 @@ namespace OpenTK
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The W component of this instance.
|
/// The W component of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double W;
|
public double W;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -113,19 +113,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
#pragma warning disable 3005 // Identifier differing only in case is not CLS-compliant, compiler bug in Mono 3.4.0
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets an OpenTK.Vector3d with the X, Y and Z components of this instance.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("Use Xyz property instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
[XmlIgnore]
|
|
||||||
public Vector3d XYZ { get { return Xyz; } set { Xyz = value; } }
|
|
||||||
|
|
||||||
#pragma warning restore 3005
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the X component of this instance.
|
/// Gets or sets the X component of this instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -143,7 +130,7 @@ namespace OpenTK
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public double Z { get { return Xyz.Z; } set { Xyz.Z = value; } }
|
public double Z { get { return Xyz.Z; } set { Xyz.Z = value; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
@ -182,7 +169,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// This occurs when the angle is zero.
|
// This occurs when the angle is zero.
|
||||||
// Not a problem: just set an arbitrary normalized axis.
|
// Not a problem: just set an arbitrary normalized axis.
|
||||||
result.Xyz = Vector3d.UnitX;
|
result.Xyz = Vector3d.UnitX;
|
||||||
}
|
}
|
||||||
|
@ -350,35 +337,7 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mult
|
#region Multiply
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiplies two instances.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="left">The first instance.</param>
|
|
||||||
/// <param name="right">The second instance.</param>
|
|
||||||
/// <returns>A new instance containing the result of the calculation.</returns>
|
|
||||||
[Obsolete("Use Multiply instead.")]
|
|
||||||
public static Quaterniond Mult(Quaterniond left, Quaterniond right)
|
|
||||||
{
|
|
||||||
return new Quaterniond(
|
|
||||||
right.W * left.Xyz + left.W * right.Xyz + Vector3d.Cross(left.Xyz, right.Xyz),
|
|
||||||
left.W * right.W - Vector3d.Dot(left.Xyz, right.Xyz));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiplies two instances.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="left">The first instance.</param>
|
|
||||||
/// <param name="right">The second instance.</param>
|
|
||||||
/// <param name="result">A new instance containing the result of the calculation.</param>
|
|
||||||
[Obsolete("Use Multiply instead.")]
|
|
||||||
public static void Mult(ref Quaterniond left, ref Quaterniond right, out Quaterniond result)
|
|
||||||
{
|
|
||||||
result = new Quaterniond(
|
|
||||||
right.W * left.Xyz + left.W * right.Xyz + Vector3d.Cross(left.Xyz, right.Xyz),
|
|
||||||
left.W * right.W - Vector3d.Dot(left.Xyz, right.Xyz));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiplies two instances.
|
/// Multiplies two instances.
|
||||||
|
@ -662,7 +621,7 @@ namespace OpenTK
|
||||||
#region Slerp
|
#region Slerp
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Do Spherical linear interpolation between two quaternions
|
/// Do Spherical linear interpolation between two quaternions
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="q1">The first Quaterniond</param>
|
/// <param name="q1">The first Quaterniond</param>
|
||||||
/// <param name="q2">The second Quaterniond</param>
|
/// <param name="q2">The second Quaterniond</param>
|
||||||
|
@ -727,7 +686,7 @@ namespace OpenTK
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Operators
|
#region Operators
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -833,7 +792,7 @@ namespace OpenTK
|
||||||
#region public override bool Equals (object o)
|
#region public override bool Equals (object o)
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares this object instance to another object for equality.
|
/// Compares this object instance to another object for equality.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="other">The other object to be used in the comparison.</param>
|
/// <param name="other">The other object to be used in the comparison.</param>
|
||||||
/// <returns>True if both objects are Quaternions of equal value. Otherwise it returns false.</returns>
|
/// <returns>True if both objects are Quaternions of equal value. Otherwise it returns false.</returns>
|
||||||
|
@ -848,7 +807,7 @@ namespace OpenTK
|
||||||
#region public override int GetHashCode ()
|
#region public override int GetHashCode ()
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provides the hash code for this object.
|
/// Provides the hash code for this object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A hash code formed from the bitwise XOR of this objects members.</returns>
|
/// <returns>A hash code formed from the bitwise XOR of this objects members.</returns>
|
||||||
|
|
||||||
|
@ -883,7 +842,7 @@ namespace OpenTK
|
||||||
public double Z;
|
public double Z;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
/// <summary>Constructs left Quaterniond that is left copy of the given Quaterniond.</summary>
|
/// <summary>Constructs left Quaterniond that is left copy of the given Quaterniond.</summary>
|
||||||
|
@ -942,11 +901,11 @@ namespace OpenTK
|
||||||
public Quaterniond(ref Matrix4d matrix)
|
public Quaterniond(ref Matrix4d matrix)
|
||||||
{
|
{
|
||||||
double scale = System.Math.Pow(matrix.Determinant, 1.0d/3.0d);
|
double scale = System.Math.Pow(matrix.Determinant, 1.0d/3.0d);
|
||||||
|
|
||||||
W = System.Math.Sqrt(System.Math.Max(0, scale + matrix[0, 0] + matrix[1, 1] + matrix[2, 2])) / 2;
|
W = System.Math.Sqrt(System.Math.Max(0, scale + matrix[0, 0] + matrix[1, 1] + matrix[2, 2])) / 2;
|
||||||
X = System.Math.Sqrt(System.Math.Max(0, scale + matrix[0, 0] - matrix[1, 1] - matrix[2, 2])) / 2;
|
X = System.Math.Sqrt(System.Math.Max(0, scale + matrix[0, 0] - matrix[1, 1] - matrix[2, 2])) / 2;
|
||||||
Y = System.Math.Sqrt(System.Math.Max(0, scale - matrix[0, 0] + matrix[1, 1] - matrix[2, 2])) / 2;
|
Y = System.Math.Sqrt(System.Math.Max(0, scale - matrix[0, 0] + matrix[1, 1] - matrix[2, 2])) / 2;
|
||||||
Z = System.Math.Sqrt(System.Math.Max(0, scale - matrix[0, 0] - matrix[1, 1] + matrix[2, 2])) / 2;
|
Z = System.Math.Sqrt(System.Math.Max(0, scale - matrix[0, 0] - matrix[1, 1] + matrix[2, 2])) / 2;
|
||||||
if( matrix[2,1] - matrix[1,2] < 0 ) X = -X;
|
if( matrix[2,1] - matrix[1,2] < 0 ) X = -X;
|
||||||
if( matrix[0,2] - matrix[2,0] < 0 ) Y = -Y;
|
if( matrix[0,2] - matrix[2,0] < 0 ) Y = -Y;
|
||||||
if( matrix[1,0] - matrix[0,1] < 0 ) Z = -Z;
|
if( matrix[1,0] - matrix[0,1] < 0 ) Z = -Z;
|
||||||
|
@ -1086,7 +1045,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Functions
|
#region Functions
|
||||||
|
|
||||||
public double Modulus
|
public double Modulus
|
||||||
|
@ -1429,7 +1388,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region HashCode
|
#region HashCode
|
||||||
|
|
||||||
/// <summary>Returns the hash code for this instance.</summary>
|
/// <summary>Returns the hash code for this instance.</summary>
|
||||||
|
@ -1441,7 +1400,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region String and Parse
|
#region String and Parse
|
||||||
|
|
||||||
/// <summary>Returns the fully qualified type name of this instance.</summary>
|
/// <summary>Returns the fully qualified type name of this instance.</summary>
|
||||||
|
@ -1466,7 +1425,7 @@ namespace OpenTK
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constants
|
#region Constants
|
||||||
|
|
||||||
/// <summary>A quaterion with all zero components.</summary>
|
/// <summary>A quaterion with all zero components.</summary>
|
||||||
|
@ -1494,7 +1453,7 @@ namespace OpenTK
|
||||||
#region IEquatable<Quaterniond> Members
|
#region IEquatable<Quaterniond> Members
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares this Quaterniond instance to another Quaterniond for equality.
|
/// Compares this Quaterniond instance to another Quaterniond for equality.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="other">The other Quaterniond to be used in the comparison.</param>
|
/// <param name="other">The other Quaterniond to be used in the comparison.</param>
|
||||||
/// <returns>True if both instances are equal; false otherwise.</returns>
|
/// <returns>True if both instances are equal; false otherwise.</returns>
|
||||||
|
|
|
@ -73,39 +73,6 @@ namespace OpenTK
|
||||||
Y = y;
|
Y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructs a new Vector2 from the given Vector2.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="v">The Vector2 to copy components from.</param>
|
|
||||||
[Obsolete]
|
|
||||||
public Vector2(Vector2 v)
|
|
||||||
{
|
|
||||||
X = v.X;
|
|
||||||
Y = v.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructs a new Vector2 from the given Vector3.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="v">The Vector3 to copy components from. Z is discarded.</param>
|
|
||||||
[Obsolete]
|
|
||||||
public Vector2(Vector3 v)
|
|
||||||
{
|
|
||||||
X = v.X;
|
|
||||||
Y = v.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructs a new Vector2 from the given Vector4.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="v">The Vector4 to copy components from. Z and W are discarded.</param>
|
|
||||||
[Obsolete]
|
|
||||||
public Vector2(Vector4 v)
|
|
||||||
{
|
|
||||||
X = v.X;
|
|
||||||
Y = v.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public Members
|
#region Public Members
|
||||||
|
@ -127,81 +94,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector2 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector2 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector2 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector2 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(float f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(float f)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public float Length
|
#region public float Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -329,42 +221,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector2 by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(float sx, float sy)
|
|
||||||
{
|
|
||||||
this.X = X * sx;
|
|
||||||
this.Y = Y * sy;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(Vector2 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(ref Vector2 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
@ -398,105 +254,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static Vector2 Sub(Vector2 a, Vector2 b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static void Sub(ref Vector2 a, ref Vector2 b, out Vector2 result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static Vector2 Mult(Vector2 a, float f)
|
|
||||||
{
|
|
||||||
a.X *= f;
|
|
||||||
a.Y *= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static void Mult(ref Vector2 a, float f, out Vector2 result)
|
|
||||||
{
|
|
||||||
result.X = a.X * f;
|
|
||||||
result.Y = a.Y * f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static Vector2 Div(Vector2 a, float f)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
a.X *= mult;
|
|
||||||
a.Y *= mult;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static void Div(ref Vector2 a, float f, out Vector2 result)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
result.X = a.X * mult;
|
|
||||||
result.Y = a.Y * mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -110,81 +110,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector2d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector2d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector2d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector2d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(double f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(double f)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public double Length
|
#region public double Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -276,145 +201,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector2 by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(double sx, double sy)
|
|
||||||
{
|
|
||||||
X *= sx;
|
|
||||||
Y *= sy;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(Vector2d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(ref Vector2d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Static
|
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static Vector2d Sub(Vector2d a, Vector2d b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static void Sub(ref Vector2d a, ref Vector2d b, out Vector2d result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="d">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static Vector2d Mult(Vector2d a, double d)
|
|
||||||
{
|
|
||||||
a.X *= d;
|
|
||||||
a.Y *= d;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="d">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static void Mult(ref Vector2d a, double d, out Vector2d result)
|
|
||||||
{
|
|
||||||
result.X = a.X * d;
|
|
||||||
result.Y = a.Y * d;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="d">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static Vector2d Div(Vector2d a, double d)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / d;
|
|
||||||
a.X *= mult;
|
|
||||||
a.Y *= mult;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="d">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static void Div(ref Vector2d a, double d, out Vector2d result)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / d;
|
|
||||||
result.X = a.X * mult;
|
|
||||||
result.Y = a.Y * mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -140,87 +140,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector3 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector3 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector3 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector3 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(float f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
this.Z *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(float f)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
this.Z *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public float Length
|
#region public float Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -320,46 +239,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector3 by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
/// <param name="sz">The scale of the Z component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(float sx, float sy, float sz)
|
|
||||||
{
|
|
||||||
this.X = X * sx;
|
|
||||||
this.Y = Y * sy;
|
|
||||||
this.Z = Z * sz;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(Vector3 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(ref Vector3 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
@ -398,111 +277,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static Vector3 Sub(Vector3 a, Vector3 b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
a.Z -= b.Z;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static void Sub(ref Vector3 a, ref Vector3 b, out Vector3 result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
result.Z = a.Z - b.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static Vector3 Mult(Vector3 a, float f)
|
|
||||||
{
|
|
||||||
a.X *= f;
|
|
||||||
a.Y *= f;
|
|
||||||
a.Z *= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static void Mult(ref Vector3 a, float f, out Vector3 result)
|
|
||||||
{
|
|
||||||
result.X = a.X * f;
|
|
||||||
result.Y = a.Y * f;
|
|
||||||
result.Z = a.Z * f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static Vector3 Div(Vector3 a, float f)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
a.X *= mult;
|
|
||||||
a.Y *= mult;
|
|
||||||
a.Z *= mult;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static void Div(ref Vector3 a, float f, out Vector3 result)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
result.X = a.X * mult;
|
|
||||||
result.Y = a.Y * mult;
|
|
||||||
result.Z = a.Z * mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -137,87 +137,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector3d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector3d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector3d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector3d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(double f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
this.Z *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(double f)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
this.Z *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public double Length
|
#region public double Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -318,46 +237,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector3d by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
/// <param name="sz">The scale of the Z component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(double sx, double sy, double sz)
|
|
||||||
{
|
|
||||||
this.X = X * sx;
|
|
||||||
this.Y = Y * sy;
|
|
||||||
this.Z = Z * sz;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public void Scale(Vector3d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
public void Scale(ref Vector3d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
@ -396,111 +275,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static Vector3d Sub(Vector3d a, Vector3d b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
a.Z -= b.Z;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static void Sub(ref Vector3d a, ref Vector3d b, out Vector3d result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
result.Z = a.Z - b.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static Vector3d Mult(Vector3d a, double f)
|
|
||||||
{
|
|
||||||
a.X *= f;
|
|
||||||
a.Y *= f;
|
|
||||||
a.Z *= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static void Mult(ref Vector3d a, double f, out Vector3d result)
|
|
||||||
{
|
|
||||||
result.X = a.X * f;
|
|
||||||
result.Y = a.Y * f;
|
|
||||||
result.Z = a.Z * f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static Vector3d Div(Vector3d a, double f)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
a.X *= mult;
|
|
||||||
a.Y *= mult;
|
|
||||||
a.Z *= mult;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static void Div(ref Vector3d a, double f, out Vector3d result)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
result.X = a.X * mult;
|
|
||||||
result.Y = a.Y * mult;
|
|
||||||
result.Z = a.Z * mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -200,93 +200,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector4 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
this.W += right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector4 right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
this.W += right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector4 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
this.W -= right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector4 right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
this.W -= right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(float f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
this.Z *= f;
|
|
||||||
this.W *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(float f)
|
|
||||||
{
|
|
||||||
float mult = 1.0f / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
this.Z *= mult;
|
|
||||||
this.W *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public float Length
|
#region public float Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -388,157 +301,10 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector4 by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
/// <param name="sz">The scale of the Z component.</param>
|
|
||||||
/// <param name="sw">The scale of the Z component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(float sx, float sy, float sz, float sw)
|
|
||||||
{
|
|
||||||
this.X = X * sx;
|
|
||||||
this.Y = Y * sy;
|
|
||||||
this.Z = Z * sz;
|
|
||||||
this.W = W * sw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(Vector4 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
this.W *= scale.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(ref Vector4 scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
this.W *= scale.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
public static Vector4 Sub(Vector4 a, Vector4 b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
a.Z -= b.Z;
|
|
||||||
a.W -= b.W;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
public static void Sub(ref Vector4 a, ref Vector4 b, out Vector4 result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
result.Z = a.Z - b.Z;
|
|
||||||
result.W = a.W - b.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
public static Vector4 Mult(Vector4 a, float f)
|
|
||||||
{
|
|
||||||
a.X *= f;
|
|
||||||
a.Y *= f;
|
|
||||||
a.Z *= f;
|
|
||||||
a.W *= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
public static void Mult(ref Vector4 a, float f, out Vector4 result)
|
|
||||||
{
|
|
||||||
result.X = a.X * f;
|
|
||||||
result.Y = a.Y * f;
|
|
||||||
result.Z = a.Z * f;
|
|
||||||
result.W = a.W * f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
public static Vector4 Div(Vector4 a, float f)
|
|
||||||
{
|
|
||||||
a.X /= f;
|
|
||||||
a.Y /= f;
|
|
||||||
a.Z /= f;
|
|
||||||
a.W /= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
public static void Div(ref Vector4 a, float f, out Vector4 result)
|
|
||||||
{
|
|
||||||
result.X = a.X / f;
|
|
||||||
result.Y = a.Y / f;
|
|
||||||
result.Z = a.Z / f;
|
|
||||||
result.W = a.W / f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -197,93 +197,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#region Instance
|
#region Instance
|
||||||
|
|
||||||
#region public void Add()
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(Vector4d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
this.W += right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Add the Vector passed as parameter to this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Add() method instead.")]
|
|
||||||
public void Add(ref Vector4d right)
|
|
||||||
{
|
|
||||||
this.X += right.X;
|
|
||||||
this.Y += right.Y;
|
|
||||||
this.Z += right.Z;
|
|
||||||
this.W += right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Add()
|
|
||||||
|
|
||||||
#region public void Sub()
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(Vector4d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
this.W -= right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Subtract the Vector passed as parameter from this instance.</summary>
|
|
||||||
/// <param name="right">Right operand. This parameter is only read from.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public void Sub(ref Vector4d right)
|
|
||||||
{
|
|
||||||
this.X -= right.X;
|
|
||||||
this.Y -= right.Y;
|
|
||||||
this.Z -= right.Z;
|
|
||||||
this.W -= right.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Sub()
|
|
||||||
|
|
||||||
#region public void Mult()
|
|
||||||
|
|
||||||
/// <summary>Multiply this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Mult(double f)
|
|
||||||
{
|
|
||||||
this.X *= f;
|
|
||||||
this.Y *= f;
|
|
||||||
this.Z *= f;
|
|
||||||
this.W *= f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Mult()
|
|
||||||
|
|
||||||
#region public void Div()
|
|
||||||
|
|
||||||
/// <summary>Divide this instance by a scalar.</summary>
|
|
||||||
/// <param name="f">Scalar operand.</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public void Div(double f)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
this.X *= mult;
|
|
||||||
this.Y *= mult;
|
|
||||||
this.Z *= mult;
|
|
||||||
this.W *= mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Div()
|
|
||||||
|
|
||||||
#region public double Length
|
#region public double Length
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -384,165 +297,10 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region public void Scale()
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Scales the current Vector4d by the given amounts.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sx">The scale of the X component.</param>
|
|
||||||
/// <param name="sy">The scale of the Y component.</param>
|
|
||||||
/// <param name="sz">The scale of the Z component.</param>
|
|
||||||
/// <param name="sw">The scale of the Z component.</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(double sx, double sy, double sz, double sw)
|
|
||||||
{
|
|
||||||
this.X = X * sx;
|
|
||||||
this.Y = Y * sy;
|
|
||||||
this.Z = Z * sz;
|
|
||||||
this.W = W * sw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(Vector4d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
this.W *= scale.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Scales this instance by the given parameter.</summary>
|
|
||||||
/// <param name="scale">The scaling of the individual components.</param>
|
|
||||||
[CLSCompliant(false)]
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public void Scale(ref Vector4d scale)
|
|
||||||
{
|
|
||||||
this.X *= scale.X;
|
|
||||||
this.Y *= scale.Y;
|
|
||||||
this.Z *= scale.Z;
|
|
||||||
this.W *= scale.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion public void Scale()
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Static
|
#region Static
|
||||||
|
|
||||||
#region Obsolete
|
|
||||||
|
|
||||||
#region Sub
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <returns>Result of subtraction</returns>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static Vector4d Sub(Vector4d a, Vector4d b)
|
|
||||||
{
|
|
||||||
a.X -= b.X;
|
|
||||||
a.Y -= b.Y;
|
|
||||||
a.Z -= b.Z;
|
|
||||||
a.W -= b.W;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subtract one Vector from another
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">First operand</param>
|
|
||||||
/// <param name="b">Second operand</param>
|
|
||||||
/// <param name="result">Result of subtraction</param>
|
|
||||||
[Obsolete("Use static Subtract() method instead.")]
|
|
||||||
public static void Sub(ref Vector4d a, ref Vector4d b, out Vector4d result)
|
|
||||||
{
|
|
||||||
result.X = a.X - b.X;
|
|
||||||
result.Y = a.Y - b.Y;
|
|
||||||
result.Z = a.Z - b.Z;
|
|
||||||
result.W = a.W - b.W;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mult
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the multiplication</returns>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static Vector4d Mult(Vector4d a, double f)
|
|
||||||
{
|
|
||||||
a.X *= f;
|
|
||||||
a.Y *= f;
|
|
||||||
a.Z *= f;
|
|
||||||
a.W *= f;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Multiply a vector and a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the multiplication</param>
|
|
||||||
[Obsolete("Use static Multiply() method instead.")]
|
|
||||||
public static void Mult(ref Vector4d a, double f, out Vector4d result)
|
|
||||||
{
|
|
||||||
result.X = a.X * f;
|
|
||||||
result.Y = a.Y * f;
|
|
||||||
result.Z = a.Z * f;
|
|
||||||
result.W = a.W * f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Div
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <returns>Result of the division</returns>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static Vector4d Div(Vector4d a, double f)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
a.X *= mult;
|
|
||||||
a.Y *= mult;
|
|
||||||
a.Z *= mult;
|
|
||||||
a.W *= mult;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Divide a vector by a scalar
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="a">Vector operand</param>
|
|
||||||
/// <param name="f">Scalar operand</param>
|
|
||||||
/// <param name="result">Result of the division</param>
|
|
||||||
[Obsolete("Use static Divide() method instead.")]
|
|
||||||
public static void Div(ref Vector4d a, double f, out Vector4d result)
|
|
||||||
{
|
|
||||||
double mult = 1.0 / f;
|
|
||||||
result.X = a.X * mult;
|
|
||||||
result.Y = a.Y * mult;
|
|
||||||
result.Z = a.Z * mult;
|
|
||||||
result.W = a.W * mult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Add
|
#region Add
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -149,7 +149,7 @@ namespace OpenTK
|
||||||
#region PointToClient
|
#region PointToClient
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Transforms the specified point from screen to client coordinates.
|
/// Transforms the specified point from screen to client coordinates.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="point">
|
/// <param name="point">
|
||||||
/// A <see cref="System.Drawing.Point"/> to transform.
|
/// A <see cref="System.Drawing.Point"/> to transform.
|
||||||
|
@ -367,23 +367,6 @@ namespace OpenTK
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region InputDriver
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This property is deprecated.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete]
|
|
||||||
public IInputDriver InputDriver
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
EnsureUndisposed();
|
|
||||||
return implementation.InputDriver;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Location
|
#region Location
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -630,7 +613,7 @@ namespace OpenTK
|
||||||
public event EventHandler<EventArgs> FocusedChanged = delegate { };
|
public event EventHandler<EventArgs> FocusedChanged = delegate { };
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when the <see cref="Icon"/> property of the window changes.
|
/// Occurs when the <see cref="Icon"/> property of the window changes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public event EventHandler<EventArgs> IconChanged = delegate { };
|
public event EventHandler<EventArgs> IconChanged = delegate { };
|
||||||
|
|
||||||
|
@ -658,7 +641,7 @@ namespace OpenTK
|
||||||
/// Occurs whenever the mouse cursor enters the window <see cref="Bounds"/>.
|
/// Occurs whenever the mouse cursor enters the window <see cref="Bounds"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public event EventHandler<EventArgs> MouseEnter = delegate { };
|
public event EventHandler<EventArgs> MouseEnter = delegate { };
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs whenever the mouse cursor leaves the window <see cref="Bounds"/>.
|
/// Occurs whenever the mouse cursor leaves the window <see cref="Bounds"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -224,9 +224,6 @@
|
||||||
<Compile Include="Platform\Utilities.cs">
|
<Compile Include="Platform\Utilities.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Platform\INativeGLWindow.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Platform\DesktopGraphicsContext.cs">
|
<Compile Include="Platform\DesktopGraphicsContext.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -440,15 +437,6 @@
|
||||||
<Compile Include="Input\Key.cs">
|
<Compile Include="Input\Key.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Input\IJoystickDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Input\IMouseDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Input\IInputDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Input\KeyboardDevice.cs">
|
<Compile Include="Input\KeyboardDevice.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -461,9 +449,6 @@
|
||||||
<Compile Include="Input\JoystickDevice.cs">
|
<Compile Include="Input\JoystickDevice.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Input\IKeyboardDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Input\KeyboardKeyEventArgs.cs">
|
<Compile Include="Input\KeyboardKeyEventArgs.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -494,9 +479,6 @@
|
||||||
<Compile Include="Math\Vector3.cs">
|
<Compile Include="Math\Vector3.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Math\Functions.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Math\Matrix4d.cs">
|
<Compile Include="Math\Matrix4d.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -722,7 +704,6 @@
|
||||||
<Compile Include="Input\ConfigurationType.cs" />
|
<Compile Include="Input\ConfigurationType.cs" />
|
||||||
<Compile Include="Input\GamePadConfigurationSource.cs" />
|
<Compile Include="Input\GamePadConfigurationSource.cs" />
|
||||||
<Compile Include="Input\GamePadConfigurationItem.cs" />
|
<Compile Include="Input\GamePadConfigurationItem.cs" />
|
||||||
<Compile Include="Platform\LegacyJoystickDriver.cs" />
|
|
||||||
<Compile Include="Platform\PlatformFactoryBase.cs" />
|
<Compile Include="Platform\PlatformFactoryBase.cs" />
|
||||||
<Compile Include="Input\JoystickHat.cs" />
|
<Compile Include="Input\JoystickHat.cs" />
|
||||||
<Compile Include="Input\HatPosition.cs" />
|
<Compile Include="Input\HatPosition.cs" />
|
||||||
|
@ -742,7 +723,6 @@
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLPixelFormatAttribute.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLPixelFormatAttribute.cs" />
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLProfile.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLProfile.cs" />
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLContextParameter.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSOpenGLContextParameter.cs" />
|
||||||
<Compile Include="Platform\LegacyInputDriver.cs" />
|
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSEventType.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSEventType.cs" />
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSEventModifierMask.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSEventModifierMask.cs" />
|
||||||
<Compile Include="Platform\MacOS\Cocoa\NSTrackingAreaOptions.cs" />
|
<Compile Include="Platform\MacOS\Cocoa\NSTrackingAreaOptions.cs" />
|
||||||
|
@ -822,4 +802,4 @@
|
||||||
</Properties>
|
</Properties>
|
||||||
</MonoDevelop>
|
</MonoDevelop>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
</Project>
|
</Project>
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -192,14 +192,6 @@ namespace OpenTK.Platform
|
||||||
return defaultImplementation.CreateJoystickDriver();
|
return defaultImplementation.CreateJoystickDriver();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
public IJoystickDriver CreateLegacyJoystickDriver()
|
|
||||||
{
|
|
||||||
#pragma warning disable 612,618
|
|
||||||
return defaultImplementation.CreateLegacyJoystickDriver();
|
|
||||||
#pragma warning restore 612,618
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RegisterResource(IDisposable resource)
|
public void RegisterResource(IDisposable resource)
|
||||||
{
|
{
|
||||||
defaultImplementation.RegisterResource(resource);
|
defaultImplementation.RegisterResource(resource);
|
||||||
|
@ -210,9 +202,9 @@ namespace OpenTK.Platform
|
||||||
#region Fields
|
#region Fields
|
||||||
|
|
||||||
static readonly string error_string = "Please, refer to http://www.opentk.com for more information.";
|
static readonly string error_string = "Please, refer to http://www.opentk.com for more information.";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region IPlatformFactory Members
|
#region IPlatformFactory Members
|
||||||
|
|
||||||
public override INativeWindow CreateNativeWindow(int x, int y, int width, int height, string title, GraphicsMode mode, GameWindowFlags options, DisplayDevice device)
|
public override INativeWindow CreateNativeWindow(int x, int y, int width, int height, string title, GraphicsMode mode, GameWindowFlags options, DisplayDevice device)
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
#region --- License ---
|
|
||||||
/* Licensed under the MIT/X11 license.
|
|
||||||
* Copyright (c) 2006-2008 the OpenTK Team.
|
|
||||||
* This notice may not be removed from any source distribution.
|
|
||||||
* See license.txt for licensing detailed licensing details.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
#if !MINIMAL
|
|
||||||
using System.Drawing;
|
|
||||||
#endif
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
using OpenTK.Input;
|
|
||||||
using OpenTK.Graphics;
|
|
||||||
|
|
||||||
namespace OpenTK.Platform
|
|
||||||
{
|
|
||||||
[Obsolete]
|
|
||||||
internal interface INativeGLWindow : IDisposable
|
|
||||||
{
|
|
||||||
void CreateWindow(int width, int height, GraphicsMode mode, int major, int minor, GraphicsContextFlags flags, out IGraphicsContext context);
|
|
||||||
void DestroyWindow();
|
|
||||||
void ProcessEvents();
|
|
||||||
Point PointToClient(Point point);
|
|
||||||
Point PointToScreen(Point point);
|
|
||||||
|
|
||||||
bool Exists { get; }
|
|
||||||
IWindowInfo WindowInfo { get; }
|
|
||||||
|
|
||||||
string Title { get; set; }
|
|
||||||
bool Visible { get; set; }
|
|
||||||
bool IsIdle { get; }
|
|
||||||
IInputDriver InputDriver { get; }
|
|
||||||
WindowState WindowState { get; set; }
|
|
||||||
WindowBorder WindowBorder { get; set; }
|
|
||||||
|
|
||||||
event CreateEvent Create;
|
|
||||||
event DestroyEvent Destroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
internal delegate void CreateEvent(object sender, EventArgs e);
|
|
||||||
[Obsolete]
|
|
||||||
internal delegate void DestroyEvent(object sender, EventArgs e);
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights to
|
// in the Software without restriction, including without limitation the rights to
|
||||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
// 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
|
// the Software, and to permit persons to whom the Software is furnished to do
|
||||||
// so, subject to the following conditions:
|
// so, subject to the following conditions:
|
||||||
|
@ -53,9 +53,6 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
Input.IJoystickDriver2 CreateJoystickDriver();
|
Input.IJoystickDriver2 CreateJoystickDriver();
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
Input.IJoystickDriver CreateLegacyJoystickDriver();
|
|
||||||
|
|
||||||
void RegisterResource(IDisposable resource);
|
void RegisterResource(IDisposable resource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,119 +0,0 @@
|
||||||
#region License
|
|
||||||
//
|
|
||||||
// LegacyInputDriver.cs
|
|
||||||
//
|
|
||||||
// Author:
|
|
||||||
// Stefanos A. <stapostol@gmail.com>
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006-2014 Stefanos Apostolopoulos
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using OpenTK.Input;
|
|
||||||
|
|
||||||
namespace OpenTK.Platform
|
|
||||||
{
|
|
||||||
// IInputDriver implementation to satisfy INativeWindow
|
|
||||||
// while reducing code duplication.
|
|
||||||
[Obsolete]
|
|
||||||
class LegacyInputDriver : IInputDriver
|
|
||||||
{
|
|
||||||
List<KeyboardDevice> dummy_keyboard_list = new List<KeyboardDevice>(1);
|
|
||||||
List<MouseDevice> dummy_mice_list = new List<MouseDevice>(1);
|
|
||||||
|
|
||||||
readonly LegacyJoystickDriver JoystickDriver = new LegacyJoystickDriver();
|
|
||||||
|
|
||||||
internal LegacyInputDriver(INativeWindow window)
|
|
||||||
{
|
|
||||||
if (window == null)
|
|
||||||
throw new ArgumentNullException();
|
|
||||||
|
|
||||||
var mouse = new MouseDevice();
|
|
||||||
mouse.Description = "Standard Mouse";
|
|
||||||
mouse.NumberOfButtons = 3;
|
|
||||||
mouse.NumberOfWheels = 1;
|
|
||||||
dummy_mice_list.Add(mouse);
|
|
||||||
|
|
||||||
var keyboard = new KeyboardDevice();
|
|
||||||
keyboard.Description = "Standard Keyboard";
|
|
||||||
keyboard.NumberOfKeys = 101;
|
|
||||||
keyboard.NumberOfLeds = 3;
|
|
||||||
keyboard.NumberOfFunctionKeys = 12;
|
|
||||||
dummy_keyboard_list.Add(keyboard);
|
|
||||||
|
|
||||||
// Hook mouse events
|
|
||||||
window.MouseDown += mouse.HandleMouseDown;
|
|
||||||
window.MouseUp += mouse.HandleMouseUp;
|
|
||||||
window.MouseMove += mouse.HandleMouseMove;
|
|
||||||
window.MouseWheel += mouse.HandleMouseWheel;
|
|
||||||
|
|
||||||
// Hook keyboard events
|
|
||||||
window.KeyDown += keyboard.HandleKeyDown;
|
|
||||||
window.KeyUp += keyboard.HandleKeyUp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IInputDriver Members
|
|
||||||
|
|
||||||
public void Poll()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IKeyboardDriver Members
|
|
||||||
|
|
||||||
public IList<KeyboardDevice> Keyboard
|
|
||||||
{
|
|
||||||
get { return dummy_keyboard_list; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IMouseDriver Members
|
|
||||||
|
|
||||||
public IList<MouseDevice> Mouse
|
|
||||||
{
|
|
||||||
get { return dummy_mice_list; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IJoystickDriver Members
|
|
||||||
|
|
||||||
public IList<JoystickDevice> Joysticks
|
|
||||||
{
|
|
||||||
get { return JoystickDriver.Joysticks; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IDisposable Members
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,136 +0,0 @@
|
||||||
#region License
|
|
||||||
//
|
|
||||||
// LegacyJoystickDriver.cs
|
|
||||||
//
|
|
||||||
// Author:
|
|
||||||
// Stefanos A. <stapostol@gmail.com>
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006-2014 Stefanos Apostolopoulos
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using OpenTK.Input;
|
|
||||||
|
|
||||||
namespace OpenTK.Platform
|
|
||||||
{
|
|
||||||
[Obsolete]
|
|
||||||
internal class LegacyJoystickDriver : IJoystickDriver
|
|
||||||
{
|
|
||||||
static readonly string ConnectedName = "Connected Joystick";
|
|
||||||
static readonly string DisconnectedName = "Disconnected Joystick";
|
|
||||||
readonly List<JoystickDevice> joysticks = new List<JoystickDevice>();
|
|
||||||
readonly IList<JoystickDevice> joysticks_readonly;
|
|
||||||
|
|
||||||
class LegacyJoystickDevice : JoystickDevice
|
|
||||||
{
|
|
||||||
public LegacyJoystickDevice(int id, int axes, int buttons)
|
|
||||||
: base(id, axes, buttons)
|
|
||||||
{ }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal LegacyJoystickDriver()
|
|
||||||
{
|
|
||||||
joysticks_readonly = joysticks.AsReadOnly();
|
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
joysticks.Add(new LegacyJoystickDevice(i, 0, 0));
|
|
||||||
joysticks[i].Description = DisconnectedName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Poll()
|
|
||||||
{
|
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
JoystickCapabilities caps = Joystick.GetCapabilities(i);
|
|
||||||
if (caps.IsConnected && joysticks[i].Description == DisconnectedName)
|
|
||||||
{
|
|
||||||
// New joystick connected
|
|
||||||
joysticks[i] = new LegacyJoystickDevice(
|
|
||||||
i,
|
|
||||||
caps.AxisCount + 2 * caps.HatCount,
|
|
||||||
caps.ButtonCount);
|
|
||||||
//device.Description = Joystick.GetName(i);
|
|
||||||
joysticks[i].Description = ConnectedName;
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (!caps.IsConnected && joysticks[i].Description != DisconnectedName)
|
|
||||||
{
|
|
||||||
// Joystick disconnected
|
|
||||||
joysticks[i] = new LegacyJoystickDevice(i, 0, 0);
|
|
||||||
joysticks[i].Description = DisconnectedName;
|
|
||||||
}
|
|
||||||
|
|
||||||
JoystickState state = Joystick.GetState(i);
|
|
||||||
for (int axis_index = 0; axis_index < caps.AxisCount; axis_index++)
|
|
||||||
{
|
|
||||||
JoystickAxis axis = JoystickAxis.Axis0 + axis_index;
|
|
||||||
joysticks[i].SetAxis(axis, state.GetAxis(axis));
|
|
||||||
}
|
|
||||||
for (int button_index = 0; button_index < caps.ButtonCount; button_index++)
|
|
||||||
{
|
|
||||||
joysticks[i].SetButton(button_index, state.GetButton(button_index) == ButtonState.Pressed);
|
|
||||||
}
|
|
||||||
for (int hat_index = 0; hat_index < caps.HatCount; hat_index++)
|
|
||||||
{
|
|
||||||
// LegacyJoystickDriver report hats as pairs of axes
|
|
||||||
// Make sure we have enough axes left for this mapping
|
|
||||||
int axis_index = caps.AxisCount + 2 * hat_index;
|
|
||||||
if (axis_index < JoystickState.MaxAxes)
|
|
||||||
{
|
|
||||||
JoystickHat hat = JoystickHat.Hat0 + hat_index;
|
|
||||||
JoystickHatState hat_state = state.GetHat(hat);
|
|
||||||
JoystickAxis axis = JoystickAxis.Axis0 + axis_index;
|
|
||||||
float x = 0;
|
|
||||||
float y = 0;
|
|
||||||
if (hat_state.IsDown)
|
|
||||||
y--;
|
|
||||||
if (hat_state.IsUp)
|
|
||||||
y++;
|
|
||||||
if (hat_state.IsLeft)
|
|
||||||
x--;
|
|
||||||
if (hat_state.IsRight)
|
|
||||||
x++;
|
|
||||||
|
|
||||||
joysticks[i].SetAxis(axis, x);
|
|
||||||
joysticks[i].SetAxis(axis + 1, y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IJoystickDriver Members
|
|
||||||
|
|
||||||
public IList<JoystickDevice> Joysticks
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
Poll();
|
|
||||||
return joysticks_readonly;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -40,10 +40,6 @@ namespace OpenTK.Platform
|
||||||
// Common base class for all INativeWindow implementations
|
// Common base class for all INativeWindow implementations
|
||||||
abstract class NativeWindowBase : INativeWindow
|
abstract class NativeWindowBase : INativeWindow
|
||||||
{
|
{
|
||||||
#pragma warning disable 612,618
|
|
||||||
readonly LegacyInputDriver LegacyInputDriver;
|
|
||||||
#pragma warning restore 612,618
|
|
||||||
|
|
||||||
readonly MouseButtonEventArgs MouseDownArgs = new MouseButtonEventArgs();
|
readonly MouseButtonEventArgs MouseDownArgs = new MouseButtonEventArgs();
|
||||||
readonly MouseButtonEventArgs MouseUpArgs = new MouseButtonEventArgs();
|
readonly MouseButtonEventArgs MouseUpArgs = new MouseButtonEventArgs();
|
||||||
readonly MouseMoveEventArgs MouseMoveArgs = new MouseMoveEventArgs();
|
readonly MouseMoveEventArgs MouseMoveArgs = new MouseMoveEventArgs();
|
||||||
|
@ -62,9 +58,6 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
internal NativeWindowBase()
|
internal NativeWindowBase()
|
||||||
{
|
{
|
||||||
#pragma warning disable 612,618
|
|
||||||
LegacyInputDriver = new LegacyInputDriver(this);
|
|
||||||
#pragma warning restore 612,618
|
|
||||||
MouseState.SetIsConnected(true);
|
MouseState.SetIsConnected(true);
|
||||||
KeyboardState.SetIsConnected(true);
|
KeyboardState.SetIsConnected(true);
|
||||||
PreviousMouseState.SetIsConnected(true);
|
PreviousMouseState.SetIsConnected(true);
|
||||||
|
@ -448,15 +441,6 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
public abstract Size ClientSize { get; set; }
|
public abstract Size ClientSize { get; set; }
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
public virtual IInputDriver InputDriver
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return LegacyInputDriver;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract bool CursorVisible { get; set; }
|
public abstract bool CursorVisible { get; set; }
|
||||||
|
|
||||||
public abstract MouseCursor Cursor { get; set; }
|
public abstract MouseCursor Cursor { get; set; }
|
||||||
|
|
|
@ -78,12 +78,6 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
public abstract IJoystickDriver2 CreateJoystickDriver();
|
public abstract IJoystickDriver2 CreateJoystickDriver();
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
public virtual IJoystickDriver CreateLegacyJoystickDriver()
|
|
||||||
{
|
|
||||||
return new LegacyJoystickDriver();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RegisterResource(IDisposable resource)
|
public void RegisterResource(IDisposable resource)
|
||||||
{
|
{
|
||||||
lock (sync)
|
lock (sync)
|
||||||
|
|
|
@ -222,28 +222,6 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
#region --- Creating a Graphics Context ---
|
#region --- Creating a Graphics Context ---
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates an IGraphicsContext instance for the specified window.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="mode">The GraphicsMode for the GraphicsContext.</param>
|
|
||||||
/// <param name="window">An IWindowInfo instance describing the parent window for this IGraphicsContext.</param>
|
|
||||||
/// <param name="major">The major OpenGL version number for this IGraphicsContext.</param>
|
|
||||||
/// <param name="minor">The minor OpenGL version number for this IGraphicsContext.</param>
|
|
||||||
/// <param name="flags">A bitwise collection of GraphicsContextFlags with specific options for this IGraphicsContext.</param>
|
|
||||||
/// <returns>A new IGraphicsContext instance.</returns>
|
|
||||||
[Obsolete("Call new OpenTK.Graphics.GraphicsContext() directly, instead.")]
|
|
||||||
public static IGraphicsContext CreateGraphicsContext(
|
|
||||||
GraphicsMode mode, IWindowInfo window,
|
|
||||||
int major, int minor, GraphicsContextFlags flags)
|
|
||||||
{
|
|
||||||
GraphicsContext context = new GraphicsContext(mode, window, major, minor, flags);
|
|
||||||
context.MakeCurrent(window);
|
|
||||||
|
|
||||||
(context as IGraphicsContextInternal).LoadAll();
|
|
||||||
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region CreateX11WindowInfo
|
#region CreateX11WindowInfo
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -318,7 +296,7 @@ namespace OpenTK.Platform
|
||||||
/// <param name="xOffset">The X offset for the GL viewport</param>
|
/// <param name="xOffset">The X offset for the GL viewport</param>
|
||||||
/// <param name="yOffset">The Y offset for the GL viewport</param>
|
/// <param name="yOffset">The Y offset for the GL viewport</param>
|
||||||
/// <returns>A new IWindowInfo instance.</returns>
|
/// <returns>A new IWindowInfo instance.</returns>
|
||||||
public static IWindowInfo CreateMacOSCarbonWindowInfo(IntPtr windowHandle, bool ownHandle, bool isControl,
|
public static IWindowInfo CreateMacOSCarbonWindowInfo(IntPtr windowHandle, bool ownHandle, bool isControl,
|
||||||
OpenTK.Platform.MacOS.GetInt xOffset, OpenTK.Platform.MacOS.GetInt yOffset)
|
OpenTK.Platform.MacOS.GetInt xOffset, OpenTK.Platform.MacOS.GetInt yOffset)
|
||||||
{
|
{
|
||||||
return new OpenTK.Platform.MacOS.CarbonWindowInfo(windowHandle, false, isControl, xOffset, yOffset);
|
return new OpenTK.Platform.MacOS.CarbonWindowInfo(windowHandle, false, isControl, xOffset, yOffset);
|
||||||
|
@ -397,8 +375,8 @@ namespace OpenTK.Platform
|
||||||
|
|
||||||
#if !__MOBILE__
|
#if !__MOBILE__
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates an IWindowInfo instance for Angle rendering, based on
|
/// Creates an IWindowInfo instance for Angle rendering, based on
|
||||||
/// supplied platform window (e.g. a window created with
|
/// supplied platform window (e.g. a window created with
|
||||||
/// CreateWindowsWindowInfo, or CreateDummyWindowInfo).
|
/// CreateWindowsWindowInfo, or CreateDummyWindowInfo).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="platformWindow"></param>
|
/// <param name="platformWindow"></param>
|
||||||
|
|
|
@ -632,75 +632,6 @@ XF86VidModeGetGammaRampSize(
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region internal class SetWindowAttributes
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential), Obsolete("Use XSetWindowAttributes instead")]
|
|
||||||
internal class SetWindowAttributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// background, None, or ParentRelative
|
|
||||||
/// </summary>
|
|
||||||
public Pixmap background_pixmap;
|
|
||||||
/// <summary>
|
|
||||||
/// background pixel
|
|
||||||
/// </summary>
|
|
||||||
public long background_pixel;
|
|
||||||
/// <summary>
|
|
||||||
/// border of the window or CopyFromParent
|
|
||||||
/// </summary>
|
|
||||||
public Pixmap border_pixmap;
|
|
||||||
/// <summary>
|
|
||||||
/// border pixel value
|
|
||||||
/// </summary>
|
|
||||||
public long border_pixel;
|
|
||||||
/// <summary>
|
|
||||||
/// one of bit gravity values
|
|
||||||
/// </summary>
|
|
||||||
public int bit_gravity;
|
|
||||||
/// <summary>
|
|
||||||
/// one of the window gravity values
|
|
||||||
/// </summary>
|
|
||||||
public int win_gravity;
|
|
||||||
/// <summary>
|
|
||||||
/// NotUseful, WhenMapped, Always
|
|
||||||
/// </summary>
|
|
||||||
public int backing_store;
|
|
||||||
/// <summary>
|
|
||||||
/// planes to be preserved if possible
|
|
||||||
/// </summary>
|
|
||||||
public long backing_planes;
|
|
||||||
/// <summary>
|
|
||||||
/// value to use in restoring planes
|
|
||||||
/// </summary>
|
|
||||||
public long backing_pixel;
|
|
||||||
/// <summary>
|
|
||||||
/// should bits under be saved? (popups)
|
|
||||||
/// </summary>
|
|
||||||
public bool save_under;
|
|
||||||
/// <summary>
|
|
||||||
/// set of events that should be saved
|
|
||||||
/// </summary>
|
|
||||||
public EventMask event_mask;
|
|
||||||
/// <summary>
|
|
||||||
/// set of events that should not propagate
|
|
||||||
/// </summary>
|
|
||||||
public long do_not_propagate_mask;
|
|
||||||
/// <summary>
|
|
||||||
/// boolean value for override_redirect
|
|
||||||
/// </summary>
|
|
||||||
public bool override_redirect;
|
|
||||||
/// <summary>
|
|
||||||
/// color map to be associated with window
|
|
||||||
/// </summary>
|
|
||||||
public Colormap colormap;
|
|
||||||
/// <summary>
|
|
||||||
/// cursor to be displayed (or None)
|
|
||||||
/// </summary>
|
|
||||||
public Cursor cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region internal struct SizeHints
|
#region internal struct SizeHints
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
|
Loading…
Reference in a new issue