Stefanos A
be8f7c6311
Corrected ES 2.0 enums
...
After the previous commit, several ES 2.0 functions would refer to
enums found in ES 3.0. These enums have been copied to ES 2.0, either
as core enums or as extensions.
2013-11-07 16:25:19 +01:00
Stefanos A
735d05e496
Merged ES2.0 and ES3.0 replacements
...
ES 3.0 includes ES 2.0 verbatim. We can significantly reduce
duplication by using the same <replace> node for both APIs. Note that
the enumerations must remain separate, as ES 2.0 and 3.0 support
different tokens.
2013-11-07 11:37:51 +01:00
Stefanos A
7c54a19708
ES 3.0 fixed enums for GetIntegeri_v and GetInteger64i_v
...
These functions have a first parameter named "target", not "pname".
Fixed now.
2013-11-07 10:58:02 +01:00
Stefanos A
e59c95f2f9
ES 3.0 fixed enums for GetInteger64*
...
GetInteger64v should accept GetPName, while GetInteger64i_v should
accept GetIndexedPName.
2013-11-07 10:39:20 +01:00
Stefanos A
8de24c97fb
ES 3.0 strong enums for DrawBuffersEXT and NV
...
Relax the extension constraint in DrawBuffers, in order to add strong
enums to the extension varieties of this function.
2013-11-07 10:33:02 +01:00
Stefanos A
2d1df46d98
ES 3.0 strong enums for DrawArrays*() and Draw*Elements*()
...
The strongly-typed enums include core and extension varieties.
2013-11-07 10:17:33 +01:00
Stefanos A
0002b2e23e
Fixed typo in ES3Generator.cs
...
The DllImports file should be named ES30Core.cs, not ES3Core.cs. Fixed
now.
2013-11-07 10:09:17 +01:00
Stefanos A
0f98f0e00b
Fixed misspelled and missing enums
2013-11-07 09:47:27 +01:00
Stefanos A
93b8d4b86e
Fixed enums for (Get)ObjectLabel
...
ObjectLabel and GetObjectLabel are part of KHR_debug.
2013-11-07 09:34:48 +01:00
Stefanos A
0598e02140
Fixed enums for GetDebugMessageLog
...
GetDebugMessageLog was misspelled as GetMessageDebugLog. This is now
fixed.
2013-11-07 08:39:57 +01:00
Stefanos A
de38df8820
Fixed strong-enums for GetDebugMessageLog
...
GetDebugMessageLog is part of KHR_debug.
2013-11-07 08:36:23 +01:00
Stefanos A
a2f2ab29ea
Fixes for ES 3.0 strongly-typed enums
...
Fixed parameter mismatches in CopyBufferSubData and BlendFuncSeparate.
Implemented KHR_debug extension.
2013-11-07 08:33:17 +01:00
Stefanos A
2f3d79d464
Merge branch 'master' of https://github.com/thefiddler/opentk
2013-11-07 08:15:18 +01:00
Stefanos A
2b4d10ffd7
Strongly-typed enums for ES 3.0 (complete)
...
Implemented sectiosn: Pixel Rectangles. Binding & Managing Framebuffer
Objects, Renderbuffer Objects, Attaching Renderbuffer Images to
Framebuffer, Attaching Texture Images to Framebuffer, Framebuffer
Completeness, Invaildating Framebuffer Contents, Renderbuffer Object
Queries, Simple Queries, String Queries.
2013-11-07 08:14:49 +01:00
Stefanos A.
62c9793a6e
Fixed number of buffers
...
ContextAttribute.DOUBLEBUFFER is a boolean in SDL (false->single
buffering, true->double buffering). We need to adjust the number of
buffers accordingly (single buffering->1 buffer, double buffering->2
buffers).
2013-11-06 01:04:59 +01:00
Stefanos A
21a1ca8895
Switch to EnumDisplayModesEx
...
Use EnumDisplayModesEx instead of EnumDisplayModes. This might help
with issue #6 .
2013-11-05 23:41:42 +01:00
Stefanos A
a4f125f16e
Added workaround for issue #6
...
The issue is that some display devices report a BitsPerPel value of 0.
It is not clear whether this is a bug in WinDisplayDevice.cs or some
strange windows issue. The implemented workaround adds an entry to the
debug log and hardcodes BitsPerPel to 32 whenever this condition is
encountered. More investigation required.
2013-11-05 23:21:49 +01:00
Stefanos A
1a02457ddc
Strongly-typed enums for ES 3.0 (WIP8)
...
Implemented sections: Hints and Sync Object Quries.
Renamed SyncParameter to SyncParameterName, as per the OpenGL naming
conventions.
2013-11-05 10:23:25 +01:00
Stefanos A
167c97dd84
Strongly-typed enums for ES 3.0 (WIP7)
...
Implemented section: Sync Objects and Fences [5.2].
Fixed desktop OpenGL wrapper for ClientWaitSync and FenceSync.
2013-11-05 09:53:34 +01:00
Stefanos A
ad1755f58e
Moved overload to overrides.xml
...
Overloads for backwards compatibility should now be placed in an
<overload> element inside overrides.xml.
2013-11-05 09:44:20 +01:00
Stefanos A
2511cb1086
Implemented support for <overload> element
...
The <overload> element simplifies the addition of overloads for
backwards compatibility. It is defined similar to the <replace>
element, but instead of replacing the parameters of a function
in-place, it adds a new overload and modifies the overload instead.
2013-11-05 08:55:52 +01:00
Stefanos A
25b9939263
Strongly-typed enums for ES 3.0 (WIP6)
...
Implemented strongly-typed enums for sections: Selecting a Buffer for
Writing, Fine Control of Buffer Updates, Clearing the Buffers.
2013-11-04 23:25:02 +01:00
Stefanos A
372dac9c48
Strongly-typed enums for ES 3.0 (WIP5)
...
Implemented sections: Stencil Test, Depth Buffer Test, Blending.
2013-11-04 23:01:25 +01:00
Stefanos A
dcd2d03e59
Strongly-typed enums for ES 3.0 (WIP4)
...
Implemented sections: Texture Image Specification, Alternative Texture
Image Specification, Compressed Texture Images, Texture Parameters,
Manual Mipmap Generation and Enumerated Queries.
2013-11-04 22:27:06 +01:00
Stefanos A
6921509680
Added "reuse" directive for enums
...
Sometimes an enum may reuse the tokens of another enum verbatim
(possibly adding a few extra tokens.) The reuse directive simplifies
the handling of this case:
<enum name="Foo">
<reuse enum="Bar" />
</enum>
2013-11-04 22:26:06 +01:00
Stefanos A
20e70062f8
Strongly-typed enums for ES 3.0 (WIP3)
...
Implemented sections: Texturing, Sampler Objects, Sampler Queries,
Texture Image Specification.
2013-11-04 19:49:25 +01:00
Stefanos A
b29a4aacb3
Respect apiversion in overrides
...
We should not use overrides from foreign apiversions.
2013-11-04 19:32:52 +01:00
Stefanos A
9b5be9300b
Strongly-typed enums for ES 3.0 (WIP2)
...
Added strongly-typed enums for sections: Vertices, Shaders and
Programs. Added a number of missing enums for ES 2.0. Normalized
several APIs between OpenGL and OpenGL ES.
2013-11-04 00:04:09 +01:00
Stefanos A
af78a01643
Strongly-typed enums for ES 3.0 (WIP)
...
Implemented strongly-typed enums for sections: Buffer Objects,
Asynchronous Queries, Transform Feedback, ReadingandCopying Pixels and
Rasterization.
2013-11-03 21:30:25 +01:00
Stefanos A
f95925302b
No extension attribute now matches all extensions
...
This allows us to reduce the amount of clutter in overrides.xml.
2013-11-03 21:28:24 +01:00
Stefanos A
7978627ad4
Merge Delegate.Version
...
When a Delegate is defined multiple times in the spec, we should check
if any of these definitions contains a proper Delegate.Version and
store that. This improves the self-documentation aspect of the bindings.
2013-11-03 20:41:29 +01:00
Stefanos A
7322828304
Regenerated the bindings using the latest specs
2013-11-03 20:36:22 +01:00
Stefanos A
2ca8870420
More PrimitiveType->BeginMode overrides
2013-11-03 20:35:02 +01:00
Stefanos A
c47166e54d
Mino fix in debug output
...
ParameterCollection.ToString() adds parentheses around its output, so
Delegate.ToString() should avoid adding a second pair.
2013-11-03 20:34:18 +01:00
Stefanos A
451bd62f63
ES 3.0 contains both 2.0 and 3.0 bindings
...
This is in accordance to the upstream gl3.h for ES 3.0.
2013-11-03 20:33:14 +01:00
Stefanos A
d20180cd2d
gles1 API contains both versions 1.0 and 1.1
...
Khronos no longer distinguishes between ES 1.0 and 1.1.
2013-11-03 20:32:47 +01:00
Stefanos A
922fb935a1
Take api version into account
...
XmlSpecReader will now respect version attributes and will avoid
inserting foreign tokens into the generated bindings.
2013-11-03 20:32:10 +01:00
Stefanos A
08823f5d5b
Maintain api version information on converted signatures
...
Signatures were split into 4 APIs before (gl, glcore, gles1, gles2).
However, gles2 contains bindings for both version 2.0 and 3.0. The
version information is now maintained, which allows us to cut down on
the number of generated enumerations.
2013-11-03 20:30:43 +01:00
Stefanos A
2d33b10e1a
Improve debug output
...
Function parameters are now displayed during binding generation.
2013-11-03 20:28:57 +01:00
Stefanos A.
35c0edfa42
Merge categories for redefined functions
...
Now that we support function overloads, it is safe to ignore functions
that are defined multiple times. We just merge their Category
properties if they are not identical.
2013-11-03 19:13:49 +01:00
Stefanos A
346547331a
Improved detection of deprecated tokens
2013-11-03 17:58:28 +01:00
Stefanos A.
6f08995963
Added PrimitiveType <=> BeginMode overloads
...
Khronos renamed BeginMode to PrimitiveType starting with GL 4.4.
OpenTK now has overloads for both flavors.
2013-11-03 16:11:39 +01:00
Stefanos A.
9789225e0c
Allow overloads of the same function
...
It is now possible to define multiple overloads of the same function,
each with different parameters. This is extremely useful for
maintaining backwards compatibility in the face of the changes between
GL 4.3 and 4.4.
2013-11-03 16:09:11 +01:00
Stefanos A
60f971ffed
Updated to the latest gl4 specs and docs
...
Large code-drop from Khronos upstream.
2013-11-03 12:43:50 +01:00
Stefanos A
0d90bae615
Change debug commandline
...
The default commandline parameters will now automatically download and
convert the upstream gl.xml from the public Khronos repository.
2013-11-03 12:37:56 +01:00
Stefanos A
7c3e29012f
Bindings for GL4.4, ES1.1, ES2.0 and ES3.0
...
The new bindings are based on the fresh gl.xml registry by the Khronos
group.
2013-11-03 12:34:19 +01:00
Stefanos A
f835c63444
Added DebugProc for KHR_debug
2013-11-03 12:33:17 +01:00
Stefanos A
ec6c534d8a
Updated using the latest converter
...
Tokens are now sorted according to their value, exactly is in the
upstream gl.xml spec. Additionally, gles1 and gles2 now include the
pre-defined groups in the specification.
2013-11-03 12:32:54 +01:00
Stefanos A
0deeeeb84c
Enum groups are now added to all APIs
...
Enum groups are also referenced by OpenGL ES commands. They are now
added to all APIs by default.
2013-11-03 12:19:49 +01:00
Stefanos A.
a29e132172
Trim elements when reading them
...
Sometimes elements in overrides.xml contain extra spaces due to typos,
which are quite difficult to track down. The XmlSpecReader can now
cope with that.
2013-11-03 12:17:09 +01:00
Stefanos A.
513fa728d0
Replace in-place instead of removing/readding
...
There is no reason to remove and readd a Constant in order to replace
it in a ConstantCollection. We can actually do that in-place.
2013-11-03 12:16:07 +01:00
Stefanos A.
39b1f84fc8
Enum tokens are now sorted
...
This only affects the in-memory representation - sorted tokens are
easier to debug.
2013-11-03 12:15:08 +01:00
Stefanos A.
827fe0788a
Use OpenTK.Graphics.OpenGL4 namespace for GL4.x
2013-11-03 12:14:13 +01:00
Stefanos A.
c83d6ad530
DefaultOutputPath now matches OpenTK source tree
...
By default, generated bindings are placed in the source tree of
OpenTK. This can be overriden via a commandline switch.
2013-11-03 12:13:35 +01:00
Stefanos A.
0548806487
Improved debug output on high-order pointers
...
OpenTK does not currently support generating bindings for pointers of
order 3 or higher. No OpenGL or OpenGL ES API currently uses such
pointers, so we just issue a warning message if such an API is
encountered in the future.
2013-11-03 12:12:39 +01:00
Stefanos A.
2d3b5ebe5c
Added missing enums to gles2 profile
...
Fixed undefined reference in TextureCompareMode.COMPARE_REF_TO_TEXTURE
and added strongly-typed enums for KHR_debug.
2013-11-03 12:10:52 +01:00
Stefanos A.
7a403e474e
Corrected ShaderSource for gles2 and ARB
...
The length parameter should be an array of integers, one for each
string in the shader source. The string parameter does not need to be
translated.
2013-11-03 02:25:15 +01:00
Stefanos A.
6c16835d8c
Added doc comment on ColorFormat.Empty.
2013-11-03 01:44:31 +01:00
Stefanos A
888cb6637b
Added generators for ES 2.0 and 3.0
2013-11-03 01:29:32 +01:00
Stefanos A
66b01873b0
Updated license information
2013-11-03 01:28:46 +01:00
Stefanos A
c349c82887
Cleaned up the generator constructors
2013-11-03 01:28:01 +01:00
Stefanos A
ab61e3f6a0
Added missing newline
...
Methods are now separated by a single newline.
2013-11-03 01:27:33 +01:00
Stefanos A
e8f46c87f6
Do not override user defined output files
...
The generator will now change the default output files to match its
bindings (e.g. GL vs ES), but the user is now able to override this
option.
2013-11-03 01:27:10 +01:00
Stefanos A
5ab8b451c9
Added apiversion support
2013-11-03 01:25:47 +01:00
Stefanos A
5298aff14d
Added support for overriding default output files
...
This makes it possible to generate different output files when using
-mode:all to generate multiple bindings in the same run.
2013-11-03 01:25:27 +01:00
Stefanos A
23c084587a
Added gles2; added missing fog groups
2013-11-03 01:24:31 +01:00
Stefanos A
56768a803a
Added support for distinguishing between api versions
...
The registry reuses the "gles2" apiname for both OpenGL ES 2.0 and 3.0.
The generator will now use the apiversion attribute to distinguish
between the two APIs.
2013-11-03 01:24:02 +01:00
Stefanos A
e7cb7cdf34
Convert "String *" to "String"
...
As a sideeffect of the group element definition, the parser will
convert a ptype of "const GLubyte *" with a group of "String" to
"String *", which is not the correct result. GLXmlParser will now
detect and fix this condition that affects the GetString function of
families.
2013-11-03 01:22:44 +01:00
Stefanos A
c5b9dbc83e
Added GetOverridesPath method
...
GetOverridesPath encapsulates the code that retrieves an override enum
or function from overrides.xml. Additionally, it now supports names and
extensions with multiple values (e.g. extension="Core|Ext").
2013-11-03 01:20:17 +01:00
Stefanos A.
61a6a2bec0
Mark signatures.xml version
...
GLXmlParser now explicitly marks its output with version="2", while
the older .spec parsers produce version="1" signatures. The binding
generator uses the newer API to support multiple apinames in the same
file.
2013-11-02 23:40:09 +01:00
Stefanos A.
cc8f9aae4f
Refactor apiname extraction
...
A dedicated function is now used for getting the apiname of an enum or command element. This reduces code duplication.
2013-11-02 23:37:34 +01:00
Stefanos A.
add848f32d
Fixed newline and indentation behavior
...
Mono and .Net have a few minor differences in their StreamWriter
implementations. Added workarounds to produce identical output on all
platforms.
2013-11-01 14:00:46 +01:00
Stefanos A.
b7f2379f87
Fixed infinite recursion issue.
2013-11-01 11:42:42 +01:00
Stefanos A.
0746334ab3
Regenerated bindings with the latest generator
...
The new bindings have improved enum documentation and fix an issue with
incorrect overloads in wrappers with generic parameters.
2013-11-01 09:29:42 +01:00
Stefanos A.
9e74470e58
Avoid singletons; allow -mode:all
...
Explicit Settings objects are now created for each generator. A new
-mode:all option has been added, which generates bindings for all APIs
in one go (useful for the post-GL4.4 specs, which collect all APIs in a
single file.)
2013-11-01 09:28:54 +01:00
Stefanos A.
bf0f42be82
Avoid singletons; collect code generation
...
ISpecWriter implementations must now store explicit references to a
Settings object. Additionally, all code generation is now handled inside
the ISpecWriter implementation (it used to be scattered over all Type,
Parameter, etc classes resulting in unmaintainable spaghetti code.)
2013-11-01 09:27:46 +01:00
Stefanos A.
33e6a6eae2
Avoid singletons
...
A reference to a Settings instance must now be stored explicitly.
2013-11-01 09:26:13 +01:00
Stefanos A.
e1f064b634
Updated IBind implementations to avoid singletons
...
IBind implementations must now store explicit references to Settings,
GLTypes and CSTypes instances. This allows us to use multiple
configurations in the same process.
2013-11-01 09:25:31 +01:00
Stefanos A.
8219f7a0f6
Avoid singletons; collect all translation logic
...
FuncProcessor now implements all translation logic for types, parameters
and functions. This used to be scattered in the various classes (Type,
Parameter, etc) resulting in a rather disgusting spaghetti. Code
generation has been removed from FuncProcessor and is now handled by the
various language-specific ISpecWriter backends.
2013-11-01 09:24:18 +01:00
Stefanos A.
f0e0195799
Avoid singletons; improve ToString()
...
This is part of a long-due series of source cleanup patches. ToString()
is no longer used for code generation (code generation is handled by an
ISpecWriter instance.) Enum is no longer public. EnumCollection now
exposes its backing store through an interface, rather than a concrete
class (simpler to change backing store in the future.)
2013-11-01 09:21:50 +01:00
Stefanos A.
229856abba
Avoid singletons; improved ToString()
...
This is part of a long-due series of source cleanup patches. ToString()
is no longer used for code generation (this is handled by an ISpecWriter
implementation). This class is no longer public.
2013-11-01 09:18:53 +01:00
Stefanos A.
679afcc27a
Avoid singletons; logic in FuncProcessor
...
This is part of a long-due series of source cleanup patches. All
translation logic is now part of FuncProcessor. Code generation is now
handled by an ISpecWriter implementation. Minor improvements to
IEquatable and ToString() implementations. Reduced the surface of the
public API.
2013-11-01 09:17:34 +01:00
Stefanos A.
9c5d43b72b
Avoid singletons; Move logic to FuncProcessor
...
This is part of a long-due cleanup patch series. All translation logic
is now part of the FuncProcessor. Language-specific code generation is
now part of the ISpecWriter, not the delegate class. Implemented the
IEquatable interface.
2013-11-01 09:15:02 +01:00
Stefanos A.
f83443d221
Avoid singletons; Translate*() in FuncProcessor
...
This is part of a long-due source cleanup series. All Translate*()
methods are now part of the FuncProcessor. Additionally, ToString() has
been improved and the IEquatable interface is now implemented.
ParameterCollection now has better control of when its cache should be
rebuilt.
2013-11-01 09:13:06 +01:00
Stefanos A.
83c0deb71c
Avoid singletons; Translate*() in FuncProcessor
...
This is part of a long-due source cleanup operation. GLTypes and CSTypes
are no longer global singletons, but must now be accessed through an
IBind instance. All Translate*() methods are now part of the
FuncProcessor. ToString() has been improved and the IEquatable interface
is now explicitly implemented.
2013-11-01 09:10:46 +01:00
Stefanos A.
832db0da0d
Settings is no longer a singleton
...
Multiple Settings instances can now be created and used in the same
process.
2013-11-01 09:07:34 +01:00
Stefanos A.
ffc79a749b
Settings, GLTypes and CSTypes are now in IBind
...
Settings, GLTypes and CSTypes are no longer global singletons. Instead,
explicit instances must be stored in the IBind implementation. This
allows us to use multiple configurations in the same process.
2013-11-01 09:06:49 +01:00
Stefanos A.
f000bda891
Avoid singleton Settings; make internal
...
Utilities.Keywords now accepts an explicit parameter, instead of
accessing Settings directly. This allows us to use multiple
configurations in the same process.
Additionally, the Utilities class is no longer public (the Bind project
is not meant to be consumed as a dll.)
2013-11-01 09:03:36 +01:00
Stefanos A.
f00c2e0527
Avoid singleton Settings. Allow v1 signatures
...
A Settings object is now passed directly as a parameter, in order to
support different configurations in the same process. The XmlSpecReader
can now distinguish between, and support both, pre-GL4.4 and post-GL4.4
specs.
2013-11-01 09:01:35 +01:00
Stefanos A.
2eac75ea4d
Avoid using singletons
...
The IBind generator and the Settings class are now passed directly as
parameters. This allows us to run multiple generators in a single
process.
2013-11-01 08:59:20 +01:00
Stefanos A.
6022ea9fbd
Improved multiline output
...
This lets us compose and print multiline strings without manually
adjusting indentation on each line.
2013-11-01 08:57:44 +01:00
Stefanos A.
bfbc37fb92
Remove deprecated elements from glcore
...
Deprecated elements are marked as such in the compatibility profile and
are completely absent from the core profile. This is in-line with the
new glcore headers from Khronos.
2013-10-31 00:20:59 +01:00
Stefanos A.
97bd6dbc39
Warn on function redefinition
...
A function redefinition usually stems from a bug in the OpenGL specs, or
a bug in the spec converter. The binding generator now logs a warning,
instead of crashing, when a redefinition is encountered.
2013-10-31 00:20:05 +01:00
Stefanos A.
285f238669
Renamed gloverrides.xml to overrides.xml
...
This aligns the name of the OpenGL overrides file with that of the
OpenGL|ES implementations.
2013-10-31 00:18:45 +01:00
Stefanos A.
a3bd227e20
Cleaned up Generator class tree
...
This significantly reduces the amount of duplicated code between
Generator implementations.
2013-10-31 00:18:07 +01:00
Stefanos A.
51cb1f02db
Improve sorting; remove enum-function distinction
...
Both enums and functions are now stored under a single <add> element.
Their ordering is now maintained by sorting over all possible
attributes.
2013-10-29 19:35:35 +01:00
Stefanos A.
784d60b556
Corrected apiname xpath lookup
2013-10-29 09:32:28 +01:00
Stefanos A.
faa3330375
Explicitly merge functions
...
Some functions are part of multiple features or extensions. For
documentation purposes, we need to correctly merge their attributes.
2013-10-29 09:32:09 +01:00
Stefanos A.
6185059adc
More line ending troubles...
2013-10-28 14:28:57 +01:00
Stefanos A.
8f1c3a2d08
Allow comparison of function elements
...
This allows us to store both enums and functions in the same tree.
2013-10-28 14:15:58 +01:00
Stefanos A.
3eaffc5570
Stable sort and correct extension names
...
Use a stable sort for generated elements, in order to make the generated
file work better with version control. Extension names are now extracted
directly from function names - solves issues with functions that are
defined in multiple extensions.
2013-10-28 14:15:17 +01:00
Stefanos A
7f9041417e
Add apiname parameter to ISpecReader
...
This allows us to reuse the same ISpecReader implementation to parse
different APIs (GL and GLES).
2013-10-28 14:13:39 +01:00
Stefanos A.
2e435f97bb
Re-added PixelInternalFormat
...
GL4.4 renamed PixelInternalFormat to InternalFormat. The missing tokens
are now re-added, since a lot of functions depend on them. Additionally,
a number of 'open' <use> elements now define a specific enum reference.
This is not necessary, but is good for documentation purposes.
2013-10-28 14:11:16 +01:00
Stefanos A.
6f4530f8a8
Sort tokens within an enum
...
This allows us to keep a specific ordering regardless of the token order
in the input file (much friendlier for source control!)
2013-10-28 14:08:55 +01:00
Stefanos A.
1b937b48f8
Simplifed Constant.Reference resolution
...
Instead of recursing, we use a simple do..while loop to resolve the
transitive reference of a constant. If there is a loop at any point, we
stop and use a brute force search over all tokens. If this still fails
to resolve the reference, then we report this reference as unresolved.
2013-10-28 14:07:45 +01:00
Stefanos A.
e0664993bb
Multi-API support for XML spec parser
...
The XML spec parser now generates signatures for multiple APIs (gl,
glcore, gles1, gles2). Additionally, it supports per-token deprecation
attributes.
2013-10-27 23:47:52 +01:00
Stefanos A.
97ca64121c
Made IsFlagsCollection read-write
...
The decision whether an Enum is a flags collection is now made either by
the spec reader or the enum processor (not the Enum class itself.)
2013-10-27 17:35:36 +01:00
Stefanos A.
2444ccf082
Improve override lookup for extension functions.
...
Function overrides are now looked up in the following order: specific
name (e.g. ProgramParameteriARB), extensionless name (e.g.
ProgramParameteri) and generic mame (e.g. ProgramParameter). This
improves the override resolution for functions with multiple extension
forms (core, ext, arb, etc).
2013-10-27 02:35:53 +02:00
Stefanos A.
816f1e5c7f
Fixed the DebugProc signatures.
...
The various DebugProc* delegates now conform to their specifications.
2013-10-27 01:32:08 +02:00
Stefanos A.
f57b53b677
Regenerated using latest generator.
2013-10-27 01:31:20 +02:00
Stefanos A.
51f52d7fc4
Moved more transformations into the *Processor classes.
...
An EnumProcessor or FuncProcessor instance is now required in order to
call their Translate*() methods. A number of transformations that
relied on calling the static methods have now been moved inside the
processor classes.
2013-10-27 01:30:45 +02:00
Stefanos A
5e06c14607
Read extension list from xml spec; new acronyms.
...
Instead of hardcoding a list of extensions, extensions are now read
directly from the signatures.xml file. Acronyms for new texture
formats are now listed.
2013-10-27 01:26:36 +02:00
Stefanos A.
5cc845713d
Improved extension detection in .spec parser.
...
Instead of using a hardcoded list of extensions, the parser will now
use a regex to detect extension names. This gives better results on
new specs without manual editing.
2013-10-27 01:24:04 +02:00
Stefanos A.
d4eeb4e9ce
Functions are now categorized correctly according to their extensions.
2013-10-26 00:07:49 +02:00
Stefanos A.
d992f9474f
Fixed the parsing of extensions.
2013-10-26 00:07:00 +02:00
Stefanos A.
7cc3947cfb
MASK_COHERENT_BIT should be MAP_COHERENT_BIT
2013-10-25 16:43:43 +02:00
Stefanos A.
9777afdb71
Trim the final endline regardless of operating system.
...
Fixes differences between bindings generated on Windows and Linux/Mac.
2013-10-25 16:31:26 +02:00
Stefanos A.
1a1ef03396
The last parameter of GL.ShaderSource should be an array.
2013-10-25 16:30:50 +02:00
Stefanos A.
f65965aaf7
Fixed ShaderSource and VertexArrayFogCoordOffsetEXT parameters.
...
ShaderSource is supposed to accept an array of string lengths as the
last parameter. The count="1" statement in the registry is wrong.
GL.VertexArrayFogCoordOffsetEXT is supposed to receive a
FogPointerType.
2013-10-25 16:30:20 +02:00
Stefanos A.
65ff060ca5
Corrected the values of the GL_NEXT_BUFFER_NV and
...
GL_SKIP_COMPONENTS_*_NV extensions.
2013-10-25 16:10:51 +02:00
Stefanos A.
0aa0d5ab6c
Check the existence of a Constant reference using the
...
Constant.Reference property, instead of the first character of
Constant.Value. Fixes values that are negative numbers.
2013-10-25 08:57:33 +02:00
Stefanos A.
b15066bd03
Strip struct and const identifiers from the output. This matches the
...
old .spec files.
Group attributes in parameters no longer overwrite the pointer order
or const-ness of the parameter.
2013-10-25 08:55:12 +02:00
Stefanos A.
078a1e8443
Allow spaces in pointer types (e.g. "GLchar * *").
...
Added todo for string->String translation that is overwritten
immediately.
2013-10-25 08:52:34 +02:00
Stefanos A.
06d2de3e7b
Fixed translation of GLchar** (should be string[], not string). Added
...
diagnostic message in case of higher-order pointer parameters that
will currently generate incorrect bindings.
2013-10-25 08:48:24 +02:00
Stefanos A.
a162ee5b1b
Added DEBUGPROCKHR for the KHR_debug extension. Added
...
CompressedTextureARB that is encountered in the new gl.xml registry.
2013-10-25 08:47:17 +02:00
Stefanos A.
e08baaa624
Fixed implementation of IsValue. Improved the handling of value
...
(number) parameters.
2013-10-25 08:45:02 +02:00
Stefanos A.
7296edafac
Added support for overriding the element count of an array parameter.
2013-10-24 22:42:12 +02:00
Stefanos A.
d4c1cb1bb3
Improved grouping of enumerations. Fixed missing extension
...
enumerations.
2013-10-24 20:56:28 +02:00
Stefanos A
b5aff5dfaf
Don't crash on non-numeric element counts.
2013-10-24 18:50:19 +02:00
Stefanos A.
645abc5ab1
Improved diagnostic message in case of a circular definition.
2013-10-24 18:46:58 +02:00
Stefanos A.
780d5e60c2
Return type should be defined in the "type" attribute of the returns
...
element.
2013-10-24 18:42:52 +02:00
Stefanos A.
2378bef21e
Tokens in "All" enum should have a name of "token" not "enum".
2013-10-24 18:41:09 +02:00
Stefanos A.
0cb722c908
Implemented translation of function attributes (api, category,
...
deprecated, extension, version).
2013-10-24 18:32:09 +02:00
Stefanos A.
88438102a2
Initial implementation of new XML spec parser.
2013-10-24 17:19:52 +02:00
Stefanos A.
be6c583f4f
Implemented Sdl2GraphicsMode..
2013-10-24 09:32:17 +02:00
Stefanos A
8107abeb01
Updated gl4 documentation according to latest manpages
2013-10-24 09:03:15 +02:00
Stefanos A
af9d6dd928
Fixed ClearTex[Sub]Image <type> parameter
...
As per bug #1006 on the public Khronos bugzilla, <type> corresponds to the PixelType accepted by TexImage3D. This is now fixed.
2013-10-24 09:01:59 +02:00
Stefanos A.
192fedbca5
Removed sdl2-cs in favor of a leaner, better-designed binding.
2013-10-24 02:02:35 +02:00
Stefanos A
7aa5499f3e
Merge branch 'gl4' of https://github.com/thefiddler/opentk
2013-10-24 01:47:00 +02:00
Stefanos A
80f0569f9a
Implemented new, leaner SDL2 binding.
...
The new binding is based on the SDL2.0.1 RC1 headers.
2013-10-24 01:45:13 +02:00
Stefanos A
d8089a7732
Updated documentation according to the latest GL4 manpages.
2013-10-23 20:19:16 +02:00
Stefanos A.
60afa79203
Updated documentation according to the latest available manpages.
2013-10-23 20:17:08 +02:00
Stefanos A.
eb84a29206
Implemented "Debug Output" and "State and State Requests"
...
functionality according to the OpenGL 4.4 specification, sections 20
and 22.
2013-10-23 20:12:05 +02:00
Stefanos A.
3037baa5ea
Implemented "Reading and Copying Pixels" functionality from the OpenGL
...
4.4 specification, sections 18.2 and 18.3.
2013-10-23 18:54:34 +02:00
Stefanos A.
b425bff682
Implemented Whole Framebuffer commands according to the OpenGL 4.4
...
specification, section 17.4.
2013-10-23 11:43:11 +02:00
Stefanos A.
a005fab243
Prefer overrides with exact name matches over generic name matches.
...
For instance, if we override both ClearBufferfi and ClearBuffer, then
ClearBuffer{i f ui}v will be overriden be ClearBuffer and
ClearBufferfi will be overriden by ClearBufferfi. This allows us to
specialize overrides when necessary.
2013-10-23 11:42:24 +02:00
Stefanos A.
86214ebc77
Implemented per-fragment operations according to the OpenGL 4.4
...
specification, section 17.
2013-10-23 10:49:29 +02:00
Stefanos A.
1585d6a02e
Implemented Vertex Post-Processing according to the OpenGL 4.4
...
specification, section 13.
2013-10-23 10:23:02 +02:00
Stefanos A.
bb2bf9fa48
Implemented Vertex Attributes according to the OpenGL 4.4
...
specification, section 11.
2013-10-23 09:43:33 +02:00
Stefanos A.
88183770ae
Implemented Vertex Arrays accordign to the OpenGL 4.4 specification,
...
section 10.
2013-10-23 09:31:09 +02:00
Stefanos A.
35b63e777a
Fixed version number on VertexAttribP1 methods (should be 3.3, not
...
1.2).
2013-10-22 21:10:14 +02:00
Stefanos A.
18643b8f1d
Allow version attribute in overrides.xml.
2013-10-22 21:09:18 +02:00
Stefanos A.
745fd9974f
Implemented strongly-typed Framebuffer and Renderbuffer Objects
...
according to the OpenGL 4.4 specification, section 9.
2013-10-22 20:52:37 +02:00
Stefanos A.
5a59e63cea
Implemented strongly-typed Texture functions according to the OpenGL
...
4.4 specification, section 8. See issue #2 .
2013-10-22 18:37:25 +02:00
Stefanos A.
badb083686
Added SGIX_texture_icc enumeration that has been removed by the
...
upstream specs. This silences a large amount of warnings caused by the
lack of this extension.
2013-10-22 17:19:19 +02:00
Stefanos A
967a6514de
Merge branch 'master' into gl4
2013-10-22 17:03:39 +02:00
Stefanos A
907a1de89f
Line ending fix.
2013-10-22 17:03:16 +02:00
Stefanos A
dc00ea7ea5
Merge branch 'master' of https://github.com/thefiddler/opentk
2013-10-22 16:58:33 +02:00
Stefanos A.
43bde3433a
Implemented strong-types for Shader and Program Objects according to
...
the OpenGL 4.4 specification, section 7.
2013-10-22 16:52:35 +02:00
Stefanos A.
9613975681
Updated strong-types for Buffer Objects according to the OpenGL 4.4
...
spec, section 6.
2013-10-22 14:40:49 +02:00
Stefanos A.
cfa4f230c5
Updated strong-types for asynchronous queries, query objects and time
...
queries according to OpenGL 4.4 spec, section 4.2.
2013-10-22 14:00:01 +02:00
Stefanos A.
9685f6e2f0
Array overloads with count=1 should be turned into ref/out parameters.
...
This fixes an issue where arrays with count=1 would remain as unsafe
pointers instead of becoming ref/out parameters.
2013-10-22 13:41:31 +02:00
Stefanos A.
a23b846800
Updated to the latest 4.3 specs (WIP).
2013-10-22 13:22:22 +02:00
Stefanos A.
df8626740a
Fixed exception while parsing the 4.3 specs.
...
This was caused by changes in the .spec file definitions between 4.1
and 4.3.
2013-10-22 11:58:23 +02:00
Stefanos A.
c49f9cd4a1
Implemented compatibility overloads for the changes introduced by the
...
4.3 .spec files.
Added DebugProc definition required in the 4.3 specs.
2013-10-22 11:57:18 +02:00
Stefanos A.
15120f3bef
Updated to the latest 4.3 .spec files from the OpenGL registry.
2013-10-22 11:56:08 +02:00
Stefanos A.
992ae7947a
Added usage example.
2013-10-22 11:40:41 +02:00
Stefanos A.
8404359bca
Updated to the latest gl.tm from Khronos public svn.
2013-10-22 11:39:50 +02:00
Stefanos A.
39c2230bfa
Re-added BeginMode and PixelFormat enums which were removed by the
...
OpenGL spec.
Added strong types for sync and fence objects (4.4 core specification,
section 4.1).
2013-10-22 11:39:20 +02:00
Stefanos A.
61fd8d6122
Added ConstCharPointer->string transformation in accordance to GL 4.3
...
specs.
2013-10-21 21:43:05 +02:00
Stefanos A.
98504ce67a
Added DebugProc delegate in accordance to GL 4.3 specs.
2013-10-21 21:42:09 +02:00
Stefanos A.
0d3ab7174c
Fixed crash on 32-bit machines
...
uint-to-intptr conversion must obey uint-to-int conversions on 32-bit
machines, otherwise an OverflowException may occur: conversions of
numbers over 2^31-1 must be declared as unchecked.
Fixes issue reported here: http://www.opentk.com/node/3418
2013-10-21 19:41:26 +02:00
thefiddler
581919cb1c
Initial work on new gl xml spec support.
2013-10-21 18:28:01 +02:00
thefiddler
4dfcf39d26
Added missing DllImport attribute.
...
Fixes thefiddler/opentk#1
2013-10-12 19:43:26 +02:00
Stefanos A
915ead34cb
Modify dllimport path on Android builds.
2013-10-12 15:17:10 +02:00
Stefanos A
6df11a8564
Fixed incorrect self-assignment statements
2013-10-12 15:16:05 +02:00
Stefanos A
30e42bb6dd
[DllImport] registry methods when the Microsoft.Win32 namespace is not
...
available (untested).
2013-10-12 05:15:46 +02:00
Stefanos A
70818d97e1
Fixed compilation on desktop platforms.
2013-10-12 05:14:51 +02:00
Stefanos A
863edc35d1
Added Xamarin.Android target
2013-10-12 05:08:27 +02:00
Stefanos A
d27904292d
System.Drawing is required for Point, Size and Rectangle types.
2013-10-12 05:07:46 +02:00
Stefanos A
1130d988b0
Use OpenTK.Minimal to stub out missing System.Drawing functionality
...
when building on Android or iOS platforms.
2013-10-12 05:06:54 +02:00
Stefanos A
bb3156d185
Implemented minimal System.Drawing stubs for Xamarin.Android targets.
2013-10-12 04:59:55 +02:00
thefiddler
b64c9d84e7
Why does this file keep changing?
2013-10-11 09:52:53 +02:00
thefiddler
f013c44ba1
Fixed Tilde and Number1 scancodes
2013-10-11 09:51:08 +02:00
thefiddler
8dcb8601a2
Normalized line endings
...
Hopefully this is the first and last time we have to do this.
2013-10-11 01:58:54 +02:00
Stefanos A
73e3614338
Merge branch 'scancodes'
...
Conflicts:
Source/OpenTK/OpenTK.csproj
Source/OpenTK/Platform/Windows/WinFactory.cs
2013-10-11 01:05:55 +02:00
Stefanos A
5aba35668b
Always Set HIDPI flag
...
It does not to set this flag on previous SDL2 versions, it is ignored silently when not supported.
2013-10-10 00:34:15 +02:00
Stefanos A
459313dca8
Fixed line endings
2013-10-10 00:18:59 +02:00
Stefanos A
fb86334835
HIDPI support requires SDL > 2.0.0
...
SDL_GL_GetDrawableSize was introduced after 2.0.0, so we need to check for that version before we call this method. Fixes MethodNotFounException on vanilla libsdl2-2.0.0 on linux.
2013-10-07 14:17:42 +03:00
Stefanos A
6fa0aba7fd
Do not copy Dependencies
...
Since the Example Browser is not loading its Dependencies by itself, there is no point in copying them to the output directory.
2013-10-04 17:04:35 +02:00
Stefanos A.
e181d14f69
Fixed git revision detection
2013-10-04 16:52:59 +02:00
Stefanos A
342af2f927
Fixed file not found error
...
The debug.log would be deleted after launching an example, causing the
example browser to complain that the file cannot be found. In reality,
it should be deleted before launching an example - fixed.
2013-10-04 10:03:26 +02:00
Stefanos A
d81bedf5f8
Moved all input processing to Sdl2InputDriver
...
This reduces the duplication of code between Sdl2NativeWindow and
Sdl2InputDriver. Sdl2InputDriver is now solely responsible for handling
input.
2013-10-04 10:02:19 +02:00
Stefanos A
bad2b7b6d7
Implemented IDisposable in Sdl2Joystick
...
Sdl2Joystick calls SDL_JoystickOpen, which means we must call
SDL_JoystickClose on shutdown.
2013-10-04 10:00:57 +02:00
Stefanos A
79def664b8
No separate Factory.Embedded for SDL2
...
Sdl2Factory supports both desktop and embedded profiles, there is no
need to construct a separate Embedded profile.
2013-10-04 09:57:43 +02:00
Stefanos A
17b4f62151
Sdl2JoystickDriver.Poll() and axis fixes
2013-10-04 02:37:41 +02:00
Stefanos A
1434f0d3e9
Display joystick information
2013-10-04 02:37:05 +02:00
Stefanos A
af67a96759
Initial implementation of IJoystickDriver API
2013-10-04 01:39:22 +02:00
Stefanos A
b4c29d802b
Add support for HiDPI modes
...
When HiDPI is enabled, the size of the OpenGL surface (specified in
pixels) may no longer correspond to the size of the window (specified
in points). Width, Height, ClientSize and ClientRectangle return the
size of the OpenGL surface in device-dependent pixel coordinates
(origin: top-left pixel of the surface). Bounds and Size return the
size of the window in device-independent point coordinates (origin:
desktop).
2013-10-04 01:38:19 +02:00
Stefanos A.
b3a0b78454
Use locale-independent scancodes
...
This significantly improves the usability of keyboard input, by allowing
a common input scheme to be used on different keyboard layouts. Text
input will be facilitated through a new API.
2013-10-03 20:53:34 +02:00
Stefanos A.
4dceea9e21
Added common key aliases
2013-10-03 20:52:02 +02:00
Stefanos A.
3f81bc26d4
Removed support for < Windows XP
...
The support burden for Windows versions prior to XP was too large, plus
the relevant code was completely untested. Removing that will allow us
to focus on the things that really matter.
2013-10-03 20:51:36 +02:00
Stefanos A
913c4f16e6
Throw extension if context creation fails
...
This aligns behavior with that of the other platforms.
2013-10-03 17:22:13 +02:00
Stefanos A
80845315db
Fallback to desktop context if embedded fails
...
Starting with OpenGL 4.1 and the ARB_ES2_compatibility extension, desktop contexts can execute OpenGL|ES code. This fallback will allow platforms to execute OpenGL|ES code even if EGL is not available (e.g. Nvidia/Windows).
2013-10-03 17:20:17 +02:00
Stefanos A.
94c02e827a
NRE -> GraphicsContextMissingException
...
Throw a GraphicsContextMissingException if GraphicsBindingBase.LoadAll() is called without a current GraphicsContext.
2013-10-03 16:45:28 +02:00
Stefanos A.
0e221a0ce5
Load ES entry points even on desktop
...
Some drivers / operating systems export ES entry points as extensions on regular "desktop" GraphicsContexts. Attempt to load them even if the user has not explicitly asked for an ES context.
2013-10-03 16:42:38 +02:00
Stefanos A
be7200d37e
Merge branch 'sdl2' of https://github.com/thefiddler/opentk
...
Conflicts:
Source/OpenTK/Platform/SDL2/Sdl2NativeWindow.cs
2013-10-03 15:11:59 +02:00
Stefanos A.
f2eda16458
Serialize Sdl2NativeWindow methods
...
This change, along with moving DestroyWindow() to the Dispose() method
fixes crashes on shutdown.
2013-10-03 14:59:30 +02:00
Stefanos A.
3c867838e6
Reload WGL entry points in WinGLContext()
...
This fixes AccessViolationException when creating multiple contexts on
Intel hardware.
2013-10-03 14:04:34 +02:00
Stefanos A
d217e379d4
Added support for OpenGL ES through SDL2
...
If SDL2 is supported, the PlatformFactory will now use it for creating the OpenGL ES context. Previously, it would revert to the native drivers when GraphicsContextFlag.Embedded was specified.
2013-10-03 11:17:21 +02:00
Stefanos A.
f6da957639
Improved debugging messages
...
Exceptions that occur in the example process are now logged.
2013-10-02 17:55:57 +02:00
Stefanos A.
5051190b01
MouseButtonUp and MouseMove fixes
...
MouseMove no longer leaves the window borders when the cursor is
invisible. MouseButtonUp events are now reported even when they occur
outside the window. This aligns SDL2 behavior with the native drivers.
2013-10-02 17:55:30 +02:00
Stefanos A.
b077597bc1
Create Sdl2NativeWindow hidden
...
This conforms to the other platform drivers and looks better in general
(no delay between window creation and OpenGL context creation.)
2013-10-02 16:31:22 +02:00
Stefanos A.
4d7ba20a03
Fixed unsetting current context in SDL2
...
SDL_GL_MakeCurrent(IntPtr.Zero, IntPtr.Zero) is the correct way to
remove the current OpenGL context from the calling thread. Fixes
threaded rendering on Windows.
2013-10-02 16:26:47 +02:00
Stefanos A
c077d5c026
Added Mac OS X build of SDL2 to dependencies
2013-10-02 01:39:53 +02:00
Stefanos A
40cfcfaf25
Improved diagnostics in Dispose()
...
Leaked and disposed resources are now always reported.
2013-10-02 01:14:26 +02:00
Stefanos A
6360156d99
Added Sync object for SDL
2013-10-02 01:13:06 +02:00
Stefanos A
c77439ea6b
Marked class as partial
...
This allows extension of the class without touching the upstream code.
2013-10-02 01:12:12 +02:00
Stefanos A
f8d9667653
Use separate process for executing examples
...
Using a separate, isolated process protects against incompatible interactions between the Example Browser (WinForms) and the executing example (native or SDL). It also protects the main GUI from crashes in the example code.
2013-10-02 01:10:03 +02:00
Stefanos A
31f2df094b
Fixed invalid version string on git
...
Git commit hashcodes are not compatible with the 16bit integer values found in .Net version numbers. Use the git commit count as a version number instead.
2013-10-02 00:05:59 +02:00
Stefanos A.
7460452b26
MakeCurrent(null) should make context non-current
...
This fixes the crash in the "GameWindow Threading" example.
2013-10-01 22:13:33 +02:00
Stefanos A
2c867de1f4
Fixed build under xbuild
...
Mono xbuild does not recognize the DebugType none element in the project configuration. Remove this in order to make it happy.
2013-10-01 22:05:50 +02:00
Stefanos A
019f466130
Clean up OpenTK after every example
...
Use the IDisposable instance returned by OpenTK.Toolkit.Init() to shutdown OpenTK after the end of each example run.
2013-10-01 22:04:11 +02:00
Stefanos A
a85cecdc59
Improved resource disposal
...
Added IDisposable interface to all classes holding native data that must be freed. OpenTK.Toolkit.Init() now returns an IDisposable instance that can be used to cleanup all native data held by OpenTK. This is useful when re-initializing OpenTK (possibly in a new AppDomain), as is the case in the Example browser.
2013-10-01 22:01:27 +02:00
Stefanos A.
ff9cd61777
Removed terrible hack for SDL_WINDOW_OPENGL
...
SDL2 will refuse to create an OpenGL context on a window with the SDL_WINDOW_FOREIGN flag (i.e. windows that are passed to SDL2 through SDL_CreateWindowFrom). This must be fixed upstream.
2013-10-01 21:05:02 +02:00
Stefanos A.
b57e58dc47
Implemented Sdl2GLControl
...
SDL2 still fails with "not an OpenGL window".
2013-09-30 20:47:29 +02:00
Stefanos A
5bb23585b9
Merge remote-tracking branch 'origin/master' into sdl2
2013-09-30 18:29:55 +02:00
Stefanos A.
ddd070579a
Workaround for NRE on WinRawMouse driver
...
On some systems, the Windows Raw Input driver fails to find the name of
a mouse device, causing a NRE. Since the name is not vital information,
a dummy name is generated as a workaround.
2013-09-30 18:27:13 +02:00
thefiddler
071daff564
Merge branch 'sdl2' of https://github.com/thefiddler/opentk into sdl2
2013-09-30 14:43:06 +02:00
Stefanos A.
ea0c845eb0
Attempted to fix key modifier state
...
SDL2 does not report keydown and keyup events on modifiers keys until
you release them. Attempted to fix this using SDL_GetModifierState, but
this does not appear to work. Should hit upstream.
2013-09-30 14:20:33 +02:00
Stefanos A.
7fe73253a7
Renamed Sdl2InputBase
2013-09-30 14:19:10 +02:00
Stefanos A.
c53773f4ec
Use scancodes for KeyboardDevice states
...
This resolves the issue where different layouts would return different
keys when pressing the same physical key. A new API must be introduced
for text input.
2013-09-30 13:51:31 +02:00
Stefanos A.
5e35411dd1
Fixed return values of keyboard functions
...
SDL_GetKeyFromScancode and SDL_GetScancodeFromKey should return a
SDL_Keycode or SDL_Scancode respectively, instead of void.
2013-09-30 13:49:53 +02:00
Stefanos A.
fc8b3810e9
Fixed documentation comment
2013-09-30 13:48:12 +02:00
Stefanos A.
2d19edf3fe
Renamed Sdl2InputBase to Sdl2InputDriver
...
Sdl2InputDriver describes the role and function of this class more
accurately.
2013-09-30 13:13:02 +02:00
Stefanos A.
7cb3965e25
Made internal SDL2 API private
2013-09-30 12:22:51 +02:00
Stefanos A.
5a55cb5cca
Implemented SDL2 mouse and keyboard drivers
2013-09-30 12:22:25 +02:00
thefiddler
778087fe3a
Reduced icon resolution to 128x128 in order to avoid "out of memory" errors when building with Mono.
2013-09-30 11:09:14 +02:00
Stefanos A.
fcc9049d18
Added high-res icons to Example Browser
...
The Example Browser should now look better on high resolution screens.
2013-09-29 23:58:10 +02:00
Stefanos A.
cfdb5bc95a
Free SDL surface after updating the window icon
...
The SDL surface is no longer needed and will cause a memory leak if not
freed. Additionally, the decoded BitmapData should not be unlocked until
after updating the window icon, as it may be moved by the GC otherwise.
2013-09-29 23:36:28 +02:00
Stefanos A.
420ec232f3
Fixed decoding of Icons
...
The rgba mask for decoding icon surfaces was incorrect. Icons should
appear as expected now.
2013-09-29 23:08:51 +02:00
Stefanos A.
6245ffe3ef
Updated license information
2013-09-27 23:07:23 +02:00
Stefanos A.
2666125b24
Implemented WindowState, WindowBorder and Icon
...
SDL2 suffers many of the issues we encountered when implementing
OpenTK.Platform.Windows. Workarounds are now in place to make
WindowState changes behave reasonably.
2013-09-27 23:01:46 +02:00
Stefanos A.
b3ce99a086
Increased the text surface size
...
This is necessary for high-dpi monitors which render text at double
resolution.
2013-09-27 22:59:56 +02:00
Stefanos A.
56d7e4e564
Use OpenGL window flag and switch to "fake" fullscreen mode
...
The OpenGL flag is required when using SDL2 on Windows. Fake fullscreen
works much better on modern monitors and systems with multiple monitors.
2013-09-27 18:57:05 +02:00
Stefanos A.
5df5447ff9
Add debug message when context creation fails
2013-09-27 18:55:58 +02:00
Stefanos A.
3398902940
Use Wgl.Import.GetCurrentContext DllImport directly
...
Wgl is implemented using the regular DllImport + delegate approach, in
order to support extensions. The delegates have not been armed at this
point, so we need to use the DllImport directly.
The whole wgl API should be revisited (we are using only a tiny
portion.)
2013-09-27 18:55:38 +02:00
Stefanos A
0fdef8eb23
Merge remote-tracking branch 'origin/master' into sdl2
2013-09-27 15:20:45 +02:00
Stefanos A.
cf703aca62
Added app.manifest to OpenTK.Examples project
...
The file had been added to the source tree, but was missing from the
OpenTK.Examples project configuration, causing hi-dpi mode to fail on
the examples window.
2013-09-27 15:19:21 +02:00
thefiddler
6d0b5eb49f
Implemented SDL2 platform using sdl2-cs
...
This is a new platform that can be used then sdl2 is installed on the target system. SDL2 is commercially supported by Valve and provides better support for MacOS compared to our current implementation (Cocoa vs Carbon). It will also help us introduce faster support for new platforms. Existing platforms remain as a fallback and will be automatically used if sdl2 is not installed.
Please note that this is still a work in progress. The new mouse and keyboard API is not supported yet. Due to limitations of sdl2, multiple mice/keyboards are also not supported.
2013-09-27 14:41:37 +02:00
thefiddler
89845d5ff9
Integrated sdl2-cs bindings for sdl2
...
This is using the sdl2/pure branch of https://github.com/thefiddler/SDL2-CS.git which contains the SDL2 bindings without MiniTK.
2013-09-27 14:33:52 +02:00
thefiddler
3989b94e68
Merge commit 'ed45dddb98c8250a33505c953b6c60bf7a854ffb' as 'Source/OpenTK/Platform/SDL2/sdl2-cs'
2013-09-27 14:26:50 +02:00
thefiddler
77d124d7e8
Made OpenTK.Examples high-dpi aware
...
Added application manifest with the necessary key to mark
OpenTK.Examples as high-dpi aware. This improves application
appearance when DPI scaling is enabled.
2013-09-26 01:38:27 +02:00
thefiddler
2e1bcaf280
Added support for high-dpi mode on Windows.
...
The platform factory for windows now calls SetProcessDPIAware
in order to enable support for high-dpi modes. The relevant
DllImport has been added to API.cs
2013-09-26 01:35:59 +02:00
thefiddler
c7e04c6097
Merge remote-tracking branch 'andy/master'
2013-09-26 01:28:58 +02:00
Neil White
fc1a8e022b
Fix for setting Matrix/Vector values by Index
...
Many Matrix*/Vector* implementations were throwing
IndexOutOfBoundsException when you tried to set their values via their
indexer due to a missing else statement.
2013-09-24 15:46:34 +01:00
David Jeske
cce40d60b0
fix MacOS bug mapping modifier keys to the scancode array
2013-08-10 19:50:05 -07:00
David Jeske
2c29df6296
added support for smooth trackpad scrolling on macos
2013-08-09 23:20:49 -07:00
Robert Rouhani
5c66266933
Added Quaterniond version of FromMatrix
2013-07-18 13:14:30 -07:00
Robert Rouhani
d479e3768b
Added Quaternion.FromMatrix
...
Added a Diagonal and Trace property to all matrices
Added missing doc comments in the matrix classes to reduce the number of compiler warnings
2013-07-18 12:58:43 -07:00
Andy Korth
f38e717601
Fix for github issue 13, terrible crash on Keyboard GetState
2013-06-04 16:02:37 -05:00
zastrowm
e7ba5e789f
Update whitespace issues to conform to the rest of the document
2013-04-26 21:09:12 -05:00
zastrowm
5f336dd9f9
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas
...
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas. The lambdas caused memory allocations and were unneeded
2013-04-26 21:06:08 -05:00
Andy Korth
29c7d96420
Merge pull request #10 from Artfunkel/master
...
Matrix ExtractScale() bug fix and "Clear" methods
2013-04-15 07:52:49 -07:00
Tom Edwards
b38c81a458
Added Matrix clearing methods
...
- Added ClearTranslation(), ClearScale(), ClearRotation() and
ClearProjection()
- Added ExtractProjection() to Matrix4
- Fixed ExtractScale() giving incorrect results if a Matrix4 contained
projection data
- Added setters to Matrix4d's Column properties
2013-04-11 22:23:43 +01:00
Dean Ellis
9a39949249
Merge pull request #1 from elisee/fix-client-rectangle-setter
...
Fix ClientRectangle setter on Windows (WinGL) & Linux (X11)
2013-03-22 16:29:36 -05:00
Tom Edwards
ca7e2c9c4b
Copied Matrix4 changes to other classes
...
* Removed pointless LengthSquared check from ExtractRotation()
* Improved inline documentation
2013-03-20 12:44:12 +00:00
Tom Edwards
498b659d58
Changes suggested by Rob Rouhani
...
* Turned the new Matrix4 properties into methods
* Matrix4.Normalize() now behaves correctly. ExtractRotation() does its
own row normalisation.
2013-03-19 15:28:31 +00:00
Tom Edwards
b20b21d228
A couple more maths functions
2013-02-23 18:26:34 +00:00
Tom Edwards
11114ca4ea
Extra maths features
...
- Added TranslationPart, ScalePart and RotationPart properties to
Matrix4
- Added Normalized() to Vector2/3/4, Quaternion and Matrix
2013-02-18 18:46:26 +00:00
Tom Edwards
6c35e8ef24
Merge remote-tracking branch 'origin/ScanCodeKeyboardBranch'
2013-02-17 14:58:16 +00:00
Andy Korth
ebb56e9d77
minor notes in comments of Matrix classes
2013-01-31 09:58:49 -06:00
Robert Rouhani
920d683954
Merge branch 'master' of github.com:andykorth/opentk
...
Conflicts:
Source/OpenTK/Math/Matrix3.cs
Source/OpenTK/Math/Matrix3d.cs
2013-01-26 16:29:23 -05:00
Robert Rouhani
8a7f506529
Added GL.UniformMatrix* double overloads.
2013-01-26 16:23:40 -05:00
Robert Rouhani
2f9ccbc3af
Converted tabs to spaces.
2013-01-26 16:08:34 -05:00
Robert Rouhani
2cbff7261a
Copied float matrix classes to their double equivalents.
2013-01-26 14:06:16 -05:00
Robert Rouhani
94c7ad4f58
Implemented Matrix3(d) constructor that takes upper-left 3x3 of a Matrix4(d) as discussed in the following issue: https://github.com/andykorth/opentk/issues/4
2013-01-26 12:57:19 -05:00
Jacob Hauberg Hansen
af74d97903
Fix NullPointerException on Windows 8.
2013-01-26 14:27:26 +01:00
Andy Korth
0f64af130a
Committing artfunkel patch for scan codes
2013-01-24 15:48:01 -06:00
Tamme Schichler
f455176d2b
Added missing XML comments for Matrix3d
2013-01-24 01:53:40 +01:00
Tamme Schichler
56430c7751
Added missing XML comments for Matrix3d
...
Fixed a few small issues in XML comments for Matrix4d
--HG--
extra : rebase_source : 18595a2fc57dcf7ff0f61d699e092be036d65157
2013-01-24 01:28:53 +01:00
Tamme Schichler
f0a9afacce
Fixed a few warnings with XML comments
2013-01-24 01:26:33 +01:00
Robert Rouhani
31ba0a36b9
Matrix4x2 implementation and documenting the other matrix classes.
2013-01-20 16:38:25 -05:00
Robert Rouhani
df78210bc5
Matrix3x2 implementation and partial Matrix4x2 implementation.
2013-01-20 00:46:47 -08:00
Robert Rouhani
f10af59c14
Matrix2x3 and Matrix2x4 implementatinos
2013-01-19 23:58:30 -08:00
Robert Rouhani
5438f941dc
More work on matrices.
...
Fixed some static fields in the math classes that weren't also readonly.
2013-01-19 15:06:51 -08:00
Robert Rouhani
84a03e965c
Matrix2 implementation
...
Started on Matrix2x3 implementation
Minor changes to Matrix3 and Matrix4
2013-01-19 00:29:22 -08:00
Robert Rouhani
8b8ded3232
Added very basic implementations of all possible matrix sizes up to 4x4
...
Moved the indexers out of the Properties region and into their own Indexers region
2013-01-18 19:21:24 -08:00
Robert Rouhani
e5adf4d862
Added Matrix4x3 and Matrix3x4 implementations from our game.
2013-01-18 15:32:09 -08:00
Robert Rouhani
afefc93fc6
Fixed bug in Matrix4.LookAt.
2013-01-18 15:13:36 -08:00
Andy Korth
2a0ad3ef6f
A few minor comments
2013-01-17 14:45:57 -06:00
Robert Rouhani
3a9dfc62ad
Fixed extra endregion directive that prevented compilation.
...
Fixed some warnings about csproj files.
2013-01-16 22:11:18 -08:00
Robert Rouhani
1712057977
Removed swizzles that had duplicate components.
2013-01-16 19:21:54 -08:00
Robert Rouhani
c0fcbb6961
Fixed spacing of #endregion directives from merging
2013-01-16 18:53:59 -08:00
Robert Rouhani
bf1401e115
Fixed the issues caused by merging in our changes as patches from the old repo.
2013-01-16 18:08:03 -08:00
Robert Rouhani
59c652aaf8
Added all swizzle permutations up to the vector's dimension.
2013-01-16 18:01:07 -08:00
Robert Rouhani
819c02c445
More hacking for gamepads
2013-01-16 17:59:52 -08:00
Robert Rouhani
b5591e1eee
Started implementing GamePad
2013-01-16 17:56:31 -08:00
Robert Rouhani
e6a855f00a
Added UniformMatrix3/3d/4d overloads
2013-01-16 17:53:00 -08:00
Robert Rouhani
56e75748b5
Added ref/out overload for Matrix4.Invert
2013-01-16 17:49:26 -08:00
Robert Rouhani
20c219bda1
Implemented perpendicular dot product in Vector2.
2013-01-16 17:46:05 -08:00
Robert Rouhani
7a0634814e
Matrix4 optimizations
2013-01-16 17:45:10 -08:00
Andy Korth
fa422dca2a
Fix Windows 8 Keyboard, OpenTK issue 3198
2013-01-14 13:09:55 -06:00
Andy Korth
6500e176df
A bit of cleanup on the Vector ToStrings
2013-01-08 12:04:21 -06:00
the_fiddler
1a2b506142
Fixed incorrect reference in GetDisplay() documentation.
2013-01-08 10:39:08 +00:00
Andy Korth
4230c6b4f0
Added Robmaister's Matrix3 implementations
2013-01-03 10:41:56 -06:00
Andy Korth
1939bc789d
Added index getters and settors for Vector and Matrix classes
2013-01-03 10:39:15 -06:00
Andy Korth
0c7c1e8bd9
Add Create from quaternion method from avc81, OpenTK Issue 2439
2013-01-03 10:19:06 -06:00
Andy Korth
84e97adf45
Address OpenTK Issue 1880
2013-01-03 10:14:59 -06:00
Andy Korth
5a6f5a870e
Test for basic mouse input
2013-01-03 10:07:50 -06:00
Andy Korth
d029a73c68
Test for mouseUp event firing when mouse is outside of the window
2012-12-21 21:22:55 -06:00
Andy Korth
5b0db16a89
Mouse up events in Windows occur regardless of where on the screen the cursor is. OpenTK issue 2133
2012-12-21 21:12:59 -06:00
Andy Korth
c98d9e4503
Supress printing of some keyboard non-errors.
2012-12-21 18:43:19 -06:00
Andy Korth
39c3f3f543
Replication project for Mac OS mouse input issue, and fix. OpenTK issues 3242 and 2800
2012-12-21 17:11:39 -06:00
Andy Korth
3c609872fe
New test for Basic Mouse Input. Does not work on Mac.
2012-12-21 15:22:37 -06:00
Andy Korth
02ce1430ab
Reduce debugging a little for now
2012-12-20 16:19:54 -06:00
Andy Korth
224a296220
Address mouse on windows 8 for OpenTK issue 3198
2012-12-20 15:18:52 -06:00
Andy Korth
27d2cb451f
Supress some of the warnings in the autogenerated files
2012-12-20 13:56:59 -06:00
Andy Korth
fb507db838
Fix unparsable characters in shader, OpenTK issue 3186
2012-12-20 13:45:56 -06:00
Andy Korth
bef7ecd1ed
Fix incorrect Mac OS key map, OpenTK issue 3220
2012-12-20 13:45:00 -06:00
Andy Korth
0847b2ca5c
Build.UpdateVersion can track the git revision now, in addition to svn and bzr.
2012-12-20 13:35:58 -06:00
the_fiddler
a0021909d1
Minor documentation updates.
2012-05-22 23:42:47 +00:00
the_fiddler
d43f00c757
Minor documentation updates.
2012-05-22 23:42:47 +00:00
the_fiddler
5304af3d28
Use singular form for single-object overloads, because plural looks weird when generating a single name.
2012-04-04 11:10:28 +00:00
the_fiddler
58ef0d5c27
Use singular form for single-object overloads, because plural looks weird when generating a single name.
2012-04-04 11:10:28 +00:00
the_fiddler
006ce7a14f
Added overloads for Gen* and Delete* functions with single objects as parameters.
2012-04-04 11:03:28 +00:00
the_fiddler
8b8e49535c
Added overloads for Gen* and Delete* functions with single objects as parameters.
2012-04-04 11:03:28 +00:00
the_fiddler
4a62861dfc
Use new DisplayDevice.GetDisplay() interface instead of obsolete AvailableDisplays.
2011-12-15 11:30:39 +00:00
the_fiddler
7569345e0a
Use new DisplayDevice.GetDisplay() interface instead of obsolete AvailableDisplays.
2011-12-15 11:30:39 +00:00
the_fiddler
a7964470c6
Use Debug.WriteLine instead of Debug.Print on a single-parameter string. Fixes compilation on mobile devices.
2011-12-08 00:17:08 +00:00
the_fiddler
e838aa7953
Use Debug.WriteLine instead of Debug.Print on a single-parameter string. Fixes compilation on mobile devices.
2011-12-08 00:17:08 +00:00
the_fiddler
1b7c8fb295
Added minimal SystemEvents definition to allow compilation on mobile devices.
2011-12-08 00:14:36 +00:00
the_fiddler
1e739bb4ff
Added minimal SystemEvents definition to allow compilation on mobile devices.
2011-12-08 00:14:36 +00:00
the_fiddler
e8590dddd4
Avoid using the global namespace in the MINIMAL configuration, as it confuses the Mono compiler.
2011-12-08 00:10:03 +00:00
the_fiddler
41e0c65dcb
Avoid using the global namespace in the MINIMAL configuration, as it confuses the Mono compiler.
2011-12-08 00:10:03 +00:00
the_fiddler
7bcbfc7072
Added conditional compilation and the necessary classes to compile OpenTK without referencing System.Drawing.dll. To build without System.Drawing, add "MINIMAL" to the conditional compilation symbols. Note that this is an experimental feature that will result in a source- and binary-incompatible dll.
2011-12-08 00:03:14 +00:00
the_fiddler
4fde3c4dab
Added conditional compilation and the necessary classes to compile OpenTK without referencing System.Drawing.dll. To build without System.Drawing, add "MINIMAL" to the conditional compilation symbols. Note that this is an experimental feature that will result in a source- and binary-incompatible dll.
2011-12-08 00:03:14 +00:00
the_fiddler
02bfac7d59
Removed invalid TextureParameterName.Red token. Fixes issue [ #2789 ]: "TextureParameterName.Red".
2011-12-07 00:28:13 +00:00
the_fiddler
0df6d56f03
Removed invalid TextureParameterName.Red token. Fixes issue [ #2789 ]: "TextureParameterName.Red".
2011-12-07 00:28:13 +00:00
the_fiddler
af2c2fc64b
Further improvements to suffix trimming regexes. Now matches GetInteger(ui)64 and does not match functions ending in "Coord", "Attrib", "Access" and more.
2011-12-07 00:22:10 +00:00
the_fiddler
1ace769646
Further improvements to suffix trimming regexes. Now matches GetInteger(ui)64 and does not match functions ending in "Coord", "Attrib", "Access" and more.
2011-12-07 00:22:10 +00:00
the_fiddler
22d3b26769
Ensured function names are trimmed using the same code as documentation and function parameters.
...
Improved trimming for functions with '64' suffices.
2011-12-07 00:01:48 +00:00
the_fiddler
59cfdf4664
Ensured function names are trimmed using the same code as documentation and function parameters.
...
Improved trimming for functions with '64' suffices.
2011-12-07 00:01:48 +00:00
the_fiddler
4fd91623cd
Process overrides to Constant.Reference.
2011-12-06 22:59:42 +00:00
the_fiddler
5ee3013e49
Process overrides to Constant.Reference.
2011-12-06 22:59:42 +00:00
the_fiddler
21645ac634
GraphicsMode was not set when initializing a DummyGLContext with an explicit handle. Corrected now.
2011-12-06 21:54:20 +00:00
the_fiddler
5d61e042a0
GraphicsMode was not set when initializing a DummyGLContext with an explicit handle. Corrected now.
2011-12-06 21:54:20 +00:00
the_fiddler
cba5f45415
Added missing TextureEnvMode.Replace token. Fixes issue [ #2791 ]: "TextureEnvMode.Replace missing".
2011-12-06 21:49:43 +00:00
the_fiddler
e2d31c78cb
Added missing TextureEnvMode.Replace token. Fixes issue [ #2791 ]: "TextureEnvMode.Replace missing".
2011-12-06 21:49:43 +00:00
the_fiddler
f4193c5d4b
Fixed extension (and core) loading on windows.
2011-12-06 15:14:58 +00:00