Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
thefiddler committed Feb 16, 2014
2 parents 6b68708 + 295522d commit 1404e57
Show file tree
Hide file tree
Showing 34 changed files with 5,963 additions and 893 deletions.
6,675 changes: 5,879 additions & 796 deletions Documentation/Changelog.txt

Large diffs are not rendered by default.

40 changes: 4 additions & 36 deletions Documentation/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ PROJECT_NAME = "The Open Toolkit library"
# This could be handy for archiving the generated documentation or
# if some version control system is used.

PROJECT_NUMBER = 1.0
PROJECT_NUMBER = 1.1

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
Expand Down Expand Up @@ -283,22 +283,6 @@ SUBGROUPING = YES

TYPEDEF_HIDES_STRUCT = NO

# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
# determine which symbols to keep in memory and which to flush to disk.
# When the cache is full, less often used symbols will be written to disk.
# For small to medium size projects (<1000 input files) the default value is
# probably good enough. For larger projects a too small cache size can cause
# doxygen to be busy swapping symbols to and from disk most of the time
# causing a significant performance penality.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will rougly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols

SYMBOL_CACHE_SIZE = 0

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -493,12 +477,6 @@ MAX_INITIALIZER_LINES = 28

SHOW_USED_FILES = NO

# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.

SHOW_DIRECTORIES = NO

# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES.
Expand Down Expand Up @@ -664,7 +642,8 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*

