Commit 802aa25b authored by bonnell's avatar bonnell

update glew to version 1.10.0

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@21744 18c085ea-50e0-402c-830e-de6fd14e8384
parent b8e12644
......@@ -353,6 +353,9 @@
# Eric Brugger, Thu May 9 17:09:27 PDT 2013
# Removed support for mangled mesa.
#
# Kathleen Biagas, Tue Sep 3 11:06:51 PDT 2013
# Turn off SLIVR if we aren't using GLEW.
#
#****************************************************************************/
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
......@@ -1132,6 +1135,7 @@ IF(VISIT_USE_GLEW)
ELSE(VISIT_USE_GLEW)
# We're not using GLEW but we need to substitute GL
SET(GLEW_INCLUDE_DIR ${OPENGL_INCLUDE_DIR})
VISIT_OPTION_DEFAULT(VISIT_SLIVR false TYPE BOOL)
ENDIF(VISIT_USE_GLEW)
# Set up the tuvok library if it was enabled.
......
......@@ -48,6 +48,10 @@
# Kathleen Biagas, Tue Jul 31 12:08:32 MST 2012
# Change CONFIGURE_FILE settings so things work correctly with
# out-of-source builds.
#
# Kathleen Biagas, Tue Sep 3 11:08:03 PDT 2013
# Swap avtGLEWInitializer for avtOpenGLExtensionManager.
#
#****************************************************************************/
SET(VISIT_VTK_MANTA_SOURCES
......@@ -71,7 +75,7 @@ CONFIGURE_FILE(
)
SET(AVTPLOTTER_OPENGL_SOURCES
avtGLEWInitializer.C
avtOpenGLExtensionManager.C
avtOpenGLSurfaceAndWireframeRenderer.C
vtk/vtkOpenGLRectilinearGridMapper.C
vtk/vtkOpenGLStructuredGridMapper.C
......
......@@ -37,19 +37,13 @@
*****************************************************************************/
// ************************************************************************* //
// GLEWInitializer.C //
// avtOpenGLExtensionManager.C //
// ************************************************************************* //
#include <algorithm>
#include <iterator>
#include "avtGLEWInitializer.h"
#include <avtCallback.h>
#include <DebugStream.h>
#include <LibraryNotFoundException.h>
#include "VisItInit.h"
#include <visit-config.h>
#include <RuntimeSetting.h>
#include <StringHelpers.h>
#include "avtOpenGLExtensionManager.h"
#include <iostream>
using namespace std;
namespace avt { namespace glew {
......@@ -98,105 +92,12 @@ bool initialize(bool force)
{
return true;
}
typedef std::vector<std::string> stringvec;
stringvec gl_errors;
enum GL_Name_Convention convention;
enum GL_Library_Type libtype;
bool use_mesa = false;
#ifdef HAVE_OSMESA
std::string comp_name(VisItInit::GetComponentName());
//if(comp_name == "engine_ser" || comp_name == "engine_par")
//{
use_mesa = avtCallback::GetSoftwareRendering();
//}
debug1 << comp_name << " avtGLEWInitializer::initialize use_mesa = " << use_mesa <<endl;
// FIXME_VTK6 remove this cout statment after the dust settles:
cout << comp_name << " avtGLEWInitializer::initialize use_mesa = " << use_mesa <<endl;
#endif
#ifdef VISIT_STATIC
// VisIt is being built statically so we pass a NULL gl_lib to GLEW so
// it will cause dlopen to open the program instead of an external library.
// This lets it pick up the GL and MGL functions we've linked.
const char *gl_lib = NULL;
if(use_mesa)
{
convention = GLEW_NAME_STANDARD;
libtype = GLEW_LIB_TYPE_OSMESA;
}
else
{
convention = GLEW_NAME_STANDARD;
libtype = GLEW_LIB_TYPE_NATIVE;
}
GLenum err = glewInitLibrary(gl_lib, libtype, convention);
if(GLEW_OK == err)
{
GLenum err = glewInit();
if (GLEW_OK == err)
initialized = true;
}
else
{
std::ostringstream errmsg;
errmsg << "GLEW init with library 'NULL' "
<< "failed: " << glewGetErrorString(err);
debug4 << errmsg.str() << std::endl;
gl_errors.push_back(errmsg.str());
}
#else
std::string gl_lib;
if(use_mesa)
{
gl_lib = RuntimeSetting::lookups("mesa-lib");
convention = GLEW_NAME_STANDARD;
libtype = GLEW_LIB_TYPE_OSMESA;
}
else
{
gl_lib = RuntimeSetting::lookups("system-gl");
convention = GLEW_NAME_STANDARD;
libtype = GLEW_LIB_TYPE_NATIVE;
}
cerr << "GLEW initialization failed: " << glewGetErrorString(err) << endl;
stringvec gl_libs = StringHelpers::split(gl_lib, ';');
for(stringvec::const_iterator lib = gl_libs.begin(); lib != gl_libs.end();
++lib)
{
debug4 << "Initializing GLEW using library: " << *lib << std::endl;
GLenum err = glewInitLibrary(lib->c_str(), libtype, convention);
if(GLEW_OK == err)
{
initialized = true;
break;
}
else
{
std::ostringstream errmsg;
errmsg << "GLEW init with library '" << *lib << "' "
<< "failed: " << glewGetErrorString(err);
debug4 << errmsg.str() << std::endl;
gl_errors.push_back(errmsg.str());
}
}
#endif
if(!initialized)
{
std::ostringstream noGL;
noGL << "GLEW initialization FAILED.\n";
std::copy(gl_errors.begin(), gl_errors.end(),
std::ostream_iterator<std::string>(noGL, "\n"));
std::string env_var = use_mesa ? "VISIT_MESA_LIB" : "VISIT_GL_LIB";
std::string cmd_line = use_mesa ? "--mesa-lib" : "--system-gl-lib";
noGL << "\nTry setting the " << env_var << " environment variable, "
<< "or using the " << cmd_line << " command line option.";
EXCEPTION1(LibraryNotFoundException, noGL.str());
}
#endif
return initialized;
}
......
......@@ -37,10 +37,10 @@
*****************************************************************************/
// ************************************************************************* //
// GLEWInitializer.h //
// avtOpenGLExtensionManager.h //
// ************************************************************************* //
#ifndef VISIT_GLEW_INITIALIZER_H
#define VISIT_GLEW_INITIALIZER_H
#ifndef AVT_OPENGL_EXTENSION_MANAGER_H
#define AVT_OPENGL_EXTENSION_MANAGER_H
#include <plotter_exports.h>
#ifdef HAVE_LIBGLEW
......
......@@ -42,7 +42,7 @@
#include "avtOpenGLSurfaceAndWireframeRenderer.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkCellArray.h>
#include <vtkCellData.h>
......
......@@ -46,7 +46,7 @@
#include <plotter_exports.h>
#include <avtSurfaceAndWireframeRenderer.h>
#include <avtGLEWInitializer.h> // needed for GLenum
#include <avtOpenGLExtensionManager.h> // needed for GLenum
#include <vtkType.h> // for vtkIdType
class vtkCellArray;
......
......@@ -20,7 +20,7 @@
// The gcc-4.x compiler no longer just warns about automatic type conversion.
//
=========================================================================*/
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include "vtkOpenGLRectilinearGridMapper.h"
#include <vtkPoints.h>
......@@ -1002,11 +1002,11 @@ vtkOpenGLRectilinearGridMapper::BeginColorTexturing()
//
#ifdef HAVE_LIBGLEW
if(GLEW_EXT_secondary_color)
#endif
{
glEnable(GL_COLOR_SUM_EXT);
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
}
#endif
}
......@@ -1042,10 +1042,10 @@ vtkOpenGLRectilinearGridMapper::EndColorTexturing()
}
#ifdef HAVE_LIBGLEW
if(GLEW_EXT_secondary_color)
#endif
{
glDisable(GL_COLOR_SUM_EXT);
}
#endif
}
......
......@@ -21,31 +21,30 @@
//
=========================================================================*/
#include "vtkOpenGLStructuredGridMapper.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkCellArray.h>
#include <vtkCellData.h>
#include <vtkCommand.h>
#include <vtkDataArray.h>
#include <vtkFloatArray.h>
#include <vtkImageData.h>
#include <vtkLookupTable.h>
#include <vtkMatrix4x4.h>
#include <vtkObjectFactory.h>
#include <vtkOpenGLRenderer.h>
#include <vtkPlane.h>
#include <vtkPlaneCollection.h>
#include <vtkPointData.h>
#include <vtkPoints.h>
#include "vtkCellArray.h"
#include "vtkCellData.h"
#include "vtkCommand.h"
#include "vtkDataArray.h"
#include "vtkFloatArray.h"
#include "vtkImageData.h"
#include "vtkMatrix4x4.h"
#include "vtkObjectFactory.h"
#include "vtkOpenGLRenderer.h"
#include "vtkPlane.h"
#include "vtkPlaneCollection.h"
#include "vtkPointData.h"
#include "vtkStructuredGrid.h"
#include "vtkPolygon.h"
#include "vtkProperty.h"
#include "vtkTimerLog.h"
#include "vtkTriangle.h"
#include "vtkRenderWindow.h"
#include "vtkLookupTable.h"
#include "vtkSkewLookupTable.h"
#include <vtkPolygon.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkSkewLookupTable.h>
#include <vtkStructuredGrid.h>
#include <vtkTimerLog.h>
#include <vtkTriangle.h>
static const int dlSize = 8192;
......@@ -862,11 +861,11 @@ vtkOpenGLStructuredGridMapper::BeginColorTexturing()
//
#ifdef HAVE_LIBGLEW
if(GLEW_EXT_secondary_color)
#endif
{
glEnable(GL_COLOR_SUM_EXT);
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
}
#endif
}
......@@ -904,8 +903,6 @@ vtkOpenGLStructuredGridMapper::EndColorTexturing()
#ifdef HAVE_LIBGLEW
if(GLEW_EXT_secondary_color)
glDisable(GL_COLOR_SUM_EXT);
#else
glDisable(GL_COLOR_SUM_EXT);
#endif
}
......
......@@ -36,7 +36,7 @@
*
*****************************************************************************/
#include "vtkOpenGLTexturedBackgroundMapper.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkCamera.h>
#include <vtkTexture.h>
#include <vtkViewport.h>
......
......@@ -36,7 +36,7 @@
*
*****************************************************************************/
#include <avtGLEWInitializer.h> // Make sure GLEW gets included first.
#include <avtOpenGLExtensionManager.h> // Make sure GLEW gets included first.
#include "vtkTexturedPointsPainter.h"
#include <vtkObjectFactory.h>
......
......@@ -58,7 +58,7 @@
#include <VisWindowColleagueProxy.h>
#include <avtCallback.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <avtSourceFromImage.h>
#include <ImproperUseException.h>
......
......@@ -42,7 +42,6 @@
#include <vtkToolkits.h>
#include <avtGLEWInitializer.h>
#include <avtCurvePlot.h>
#include <avtOpenGLCurveRenderer.h>
......
......@@ -50,7 +50,7 @@
#include <DebugStream.h>
#include <TimingsManager.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
// ****************************************************************************
// Method: avtOpenGLCurveRenderer::avtOpenGLCurveRenderer
......
......@@ -39,7 +39,7 @@
#include <avtOpenGLLabelRenderer.h>
#include <arial.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkCamera.h>
#include <vtkCellData.h>
......
......@@ -59,7 +59,7 @@
#include <vtkMantaPolyDataMapper.h>
#include <vtkObjectFactory.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <avtCallback.h>
#include <avtColorTables.h>
#include <avtViewInfo.h>
......@@ -68,8 +68,6 @@
#include <LightList.h>
#include <MoleculeAttributes.h>
#include <avtGLEWInitializer.h>
#include "AtomicProperties.h"
#include <LineAttributes.h>
......
......@@ -52,7 +52,6 @@
#include <vtkRenderWindow.h>
#include <vtkToolkits.h>
#include <avtGLEWInitializer.h>
#include "avtMoleculeRenderer.h"
#include <avtCallback.h>
......
......@@ -49,15 +49,7 @@
//
#include <visit-config.h>
#include <avtGLEWInitializer.h>
#if defined(__APPLE__)
#include <OpenGL/gl.h>
#else
#if defined(_WIN32)
#include <windows.h>
#endif
#include <GL/gl.h>
#endif
#include <avtOpenGLExtensionManager.h>
#define SPHERE_TEX_W 256
#define SPHERE_TEX_H 256
......
......@@ -37,13 +37,12 @@
*****************************************************************************/
#include "avtOpenGLAtomTexturer3D.h"
#include <avtOpenGLExtensionManager.h>
#include <vtkConfigure.h>
#include <cstring>
#include <math.h>
#include <vtkConfigure.h>
#include <avtGLEWInitializer.h>
#include <DebugStream.h>
//////////////////////////////////////////////////////////////////////////////
......
......@@ -57,7 +57,7 @@
#include "avtOpenGLMoleculeRenderer.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <avtCallback.h>
#include <avtColorTables.h>
#include <avtViewInfo.h>
......@@ -66,8 +66,6 @@
#include <LightList.h>
#include <MoleculeAttributes.h>
#include <avtGLEWInitializer.h>
#include "AtomicProperties.h"
#include <LineAttributes.h>
......
......@@ -39,7 +39,7 @@
#include <float.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkDataArray.h>
#include <vtkPointData.h>
#include <vtkRectilinearGrid.h>
......
......@@ -41,6 +41,7 @@
// ************************************************************************* //
#include <avtGLSLProgram.h>
#include <avtOpenGLExtensionManager.h>
#include <DebugStream.h>
#include <cstring>
......
......@@ -63,7 +63,7 @@ class avtGLSLProgramImplementation;
//
// ****************************************************************************
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vector>
#include <string>
......
......@@ -64,7 +64,7 @@
#include <ImproperUseException.h>
#include <LineAttributes.h>
#include <avtLookupTable.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <avtGLSLProgram.h>
#include <vtkCamera.h>
#include <vtkStripper.h>
......
......@@ -43,7 +43,7 @@
#include <float.h>
#include "avtOpenGL3DTextureVolumeRenderer.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkDataArray.h>
#include <vtkDataSet.h>
......@@ -212,8 +212,10 @@ avtOpenGL3DTextureVolumeRenderer::Render(
{
static bool haveIssuedWarning = false;
#ifdef HAVE_LIBGLEW
if(!(avt::glew::supported("GL_VERSION_1_2") ||
avt::glew::supported("GL_EXT_texture3D")))
#endif
{
if(!haveIssuedWarning)
{
......
......@@ -42,7 +42,7 @@
#include "avtOpenGLSplattingVolumeRenderer.h"
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <vtkCellArray.h>
#include <vtkCellData.h>
......
......@@ -58,7 +58,7 @@
#include <tuvok/Renderer/GL/GLFrameCapture.h>
#include <avtCallback.h>
#include <avtGLEWInitializer.h>
#include <avtOpenGLExtensionManager.h>
#include <avtParallel.h>
#include <avtViewInfo.h>
#include <DebugStream.h>
......
This diff is collapsed.
<!-- begin header.html -->
<!--
The OpenGL Extension Wrangler Library
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
Copyright (C) 2002, Lev Povalahev
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* The name of the author may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
<!-- &nbsp;<img src="new.png" height="12" alt="NEW!"> -->
<html>
<head>
<title>GLEW: The OpenGL Extension Wrangler Library</title>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<link href="glew.css" type="text/css" rel="stylesheet">
</head>
<body bgcolor="#fff0d0">
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
<tr>
<td bgcolor="#ffffff" align="left" valign="top" width="200">
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
<tr>
<td valign="top">
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.10.0/">1.10.0</a></i></td></tr>
<tr><td align="center"><br></td></tr>
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
<tr><td align="center"><br></td></tr>
<tr><td align="center">
<table border="0" cellpadding="0" cellspacing="0" align="center">
<tr><td align="center"><a href="index.html">Download</a></td></tr>
<tr><td align="center">Usage</td></tr>
<tr><td align="center"><a href="build.html">Building</a></td></tr>
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
<tr><td align="center"><a href="https://sourceforge.net/p/glew/mailman">Mailing Lists</a></td></tr>
<tr><td align="center"><a href="https://sourceforge.net/p/glew/_list/tickets">Bug Tracker</a></td></tr>
</table>
<tr><td align="center"><br></tr>
</table>
</td>
</tr>
<tr>
<td valign="bottom">
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
<tr><td align="center"><i>Last Update: 07-22-13</i></td></tr>
<tr><td align="center">
<a href="http://www.opengl.org"> <img src="./ogl_sm.jpg" width="68"
height="35" border="0" alt="OpenGL Logo"></a>
<a href="http://sourceforge.net"> <img
src="http://sourceforge.net/sflogo.php?group_id=67586&amp;type=1"
width="88" height="31" border="0" alt="SourceForge Logo"></a>
</td>
</tr>
<!--- <tr><td align="center"><a
href="http://sourceforge.net/donate/index.php?group_id=67586"><img
src="http://images.sourceforge.net/images/project-support.jpg"
width="88" height="32" border="0" alt="Support This Project"></a></td></tr> -->
</table>
</td>
</tr>
</table>
</td>
<td bgcolor="#ffffff" align="left" valign="top">
<h1>The OpenGL Extension Wrangler Library</h1>
<!-- end header.html -->
<h2>Initializing GLEW</h2>
<p>
First you need to create a valid OpenGL rendering context and call
<tt>glewInit()</tt> to initialize the extension entry points. If
<tt>glewInit()</tt> returns <tt>GLEW_OK</tt>, the initialization
succeeded and you can use the available extensions as well as core
OpenGL functionality. For example:
</p>
<p class="pre">
#include &lt;GL/glew.h&gt;<br>
#include &lt;GL/glut.h&gt;<br>
...<br>
glutInit(&amp;argc, argv);<br>
glutCreateWindow("GLEW Test");<br>
GLenum err = glewInit();<br>
if (GLEW_OK != err)<br>
{<br>
&nbsp;&nbsp;/* Problem: glewInit failed, something is seriously wrong. */<br>
&nbsp;&nbsp;fprintf(stderr, "Error: %s\n", glewGetErrorString(err));<br>
&nbsp;&nbsp;...<br>
}<br>
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));<br>
</p>
<h2>Checking for Extensions</h2>
<p>
Starting from GLEW 1.1.0, you can find out if a particular extension
is available on your platform by querying globally defined variables
of the form <tt>GLEW_{extension_name}</tt>:
</p>
<p class="pre">
if (GLEW_ARB_vertex_program)<br>
{<br>
&nbsp;&nbsp;/* It is safe to use the ARB_vertex_program extension here. */<br>
&nbsp;&nbsp;glGenProgramsARB(...);<br>
}<br>
</p>
<p>
<b>In GLEW 1.0.x, a global structure was used for this task. To ensure
binary compatibility between releases, the struct was replaced with a
set of variables.</b>
</p>
<p>
You can also check for core OpenGL functionality. For example, to
see if OpenGL 1.3 is supported, do the following:
</p>
<p class="pre">
if (GLEW_VERSION_1_3)<br>
{<br>
&nbsp;&nbsp;/* Yay! OpenGL 1.3 is supported! */<br>
}<br>
</p>
<p>
In general, you can check if <tt>GLEW_{extension_name}</tt> or
<tt>GLEW_VERSION_{version}</tt> is true or false.
</p>
<p>
It is also possible to perform extension checks from string
input. Starting from the 1.3.0 release, use <tt>glewIsSupported</tt>
to check if the required core or extension functionality is
available:
</p>
<p class="pre">
if (glewIsSupported("GL_VERSION_1_4&nbsp;&nbsp;GL_ARB_point_sprite"))<br>
{<br>
&nbsp;&nbsp;/* Great, we have OpenGL 1.4 + point sprites. */<br>
}<br>
</p>
<p>
For extensions only, <tt>glewGetExtension</tt> provides a slower alternative
(GLEW 1.0.x-1.2.x). <b>Note that in the 1.3.0 release </b>