- add GLControlMeshDisplay and D3D11ControlMeshDisplay into
examples/common
- delete all drawCageEdges/drawCageVertices from viewers and
use ControlMeshDisplay class
Added a size specifier to the shader output array declaration
in the GregoryBasis and Gregory control shaders. This seems
to be required by the GLSL compiler on AMD and is harmless elsewhere.
Added a size specifier to the shader output array declaration
in the BSpline control shader. This seems to be required by the
GLSL compiler on AMD and is harmless elsewhere.
Adding command line options to glViewer to make it easy
to control the requested GL version and profile. While
it is only enabled for glViewer in this change, it will
be easy to extend to all our example viewers. The new
command line options are:
-glCoreProfile on|off
-glForwardCompat on|off
-glVersion M.n
It appears the behavior of the version hint is operating system
(and perhaps driver) specific. On OSX the version hint is a
minimum version, but on Linux you get exactly the version
requested.
The GLFW FAQ seems to suggest that any driver not supporting
ARB_compatibility may need the hint.
s
- Make sure to declare usage of the include files if GLFW is found
- When GLFW is found and is compiled into examples/common, we need to
unfortunately link it into dxViewer. Hopefully we can refactor common
so that this won't be necessary in the future.
This change refactors the GLSL and HLSL patch shader code so that
most of the work is implemented within a library of common functions
and the remaining shader snippets just manage plumbing.
There is more to do here:
- varying and face-varying data can be managed entirely by the client
- similarly, displacement can be implemented in client code
- there's still quite a bit of residual boiler-plate code needed
in each shader stage that we should be able to wrap up in a more
convenient form.
The GLFW context version hint is a minimum version, not maximum version so
requesting 4.4 and then falling back to lower versions doesn't make sense.
This change sets the minimum version to 3.2 and attempts to standardize this
across all example apps.
Also print the maximum supported GL version along with the context version
at startup.
- removed all of the multi-level Interpolate...() methods taking T*, U*
- made all single-level methods consistent wrt usage of T&, U&
- replaced usage in regressions, tutorials and examples
- additional minor improvements to far/tutorials
We will need to find a solution for Ignacio's older setup, but this at least
fixes the other fallout.
* Use glewIsSupported instead of glewGetExtension
* Convert tabs to spaces
* Remove GLEW static caching (they only get called once)
To encapsulate endcap functions from public API, add methods to
tell the number of patch points needed (GetNumLocalPoints()) and
to compute those patch points as a result of change of basis from
the refined vertices (ComputeLocalPointValues()).
ComputeLocalPointValues takes contiguous source data of all levels
including level0 control vertices.
- removed AddVaryingWithWeight from Far::PrimvarRefiner interpolation
- removed Far::StencilBuilder dependencies on varying
- updated Far::StencilTableFactory use of StencilBuilder constructor
- updated far/tutorial_2 to use vertex colors vs varying (for now)
- added TopologyRefiner base level modifiers to TopologyRefinerFactoryBase
- removed old modifiers from TopologyRefiner (unused by anything else)
- updated existing Factory<MESH> definitions to use new methods