EXCLUDE_PATTERNS = */.svn/*
EXCLUDE_PATTERNS = */.svn/* \
*/.git/*

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
Expand Down Expand Up @@ -876,12 +855,6 @@ HTML_COLORSTYLE_GAMMA = 80

HTML_TIMESTAMP = NO

# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.

HTML_ALIGN_MEMBERS = YES

# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports
Expand Down Expand Up @@ -1062,11 +1035,6 @@ ENUM_VALUES_PER_LINE = 4

GENERATE_TREEVIEW = NO

# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.

USE_INLINE_TREES = NO

# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
Expand Down Expand Up @@ -1511,7 +1479,7 @@ DOT_NUM_THREADS = 0
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
# containing the font.

DOT_FONTNAME = FreeSans
DOT_FONTNAME =

# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.
Expand Down
17 changes: 13 additions & 4 deletions Documentation/Instructions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,21 @@ For more details, refer to http://www.opentk.com/doc

=== Build instructions ===

Use OpenTK.sln to build the library. You can use Visual Studio 2010+, SharpDevelop 3.0+, MonoDevelop 2.0+ or Xamarin Studio.
Double-click OpenTK.sln to build using Visual Studio 2010+, SharpDevelop 3.0+, MonoDevelop 2.0+ or Xamarin Studio.

You can also build from the commandline using:

(.Net)
msbuild OpenTK.sln /p:Configuration=Release
- or -
(Mono)
xbuild OpenTK.sln /p:Configuration=Release

The resulting binaries will be placed under the Binaries/OpenTK/[Release|Debug] folders.
The resulting binaries will be placed under the Binaries/OpenTK/[Release|Debug] folders.


=== Troubleshooting ===

When building with MonoDevelop you may encounter an issue regarding a missing “GlobalAssemblyInfo.cs” file. This file is normally generated as a pre-build event, via the “Build.UpdateVersion” project. There are two solutions to this issue:
1. Configure MonoDevelop to use xbuild as its build system.
2. Right-click and run “Build.UpdateVersion” manually.

Older versions of xbuild may produce the same error when building from the commandline. In that case, simply execute xbuild twice - the second run should succeed.
2 changes: 1 addition & 1 deletion Documentation/License.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The Open Toolkit library license

Copyright (c) 2006 - 2013 Stefanos Apostolopoulos <stapostol@gmail.com> for the Open Toolkit library.
Copyright (c) 2006 - 2014 Stefanos Apostolopoulos <stapostol@gmail.com> for the Open Toolkit library.

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:

Expand Down
Binary file removed Documentation/Manual.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenAL 1.1 Specification.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.openal.org/documentation/openal-1.1-specification.pdf" />
Binary file removed Documentation/OpenAL 1.1 Specification.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL 4.4 API Reference.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.khronos.org/files/opengl44-quick-reference-card.pdf" />
Binary file removed Documentation/OpenGL 4.4 API Reference.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL 4.4 Compatibility Specification.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=https://www.opengl.org/registry/doc/glspec44.compatibility.pdf" />
1 change: 1 addition & 0 deletions Documentation/OpenGL 4.4 Core Specification.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.opengl.org/registry/doc/glspec44.core.pdf" />
1 change: 1 addition & 0 deletions Documentation/OpenGL 4.4 Shading Language.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.opengl.org/registry/doc/GLSLangSpec.4.40.pdf" />
Binary file removed Documentation/OpenGL 4.4 Shading Language.pdf
Binary file not shown.
Binary file removed Documentation/OpenGL 4.4 Specification.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 2.0 API Reference.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.khronos.org/opengles/sdk/docs/reference_cards/OpenGL-ES-2_0-Reference-card.pdf" />
Binary file removed Documentation/OpenGL ES 2.0 API Reference.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 2.0 Shading Language.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.khronos.org/files/opengles_shading_language.pdf" />
Binary file removed Documentation/OpenGL ES 2.0 Shading Language.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 2.0 Specification.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=https://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf" />
Binary file removed Documentation/OpenGL ES 2.0 Specification.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 3.0 API Reference.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=https://www.khronos.org/files/opengles3-quick-reference-card.pdf" />
Binary file removed Documentation/OpenGL ES 3.0 API Reference.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 3.0 Shading Language.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.khronos.org/registry/gles/specs/3.0/GLSL_ES_Specification_3.00.3.pdf" />
Binary file removed Documentation/OpenGL ES 3.0 Shading Language.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenGL ES 3.0 Specification.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.0.pdf" />
Binary file removed Documentation/OpenGL ES 3.0 Specification.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions Documentation/OpenTK 1.1 API Reference.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.opentk.com/files/doc/annotated.html" />
1 change: 1 addition & 0 deletions Documentation/OpenTK 1.1 Manual.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<meta http-equiv="refresh" content="0; url=http://www.opentk.com/doc" />
76 changes: 37 additions & 39 deletions Documentation/Release.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
The Open Toolkit 1.1
22 November 2013
15 February 2014

http://www.opentk.com
https://github.com/opentk/opentk


[Overview]

This is a beta release for OpenTK 1.1
This is the first stable release for OpenTK 1.1

New in OpenTK 1.1:
- support for OpenGL 4.4 and OpenGL ES 3.0
- strongly-typed enums for OpenGL ES 2.0 and 3.0
- inline documentation for all OpenGL and OpenGL ES core functions
- a new SDL2 backend for improved platform compatibility
- a greatly expanded math library
- numerous bugfixes for Mac OS X, Windows 8 and Linux
- ANGLE support for Windows systems without OpenGL drivers
- Support for Retina / high-DPI monitors
New features:
1. support for OpenGL 4.4 and OpenGL ES 3.0
2. strongly-typed enums for OpenGL ES 2.0 and 3.0
3. new, faster OpenGL bindings based on hand-optimized IL
4. a new SDL2 backend for improved platform compatibility
5. new Joystick and GamePad APIs under OpenTK.Input
6. improved startup time and reduced memory consumption
7. inline documentation for all OpenGL and OpenGL ES core functions
8. a greatly expanded math library
9. numerous bugfixes for Mac OS X, Windows 8 and Linux
10. ANGLE support for Windows systems without OpenGL drivers
11. support for Retina / high-DPI monitors
12. monolinker can now be used to reduce the size of OpenTK.dll
13. precompiled binaries for optional dependencies (OpenAL, SDL2, monolinker)

All users are strongly encouraged to upgrade to OpenTK 1.1
Users of previous versions are strongly encouraged to upgrade to OpenTK 1.1


Visit http://www.opentk.com for the latest news and information on the Open Toolkit library

Download the source code at https://github.com/opentk/opentk
Visit http://www.opentk.com for the latest news and information on the Open Toolkit library.



Expand All @@ -36,58 +40,52 @@ Please refer to the following pages:

[Known issues]

- [all] The size of OpenTK.dll can be reduced.

- [all] GamePad API throws NotImplementedException.

- [all] Keyboard API exposes ushort parameter.

- [SDL] does not support ChangeResolution API.

- [SDL] does not support multiple keyboards/mice.
- [SDL2] does not support OpenTK.GLControl.

- [SDL] does not support GLControl.
- [Mac/Carbon] does not support Retina resolutions. Please use the SDL2 backend instead.

- [Mac/Carbon] does not support Retina resolutions. Please use the SDL backend instead.
- [Mac/Carbon] does not support OpenGL 3.x/4.x. Please use the SDL2 backend instead.



[Report an issue]
If you encounter an issue, please report it at:
https://github.com/opentk/opentk/issues

Highest priority will be given to regressions from OpenTK 1.0
If you encounter an issue with OpenTK, please report it at https://github.com/opentk/opentk/issues

Don�t forget to mention your operating system and GPU! If possible, try to attach a small, self-contained test case that reproduces the bug.



[API compatibility]

The vast majority of projects will be able to upgrade to OpenTK 1.1 without any modifications. However, due to updates in the official OpenGL specification and due to bugfixes in the binding generator, a number of OpenGL signatures have changed between OpenTK 1.0 and 1.1.
Most projects will be able to upgrade to OpenTK 1.1 without any modifications. However, due to updates in the official OpenGL specification and due to bugfixes in the binding generator, a number of OpenGL signatures have changed between OpenTK 1.0 and 1.1.

Modified signatures have been marked with the [Obsolete] attribute. A warning message will be generated with instructions on a suggested replacement.

In a small number of cases, using the original signature would lead to incorrect results or a crash. These cases will generate a compiler error now. If you use any of the following signatures, please apply the suggested modification:
In a small number of cases, using the original signature would lead to incorrect results or a crash. These cases will generate a compile-time error now. If you use any of the following signatures, please apply the suggested modification:

Namespace OpenTK.Graphics.OpenGL
Change signature:
- GL.MultiDrawArrays (out -> ref)
- GL.Amd.DeletePerfMonitors (out -> ref)
- GL.MultiDrawArrays (`out` -> `ref`)
- GL.Amd.DeletePerfMonitors (`out` -> `ref`)

Change signature (may cause crash):
- GL.Apple.ObjectPurgeable (returns AppleObjectPurgeable instead of IntPtr)
- GL.Apple.ObjectPurgeable (returns `AppleObjectPurgeable` instead of `IntPtr`)
- GL.Ext.SeparableFilter2D
- GL.Ibm.EdgeFlagPointerList (bool[] -> bool*[])
- GL.NV.TransformFeedbackVaryings (string[] -> int[])
- GL.Ibm.EdgeFlagPointerList (`bool[]` -> `bool*[]`)
- GL.NV.TransformFeedbackVaryings (`string[]` -> `int[]`)

Change return type:
- GL.WaitSync (returns WaitSyncFlags instead of ArbSync)
- GL.WaitSync (returns `WaitSyncFlags` instead of `ArbSync`)


Namespace OpenTK.Graphics.ES11
Change return type:
- GL.GetError (ErrorCode instead of All)
- GL.GetError (`ErrorCode` instead of `All`)

Change ref parameters to out:
Change `ref` parameters to `out`:
- GL.GenBuffers
- GL.GenTextures
- GL.GetBoolean
Expand Down Expand Up @@ -130,7 +128,7 @@ Namespace OpenTK.Graphics.ES20.GL
Change signature (may cause crash):
- GL.NV.GetFence now takes three parameters instead of two

Change ref parameters to out:
Change `ref` parameters to `out`:
- GL.GetActiveAttrib
- GL.GetActiveUniform
- GL.GetAttachedShaders
Expand Down
10 changes: 2 additions & 8 deletions Documentation/Todo.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
[Easy]
- Clean up warnings.
- Remove Example Browser in favor of separate projects.
- Add Nuget packages.
- Speed up matrix Inverse() functions. (Patch exists in mono/opentk).
- Speed up matrix Inverse() functions. (Patch exists in mono/opentk.)

[Moderate]
- Implement new joystick API.
- Implement touch input API.
- Fix external GraphicsContexts.
- Implement force feedback API.
- Add Portable Class Library (PCL) target.
- Reduce library size for the PCL target.
- Split various APIs in different modules. This will be in addition to the monolithic OpenTK.dll.

[Hard]
- Remove DllImports/GetDelegateForFunctionPointer in favor of LCG calli instructions.
- Merge updates from mono/opentk.
- Add Cocoa backend for Mac OS X.
- Add support for international text input.
2 changes: 1 addition & 1 deletion Source/Bind/Structures/Parameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ public bool HasUnsignedParameters

#region public bool HasGenericParameters

public bool HasGenericParameters
public bool HasGenericParameters
{
get
{
Expand Down
2 changes: 1 addition & 1 deletion Source/OpenTK/Input/Joystick.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ namespace OpenTK.Input
/// Use <c>GetCapabilities</c> to retrieve the number of supported
/// axes and buttons on a given device.
/// Use <c>GetState</c> to retrieve the current state of a given device.
/// <seealso cref="GamePad"/>
/// </summary>
/// <seealso cref="GamePad"/>
public sealed class Joystick
{
static readonly IJoystickDriver2 implementation =
Expand Down
8 changes: 4 additions & 4 deletions Source/OpenTK/OpenTK.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<ProjectType>Local</ProjectType>
Expand Down Expand Up @@ -462,15 +462,15 @@
<Compile Include="Graphics\ColorFormat.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Graphics\OpenGL\GLHelper.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Graphics\OpenGL\GLEnums.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Graphics\OpenGL\GL.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Graphics\OpenGL\GLHelper.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Graphics\OpenGL\ErrorHelper.cs">
<SubType>Code</SubType>
</Compile>
Expand Down
11 changes: 8 additions & 3 deletions Source/OpenTK/Platform/Windows/WinGLNative.cs
Original file line number Diff line number Diff line change
Expand Up @@ -389,12 +389,17 @@ void HandleSize(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lPar

void HandleChar(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
{
char c;
if (IntPtr.Size == 4)
key_press.KeyChar = (char)wParam.ToInt32();
c = (char)wParam.ToInt32();
else
key_press.KeyChar = (char)wParam.ToInt64();
c = (char)wParam.ToInt64();

KeyPress(this, key_press);
if (!Char.IsControl(c))
{
key_press.KeyChar = c;
KeyPress(this, key_press);
}
}

void HandleMouseMove(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
Expand Down

0 comments on commit 1404e57

Please sign in to comment.