mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-01-22 07:41:10 +00:00
Added GLForm.cs (base class for cross-platform windowing control)
Temporarily removed all examples apart from GLSL.Lesson01 which has been updated to use the GLForm class. Minor updates to OpenTK.OpenGL.Bind
This commit is contained in:
parent
fdb625da0f
commit
d9b0ac6e5c
|
@ -5,11 +5,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentat
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
changelog.txt = changelog.txt
|
changelog.txt = changelog.txt
|
||||||
license.txt = license.txt
|
license.txt = license.txt
|
||||||
Todo.txt = Todo.txt
|
todo.txt = todo.txt
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{84C34705-D460-4028-AE58-C32CF210F9BF}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specifications", "Specifications", "{B23A6DCD-9FE9-4523-95FB-01C8D4631555}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specifications", "Specifications", "{B23A6DCD-9FE9-4523-95FB-01C8D4631555}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
Specifications\cs_types.txt = Specifications\cs_types.txt
|
Specifications\cs_types.txt = Specifications\cs_types.txt
|
||||||
|
@ -75,7 +73,6 @@ Global
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(NestedProjects) = preSolution
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{84C34705-D460-4028-AE58-C32CF210F9BF} = {80BD2C66-A90B-42E7-BED8-CBF7BB8C2E3F}
|
|
||||||
{7E640424-E2CD-4DD5-9392-7A706D73930E} = {E9FF51BB-295E-4891-AA30-D1374F26DCE0}
|
{7E640424-E2CD-4DD5-9392-7A706D73930E} = {E9FF51BB-295E-4891-AA30-D1374F26DCE0}
|
||||||
{C6E60A87-12B4-444A-BE03-7E980EAC0172} = {E9FF51BB-295E-4891-AA30-D1374F26DCE0}
|
{C6E60A87-12B4-444A-BE03-7E980EAC0172} = {E9FF51BB-295E-4891-AA30-D1374F26DCE0}
|
||||||
{50DCE788-72FC-47E0-A6BD-50BCCE3FCE5B} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
{50DCE788-72FC-47E0-A6BD-50BCCE3FCE5B} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
namespace OpenTK.Examples.OpenGL.GLSL
|
|
||||||
{
|
|
||||||
partial class Cube
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Required designer variable.
|
|
||||||
/// </summary>
|
|
||||||
private System.ComponentModel.IContainer components = null;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Clean up any resources being used.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing && (components != null))
|
|
||||||
{
|
|
||||||
components.Dispose();
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Windows Form Designer generated code
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Required method for Designer support - do not modify
|
|
||||||
/// the contents of this method with the code editor.
|
|
||||||
/// </summary>
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// Cube
|
|
||||||
//
|
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
this.ClientSize = new System.Drawing.Size(632, 446);
|
|
||||||
this.Name = "Cube";
|
|
||||||
this.Text = "GLSL.Lesson01";
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -27,13 +27,11 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
};
|
};
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
GLContext context;
|
|
||||||
static float angle;
|
static float angle;
|
||||||
|
|
||||||
#region Constructor
|
#region Constructor
|
||||||
public Cube()
|
public Cube()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -42,8 +40,6 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
{
|
{
|
||||||
base.OnLoad(e);
|
base.OnLoad(e);
|
||||||
|
|
||||||
context = GLContext.Create(this, 8, 8, 8, 8, 16, 0, false);
|
|
||||||
|
|
||||||
Text =
|
Text =
|
||||||
GL.GetString(Enums.StringName.VENDOR) + " " +
|
GL.GetString(Enums.StringName.VENDOR) + " " +
|
||||||
GL.GetString(Enums.StringName.RENDERER) + " " +
|
GL.GetString(Enums.StringName.RENDERER) + " " +
|
||||||
|
@ -78,7 +74,7 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
GL.LinkProgram(shader_program);
|
GL.LinkProgram(shader_program);
|
||||||
GL.UseProgram(shader_program);
|
GL.UseProgram(shader_program);
|
||||||
|
|
||||||
OnResize(e);
|
//OnResize(e);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -89,15 +85,13 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
|
|
||||||
if (ClientSize.Height == 0)
|
if (ClientSize.Height == 0)
|
||||||
ClientSize = new System.Drawing.Size(ClientSize.Width, 1);
|
ClientSize = new System.Drawing.Size(ClientSize.Width, 1);
|
||||||
|
|
||||||
if (context == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
GL.Viewport(0, 0, ClientSize.Width, ClientSize.Height);
|
GL.Viewport(0, 0, ClientSize.Width, ClientSize.Height);
|
||||||
|
|
||||||
double ratio = 0.0;
|
double ratio = 0.0;
|
||||||
if (ClientSize.Width > ClientSize.Height)
|
ratio = ClientSize.Width / (double)ClientSize.Height;
|
||||||
ratio = ClientSize.Width / (double)ClientSize.Height;
|
//if (ClientSize.Width > ClientSize.Height)
|
||||||
|
// ratio = ClientSize.Width / (double)ClientSize.Height;
|
||||||
//else
|
//else
|
||||||
// ratio = ClientSize.Height / (double)ClientSize.Width;
|
// ratio = ClientSize.Height / (double)ClientSize.Width;
|
||||||
|
|
||||||
|
@ -127,10 +121,17 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
|
|
||||||
DrawCube();
|
DrawCube();
|
||||||
|
|
||||||
context.SwapBuffers();
|
Context.SwapBuffers();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
//Thread.Sleep(1);
|
#region KeyDown event handler
|
||||||
//this.Invalidate();
|
protected override void OnKeyDown(KeyEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnKeyDown(e);
|
||||||
|
|
||||||
|
if (e.KeyData == Keys.Escape)
|
||||||
|
Application.Exit();
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -179,6 +180,7 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Entry point
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -189,5 +191,6 @@ namespace OpenTK.Examples.OpenGL.GLSL
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new Cube());
|
Application.Run(new Cube());
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,120 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
|
@ -39,14 +39,7 @@
|
||||||
<Compile Include="Cube.cs">
|
<Compile Include="Cube.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Cube.Designer.cs">
|
|
||||||
<DependentUpon>Cube.cs</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<EmbeddedResource Include="Cube.resx">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
<DependentUpon>Cube.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
|
|
@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
// set of attributes. Change these attribute values to modify the information
|
// set of attributes. Change these attribute values to modify the information
|
||||||
// associated with an assembly.
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("Lesson01")]
|
[assembly: AssemblyTitle("GLSL.Lesson01")]
|
||||||
[assembly: AssemblyDescription("")]
|
[assembly: AssemblyDescription("")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("Lesson01")]
|
[assembly: AssemblyProduct("GLSL.Lesson01")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2006")]
|
[assembly: AssemblyCopyright("Copyright © 2006 Stephen Apostolopoulos")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
#region License
|
||||||
/* Copyright (c) 2006 Stephen Apostolopoulos
|
/* Copyright (c) 2006 Stephen Apostolopoulos
|
||||||
* See license.txt for license info
|
* See license.txt for license info
|
||||||
*/
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -19,7 +21,7 @@ namespace OpenTK.OpenGL.Platform
|
||||||
int _render_context;
|
int _render_context;
|
||||||
IntPtr _window_handle;
|
IntPtr _window_handle;
|
||||||
|
|
||||||
public WindowsContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil, bool fullscreen)
|
public WindowsContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
bool load_extensions = false;
|
bool load_extensions = false;
|
||||||
int error_code = 0;
|
int error_code = 0;
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace OpenTK.OpenGL.Platform
|
||||||
int _render_context;
|
int _render_context;
|
||||||
IntPtr _window_handle;
|
IntPtr _window_handle;
|
||||||
|
|
||||||
public WindowsVistaContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil, bool fullscreen)
|
public WindowsVistaContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
bool load_extensions = false;
|
bool load_extensions = false;
|
||||||
int error_code = 0;
|
int error_code = 0;
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace OpenTK.OpenGL.Platform
|
||||||
{
|
{
|
||||||
public partial class X11Context : OpenTK.OpenGL.GLContext
|
public partial class X11Context : OpenTK.OpenGL.GLContext
|
||||||
{
|
{
|
||||||
public X11Context(Control c, int red, int green, int blue, int alpha, int depth, int stencil, bool fullscreen)
|
public X11Context(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
throw new Exception("The method or operation is not implemented.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("0.3.2.0")]
|
[assembly: AssemblyVersion("0.3.3.0")]
|
||||||
[assembly: AssemblyFileVersion("0.3.2.0")]
|
[assembly: AssemblyFileVersion("0.3.3.0")]
|
||||||
|
|
|
@ -18,7 +18,6 @@ namespace OpenTK.Platform.Windows
|
||||||
public static class Api
|
public static class Api
|
||||||
{
|
{
|
||||||
#region Constants
|
#region Constants
|
||||||
|
|
||||||
public struct Constants
|
public struct Constants
|
||||||
{
|
{
|
||||||
// Keyboard events (found in WinUSER.h)
|
// Keyboard events (found in WinUSER.h)
|
||||||
|
@ -37,12 +36,30 @@ namespace OpenTK.Platform.Windows
|
||||||
public const sbyte PFD_MAIN_PLANE = 0;
|
public const sbyte PFD_MAIN_PLANE = 0;
|
||||||
public const sbyte PFD_OVERLAY_PLANE = 1;
|
public const sbyte PFD_OVERLAY_PLANE = 1;
|
||||||
public const sbyte PFD_UNDERLAY_PLANE = -1;
|
public const sbyte PFD_UNDERLAY_PLANE = -1;
|
||||||
}
|
|
||||||
|
|
||||||
|
// Device mode types (found in WinGDI.h)
|
||||||
|
public const int DM_BITSPERPEL = 0x00040000;
|
||||||
|
public const int DM_PELSWIDTH = 0x00080000;
|
||||||
|
public const int DM_PELSHEIGHT = 0x00100000;
|
||||||
|
public const int DM_DISPLAYFLAGS = 0x00200000;
|
||||||
|
public const int DM_DISPLAYFREQUENCY = 0x00400000;
|
||||||
|
|
||||||
|
// ChangeDisplaySettings types (found in WinUSER.h)
|
||||||
|
public const int CDS_UPDATEREGISTRY = 0x00000001;
|
||||||
|
public const int CDS_TEST = 0x00000002;
|
||||||
|
public const int CDS_FULLSCREEN = 0x00000004;
|
||||||
|
|
||||||
|
// ChangeDisplaySettings results (found in WinUSER.h)
|
||||||
|
public const int DISP_CHANGE_SUCCESSFUL = 0;
|
||||||
|
public const int DISP_CHANGE_RESTART = 1;
|
||||||
|
public const int DISP_CHANGE_FAILED = -1;
|
||||||
|
|
||||||
|
// (found in WinUSER.h)
|
||||||
|
public const int ENUM_CURRENT_SETTINGS = -1;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region WINAPI methods
|
#region WINAPI methods
|
||||||
|
|
||||||
#region PeekMessage
|
#region PeekMessage
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -362,6 +379,17 @@ namespace OpenTK.Platform.Windows
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region int ChangeDisplaySettings(ref Gdi.DEVMODE devMode, int flags)
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="device_mode"></param>
|
||||||
|
/// <param name="flags"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
public static extern int ChangeDisplaySettings(ref DeviceMode device_mode, int flags);
|
||||||
|
#endregion int ChangeDisplaySettings(ref Gdi.DEVMODE devMode, int flags)
|
||||||
|
|
||||||
|
|
||||||
// *********** Never use GetLastError! ************
|
// *********** Never use GetLastError! ************
|
||||||
|
|
||||||
|
@ -384,13 +412,11 @@ namespace OpenTK.Platform.Windows
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
// ************************************************
|
// ************************************************
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region WINAPI structs
|
#region WINAPI structs
|
||||||
|
|
||||||
#region PixelFormatDescriptor
|
#region PixelFormatDescriptor struct
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Describes a pixel format. It is used when interfacing with the WINAPI to create a new Context.
|
/// Describes a pixel format. It is used when interfacing with the WINAPI to create a new Context.
|
||||||
/// Found in WinGDI.h
|
/// Found in WinGDI.h
|
||||||
|
@ -428,7 +454,9 @@ namespace OpenTK.Platform.Windows
|
||||||
public uint VisibleMask = 0;
|
public uint VisibleMask = 0;
|
||||||
public uint DamageMask = 0;
|
public uint DamageMask = 0;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region PixelFormatDescriptorFlags enum
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum PixelFormatDescriptorFlags : uint
|
public enum PixelFormatDescriptorFlags : uint
|
||||||
{
|
{
|
||||||
|
@ -453,11 +481,9 @@ namespace OpenTK.Platform.Windows
|
||||||
DOUBLEBUFFER_DONTCARE = 0x40000000,
|
DOUBLEBUFFER_DONTCARE = 0x40000000,
|
||||||
STEREO_DONTCARE = 0x80000000
|
STEREO_DONTCARE = 0x80000000
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region SetWindowPosFlags
|
#region SetWindowPosFlags enum
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum SetWindowPosFlags
|
public enum SetWindowPosFlags
|
||||||
{
|
{
|
||||||
|
@ -482,10 +508,9 @@ namespace OpenTK.Platform.Windows
|
||||||
//public const int SWP_ASYNCWINDOWPOS = 0x4000;
|
//public const int SWP_ASYNCWINDOWPOS = 0x4000;
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region WindowPlacementOptions
|
#region WindowPlacementOptions enum
|
||||||
|
|
||||||
public enum WindowPlacementOptions
|
public enum WindowPlacementOptions
|
||||||
{
|
{
|
||||||
|
@ -498,7 +523,6 @@ namespace OpenTK.Platform.Windows
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region WindowClass
|
#region WindowClass
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public class WindowClass
|
public class WindowClass
|
||||||
{
|
{
|
||||||
|
@ -517,11 +541,9 @@ namespace OpenTK.Platform.Windows
|
||||||
//[MarshalAs(UnmanagedType.LPStr)]
|
//[MarshalAs(UnmanagedType.LPStr)]
|
||||||
public IntPtr ClassName;
|
public IntPtr ClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Class styles
|
#region WindowClassStyle enum
|
||||||
|
|
||||||
public enum WindowClassStyle
|
public enum WindowClassStyle
|
||||||
{
|
{
|
||||||
VRedraw = 0x0001,
|
VRedraw = 0x0001,
|
||||||
|
@ -542,7 +564,49 @@ namespace OpenTK.Platform.Windows
|
||||||
DropShadow = 0x00020000
|
DropShadow = 0x00020000
|
||||||
// #endif /* _WIN32_WINNT >= 0x0501 */
|
// #endif /* _WIN32_WINNT >= 0x0501 */
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region DeviceMode struct
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct DeviceMode
|
||||||
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)]
|
||||||
|
public string DeviceName;
|
||||||
|
public short SpecVersion;
|
||||||
|
public short DriverVersion;
|
||||||
|
public short Size;
|
||||||
|
public short DriverExtra;
|
||||||
|
public int Fields;
|
||||||
|
public short Orientation;
|
||||||
|
public short PaperSize;
|
||||||
|
public short PaperLength;
|
||||||
|
public short PaperWidth;
|
||||||
|
public short Scale;
|
||||||
|
public short Copies;
|
||||||
|
public short DefaultSource;
|
||||||
|
public short PrintQuality;
|
||||||
|
public short Color;
|
||||||
|
public short Duplex;
|
||||||
|
public short YResolution;
|
||||||
|
public short TTOption;
|
||||||
|
public short Collate;
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)]
|
||||||
|
public string FormName;
|
||||||
|
public short LogPixels;
|
||||||
|
public int BitsPerPel;
|
||||||
|
public int PelsWidth;
|
||||||
|
public int PelsHeight;
|
||||||
|
public int DisplayFlags;
|
||||||
|
public int DisplayFrequency;
|
||||||
|
public int ICMMethod;
|
||||||
|
public int ICMIntent;
|
||||||
|
public int MediaType;
|
||||||
|
public int DitherType;
|
||||||
|
public int Reserved1;
|
||||||
|
public int Reserved2;
|
||||||
|
public int PanningWidth;
|
||||||
|
public int PanningHeight;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
OpenTK 0.3.2 -> 0.3.3
|
OpenTK 0.3.2 -> 0.3.3
|
||||||
+ OpenTK.OpenGL.Bind 0.7.5 -> 0.7.5.1 (see Bind changelog for more information)
|
+ OpenTK.OpenGL.Bind 0.7.5 -> 0.7.5.1 (see Bind changelog for more information)
|
||||||
+ Added the GLForm class.
|
+ Added the GLForm class which sets the base for cross-platform screen, context and keyboard handling.
|
||||||
+ Added the GLForm.Lesson01 example.
|
+ Can now change between fullscreen and windowed modes.
|
||||||
|
+ Temporarily removed all examples except for GLSL.Lesson01, which has been updated to use the new GLForm class.
|
||||||
|
|
||||||
OpenTK 0.3.1 -> 0.3.2
|
OpenTK 0.3.1 -> 0.3.2
|
||||||
+ OpenTK.OpenGL.Glu: Eliminated the temporary IntPtr variable in the GetString and ErrorString functions.
|
+ OpenTK.OpenGL.Glu: Eliminated the temporary IntPtr variable in the GetString and ErrorString functions.
|
||||||
|
|
11
todo.txt
11
todo.txt
|
@ -1,9 +1,11 @@
|
||||||
Todo:
|
Todo:
|
||||||
+ Find out why many examples crash when compiled in release mode, but only when run outside the editor.
|
+ + + Find out why many examples crash when compiled in release mode, but only when run outside the editor.
|
||||||
+ Add more examples (e.g. the GLSL example I wrote, some of kanato's examples etc).
|
+ + Add cross-platform way for overriding the Application.Idle handler.
|
||||||
|
+ Add more examples.
|
||||||
+ + Change the hierarchy of the WindowsContext and WindowsVistaContext classes. The should have a common ancestor who manages the windows creation (it should be the same for both).
|
+ + Change the hierarchy of the WindowsContext and WindowsVistaContext classes. The should have a common ancestor who manages the windows creation (it should be the same for both).
|
||||||
+ + Add more constructors to the WindowsContext classes. This probably needs updating of the WinAPI assembly.
|
+ + Add more constructors to the WindowsContext classes. This probably needs updating of the WinAPI assembly.
|
||||||
+ + Add X11Context constructors.
|
+ + Add X11Context constructors.
|
||||||
|
+ + Add more GLForm constructors.
|
||||||
+ Find out what is needed for the MacOS platform (how to do function loading and window management without X11).
|
+ Find out what is needed for the MacOS platform (how to do function loading and window management without X11).
|
||||||
+ Add full bindings to Glu, Wgl, Glx and Agl.
|
+ Add full bindings to Glu, Wgl, Glx and Agl.
|
||||||
+ Add the Math module.
|
+ Add the Math module.
|
||||||
|
@ -14,6 +16,5 @@ Todo:
|
||||||
+ See if using Nant for building is a good idea.
|
+ See if using Nant for building is a good idea.
|
||||||
+ + Clean up the code.
|
+ + Clean up the code.
|
||||||
+ + Add comments and documentation (faqs, pitfalls, best practices).
|
+ + Add comments and documentation (faqs, pitfalls, best practices).
|
||||||
+ + + Add the CLS compliant attribute to the Gl class.
|
+ + + Add the CLS compliant attribute to the GL class.
|
||||||
+ Add more platform bindings.
|
+ Add more platform bindings.
|
||||||
+ Add cross-platform way of overriding the Application.Idle handler.
|
|
Loading…
Reference in a new issue