OpenTK9's picture

NVidia Path Rendering Extension Support for OPenTK

How can we use NVidia's path rendering extension ?
I know the extension is not supported by OpenTK at this point of time.
If anyone knows how to do this, that would be great.
This is a fairly new extension. (Aug 2011)


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

I cannot find the instructions I've written on this topic, but the gist is this:

  1. Run Convert.exe -p:gl -v:4.2 -t:spec -o:signatures.xml http://opengl.org/registry/api/gl.spec
  2. Copy the generated signatures.xml to opentk/Source/Bind/Specifications/GL2/signatures.xml
  3. Run Bind.exe
  4. Recompile OpenTK

The first command will download the latest specs and convert them to xml, and the third command will read this xml file and generate the new bindings.

This is a slight chance that the latest gl.spec introduces a construct (or bug) that confuses Convert.exe. If this happens, please file a bug report and I will take a look.

OpenTK9's picture

Thank you Fiddler!
Yes! looks like there is a bug. It isn't generating any xml.....actually Converter.exe is crashing...
I looked at the latest gl.spec which didn't have NV_path_rendering (what I am looking for)....
Any thoughts on this ?

the Fiddler's picture

You are right, Nvidia hasn't published the extension yet. Unless they do, there's no way to update the bindings automatically. If there is a pressing need, you can add the necessary functions in Bind/Specifications/GL2/gloverrides.xml by hand, and run Bind.exe (without parameters).

iliak's picture

Hi,

Does OpenTK supports this extension now ?

Iliak

www.mimicprod.net
www.dungeoneye.net : Open source remake of Eye of the Beholder II

Bunter's picture

Also very interested in path rendering API. Converter.exe working w/ latest specs but Bind.exe failing (below). Any chance of a quick fix into the trunk?

Regards,
Bunter

---

[Warning] Reference Version40 not found for token DoubleMat2x3 = ((int)Version40.DoubleMat2x3).
[Warning] Reference Version40 not found for token DoubleMat2x4 = ((int)Version40.DoubleMat2x4).
[Warning] Reference Version40 not found for token DoubleMat3x2 = ((int)Version40.DoubleMat3x2).
[Warning] Reference Version40 not found for token DoubleMat3x4 = ((int)Version40.DoubleMat3x4).
[Warning] Reference Version40 not found for token DoubleMat4x2 = ((int)Version40.DoubleMat4x2).
[Warning] Reference Version40 not found for token DoubleMat4x3 = ((int)Version40.DoubleMat4x3).
[Warning] Reference Version40 not found for token SamplerCubeMapArray = ((int)Version40.SamplerCubeMapArray).
[Warning] Reference Version40 not found for token SamplerCubeMapArrayShadow = ((int)Version40.SamplerCubeMapArrayShadow).
[Warning] Reference Version40 not found for token IntSamplerCubeMapArray = ((int)Version40.IntSamplerCubeMapArray).
[Warning] Reference Version40 not found for token UnsignedIntSamplerCubeMapArray = ((int)Version40.UnsignedIntSamplerCubeMapArray).

Unhandled Exception: System.InvalidOperationException: Enum specification contains cycle
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 210
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.Structures.Constant.TranslateConstantWithReference(Constant c, EnumCollection enums, EnumCollection auxEnums) in C:\dev\x\trunk\Source\Bind\Structures\Constant.cs:line 219
at Bind.EnumProcessor.<>c__DisplayClass7.b__4(Constant c) in C:\dev\x\trunk\Source\Bind\EnumProcessor.cs:line 317
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Bind.EnumProcessor.ResolveAliases(Enum e, EnumCollection enums) in C:\dev\x\trunk\Source\Bind\EnumProcessor.cs:line 316
at Bind.EnumProcessor.ProcessConstants(EnumCollection enums, XPathNavigator nav) in C:\dev\x\trunk\Source\Bind\EnumProcessor.cs:line 189
at Bind.EnumProcessor.Process(EnumCollection enums) in C:\dev\x\trunk\Source\Bind\EnumProcessor.cs:line 57
at Bind.GL2.Generator.Process() in C:\dev\x\trunk\Source\Bind\GL2\Generator.cs:line 85
at Bind.MainClass.Main(String[] arguments) in C:\dev\x\trunk\Source\Bind\Main.cs:line 192