diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake
index c7184d57e..b194b5ff9 100644
--- a/code/CMakeModules/nel.cmake
+++ b/code/CMakeModules/nel.cmake
@@ -236,8 +236,6 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_COVERAGE "With Code Coverage Support" OFF)
OPTION(WITH_PCH "With Precompiled Headers" ON )
OPTION(FINAL_VERSION "Build in Final Version mode" ON )
- OPTION(WITH_PERFHUD "Build with NVIDIA PerfHUD support" OFF )
- OPTION(WITH_PATCH_SUPPORT "Build with in-game Patch Support" OFF )
# Default to static building on Windows.
IF(WIN32)
@@ -325,6 +323,7 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
OPTION(WITH_LIBOVR "With LibOVR support" OFF)
OPTION(WITH_LIBVR "With LibVR support" OFF)
+ OPTION(WITH_PERFHUD "With NVIDIA PerfHUD support" OFF)
ENDMACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
MACRO(NL_SETUP_NELNS_DEFAULT_OPTIONS)
@@ -343,6 +342,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
OPTION(WITH_RYZOM_TOOLS "Build Ryzom Core Tools" ON )
OPTION(WITH_RYZOM_SERVER "Build Ryzom Core Services" ON )
OPTION(WITH_RYZOM_SOUND "Enable Ryzom Core Sound" ON )
+ OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
###
# Optional support
@@ -889,7 +889,7 @@ MACRO(NL_SETUP_BUILD)
SET(NL_RELEASE_CFLAGS "${NL_RELEASE_CFLAGS} -g")
ELSE(WITH_SYMBOLS)
IF(APPLE)
- SET(NL_RELEASE_LINKFLAGS "-Wl,-dead_strip -Wl,-x ${NL_RELEASE_LINKFLAGS}")
+ SET(NL_RELEASE_LINKFLAGS "-Wl,-dead_strip ${NL_RELEASE_LINKFLAGS}")
ELSE(APPLE)
SET(NL_RELEASE_LINKFLAGS "-Wl,-s ${NL_RELEASE_LINKFLAGS}")
ENDIF(APPLE)
diff --git a/code/nel/include/nel/3d/skeleton_shape.h b/code/nel/include/nel/3d/skeleton_shape.h
index 52a7c9e62..a47be7f17 100644
--- a/code/nel/include/nel/3d/skeleton_shape.h
+++ b/code/nel/include/nel/3d/skeleton_shape.h
@@ -88,7 +88,7 @@ public:
/** return the bounding box of the shape. Default is to return Null bbox.
*/
- virtual void getAABBox(NLMISC::CAABBox &bbox) const;
+ virtual void getAABBox(NLMISC::CAABBox &bbox) const;
/// get an approximation of the number of triangles this instance will render for a fixed distance.
virtual float getNumTriangles (float distance);
@@ -98,7 +98,7 @@ public:
NLMISC_DECLARE_CLASS(CSkeletonShape);
/// flush textures used by this shape.
- virtual void flushTextures (IDriver &/* driver */, uint /* selectedTexture */) {}
+ virtual void flushTextures (IDriver &/* driver */, uint /* selectedTexture */) {}
// @}
diff --git a/code/nel/include/nel/3d/stereo_display.h b/code/nel/include/nel/3d/stereo_display.h
index 3b9c73b74..570a62739 100644
--- a/code/nel/include/nel/3d/stereo_display.h
+++ b/code/nel/include/nel/3d/stereo_display.h
@@ -60,6 +60,7 @@ public:
{
StereoDisplay,
StereoHMD,
+ StereoNGHMD,
};
enum TStereoDeviceLibrary
diff --git a/code/nel/include/nel/3d/stereo_ng_hmd.h b/code/nel/include/nel/3d/stereo_ng_hmd.h
new file mode 100644
index 000000000..1ab8ad144
--- /dev/null
+++ b/code/nel/include/nel/3d/stereo_ng_hmd.h
@@ -0,0 +1,62 @@
+/**
+ * \file stereo_ng_hmd.h
+ * \brief IStereoNGHMD
+ * \date 2014-04-01 10:53GMT
+ * \author Jan Boon (Kaetemi)
+ * IStereoNGHMD
+ */
+
+/*
+ * Copyright (C) 2014 by authors
+ *
+ * This file is part of NL3D.
+ * NL3D is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * NL3D is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with NL3D. If not, see
+ * .
+ */
+
+#ifndef NL3D_STEREO_NG_HMD_H
+#define NL3D_STEREO_NG_HMD_H
+#include
+
+// STL includes
+
+// NeL includes
+
+// Project includes
+#include
+
+namespace NL3D {
+
+/**
+ * \brief IStereoNGHMD
+ * \date 2014-04-01 10:53GMT
+ * \author Jan Boon (Kaetemi)
+ * IStereoNGHMD
+ */
+class IStereoNGHMD : public IStereoHMD
+{
+public:
+ IStereoNGHMD();
+ virtual ~IStereoNGHMD();
+
+ /// Kill the player
+ virtual void killUser() const = 0;
+
+}; /* class IStereoNGHMD */
+
+} /* namespace NL3D */
+
+#endif /* #ifndef NL3D_STEREO_NG_HMD_H */
+
+/* end of file */
diff --git a/code/nel/include/nel/gui/ctrl_base.h b/code/nel/include/nel/gui/ctrl_base.h
index fe8d5ea60..28eeb2cd0 100644
--- a/code/nel/include/nel/gui/ctrl_base.h
+++ b/code/nel/include/nel/gui/ctrl_base.h
@@ -68,9 +68,7 @@ namespace NLGUI
// special parse
virtual bool parse(xmlNodePtr cur, CInterfaceGroup *parentGroup);
-
- /// Handle all events (implemented by derived classes) (return true to signal event handled)
- virtual bool handleEvent (const NLGUI::CEventDescriptor &event);
+ bool handleEvent (const NLGUI::CEventDescriptor &event);
virtual CCtrlBase *getSubCtrl (sint32 /* x */, sint32 /* y */) { return this; }
diff --git a/code/nel/include/nel/gui/ctrl_text_button.h b/code/nel/include/nel/gui/ctrl_text_button.h
index 2df1dee5d..183b6a65e 100644
--- a/code/nel/include/nel/gui/ctrl_text_button.h
+++ b/code/nel/include/nel/gui/ctrl_text_button.h
@@ -42,6 +42,7 @@ namespace NLGUI
/// Constructor
CCtrlTextButton(const TCtorParam ¶m);
+ ~CCtrlTextButton();
std::string getProperty( const std::string &name ) const;
void setProperty( const std::string &name, const std::string &value );
@@ -123,6 +124,9 @@ namespace NLGUI
REFLECT_LUA_METHOD("getViewText", luaGetViewText)
REFLECT_EXPORT_END
+ void onRemoved();
+ void onWidgetDeleted( CInterfaceElement *e );
+
protected:
enum {NumTexture= 3};
diff --git a/code/nel/include/nel/gui/editor_selection_watcher.h b/code/nel/include/nel/gui/editor_selection_watcher.h
new file mode 100644
index 000000000..415f4f9db
--- /dev/null
+++ b/code/nel/include/nel/gui/editor_selection_watcher.h
@@ -0,0 +1,30 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+
+namespace NLGUI
+{
+ /// Watches the currently selected GUI widget
+ class IEditorSelectionWatcher
+ {
+ public:
+
+ /// Notifies the watcher about the change
+ virtual void selectionChanged( std::string &newSelection ) = 0;
+ };
+}
+
diff --git a/code/nel/include/nel/gui/interface_element.h b/code/nel/include/nel/gui/interface_element.h
index 210c24b2e..764d165ef 100644
--- a/code/nel/include/nel/gui/interface_element.h
+++ b/code/nel/include/nel/gui/interface_element.h
@@ -70,6 +70,14 @@ namespace NLGUI
{
public:
+ /// Watches CInterfaceElement deletions
+ class IDeletionWatcher
+ {
+ public:
+ IDeletionWatcher(){}
+ virtual ~IDeletionWatcher(){}
+ virtual void onDeleted( const std::string &name ){}
+ };
enum EStrech
{
@@ -424,6 +432,8 @@ namespace NLGUI
void drawHotSpot(THotSpot hs, NLMISC::CRGBA col);
+ void drawHighlight();
+
// Returns 'true' if that element can be downcasted to a view
virtual bool isView() const { return false; }
@@ -473,6 +483,7 @@ namespace NLGUI
bool isInGroup( CInterfaceGroup *group );
static void setEditorMode( bool b ){ editorMode = b; }
+ static bool getEditorMode(){ return editorMode; }
void setEditorSelected( bool b ){ editorSelected = b; }
bool isEditorSelected() const{ return editorSelected; }
@@ -483,6 +494,19 @@ namespace NLGUI
void setSerializable( bool b ){ serializable = b; }
bool IsSerializable() const{ return serializable; }
+ /// Called when the widget is removed from it's parent group
+ virtual void onRemoved(){}
+
+ /// Registers a deletion watcher
+ static void registerDeletionWatcher( IDeletionWatcher *watcher );
+
+ /// Unregisters a deletion watcher
+ static void unregisterDeletionWatcher( IDeletionWatcher *watcher );
+
+ /// Called when the widget is deleted,
+ /// so other widgets in the group can check if it belongs to them
+ virtual void onWidgetDeleted( CInterfaceElement *e ){}
+
protected:
bool editorSelected;
@@ -543,6 +567,11 @@ namespace NLGUI
void parseSizeRef(const char *sizeRefStr, sint32 &sizeref, sint32 &sizeDivW, sint32 &sizeDivH);
private:
+ /// Notifies the deletion watchers that this interface element is being deleted
+ void notifyDeletionWatchers();
+
+ static std::vector< IDeletionWatcher* > deletionWatchers;
+
//void snapSize();
bool serializable;
diff --git a/code/nel/include/nel/gui/interface_group.h b/code/nel/include/nel/gui/interface_group.h
index 61cdc2c9b..f72bc6f1f 100644
--- a/code/nel/include/nel/gui/interface_group.h
+++ b/code/nel/include/nel/gui/interface_group.h
@@ -322,6 +322,8 @@ namespace NLGUI
// Return the current Depth, with no ZBias applied.
float getDepthForZSort() const { return _DepthForZSort; }
+ void onWidgetDeleted( CInterfaceElement *e );
+
protected:
void makeNewClip (sint32 &oldClipX, sint32 &oldClipY, sint32 &oldClipW, sint32 &oldClipH);
diff --git a/code/nel/include/nel/gui/interface_parser.h b/code/nel/include/nel/gui/interface_parser.h
index eb602b8ca..2bf1df9a8 100644
--- a/code/nel/include/nel/gui/interface_parser.h
+++ b/code/nel/include/nel/gui/interface_parser.h
@@ -382,6 +382,7 @@ namespace NLGUI
bool serializeProcs( xmlNodePtr parentNode ) const;
bool serializePointerSettings( xmlNodePtr parentNode ) const;
bool serializeKeySettings( xmlNodePtr parentNode ) const;
+ CViewBase* createClass( const std::string &name );
};
}
diff --git a/code/nel/include/nel/gui/parser.h b/code/nel/include/nel/gui/parser.h
index dc6d00767..db868f70d 100644
--- a/code/nel/include/nel/gui/parser.h
+++ b/code/nel/include/nel/gui/parser.h
@@ -27,6 +27,7 @@
namespace NLGUI
{
class CInterfaceElement;
+ class CViewBase;
class CInterfaceGroup;
class CInterfaceAnim;
class CCtrlSheetSelection;
@@ -86,6 +87,7 @@ namespace NLGUI
virtual bool serializeProcs( xmlNodePtr parentNode ) const = 0;
virtual bool serializePointerSettings( xmlNodePtr parentNode ) const = 0;
virtual bool serializeKeySettings( xmlNodePtr parentNode ) const = 0;
+ virtual CViewBase* createClass( const std::string &name ) = 0;
};
}
diff --git a/code/nel/include/nel/gui/view_base.h b/code/nel/include/nel/gui/view_base.h
index b7d2aceab..f64803720 100644
--- a/code/nel/include/nel/gui/view_base.h
+++ b/code/nel/include/nel/gui/view_base.h
@@ -25,6 +25,7 @@
namespace NLGUI
{
+ class CEventDescriptor;
class CViewBase : public CInterfaceElement
{
@@ -76,6 +77,9 @@ namespace NLGUI
// special for mouse over : return true and fill the name of the cursor to display
virtual bool getMouseOverShape(std::string &/* texName */, uint8 &/* rot */, NLMISC::CRGBA &/* col */) { return false; }
+
+ /// Handle all events (implemented by derived classes) (return true to signal event handled)
+ virtual bool handleEvent (const NLGUI::CEventDescriptor &evnt);
};
diff --git a/code/nel/include/nel/gui/widget_addition_watcher.h b/code/nel/include/nel/gui/widget_addition_watcher.h
new file mode 100644
index 000000000..f4371ed5b
--- /dev/null
+++ b/code/nel/include/nel/gui/widget_addition_watcher.h
@@ -0,0 +1,32 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef WIDGET_ADD_WATCHER
+#define WIDGET_ADD_WATCHER
+
+#include
+
+namespace NLGUI
+{
+ class IWidgetAdditionWatcher
+ {
+ public:
+ virtual void widgetAdded( const std::string &name ) = 0;
+ };
+}
+
+#endif
+
diff --git a/code/nel/include/nel/gui/widget_manager.h b/code/nel/include/nel/gui/widget_manager.h
index 00723faea..5fd75ac8a 100644
--- a/code/nel/include/nel/gui/widget_manager.h
+++ b/code/nel/include/nel/gui/widget_manager.h
@@ -47,6 +47,8 @@ namespace NLGUI
class CInterfaceOptions;
class CInterfaceAnim;
class CProcedure;
+ class IEditorSelectionWatcher;
+ class IWidgetAdditionWatcher;
/**
GUI Widget Manager
@@ -341,6 +343,7 @@ namespace NLGUI
/**
* Capture
*/
+ CViewBase *getCapturedView(){ return _CapturedView; }
CCtrlBase *getCapturePointerLeft() { return _CapturePointerLeft; }
CCtrlBase *getCapturePointerRight() { return _CapturePointerRight; }
CCtrlBase *getCaptureKeyboard() { return _CaptureKeyboard; }
@@ -484,7 +487,17 @@ namespace NLGUI
IParser* getParser() const{ return parser; }
+ std::string& getCurrentEditorSelection(){ return currentEditorSelection; }
void setCurrentEditorSelection( const std::string &name );
+ void notifySelectionWatchers();
+ void registerSelectionWatcher( IEditorSelectionWatcher *watcher );
+ void unregisterSelectionWatcher( IEditorSelectionWatcher *watcher );
+
+ void notifyAdditionWatchers( const std::string &widgetName );
+ void registerAdditionWatcher( IWidgetAdditionWatcher *watcher );
+ void unregisterAdditionWatcher( IWidgetAdditionWatcher *watcher );
+
+ CInterfaceElement* addWidgetToGroup( std::string &group, std::string &widgetClass, std::string &widgetName );
private:
CWidgetManager();
@@ -511,6 +524,8 @@ namespace NLGUI
NLMISC::CRefPtr _CapturePointerLeft;
NLMISC::CRefPtr _CapturePointerRight;
+ NLMISC::CRefPtr< CViewBase > _CapturedView;
+
// What is under pointer
std::vector< CViewBase* > _ViewsUnderPointer;
std::vector< CCtrlBase* > _CtrlsUnderPointer;
@@ -567,6 +582,9 @@ namespace NLGUI
std::vector< INewScreenSizeHandler* > newScreenSizeHandlers;
std::vector< IOnWidgetsDrawnHandler* > onWidgetsDrawnHandlers;
+ std::vector< IEditorSelectionWatcher* > selectionWatchers;
+ std::vector< IWidgetAdditionWatcher* > additionWatchers;
+
std::string currentEditorSelection;
};
diff --git a/code/nel/src/3d/CMakeLists.txt b/code/nel/src/3d/CMakeLists.txt
index fff343915..d614029f7 100644
--- a/code/nel/src/3d/CMakeLists.txt
+++ b/code/nel/src/3d/CMakeLists.txt
@@ -697,6 +697,8 @@ SOURCE_GROUP(Stereo FILES
../../include/nel/3d/stereo_display.h
stereo_hmd.cpp
../../include/nel/3d/stereo_hmd.h
+ stereo_ng_hmd.cpp
+ ../../include/nel/3d/stereo_ng_hmd.h
stereo_ovr.cpp
stereo_ovr_fp.cpp
../../include/nel/3d/stereo_ovr.h
diff --git a/code/nel/src/3d/driver/opengl/GL/glext.h b/code/nel/src/3d/driver/opengl/GL/glext.h
index e70266447..0ecf2b867 100644
--- a/code/nel/src/3d/driver/opengl/GL/glext.h
+++ b/code/nel/src/3d/driver/opengl/GL/glext.h
@@ -6,7 +6,7 @@ extern "C" {
#endif
/*
-** Copyright (c) 2013 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -33,7 +33,7 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 23855 $ on $Date: 2013-11-02 22:54:48 -0700 (Sat, 02 Nov 2013) $
+** Khronos $Revision: 26007 $ on $Date: 2014-03-19 01:28:09 -0700 (Wed, 19 Mar 2014) $
*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
@@ -53,7 +53,7 @@ extern "C" {
#define GLAPI extern
#endif
-#define GL_GLEXT_VERSION 20131102
+#define GL_GLEXT_VERSION 20140319
/* Generated C header for:
* API: gl
@@ -1485,7 +1485,7 @@ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum atta
typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
-typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
+typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
@@ -1505,7 +1505,7 @@ GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLui
GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val);
-GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask);
+GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask);
#endif
#endif /* GL_VERSION_3_2 */
@@ -2144,6 +2144,10 @@ GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data)
#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
@@ -2432,6 +2436,7 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum
#define GL_VERTEX_BINDING_STRIDE 0x82D8
#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_VERTEX_BINDING_BUFFER 0x8F4F
#define GL_DISPLAY_LIST 0x82E7
typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
@@ -4836,6 +4841,20 @@ GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name);
#endif
#endif /* GL_AMD_name_gen_delete */
+#ifndef GL_AMD_occlusion_query_event
+#define GL_AMD_occlusion_query_event 1
+#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
+#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
+#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
+#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
+#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
+#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
+typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param);
+#endif
+#endif /* GL_AMD_occlusion_query_event */
+
#ifndef GL_AMD_performance_monitor
#define GL_AMD_performance_monitor 1
#define GL_COUNTER_TYPE_AMD 0x8BC0
@@ -6163,7 +6182,7 @@ typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintp
typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data);
+typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param);
typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x);
@@ -6419,7 +6438,7 @@ GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, G
GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length);
GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data);
+GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param);
GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params);
GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x);
@@ -7062,6 +7081,10 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin
#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
#endif /* GL_EXT_separate_specular_color */
+#ifndef GL_EXT_shader_image_load_formatted
+#define GL_EXT_shader_image_load_formatted 1
+#endif /* GL_EXT_shader_image_load_formatted */
+
#ifndef GL_EXT_shader_image_load_store
#define GL_EXT_shader_image_load_store 1
#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
@@ -8108,6 +8131,52 @@ GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void
#endif
#endif /* GL_INTEL_parallel_arrays */
+#ifndef GL_INTEL_performance_query
+#define GL_INTEL_performance_query 1
+#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000
+#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001
+#define GL_PERFQUERY_WAIT_INTEL 0x83FB
+#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
+#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
+#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
+#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
+#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
+#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
+#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
+#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
+#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
+#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
+#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
+#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
+#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
+#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
+#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
+#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
+#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
+typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle);
+typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle);
+typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle);
+typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
+typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId);
+typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId);
+typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
+typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
+typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId);
+typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle);
+GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle);
+GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle);
+GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle);
+GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId);
+GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId);
+GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
+GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
+GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId);
+GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
+#endif
+#endif /* GL_INTEL_performance_query */
+
#ifndef GL_MESAX_texture_stack
#define GL_MESAX_texture_stack 1
#define GL_TEXTURE_1D_STACK_MESAX 0x8759
@@ -8202,6 +8271,15 @@ GLAPI void APIENTRY glEndConditionalRenderNVX (void);
#endif
#endif /* GL_NVX_conditional_render */
+#ifndef GL_NVX_gpu_memory_info
+#define GL_NVX_gpu_memory_info 1
+#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
+#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
+#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
+#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
+#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
+#endif /* GL_NVX_gpu_memory_info */
+
#ifndef GL_NV_bindless_multi_draw_indirect
#define GL_NV_bindless_multi_draw_indirect 1
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
@@ -8248,6 +8326,7 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
#define GL_NV_blend_equation_advanced 1
#define GL_BLEND_OVERLAP_NV 0x9281
#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
+#define GL_BLUE_NV 0x1905
#define GL_COLORBURN_NV 0x929A
#define GL_COLORDODGE_NV 0x9299
#define GL_CONJOINT_NV 0x9284
@@ -8261,6 +8340,7 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
#define GL_DST_OUT_NV 0x928D
#define GL_DST_OVER_NV 0x9289
#define GL_EXCLUSION_NV 0x92A0
+#define GL_GREEN_NV 0x1904
#define GL_HARDLIGHT_NV 0x929B
#define GL_HARDMIX_NV 0x92A9
#define GL_HSL_COLOR_NV 0x92AF
@@ -8282,6 +8362,7 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
#define GL_PLUS_CLAMPED_NV 0x92B1
#define GL_PLUS_DARKER_NV 0x9292
#define GL_PLUS_NV 0x9291
+#define GL_RED_NV 0x1903
#define GL_SCREEN_NV 0x9295
#define GL_SOFTLIGHT_NV 0x929C
#define GL_SRC_ATOP_NV 0x928E
@@ -8291,6 +8372,7 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
#define GL_SRC_OVER_NV 0x9288
#define GL_UNCORRELATED_NV 0x9282
#define GL_VIVIDLIGHT_NV 0x92A6
+#define GL_XOR_NV 0x1506
typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value);
typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void);
#ifdef GL_GLEXT_PROTOTYPES
@@ -9350,6 +9432,17 @@ GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLs
#define GL_NV_shader_storage_buffer_object 1
#endif /* GL_NV_shader_storage_buffer_object */
+#ifndef GL_NV_shader_thread_group
+#define GL_NV_shader_thread_group 1
+#define GL_WARP_SIZE_NV 0x9339
+#define GL_WARPS_PER_SM_NV 0x933A
+#define GL_SM_COUNT_NV 0x933B
+#endif /* GL_NV_shader_thread_group */
+
+#ifndef GL_NV_shader_thread_shuffle
+#define GL_NV_shader_thread_shuffle 1
+#endif /* GL_NV_shader_thread_shuffle */
+
#ifndef GL_NV_tessellation_program5
#define GL_NV_tessellation_program5 1
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
@@ -9625,7 +9718,7 @@ typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void
typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void);
typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-typedef void (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
+typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
@@ -9636,7 +9729,7 @@ GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAdd
GLAPI void APIENTRY glVDPAUFiniNV (void);
GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
+GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface);
GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access);
diff --git a/code/nel/src/3d/driver/opengl/GL/glxext.h b/code/nel/src/3d/driver/opengl/GL/glxext.h
index c81ab4d5c..6236d9244 100644
--- a/code/nel/src/3d/driver/opengl/GL/glxext.h
+++ b/code/nel/src/3d/driver/opengl/GL/glxext.h
@@ -6,7 +6,7 @@ extern "C" {
#endif
/*
-** Copyright (c) 2013 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -33,10 +33,10 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 23730 $ on $Date: 2013-10-28 15:16:34 -0700 (Mon, 28 Oct 2013) $
+** Khronos $Revision: 25923 $ on $Date: 2014-03-17 03:54:56 -0700 (Mon, 17 Mar 2014) $
*/
-#define GLX_GLXEXT_VERSION 20131028
+#define GLX_GLXEXT_VERSION 20140317
/* Generated C header for:
* API: glx
@@ -49,6 +49,7 @@ extern "C" {
#ifndef GLX_VERSION_1_3
#define GLX_VERSION_1_3 1
+typedef XID GLXContextID;
typedef struct __GLXFBConfigRec *GLXFBConfig;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
@@ -272,7 +273,6 @@ __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName);
#ifndef GLX_EXT_import_context
#define GLX_EXT_import_context 1
-typedef XID GLXContextID;
#define GLX_SHARE_CONTEXT_EXT 0x800A
#define GLX_VISUAL_ID_EXT 0x800B
#define GLX_SCREEN_EXT 0x800C
@@ -407,6 +407,32 @@ GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixm
#endif
#endif /* GLX_MESA_pixmap_colormap */
+#ifndef GLX_MESA_query_renderer
+#define GLX_MESA_query_renderer 1
+#define GLX_RENDERER_VENDOR_ID_MESA 0x8183
+#define GLX_RENDERER_DEVICE_ID_MESA 0x8184
+#define GLX_RENDERER_VERSION_MESA 0x8185
+#define GLX_RENDERER_ACCELERATED_MESA 0x8186
+#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
+#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
+#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
+#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
+#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
+#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
+#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
+#define GLX_RENDERER_ID_MESA 0x818E
+typedef Bool ( *PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int *value);
+typedef const char *( *PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute);
+typedef Bool ( *PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
+typedef const char *( *PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXQueryCurrentRendererIntegerMESA (int attribute, unsigned int *value);
+const char *glXQueryCurrentRendererStringMESA (int attribute);
+Bool glXQueryRendererIntegerMESA (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
+const char *glXQueryRendererStringMESA (Display *dpy, int screen, int renderer, int attribute);
+#endif
+#endif /* GLX_MESA_query_renderer */
+
#ifndef GLX_MESA_release_buffers
#define GLX_MESA_release_buffers 1
typedef Bool ( *PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
@@ -433,6 +459,14 @@ void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLe
#endif
#endif /* GLX_NV_copy_image */
+#ifndef GLX_NV_delay_before_swap
+#define GLX_NV_delay_before_swap 1
+typedef Bool ( *PFNGLXDELAYBEFORESWAPNVPROC) (Display *dpy, GLXDrawable drawable, GLfloat seconds);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXDelayBeforeSwapNV (Display *dpy, GLXDrawable drawable, GLfloat seconds);
+#endif
+#endif /* GLX_NV_delay_before_swap */
+
#ifndef GLX_NV_float_buffer
#define GLX_NV_float_buffer 1
#define GLX_FLOAT_COMPONENTS_NV 0x20B0
diff --git a/code/nel/src/3d/driver/opengl/GL/wglext.h b/code/nel/src/3d/driver/opengl/GL/wglext.h
index 783e53d84..e33232fa5 100644
--- a/code/nel/src/3d/driver/opengl/GL/wglext.h
+++ b/code/nel/src/3d/driver/opengl/GL/wglext.h
@@ -6,7 +6,7 @@ extern "C" {
#endif
/*
-** Copyright (c) 2013 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -33,7 +33,7 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 23730 $ on $Date: 2013-10-28 15:16:34 -0700 (Mon, 28 Oct 2013) $
+** Khronos $Revision: 25923 $ on $Date: 2014-03-17 03:54:56 -0700 (Mon, 17 Mar 2014) $
*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
@@ -41,7 +41,7 @@ extern "C" {
#include
#endif
-#define WGL_WGLEXT_VERSION 20131028
+#define WGL_WGLEXT_VERSION 20140317
/* Generated C header for:
* API: wgl
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
index 3b771e1c1..3ded67d62 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
@@ -68,254 +68,252 @@ void (*nglGetProcAddress(const char *procName))()
#ifdef USE_OPENGLES
// GL_OES_mapbuffer
-NEL_PFNGLMAPBUFFEROESPROC nglMapBufferOES;
-NEL_PFNGLUNMAPBUFFEROESPROC nglUnmapBufferOES;
-NEL_PFNGLGETBUFFERPOINTERVOESPROC nglGetBufferPointervOES;
+PFNGLMAPBUFFEROESPROC nglMapBufferOES;
+PFNGLUNMAPBUFFEROESPROC nglUnmapBufferOES;
+PFNGLGETBUFFERPOINTERVOESPROC nglGetBufferPointervOES;
-NEL_PFNGLBUFFERSUBDATAPROC nglBufferSubData;
-
-PFNGLDRAWTEXFOESPROC nglDrawTexfOES;
+PFNGLDRAWTEXFOESPROC nglDrawTexfOES;
// GL_OES_framebuffer_object
-NEL_PFNGLISRENDERBUFFEROESPROC nglIsRenderbufferOES;
-NEL_PFNGLBINDRENDERBUFFEROESPROC nglBindRenderbufferOES;
-NEL_PFNGLDELETERENDERBUFFERSOESPROC nglDeleteRenderbuffersOES;
-NEL_PFNGLGENRENDERBUFFERSOESPROC nglGenRenderbuffersOES;
-NEL_PFNGLRENDERBUFFERSTORAGEOESPROC nglRenderbufferStorageOES;
-NEL_PFNGLGETRENDERBUFFERPARAMETERIVOESPROC nglGetRenderbufferParameterivOES;
-NEL_PFNGLISFRAMEBUFFEROESPROC nglIsFramebufferOES;
-NEL_PFNGLBINDFRAMEBUFFEROESPROC nglBindFramebufferOES;
-NEL_PFNGLDELETEFRAMEBUFFERSOESPROC nglDeleteFramebuffersOES;
-NEL_PFNGLGENFRAMEBUFFERSOESPROC nglGenFramebuffersOES;
-NEL_PFNGLCHECKFRAMEBUFFERSTATUSOESPROC nglCheckFramebufferStatusOES;
-NEL_PFNGLFRAMEBUFFERRENDERBUFFEROESPROC nglFramebufferRenderbufferOES;
-NEL_PFNGLFRAMEBUFFERTEXTURE2DOESPROC nglFramebufferTexture2DOES;
-NEL_PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC nglGetFramebufferAttachmentParameterivOES;
-NEL_PFNGLGENERATEMIPMAPOESPROC nglGenerateMipmapOES;
+PFNGLISRENDERBUFFEROESPROC nglIsRenderbufferOES;
+PFNGLBINDRENDERBUFFEROESPROC nglBindRenderbufferOES;
+PFNGLDELETERENDERBUFFERSOESPROC nglDeleteRenderbuffersOES;
+PFNGLGENRENDERBUFFERSOESPROC nglGenRenderbuffersOES;
+PFNGLRENDERBUFFERSTORAGEOESPROC nglRenderbufferStorageOES;
+PFNGLGETRENDERBUFFERPARAMETERIVOESPROC nglGetRenderbufferParameterivOES;
+PFNGLISFRAMEBUFFEROESPROC nglIsFramebufferOES;
+PFNGLBINDFRAMEBUFFEROESPROC nglBindFramebufferOES;
+PFNGLDELETEFRAMEBUFFERSOESPROC nglDeleteFramebuffersOES;
+PFNGLGENFRAMEBUFFERSOESPROC nglGenFramebuffersOES;
+PFNGLCHECKFRAMEBUFFERSTATUSOESPROC nglCheckFramebufferStatusOES;
+PFNGLFRAMEBUFFERRENDERBUFFEROESPROC nglFramebufferRenderbufferOES;
+PFNGLFRAMEBUFFERTEXTURE2DOESPROC nglFramebufferTexture2DOES;
+PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC nglGetFramebufferAttachmentParameterivOES;
+PFNGLGENERATEMIPMAPOESPROC nglGenerateMipmapOES;
// GL_OES_texture_cube_map
-NEL_PFNGLTEXGENFOESPROC nglTexGenfOES;
-NEL_PFNGLTEXGENFVOESPROC nglTexGenfvOES;
-NEL_PFNGLTEXGENIOESPROC nglTexGeniOES;
-NEL_PFNGLTEXGENIVOESPROC nglTexGenivOES;
-NEL_PFNGLTEXGENXOESPROC nglTexGenxOES;
-NEL_PFNGLTEXGENXVOESPROC nglTexGenxvOES;
-NEL_PFNGLGETTEXGENFVOESPROC nglGetTexGenfvOES;
-NEL_PFNGLGETTEXGENIVOESPROC nglGetTexGenivOES;
-NEL_PFNGLGETTEXGENXVOESPROC nglGetTexGenxvOES;
+PFNGLTEXGENFOESPROC nglTexGenfOES;
+PFNGLTEXGENFVOESPROC nglTexGenfvOES;
+PFNGLTEXGENIOESPROC nglTexGeniOES;
+PFNGLTEXGENIVOESPROC nglTexGenivOES;
+PFNGLTEXGENXOESPROC nglTexGenxOES;
+PFNGLTEXGENXVOESPROC nglTexGenxvOES;
+PFNGLGETTEXGENFVOESPROC nglGetTexGenfvOES;
+PFNGLGETTEXGENIVOESPROC nglGetTexGenivOES;
+PFNGLGETTEXGENXVOESPROC nglGetTexGenxvOES;
#else
// ARB_multitexture
-NEL_PFNGLACTIVETEXTUREARBPROC nglActiveTextureARB;
-NEL_PFNGLCLIENTACTIVETEXTUREARBPROC nglClientActiveTextureARB;
+PFNGLACTIVETEXTUREARBPROC nglActiveTextureARB;
+PFNGLCLIENTACTIVETEXTUREARBPROC nglClientActiveTextureARB;
-NEL_PFNGLMULTITEXCOORD1SARBPROC nglMultiTexCoord1sARB;
-NEL_PFNGLMULTITEXCOORD1IARBPROC nglMultiTexCoord1iARB;
-NEL_PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
-NEL_PFNGLMULTITEXCOORD1DARBPROC nglMultiTexCoord1dARB;
-NEL_PFNGLMULTITEXCOORD2SARBPROC nglMultiTexCoord2sARB;
-NEL_PFNGLMULTITEXCOORD2IARBPROC nglMultiTexCoord2iARB;
-NEL_PFNGLMULTITEXCOORD2FARBPROC nglMultiTexCoord2fARB;
-NEL_PFNGLMULTITEXCOORD2DARBPROC nglMultiTexCoord2dARB;
-NEL_PFNGLMULTITEXCOORD3SARBPROC nglMultiTexCoord3sARB;
-NEL_PFNGLMULTITEXCOORD3IARBPROC nglMultiTexCoord3iARB;
-NEL_PFNGLMULTITEXCOORD3FARBPROC nglMultiTexCoord3fARB;
-NEL_PFNGLMULTITEXCOORD3DARBPROC nglMultiTexCoord3dARB;
-NEL_PFNGLMULTITEXCOORD4SARBPROC nglMultiTexCoord4sARB;
-NEL_PFNGLMULTITEXCOORD4IARBPROC nglMultiTexCoord4iARB;
-NEL_PFNGLMULTITEXCOORD4FARBPROC nglMultiTexCoord4fARB;
-NEL_PFNGLMULTITEXCOORD4DARBPROC nglMultiTexCoord4dARB;
+PFNGLMULTITEXCOORD1SARBPROC nglMultiTexCoord1sARB;
+PFNGLMULTITEXCOORD1IARBPROC nglMultiTexCoord1iARB;
+PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
+PFNGLMULTITEXCOORD1DARBPROC nglMultiTexCoord1dARB;
+PFNGLMULTITEXCOORD2SARBPROC nglMultiTexCoord2sARB;
+PFNGLMULTITEXCOORD2IARBPROC nglMultiTexCoord2iARB;
+PFNGLMULTITEXCOORD2FARBPROC nglMultiTexCoord2fARB;
+PFNGLMULTITEXCOORD2DARBPROC nglMultiTexCoord2dARB;
+PFNGLMULTITEXCOORD3SARBPROC nglMultiTexCoord3sARB;
+PFNGLMULTITEXCOORD3IARBPROC nglMultiTexCoord3iARB;
+PFNGLMULTITEXCOORD3FARBPROC nglMultiTexCoord3fARB;
+PFNGLMULTITEXCOORD3DARBPROC nglMultiTexCoord3dARB;
+PFNGLMULTITEXCOORD4SARBPROC nglMultiTexCoord4sARB;
+PFNGLMULTITEXCOORD4IARBPROC nglMultiTexCoord4iARB;
+PFNGLMULTITEXCOORD4FARBPROC nglMultiTexCoord4fARB;
+PFNGLMULTITEXCOORD4DARBPROC nglMultiTexCoord4dARB;
-NEL_PFNGLMULTITEXCOORD1SVARBPROC nglMultiTexCoord1svARB;
-NEL_PFNGLMULTITEXCOORD1IVARBPROC nglMultiTexCoord1ivARB;
-NEL_PFNGLMULTITEXCOORD1FVARBPROC nglMultiTexCoord1fvARB;
-NEL_PFNGLMULTITEXCOORD1DVARBPROC nglMultiTexCoord1dvARB;
-NEL_PFNGLMULTITEXCOORD2SVARBPROC nglMultiTexCoord2svARB;
-NEL_PFNGLMULTITEXCOORD2IVARBPROC nglMultiTexCoord2ivARB;
-NEL_PFNGLMULTITEXCOORD2FVARBPROC nglMultiTexCoord2fvARB;
-NEL_PFNGLMULTITEXCOORD2DVARBPROC nglMultiTexCoord2dvARB;
-NEL_PFNGLMULTITEXCOORD3SVARBPROC nglMultiTexCoord3svARB;
-NEL_PFNGLMULTITEXCOORD3IVARBPROC nglMultiTexCoord3ivARB;
-NEL_PFNGLMULTITEXCOORD3FVARBPROC nglMultiTexCoord3fvARB;
-NEL_PFNGLMULTITEXCOORD3DVARBPROC nglMultiTexCoord3dvARB;
-NEL_PFNGLMULTITEXCOORD4SVARBPROC nglMultiTexCoord4svARB;
-NEL_PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB;
-NEL_PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
-NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
+PFNGLMULTITEXCOORD1SVARBPROC nglMultiTexCoord1svARB;
+PFNGLMULTITEXCOORD1IVARBPROC nglMultiTexCoord1ivARB;
+PFNGLMULTITEXCOORD1FVARBPROC nglMultiTexCoord1fvARB;
+PFNGLMULTITEXCOORD1DVARBPROC nglMultiTexCoord1dvARB;
+PFNGLMULTITEXCOORD2SVARBPROC nglMultiTexCoord2svARB;
+PFNGLMULTITEXCOORD2IVARBPROC nglMultiTexCoord2ivARB;
+PFNGLMULTITEXCOORD2FVARBPROC nglMultiTexCoord2fvARB;
+PFNGLMULTITEXCOORD2DVARBPROC nglMultiTexCoord2dvARB;
+PFNGLMULTITEXCOORD3SVARBPROC nglMultiTexCoord3svARB;
+PFNGLMULTITEXCOORD3IVARBPROC nglMultiTexCoord3ivARB;
+PFNGLMULTITEXCOORD3FVARBPROC nglMultiTexCoord3fvARB;
+PFNGLMULTITEXCOORD3DVARBPROC nglMultiTexCoord3dvARB;
+PFNGLMULTITEXCOORD4SVARBPROC nglMultiTexCoord4svARB;
+PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB;
+PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
+PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
// ARB_TextureCompression.
-NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
-NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
-NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
-NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
-NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
-NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
-NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
+PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
+PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
+PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
+PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
+PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
+PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
+PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
// VertexArrayRangeNV.
-NEL_PFNGLFLUSHVERTEXARRAYRANGENVPROC nglFlushVertexArrayRangeNV;
-NEL_PFNGLVERTEXARRAYRANGENVPROC nglVertexArrayRangeNV;
+PFNGLFLUSHVERTEXARRAYRANGENVPROC nglFlushVertexArrayRangeNV;
+PFNGLVERTEXARRAYRANGENVPROC nglVertexArrayRangeNV;
// FenceNV.
-NEL_PFNGLDELETEFENCESNVPROC nglDeleteFencesNV;
-NEL_PFNGLGENFENCESNVPROC nglGenFencesNV;
-NEL_PFNGLISFENCENVPROC nglIsFenceNV;
-NEL_PFNGLTESTFENCENVPROC nglTestFenceNV;
-NEL_PFNGLGETFENCEIVNVPROC nglGetFenceivNV;
-NEL_PFNGLFINISHFENCENVPROC nglFinishFenceNV;
-NEL_PFNGLSETFENCENVPROC nglSetFenceNV;
+PFNGLDELETEFENCESNVPROC nglDeleteFencesNV;
+PFNGLGENFENCESNVPROC nglGenFencesNV;
+PFNGLISFENCENVPROC nglIsFenceNV;
+PFNGLTESTFENCENVPROC nglTestFenceNV;
+PFNGLGETFENCEIVNVPROC nglGetFenceivNV;
+PFNGLFINISHFENCENVPROC nglFinishFenceNV;
+PFNGLSETFENCENVPROC nglSetFenceNV;
// VertexWeighting.
-NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
-NEL_PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT;
-NEL_PFNGLVERTEXWEIGHTPOINTEREXTPROC nglVertexWeightPointerEXT;
+PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
+PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT;
+PFNGLVERTEXWEIGHTPOINTEREXTPROC nglVertexWeightPointerEXT;
// VertexProgramExtension.
-NEL_PFNGLAREPROGRAMSRESIDENTNVPROC nglAreProgramsResidentNV;
-NEL_PFNGLBINDPROGRAMNVPROC nglBindProgramNV;
-NEL_PFNGLDELETEPROGRAMSNVPROC nglDeleteProgramsNV;
-NEL_PFNGLEXECUTEPROGRAMNVPROC nglExecuteProgramNV;
-NEL_PFNGLGENPROGRAMSNVPROC nglGenProgramsNV;
-NEL_PFNGLGETPROGRAMPARAMETERDVNVPROC nglGetProgramParameterdvNV;
-NEL_PFNGLGETPROGRAMPARAMETERFVNVPROC nglGetProgramParameterfvNV;
-NEL_PFNGLGETPROGRAMIVNVPROC nglGetProgramivNV;
-NEL_PFNGLGETPROGRAMSTRINGNVPROC nglGetProgramStringNV;
-NEL_PFNGLGETTRACKMATRIXIVNVPROC nglGetTrackMatrixivNV;
-NEL_PFNGLGETVERTEXATTRIBDVNVPROC nglGetVertexAttribdvNV;
-NEL_PFNGLGETVERTEXATTRIBFVNVPROC nglGetVertexAttribfvNV;
-NEL_PFNGLGETVERTEXATTRIBIVNVPROC nglGetVertexAttribivNV;
-NEL_PFNGLGETVERTEXATTRIBPOINTERVNVPROC nglGetVertexAttribPointervNV;
-NEL_PFNGLISPROGRAMNVPROC nglIsProgramNV;
-NEL_PFNGLLOADPROGRAMNVPROC nglLoadProgramNV;
-NEL_PFNGLPROGRAMPARAMETER4DNVPROC nglProgramParameter4dNV;
-NEL_PFNGLPROGRAMPARAMETER4DVNVPROC nglProgramParameter4dvNV;
-NEL_PFNGLPROGRAMPARAMETER4FNVPROC nglProgramParameter4fNV;
-NEL_PFNGLPROGRAMPARAMETER4FVNVPROC nglProgramParameter4fvNV;
-NEL_PFNGLPROGRAMPARAMETERS4DVNVPROC nglProgramParameters4dvNV;
-NEL_PFNGLPROGRAMPARAMETERS4FVNVPROC nglProgramParameters4fvNV;
-NEL_PFNGLREQUESTRESIDENTPROGRAMSNVPROC nglRequestResidentProgramsNV;
-NEL_PFNGLTRACKMATRIXNVPROC nglTrackMatrixNV;
-NEL_PFNGLVERTEXATTRIBPOINTERNVPROC nglVertexAttribPointerNV;
-NEL_PFNGLVERTEXATTRIB1DNVPROC nglVertexAttrib1dNV;
-NEL_PFNGLVERTEXATTRIB1DVNVPROC nglVertexAttrib1dvNV;
-NEL_PFNGLVERTEXATTRIB1FNVPROC nglVertexAttrib1fNV;
-NEL_PFNGLVERTEXATTRIB1FVNVPROC nglVertexAttrib1fvNV;
-NEL_PFNGLVERTEXATTRIB1SNVPROC nglVertexAttrib1sNV;
-NEL_PFNGLVERTEXATTRIB1SVNVPROC nglVertexAttrib1svNV;
-NEL_PFNGLVERTEXATTRIB2DNVPROC nglVertexAttrib2dNV;
-NEL_PFNGLVERTEXATTRIB2DVNVPROC nglVertexAttrib2dvNV;
-NEL_PFNGLVERTEXATTRIB2FNVPROC nglVertexAttrib2fNV;
-NEL_PFNGLVERTEXATTRIB2FVNVPROC nglVertexAttrib2fvNV;
-NEL_PFNGLVERTEXATTRIB2SNVPROC nglVertexAttrib2sNV;
-NEL_PFNGLVERTEXATTRIB2SVNVPROC nglVertexAttrib2svNV;
-NEL_PFNGLVERTEXATTRIB3DNVPROC nglVertexAttrib3dNV;
-NEL_PFNGLVERTEXATTRIB3DVNVPROC nglVertexAttrib3dvNV;
-NEL_PFNGLVERTEXATTRIB3FNVPROC nglVertexAttrib3fNV;
-NEL_PFNGLVERTEXATTRIB3FVNVPROC nglVertexAttrib3fvNV;
-NEL_PFNGLVERTEXATTRIB3SNVPROC nglVertexAttrib3sNV;
-NEL_PFNGLVERTEXATTRIB3SVNVPROC nglVertexAttrib3svNV;
-NEL_PFNGLVERTEXATTRIB4DNVPROC nglVertexAttrib4dNV;
-NEL_PFNGLVERTEXATTRIB4DVNVPROC nglVertexAttrib4dvNV;
-NEL_PFNGLVERTEXATTRIB4FNVPROC nglVertexAttrib4fNV;
-NEL_PFNGLVERTEXATTRIB4FVNVPROC nglVertexAttrib4fvNV;
-NEL_PFNGLVERTEXATTRIB4SNVPROC nglVertexAttrib4sNV;
-NEL_PFNGLVERTEXATTRIB4SVNVPROC nglVertexAttrib4svNV;
-NEL_PFNGLVERTEXATTRIB4UBVNVPROC nglVertexAttrib4ubvNV;
-NEL_PFNGLVERTEXATTRIBS1DVNVPROC nglVertexAttribs1dvNV;
-NEL_PFNGLVERTEXATTRIBS1FVNVPROC nglVertexAttribs1fvNV;
-NEL_PFNGLVERTEXATTRIBS1SVNVPROC nglVertexAttribs1svNV;
-NEL_PFNGLVERTEXATTRIBS2DVNVPROC nglVertexAttribs2dvNV;
-NEL_PFNGLVERTEXATTRIBS2FVNVPROC nglVertexAttribs2fvNV;
-NEL_PFNGLVERTEXATTRIBS2SVNVPROC nglVertexAttribs2svNV;
-NEL_PFNGLVERTEXATTRIBS3DVNVPROC nglVertexAttribs3dvNV;
-NEL_PFNGLVERTEXATTRIBS3FVNVPROC nglVertexAttribs3fvNV;
-NEL_PFNGLVERTEXATTRIBS3SVNVPROC nglVertexAttribs3svNV;
-NEL_PFNGLVERTEXATTRIBS4DVNVPROC nglVertexAttribs4dvNV;
-NEL_PFNGLVERTEXATTRIBS4FVNVPROC nglVertexAttribs4fvNV;
-NEL_PFNGLVERTEXATTRIBS4SVNVPROC nglVertexAttribs4svNV;
-NEL_PFNGLVERTEXATTRIBS4UBVNVPROC nglVertexAttribs4ubvNV;
+PFNGLAREPROGRAMSRESIDENTNVPROC nglAreProgramsResidentNV;
+PFNGLBINDPROGRAMNVPROC nglBindProgramNV;
+PFNGLDELETEPROGRAMSNVPROC nglDeleteProgramsNV;
+PFNGLEXECUTEPROGRAMNVPROC nglExecuteProgramNV;
+PFNGLGENPROGRAMSNVPROC nglGenProgramsNV;
+PFNGLGETPROGRAMPARAMETERDVNVPROC nglGetProgramParameterdvNV;
+PFNGLGETPROGRAMPARAMETERFVNVPROC nglGetProgramParameterfvNV;
+PFNGLGETPROGRAMIVNVPROC nglGetProgramivNV;
+PFNGLGETPROGRAMSTRINGNVPROC nglGetProgramStringNV;
+PFNGLGETTRACKMATRIXIVNVPROC nglGetTrackMatrixivNV;
+PFNGLGETVERTEXATTRIBDVNVPROC nglGetVertexAttribdvNV;
+PFNGLGETVERTEXATTRIBFVNVPROC nglGetVertexAttribfvNV;
+PFNGLGETVERTEXATTRIBIVNVPROC nglGetVertexAttribivNV;
+PFNGLGETVERTEXATTRIBPOINTERVNVPROC nglGetVertexAttribPointervNV;
+PFNGLISPROGRAMNVPROC nglIsProgramNV;
+PFNGLLOADPROGRAMNVPROC nglLoadProgramNV;
+PFNGLPROGRAMPARAMETER4DNVPROC nglProgramParameter4dNV;
+PFNGLPROGRAMPARAMETER4DVNVPROC nglProgramParameter4dvNV;
+PFNGLPROGRAMPARAMETER4FNVPROC nglProgramParameter4fNV;
+PFNGLPROGRAMPARAMETER4FVNVPROC nglProgramParameter4fvNV;
+PFNGLPROGRAMPARAMETERS4DVNVPROC nglProgramParameters4dvNV;
+PFNGLPROGRAMPARAMETERS4FVNVPROC nglProgramParameters4fvNV;
+PFNGLREQUESTRESIDENTPROGRAMSNVPROC nglRequestResidentProgramsNV;
+PFNGLTRACKMATRIXNVPROC nglTrackMatrixNV;
+PFNGLVERTEXATTRIBPOINTERNVPROC nglVertexAttribPointerNV;
+PFNGLVERTEXATTRIB1DNVPROC nglVertexAttrib1dNV;
+PFNGLVERTEXATTRIB1DVNVPROC nglVertexAttrib1dvNV;
+PFNGLVERTEXATTRIB1FNVPROC nglVertexAttrib1fNV;
+PFNGLVERTEXATTRIB1FVNVPROC nglVertexAttrib1fvNV;
+PFNGLVERTEXATTRIB1SNVPROC nglVertexAttrib1sNV;
+PFNGLVERTEXATTRIB1SVNVPROC nglVertexAttrib1svNV;
+PFNGLVERTEXATTRIB2DNVPROC nglVertexAttrib2dNV;
+PFNGLVERTEXATTRIB2DVNVPROC nglVertexAttrib2dvNV;
+PFNGLVERTEXATTRIB2FNVPROC nglVertexAttrib2fNV;
+PFNGLVERTEXATTRIB2FVNVPROC nglVertexAttrib2fvNV;
+PFNGLVERTEXATTRIB2SNVPROC nglVertexAttrib2sNV;
+PFNGLVERTEXATTRIB2SVNVPROC nglVertexAttrib2svNV;
+PFNGLVERTEXATTRIB3DNVPROC nglVertexAttrib3dNV;
+PFNGLVERTEXATTRIB3DVNVPROC nglVertexAttrib3dvNV;
+PFNGLVERTEXATTRIB3FNVPROC nglVertexAttrib3fNV;
+PFNGLVERTEXATTRIB3FVNVPROC nglVertexAttrib3fvNV;
+PFNGLVERTEXATTRIB3SNVPROC nglVertexAttrib3sNV;
+PFNGLVERTEXATTRIB3SVNVPROC nglVertexAttrib3svNV;
+PFNGLVERTEXATTRIB4DNVPROC nglVertexAttrib4dNV;
+PFNGLVERTEXATTRIB4DVNVPROC nglVertexAttrib4dvNV;
+PFNGLVERTEXATTRIB4FNVPROC nglVertexAttrib4fNV;
+PFNGLVERTEXATTRIB4FVNVPROC nglVertexAttrib4fvNV;
+PFNGLVERTEXATTRIB4SNVPROC nglVertexAttrib4sNV;
+PFNGLVERTEXATTRIB4SVNVPROC nglVertexAttrib4svNV;
+PFNGLVERTEXATTRIB4UBVNVPROC nglVertexAttrib4ubvNV;
+PFNGLVERTEXATTRIBS1DVNVPROC nglVertexAttribs1dvNV;
+PFNGLVERTEXATTRIBS1FVNVPROC nglVertexAttribs1fvNV;
+PFNGLVERTEXATTRIBS1SVNVPROC nglVertexAttribs1svNV;
+PFNGLVERTEXATTRIBS2DVNVPROC nglVertexAttribs2dvNV;
+PFNGLVERTEXATTRIBS2FVNVPROC nglVertexAttribs2fvNV;
+PFNGLVERTEXATTRIBS2SVNVPROC nglVertexAttribs2svNV;
+PFNGLVERTEXATTRIBS3DVNVPROC nglVertexAttribs3dvNV;
+PFNGLVERTEXATTRIBS3FVNVPROC nglVertexAttribs3fvNV;
+PFNGLVERTEXATTRIBS3SVNVPROC nglVertexAttribs3svNV;
+PFNGLVERTEXATTRIBS4DVNVPROC nglVertexAttribs4dvNV;
+PFNGLVERTEXATTRIBS4FVNVPROC nglVertexAttribs4fvNV;
+PFNGLVERTEXATTRIBS4SVNVPROC nglVertexAttribs4svNV;
+PFNGLVERTEXATTRIBS4UBVNVPROC nglVertexAttribs4ubvNV;
// VertexShaderExt extension
-NEL_PFNGLBEGINVERTEXSHADEREXTPROC nglBeginVertexShaderEXT;
-NEL_PFNGLENDVERTEXSHADEREXTPROC nglEndVertexShaderEXT;
-NEL_PFNGLBINDVERTEXSHADEREXTPROC nglBindVertexShaderEXT;
-NEL_PFNGLGENVERTEXSHADERSEXTPROC nglGenVertexShadersEXT;
-NEL_PFNGLDELETEVERTEXSHADEREXTPROC nglDeleteVertexShaderEXT;
-NEL_PFNGLSHADEROP1EXTPROC nglShaderOp1EXT;
-NEL_PFNGLSHADEROP2EXTPROC nglShaderOp2EXT;
-NEL_PFNGLSHADEROP3EXTPROC nglShaderOp3EXT;
-NEL_PFNGLSWIZZLEEXTPROC nglSwizzleEXT;
-NEL_PFNGLWRITEMASKEXTPROC nglWriteMaskEXT;
-NEL_PFNGLINSERTCOMPONENTEXTPROC nglInsertComponentEXT;
-NEL_PFNGLEXTRACTCOMPONENTEXTPROC nglExtractComponentEXT;
-NEL_PFNGLGENSYMBOLSEXTPROC nglGenSymbolsEXT;
-NEL_PFNGLSETINVARIANTEXTPROC nglSetInvariantEXT;
-NEL_PFNGLSETLOCALCONSTANTEXTPROC nglSetLocalConstantEXT;
-NEL_PFNGLVARIANTPOINTEREXTPROC nglVariantPointerEXT;
-NEL_PFNGLENABLEVARIANTCLIENTSTATEEXTPROC nglEnableVariantClientStateEXT;
-NEL_PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC nglDisableVariantClientStateEXT;
-NEL_PFNGLBINDLIGHTPARAMETEREXTPROC nglBindLightParameterEXT;
-NEL_PFNGLBINDMATERIALPARAMETEREXTPROC nglBindMaterialParameterEXT;
-NEL_PFNGLBINDTEXGENPARAMETEREXTPROC nglBindTexGenParameterEXT;
-NEL_PFNGLBINDTEXTUREUNITPARAMETEREXTPROC nglBindTextureUnitParameterEXT;
-NEL_PFNGLBINDPARAMETEREXTPROC nglBindParameterEXT;
-NEL_PFNGLISVARIANTENABLEDEXTPROC nglIsVariantEnabledEXT;
-NEL_PFNGLGETVARIANTBOOLEANVEXTPROC nglGetVariantBooleanvEXT;
-NEL_PFNGLGETVARIANTINTEGERVEXTPROC nglGetVariantIntegervEXT;
-NEL_PFNGLGETVARIANTFLOATVEXTPROC nglGetVariantFloatvEXT;
-NEL_PFNGLGETVARIANTPOINTERVEXTPROC nglGetVariantPointervEXT;
-NEL_PFNGLGETINVARIANTBOOLEANVEXTPROC nglGetInvariantBooleanvEXT;
-NEL_PFNGLGETINVARIANTINTEGERVEXTPROC nglGetInvariantIntegervEXT;
-NEL_PFNGLGETINVARIANTFLOATVEXTPROC nglGetInvariantFloatvEXT;
-NEL_PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC nglGetLocalConstantBooleanvEXT;
-NEL_PFNGLGETLOCALCONSTANTINTEGERVEXTPROC nglGetLocalConstantIntegervEXT;
-NEL_PFNGLGETLOCALCONSTANTFLOATVEXTPROC nglGetLocalConstantFloatvEXT;
+PFNGLBEGINVERTEXSHADEREXTPROC nglBeginVertexShaderEXT;
+PFNGLENDVERTEXSHADEREXTPROC nglEndVertexShaderEXT;
+PFNGLBINDVERTEXSHADEREXTPROC nglBindVertexShaderEXT;
+PFNGLGENVERTEXSHADERSEXTPROC nglGenVertexShadersEXT;
+PFNGLDELETEVERTEXSHADEREXTPROC nglDeleteVertexShaderEXT;
+PFNGLSHADEROP1EXTPROC nglShaderOp1EXT;
+PFNGLSHADEROP2EXTPROC nglShaderOp2EXT;
+PFNGLSHADEROP3EXTPROC nglShaderOp3EXT;
+PFNGLSWIZZLEEXTPROC nglSwizzleEXT;
+PFNGLWRITEMASKEXTPROC nglWriteMaskEXT;
+PFNGLINSERTCOMPONENTEXTPROC nglInsertComponentEXT;
+PFNGLEXTRACTCOMPONENTEXTPROC nglExtractComponentEXT;
+PFNGLGENSYMBOLSEXTPROC nglGenSymbolsEXT;
+PFNGLSETINVARIANTEXTPROC nglSetInvariantEXT;
+PFNGLSETLOCALCONSTANTEXTPROC nglSetLocalConstantEXT;
+PFNGLVARIANTPOINTEREXTPROC nglVariantPointerEXT;
+PFNGLENABLEVARIANTCLIENTSTATEEXTPROC nglEnableVariantClientStateEXT;
+PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC nglDisableVariantClientStateEXT;
+PFNGLBINDLIGHTPARAMETEREXTPROC nglBindLightParameterEXT;
+PFNGLBINDMATERIALPARAMETEREXTPROC nglBindMaterialParameterEXT;
+PFNGLBINDTEXGENPARAMETEREXTPROC nglBindTexGenParameterEXT;
+PFNGLBINDTEXTUREUNITPARAMETEREXTPROC nglBindTextureUnitParameterEXT;
+PFNGLBINDPARAMETEREXTPROC nglBindParameterEXT;
+PFNGLISVARIANTENABLEDEXTPROC nglIsVariantEnabledEXT;
+PFNGLGETVARIANTBOOLEANVEXTPROC nglGetVariantBooleanvEXT;
+PFNGLGETVARIANTINTEGERVEXTPROC nglGetVariantIntegervEXT;
+PFNGLGETVARIANTFLOATVEXTPROC nglGetVariantFloatvEXT;
+PFNGLGETVARIANTPOINTERVEXTPROC nglGetVariantPointervEXT;
+PFNGLGETINVARIANTBOOLEANVEXTPROC nglGetInvariantBooleanvEXT;
+PFNGLGETINVARIANTINTEGERVEXTPROC nglGetInvariantIntegervEXT;
+PFNGLGETINVARIANTFLOATVEXTPROC nglGetInvariantFloatvEXT;
+PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC nglGetLocalConstantBooleanvEXT;
+PFNGLGETLOCALCONSTANTINTEGERVEXTPROC nglGetLocalConstantIntegervEXT;
+PFNGLGETLOCALCONSTANTFLOATVEXTPROC nglGetLocalConstantFloatvEXT;
// SecondaryColor extension
-NEL_PFNGLSECONDARYCOLOR3BEXTPROC nglSecondaryColor3bEXT;
-NEL_PFNGLSECONDARYCOLOR3BVEXTPROC nglSecondaryColor3bvEXT;
-NEL_PFNGLSECONDARYCOLOR3DEXTPROC nglSecondaryColor3dEXT;
-NEL_PFNGLSECONDARYCOLOR3DVEXTPROC nglSecondaryColor3dvEXT;
-NEL_PFNGLSECONDARYCOLOR3FEXTPROC nglSecondaryColor3fEXT;
-NEL_PFNGLSECONDARYCOLOR3FVEXTPROC nglSecondaryColor3fvEXT;
-NEL_PFNGLSECONDARYCOLOR3IEXTPROC nglSecondaryColor3iEXT;
-NEL_PFNGLSECONDARYCOLOR3IVEXTPROC nglSecondaryColor3ivEXT;
-NEL_PFNGLSECONDARYCOLOR3SEXTPROC nglSecondaryColor3sEXT;
-NEL_PFNGLSECONDARYCOLOR3SVEXTPROC nglSecondaryColor3svEXT;
-NEL_PFNGLSECONDARYCOLOR3UBEXTPROC nglSecondaryColor3ubEXT;
-NEL_PFNGLSECONDARYCOLOR3UBVEXTPROC nglSecondaryColor3ubvEXT;
-NEL_PFNGLSECONDARYCOLOR3UIEXTPROC nglSecondaryColor3uiEXT;
-NEL_PFNGLSECONDARYCOLOR3UIVEXTPROC nglSecondaryColor3uivEXT;
-NEL_PFNGLSECONDARYCOLOR3USEXTPROC nglSecondaryColor3usEXT;
-NEL_PFNGLSECONDARYCOLOR3USVEXTPROC nglSecondaryColor3usvEXT;
-NEL_PFNGLSECONDARYCOLORPOINTEREXTPROC nglSecondaryColorPointerEXT;
+PFNGLSECONDARYCOLOR3BEXTPROC nglSecondaryColor3bEXT;
+PFNGLSECONDARYCOLOR3BVEXTPROC nglSecondaryColor3bvEXT;
+PFNGLSECONDARYCOLOR3DEXTPROC nglSecondaryColor3dEXT;
+PFNGLSECONDARYCOLOR3DVEXTPROC nglSecondaryColor3dvEXT;
+PFNGLSECONDARYCOLOR3FEXTPROC nglSecondaryColor3fEXT;
+PFNGLSECONDARYCOLOR3FVEXTPROC nglSecondaryColor3fvEXT;
+PFNGLSECONDARYCOLOR3IEXTPROC nglSecondaryColor3iEXT;
+PFNGLSECONDARYCOLOR3IVEXTPROC nglSecondaryColor3ivEXT;
+PFNGLSECONDARYCOLOR3SEXTPROC nglSecondaryColor3sEXT;
+PFNGLSECONDARYCOLOR3SVEXTPROC nglSecondaryColor3svEXT;
+PFNGLSECONDARYCOLOR3UBEXTPROC nglSecondaryColor3ubEXT;
+PFNGLSECONDARYCOLOR3UBVEXTPROC nglSecondaryColor3ubvEXT;
+PFNGLSECONDARYCOLOR3UIEXTPROC nglSecondaryColor3uiEXT;
+PFNGLSECONDARYCOLOR3UIVEXTPROC nglSecondaryColor3uivEXT;
+PFNGLSECONDARYCOLOR3USEXTPROC nglSecondaryColor3usEXT;
+PFNGLSECONDARYCOLOR3USVEXTPROC nglSecondaryColor3usvEXT;
+PFNGLSECONDARYCOLORPOINTEREXTPROC nglSecondaryColorPointerEXT;
// BlendColor extension
-NEL_PFNGLBLENDCOLOREXTPROC nglBlendColorEXT;
+PFNGLBLENDCOLOREXTPROC nglBlendColorEXT;
//========================
-NEL_PFNGLNEWOBJECTBUFFERATIPROC nglNewObjectBufferATI;
-NEL_PFNGLISOBJECTBUFFERATIPROC nglIsObjectBufferATI;
-NEL_PFNGLUPDATEOBJECTBUFFERATIPROC nglUpdateObjectBufferATI;
-NEL_PFNGLGETOBJECTBUFFERFVATIPROC nglGetObjectBufferfvATI;
-NEL_PFNGLGETOBJECTBUFFERIVATIPROC nglGetObjectBufferivATI;
-NEL_PFNGLDELETEOBJECTBUFFERATIPROC nglDeleteObjectBufferATI;
-NEL_PFNGLARRAYOBJECTATIPROC nglArrayObjectATI;
-NEL_PFNGLGETARRAYOBJECTFVATIPROC nglGetArrayObjectfvATI;
-NEL_PFNGLGETARRAYOBJECTIVATIPROC nglGetArrayObjectivATI;
-NEL_PFNGLVARIANTARRAYOBJECTATIPROC nglVariantArrayObjectATI;
-NEL_PFNGLGETVARIANTARRAYOBJECTFVATIPROC nglGetVariantArrayObjectfvATI;
-NEL_PFNGLGETVARIANTARRAYOBJECTIVATIPROC nglGetVariantArrayObjectivATI;
+PFNGLNEWOBJECTBUFFERATIPROC nglNewObjectBufferATI;
+PFNGLISOBJECTBUFFERATIPROC nglIsObjectBufferATI;
+PFNGLUPDATEOBJECTBUFFERATIPROC nglUpdateObjectBufferATI;
+PFNGLGETOBJECTBUFFERFVATIPROC nglGetObjectBufferfvATI;
+PFNGLGETOBJECTBUFFERIVATIPROC nglGetObjectBufferivATI;
+PFNGLFREEOBJECTBUFFERATIPROC nglFreeObjectBufferATI;
+PFNGLARRAYOBJECTATIPROC nglArrayObjectATI;
+PFNGLGETARRAYOBJECTFVATIPROC nglGetArrayObjectfvATI;
+PFNGLGETARRAYOBJECTIVATIPROC nglGetArrayObjectivATI;
+PFNGLVARIANTARRAYOBJECTATIPROC nglVariantArrayObjectATI;
+PFNGLGETVARIANTARRAYOBJECTFVATIPROC nglGetVariantArrayObjectfvATI;
+PFNGLGETVARIANTARRAYOBJECTIVATIPROC nglGetVariantArrayObjectivATI;
// GL_ATI_map_object_buffer
-NEL_PFNGLMAPOBJECTBUFFERATIPROC nglMapObjectBufferATI;
-NEL_PFNGLUNMAPOBJECTBUFFERATIPROC nglUnmapObjectBufferATI;
+PFNGLMAPOBJECTBUFFERATIPROC nglMapObjectBufferATI;
+PFNGLUNMAPOBJECTBUFFERATIPROC nglUnmapObjectBufferATI;
// GL_ATI_vertex_attrib_array_object
-NEL_PFNGLVERTEXATTRIBARRAYOBJECTATIPROC nglVertexAttribArrayObjectATI;
-NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC nglGetVertexAttribArrayObjectfvATI;
-NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC nglGetVertexAttribArrayObjectivATI;
+PFNGLVERTEXATTRIBARRAYOBJECTATIPROC nglVertexAttribArrayObjectATI;
+PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC nglGetVertexAttribArrayObjectfvATI;
+PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC nglGetVertexAttribArrayObjectivATI;
// GL_ATI_envmap_bumpmap extension
PFNGLTEXBUMPPARAMETERIVATIPROC nglTexBumpParameterivATI;
@@ -324,42 +322,42 @@ PFNGLGETTEXBUMPPARAMETERIVATIPROC nglGetTexBumpParameterivATI;
PFNGLGETTEXBUMPPARAMETERFVATIPROC nglGetTexBumpParameterfvATI;
// GL_ATI_fragment_shader extension
-NEL_PFNGLGENFRAGMENTSHADERSATIPROC nglGenFragmentShadersATI;
-NEL_PFNGLBINDFRAGMENTSHADERATIPROC nglBindFragmentShaderATI;
-NEL_PFNGLDELETEFRAGMENTSHADERATIPROC nglDeleteFragmentShaderATI;
-NEL_PFNGLBEGINFRAGMENTSHADERATIPROC nglBeginFragmentShaderATI;
-NEL_PFNGLENDFRAGMENTSHADERATIPROC nglEndFragmentShaderATI;
-NEL_PFNGLPASSTEXCOORDATIPROC nglPassTexCoordATI;
-NEL_PFNGLSAMPLEMAPATIPROC nglSampleMapATI;
-NEL_PFNGLCOLORFRAGMENTOP1ATIPROC nglColorFragmentOp1ATI;
-NEL_PFNGLCOLORFRAGMENTOP2ATIPROC nglColorFragmentOp2ATI;
-NEL_PFNGLCOLORFRAGMENTOP3ATIPROC nglColorFragmentOp3ATI;
-NEL_PFNGLALPHAFRAGMENTOP1ATIPROC nglAlphaFragmentOp1ATI;
-NEL_PFNGLALPHAFRAGMENTOP2ATIPROC nglAlphaFragmentOp2ATI;
-NEL_PFNGLALPHAFRAGMENTOP3ATIPROC nglAlphaFragmentOp3ATI;
-NEL_PFNGLSETFRAGMENTSHADERCONSTANTATIPROC nglSetFragmentShaderConstantATI;
+PFNGLGENFRAGMENTSHADERSATIPROC nglGenFragmentShadersATI;
+PFNGLBINDFRAGMENTSHADERATIPROC nglBindFragmentShaderATI;
+PFNGLDELETEFRAGMENTSHADERATIPROC nglDeleteFragmentShaderATI;
+PFNGLBEGINFRAGMENTSHADERATIPROC nglBeginFragmentShaderATI;
+PFNGLENDFRAGMENTSHADERATIPROC nglEndFragmentShaderATI;
+PFNGLPASSTEXCOORDATIPROC nglPassTexCoordATI;
+PFNGLSAMPLEMAPATIPROC nglSampleMapATI;
+PFNGLCOLORFRAGMENTOP1ATIPROC nglColorFragmentOp1ATI;
+PFNGLCOLORFRAGMENTOP2ATIPROC nglColorFragmentOp2ATI;
+PFNGLCOLORFRAGMENTOP3ATIPROC nglColorFragmentOp3ATI;
+PFNGLALPHAFRAGMENTOP1ATIPROC nglAlphaFragmentOp1ATI;
+PFNGLALPHAFRAGMENTOP2ATIPROC nglAlphaFragmentOp2ATI;
+PFNGLALPHAFRAGMENTOP3ATIPROC nglAlphaFragmentOp3ATI;
+PFNGLSETFRAGMENTSHADERCONSTANTATIPROC nglSetFragmentShaderConstantATI;
// GL_ARB_fragment_program
// the following functions are the sames than with GL_ARB_vertex_program
-//NEL_PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB;
-//NEL_PFNGLBINDPROGRAMARBPROC nglBindProgramARB;
-//NEL_PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB;
-//NEL_PFNGLGENPROGRAMSARBPROC nglGenProgramsARB;
-//NEL_PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB;
-//NEL_PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB;
-//NEL_PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB;
-//NEL_PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB;
-NEL_PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglGetProgramLocalParameter4dARB;
-NEL_PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglGetProgramLocalParameter4dvARB;
-NEL_PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglGetProgramLocalParameter4fARB;
-NEL_PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglGetProgramLocalParameter4fvARB;
-//NEL_PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB;
-//NEL_PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB;
-//NEL_PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB;
-//NEL_PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB;
-//NEL_PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB;
-//NEL_PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB;
-//NEL_PFNGLISPROGRAMARBPROC nglIsProgramARB;
+//PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB;
+//PFNGLBINDPROGRAMARBPROC nglBindProgramARB;
+//PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB;
+//PFNGLGENPROGRAMSARBPROC nglGenProgramsARB;
+//PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB;
+//PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB;
+//PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB;
+//PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB;
+PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglGetProgramLocalParameter4dARB;
+PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglGetProgramLocalParameter4dvARB;
+PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglGetProgramLocalParameter4fARB;
+PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglGetProgramLocalParameter4fvARB;
+//PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB;
+//PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB;
+//PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB;
+//PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB;
+//PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB;
+//PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB;
+//PFNGLISPROGRAMARBPROC nglIsProgramARB;
// GL_ARB_vertex_buffer_object
PFNGLBINDBUFFERARBPROC nglBindBufferARB;
@@ -439,38 +437,38 @@ PFNGLGETVERTEXATTRIBPOINTERVARBPROC nglGetVertexAttribPointervARB;
PFNGLISPROGRAMARBPROC nglIsProgramARB;
// NV_occlusion_query
-NEL_PFNGLGENOCCLUSIONQUERIESNVPROC nglGenOcclusionQueriesNV;
-NEL_PFNGLDELETEOCCLUSIONQUERIESNVPROC nglDeleteOcclusionQueriesNV;
-NEL_PFNGLISOCCLUSIONQUERYNVPROC nglIsOcclusionQueryNV;
-NEL_PFNGLBEGINOCCLUSIONQUERYNVPROC nglBeginOcclusionQueryNV;
-NEL_PFNGLENDOCCLUSIONQUERYNVPROC nglEndOcclusionQueryNV;
-NEL_PFNGLGETOCCLUSIONQUERYIVNVPROC nglGetOcclusionQueryivNV;
-NEL_PFNGLGETOCCLUSIONQUERYUIVNVPROC nglGetOcclusionQueryuivNV;
+PFNGLGENOCCLUSIONQUERIESNVPROC nglGenOcclusionQueriesNV;
+PFNGLDELETEOCCLUSIONQUERIESNVPROC nglDeleteOcclusionQueriesNV;
+PFNGLISOCCLUSIONQUERYNVPROC nglIsOcclusionQueryNV;
+PFNGLBEGINOCCLUSIONQUERYNVPROC nglBeginOcclusionQueryNV;
+PFNGLENDOCCLUSIONQUERYNVPROC nglEndOcclusionQueryNV;
+PFNGLGETOCCLUSIONQUERYIVNVPROC nglGetOcclusionQueryivNV;
+PFNGLGETOCCLUSIONQUERYUIVNVPROC nglGetOcclusionQueryuivNV;
// GL_EXT_framebuffer_object
-NEL_PFNGLISRENDERBUFFEREXTPROC nglIsRenderbufferEXT;
-NEL_PFNGLISFRAMEBUFFEREXTPROC nglIsFramebufferEXT;
-NEL_PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC nglCheckFramebufferStatusEXT;
-NEL_PFNGLGENFRAMEBUFFERSEXTPROC nglGenFramebuffersEXT;
-NEL_PFNGLBINDFRAMEBUFFEREXTPROC nglBindFramebufferEXT;
-NEL_PFNGLFRAMEBUFFERTEXTURE2DEXTPROC nglFramebufferTexture2DEXT;
-NEL_PFNGLGENRENDERBUFFERSEXTPROC nglGenRenderbuffersEXT;
-NEL_PFNGLBINDRENDERBUFFEREXTPROC nglBindRenderbufferEXT;
-NEL_PFNGLRENDERBUFFERSTORAGEEXTPROC nglRenderbufferStorageEXT;
-NEL_PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC nglFramebufferRenderbufferEXT;
-NEL_PFNGLDELETERENDERBUFFERSEXTPROC nglDeleteRenderbuffersEXT;
-NEL_PFNGLDELETEFRAMEBUFFERSEXTPROC nglDeleteFramebuffersEXT;
-NEL_PFNGETRENDERBUFFERPARAMETERIVEXTPROC nglGetRenderbufferParameterivEXT;
-NEL_PFNGENERATEMIPMAPEXTPROC nglGenerateMipmapEXT;
+PFNGLISRENDERBUFFEREXTPROC nglIsRenderbufferEXT;
+PFNGLISFRAMEBUFFEREXTPROC nglIsFramebufferEXT;
+PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC nglCheckFramebufferStatusEXT;
+PFNGLGENFRAMEBUFFERSEXTPROC nglGenFramebuffersEXT;
+PFNGLBINDFRAMEBUFFEREXTPROC nglBindFramebufferEXT;
+PFNGLFRAMEBUFFERTEXTURE2DEXTPROC nglFramebufferTexture2DEXT;
+PFNGLGENRENDERBUFFERSEXTPROC nglGenRenderbuffersEXT;
+PFNGLBINDRENDERBUFFEREXTPROC nglBindRenderbufferEXT;
+PFNGLRENDERBUFFERSTORAGEEXTPROC nglRenderbufferStorageEXT;
+PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC nglFramebufferRenderbufferEXT;
+PFNGLDELETERENDERBUFFERSEXTPROC nglDeleteRenderbuffersEXT;
+PFNGLDELETEFRAMEBUFFERSEXTPROC nglDeleteFramebuffersEXT;
+PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC nglGetRenderbufferParameterivEXT;
+PFNGLGENERATEMIPMAPEXTPROC nglGenerateMipmapEXT;
// GL_EXT_framebuffer_blit
-NEL_PFNGLBLITFRAMEBUFFEREXTPROC nglBlitFramebufferEXT;
+PFNGLBLITFRAMEBUFFEREXTPROC nglBlitFramebufferEXT;
// GL_EXT_framebuffer_multisample
-NEL_PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC nglRenderbufferStorageMultisampleEXT;
+PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC nglRenderbufferStorageMultisampleEXT;
// GL_ARB_multisample
-NEL_PFNGLSAMPLECOVERAGEARBPROC nglSampleCoverageARB;
+PFNGLSAMPLECOVERAGEARBPROC nglSampleCoverageARB;
#ifdef NL_OS_WINDOWS
PFNWGLALLOCATEMEMORYNVPROC nwglAllocateMemoryNV;
@@ -495,19 +493,31 @@ PFNWGLGETSWAPINTERVALEXTPROC nwglGetSwapIntervalEXT;
// WGL_ARB_extensions_string
PFNWGLGETEXTENSIONSSTRINGARBPROC nwglGetExtensionsStringARB;
+// WGL_AMD_gpu_association
+//========================
+PFNWGLGETGPUIDSAMDPROC nwglGetGPUIDsAMD;
+PFNWGLGETGPUINFOAMDPROC nwglGetGPUInfoAMD;
+PFNWGLGETCONTEXTGPUIDAMDPROC nwglGetContextGPUIDAMD;
+PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC nwglCreateAssociatedContextAMD;
+PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC nwglCreateAssociatedContextAttribsAMD;
+PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC nwglDeleteAssociatedContextAMD;
+PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC nwglMakeAssociatedContextCurrentAMD;
+PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC nwglGetCurrentAssociatedContextAMD;
+PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC nwglBlitContextFramebufferAMD;
+
#elif defined(NL_OS_MAC)
#elif defined(NL_OS_UNIX)
-NEL_PFNGLXALLOCATEMEMORYNVPROC nglXAllocateMemoryNV;
-NEL_PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV;
+PFNGLXALLOCATEMEMORYNVPROC nglXAllocateMemoryNV;
+PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV;
// Swap control extensions
-NEL_PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT;
+PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT;
PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI;
-NEL_PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA;
-NEL_PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA;
+PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA;
+PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA;
#endif
@@ -549,42 +559,42 @@ static bool setupARBMultiTexture(const char *glext)
#ifndef USE_OPENGLES
CHECK_EXT("GL_ARB_multitexture");
- CHECK_ADDRESS(NEL_PFNGLACTIVETEXTUREARBPROC, glActiveTextureARB);
- CHECK_ADDRESS(NEL_PFNGLCLIENTACTIVETEXTUREARBPROC, glClientActiveTextureARB);
+ CHECK_ADDRESS(PFNGLACTIVETEXTUREARBPROC, glActiveTextureARB);
+ CHECK_ADDRESS(PFNGLCLIENTACTIVETEXTUREARBPROC, glClientActiveTextureARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1SARBPROC, glMultiTexCoord1sARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1IARBPROC, glMultiTexCoord1iARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1FARBPROC, glMultiTexCoord1fARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1DARBPROC, glMultiTexCoord1dARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2SARBPROC, glMultiTexCoord2sARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2IARBPROC, glMultiTexCoord2iARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2FARBPROC, glMultiTexCoord2fARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2DARBPROC, glMultiTexCoord2dARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3SARBPROC, glMultiTexCoord3sARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3IARBPROC, glMultiTexCoord3iARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3FARBPROC, glMultiTexCoord3fARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3DARBPROC, glMultiTexCoord3dARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4SARBPROC, glMultiTexCoord4sARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4IARBPROC, glMultiTexCoord4iARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4FARBPROC, glMultiTexCoord4fARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4DARBPROC, glMultiTexCoord4dARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1SARBPROC, glMultiTexCoord1sARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1IARBPROC, glMultiTexCoord1iARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1FARBPROC, glMultiTexCoord1fARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1DARBPROC, glMultiTexCoord1dARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2SARBPROC, glMultiTexCoord2sARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2IARBPROC, glMultiTexCoord2iARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2FARBPROC, glMultiTexCoord2fARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2DARBPROC, glMultiTexCoord2dARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3SARBPROC, glMultiTexCoord3sARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3IARBPROC, glMultiTexCoord3iARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3FARBPROC, glMultiTexCoord3fARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3DARBPROC, glMultiTexCoord3dARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4SARBPROC, glMultiTexCoord4sARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4IARBPROC, glMultiTexCoord4iARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4FARBPROC, glMultiTexCoord4fARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4DARBPROC, glMultiTexCoord4dARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1SVARBPROC, glMultiTexCoord1svARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1IVARBPROC, glMultiTexCoord1ivARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1FVARBPROC, glMultiTexCoord1fvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD1DVARBPROC, glMultiTexCoord1dvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2SVARBPROC, glMultiTexCoord2svARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2IVARBPROC, glMultiTexCoord2ivARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2FVARBPROC, glMultiTexCoord2fvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD2DVARBPROC, glMultiTexCoord2dvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3SVARBPROC, glMultiTexCoord3svARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3IVARBPROC, glMultiTexCoord3ivARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3FVARBPROC, glMultiTexCoord3fvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD3DVARBPROC, glMultiTexCoord3dvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4SVARBPROC, glMultiTexCoord4svARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4IVARBPROC, glMultiTexCoord4ivARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4FVARBPROC, glMultiTexCoord4fvARB);
- CHECK_ADDRESS(NEL_PFNGLMULTITEXCOORD4DVARBPROC, glMultiTexCoord4dvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1SVARBPROC, glMultiTexCoord1svARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1IVARBPROC, glMultiTexCoord1ivARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1FVARBPROC, glMultiTexCoord1fvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD1DVARBPROC, glMultiTexCoord1dvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2SVARBPROC, glMultiTexCoord2svARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2IVARBPROC, glMultiTexCoord2ivARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2FVARBPROC, glMultiTexCoord2fvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD2DVARBPROC, glMultiTexCoord2dvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3SVARBPROC, glMultiTexCoord3svARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3IVARBPROC, glMultiTexCoord3ivARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3FVARBPROC, glMultiTexCoord3fvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD3DVARBPROC, glMultiTexCoord3dvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4SVARBPROC, glMultiTexCoord4svARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4IVARBPROC, glMultiTexCoord4ivARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4FVARBPROC, glMultiTexCoord4fvARB);
+ CHECK_ADDRESS(PFNGLMULTITEXCOORD4DVARBPROC, glMultiTexCoord4dvARB);
#endif
return true;
@@ -611,13 +621,13 @@ static bool setupARBTextureCompression(const char *glext)
#ifndef USE_OPENGLES
CHECK_EXT("GL_ARB_texture_compression");
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC, glCompressedTexImage3DARB);
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC, glCompressedTexImage2DARB);
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC, glCompressedTexImage1DARB);
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC, glCompressedTexSubImage3DARB);
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC, glCompressedTexSubImage2DARB);
- CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC, glCompressedTexSubImage1DARB);
- CHECK_ADDRESS(NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC, glGetCompressedTexImageARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE3DARBPROC, glCompressedTexImage3DARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE2DARBPROC, glCompressedTexImage2DARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE1DARBPROC, glCompressedTexImage1DARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC, glCompressedTexSubImage3DARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC, glCompressedTexSubImage2DARB);
+ CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC, glCompressedTexSubImage1DARB);
+ CHECK_ADDRESS(PFNGLGETCOMPRESSEDTEXIMAGEARBPROC, glGetCompressedTexImageARB);
#endif
return true;
@@ -643,9 +653,9 @@ static bool setupOESMapBuffer(const char *glext)
CHECK_EXT("OES_mapbuffer");
#ifdef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLMAPBUFFEROESPROC, glMapBufferOES);
- CHECK_ADDRESS(NEL_PFNGLUNMAPBUFFEROESPROC, glUnmapBufferOES);
- CHECK_ADDRESS(NEL_PFNGLGETBUFFERPOINTERVOESPROC, glGetBufferPointervOES);
+ CHECK_ADDRESS(PFNGLMAPBUFFEROESPROC, glMapBufferOES);
+ CHECK_ADDRESS(PFNGLUNMAPBUFFEROESPROC, glUnmapBufferOES);
+ CHECK_ADDRESS(PFNGLGETBUFFERPOINTERVOESPROC, glGetBufferPointervOES);
#endif
return true;
@@ -678,25 +688,25 @@ static bool setupNVVertexArrayRange(const char *glext)
#ifndef USE_OPENGLES
// Get VAR address.
- CHECK_ADDRESS(NEL_PFNGLFLUSHVERTEXARRAYRANGENVPROC, glFlushVertexArrayRangeNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXARRAYRANGENVPROC, glVertexArrayRangeNV);
+ CHECK_ADDRESS(PFNGLFLUSHVERTEXARRAYRANGENVPROC, glFlushVertexArrayRangeNV);
+ CHECK_ADDRESS(PFNGLVERTEXARRAYRANGENVPROC, glVertexArrayRangeNV);
#ifdef NL_OS_WINDOWS
CHECK_ADDRESS(PFNWGLALLOCATEMEMORYNVPROC, wglAllocateMemoryNV);
CHECK_ADDRESS(PFNWGLFREEMEMORYNVPROC, wglFreeMemoryNV);
#elif defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
- CHECK_ADDRESS(NEL_PFNGLXALLOCATEMEMORYNVPROC, glXAllocateMemoryNV);
- CHECK_ADDRESS(NEL_PFNGLXFREEMEMORYNVPROC, glXFreeMemoryNV);
+ CHECK_ADDRESS(PFNGLXALLOCATEMEMORYNVPROC, glXAllocateMemoryNV);
+ CHECK_ADDRESS(PFNGLXFREEMEMORYNVPROC, glXFreeMemoryNV);
#endif
// Get fence address.
- CHECK_ADDRESS(NEL_PFNGLDELETEFENCESNVPROC, glDeleteFencesNV);
- CHECK_ADDRESS(NEL_PFNGLGENFENCESNVPROC, glGenFencesNV);
- CHECK_ADDRESS(NEL_PFNGLISFENCENVPROC, glIsFenceNV);
- CHECK_ADDRESS(NEL_PFNGLTESTFENCENVPROC, glTestFenceNV);
- CHECK_ADDRESS(NEL_PFNGLGETFENCEIVNVPROC, glGetFenceivNV);
- CHECK_ADDRESS(NEL_PFNGLFINISHFENCENVPROC, glFinishFenceNV);
- CHECK_ADDRESS(NEL_PFNGLSETFENCENVPROC, glSetFenceNV);
+ CHECK_ADDRESS(PFNGLDELETEFENCESNVPROC, glDeleteFencesNV);
+ CHECK_ADDRESS(PFNGLGENFENCESNVPROC, glGenFencesNV);
+ CHECK_ADDRESS(PFNGLISFENCENVPROC, glIsFenceNV);
+ CHECK_ADDRESS(PFNGLTESTFENCENVPROC, glTestFenceNV);
+ CHECK_ADDRESS(PFNGLGETFENCEIVNVPROC, glGetFenceivNV);
+ CHECK_ADDRESS(PFNGLFINISHFENCENVPROC, glFinishFenceNV);
+ CHECK_ADDRESS(PFNGLSETFENCENVPROC, glSetFenceNV);
#endif
return true;
@@ -725,9 +735,9 @@ static bool setupEXTVertexWeighting(const char *glext)
CHECK_EXT("GL_EXT_vertex_weighting");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLVERTEXWEIGHTFEXTPROC, glVertexWeightfEXT);
- CHECK_ADDRESS(NEL_PFNGLVERTEXWEIGHTFVEXTPROC, glVertexWeightfvEXT);
- CHECK_ADDRESS(NEL_PFNGLVERTEXWEIGHTPOINTEREXTPROC, glVertexWeightPointerEXT);
+ CHECK_ADDRESS(PFNGLVERTEXWEIGHTFEXTPROC, glVertexWeightfEXT);
+ CHECK_ADDRESS(PFNGLVERTEXWEIGHTFVEXTPROC, glVertexWeightfvEXT);
+ CHECK_ADDRESS(PFNGLVERTEXWEIGHTPOINTEREXTPROC, glVertexWeightPointerEXT);
#endif
return true;
@@ -806,15 +816,15 @@ static bool setupARBTextureCubeMap(const char *glext)
#ifdef USE_OPENGLES
CHECK_EXT("OES_texture_cube_map");
- CHECK_ADDRESS(NEL_PFNGLTEXGENFOESPROC, glTexGenfOES);
- CHECK_ADDRESS(NEL_PFNGLTEXGENFVOESPROC, glTexGenfvOES);
- CHECK_ADDRESS(NEL_PFNGLTEXGENIOESPROC, glTexGeniOES);
- CHECK_ADDRESS(NEL_PFNGLTEXGENIVOESPROC, glTexGenivOES);
- CHECK_ADDRESS(NEL_PFNGLTEXGENXOESPROC, glTexGenxOES);
- CHECK_ADDRESS(NEL_PFNGLTEXGENXVOESPROC, glTexGenxvOES);
- CHECK_ADDRESS(NEL_PFNGLGETTEXGENFVOESPROC, glGetTexGenfvOES);
- CHECK_ADDRESS(NEL_PFNGLGETTEXGENIVOESPROC, glGetTexGenivOES);
- CHECK_ADDRESS(NEL_PFNGLGETTEXGENXVOESPROC, glGetTexGenxvOES);
+ CHECK_ADDRESS(PFNGLTEXGENFOESPROC, glTexGenfOES);
+ CHECK_ADDRESS(PFNGLTEXGENFVOESPROC, glTexGenfvOES);
+ CHECK_ADDRESS(PFNGLTEXGENIOESPROC, glTexGeniOES);
+ CHECK_ADDRESS(PFNGLTEXGENIVOESPROC, glTexGenivOES);
+ CHECK_ADDRESS(PFNGLTEXGENXOESPROC, glTexGenxOES);
+ CHECK_ADDRESS(PFNGLTEXGENXVOESPROC, glTexGenxvOES);
+ CHECK_ADDRESS(PFNGLGETTEXGENFVOESPROC, glGetTexGenfvOES);
+ CHECK_ADDRESS(PFNGLGETTEXGENIVOESPROC, glGetTexGenivOES);
+ CHECK_ADDRESS(PFNGLGETTEXGENXVOESPROC, glGetTexGenxvOES);
#else
CHECK_EXT("GL_ARB_texture_cube_map");
#endif
@@ -838,69 +848,69 @@ static bool setupNVVertexProgram(const char *glext)
CHECK_EXT("GL_NV_vertex_program");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLAREPROGRAMSRESIDENTNVPROC, glAreProgramsResidentNV);
- CHECK_ADDRESS(NEL_PFNGLBINDPROGRAMNVPROC, glBindProgramNV);
- CHECK_ADDRESS(NEL_PFNGLDELETEPROGRAMSNVPROC, glDeleteProgramsNV);
- CHECK_ADDRESS(NEL_PFNGLEXECUTEPROGRAMNVPROC, glExecuteProgramNV);
- CHECK_ADDRESS(NEL_PFNGLGENPROGRAMSNVPROC, glGenProgramsNV);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMPARAMETERDVNVPROC, glGetProgramParameterdvNV);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMPARAMETERFVNVPROC, glGetProgramParameterfvNV);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMIVNVPROC, glGetProgramivNV);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMSTRINGNVPROC, glGetProgramStringNV);
- CHECK_ADDRESS(NEL_PFNGLGETTRACKMATRIXIVNVPROC, glGetTrackMatrixivNV);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBDVNVPROC, glGetVertexAttribdvNV);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBFVNVPROC, glGetVertexAttribfvNV);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBIVNVPROC, glGetVertexAttribivNV);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBPOINTERVNVPROC, glGetVertexAttribPointervNV);
- CHECK_ADDRESS(NEL_PFNGLISPROGRAMNVPROC, glIsProgramNV);
- CHECK_ADDRESS(NEL_PFNGLLOADPROGRAMNVPROC, glLoadProgramNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETER4DNVPROC, glProgramParameter4dNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETER4DVNVPROC, glProgramParameter4dvNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETER4FNVPROC, glProgramParameter4fNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETER4FVNVPROC, glProgramParameter4fvNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETERS4DVNVPROC, glProgramParameters4dvNV);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMPARAMETERS4FVNVPROC, glProgramParameters4fvNV);
- CHECK_ADDRESS(NEL_PFNGLREQUESTRESIDENTPROGRAMSNVPROC, glRequestResidentProgramsNV);
- CHECK_ADDRESS(NEL_PFNGLTRACKMATRIXNVPROC, glTrackMatrixNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBPOINTERNVPROC, glVertexAttribPointerNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1DNVPROC, glVertexAttrib1dNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1DVNVPROC, glVertexAttrib1dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1FNVPROC, glVertexAttrib1fNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1FVNVPROC, glVertexAttrib1fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1SNVPROC, glVertexAttrib1sNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB1SVNVPROC, glVertexAttrib1svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2DNVPROC, glVertexAttrib2dNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2DVNVPROC, glVertexAttrib2dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2FNVPROC, glVertexAttrib2fNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2FVNVPROC, glVertexAttrib2fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2SNVPROC, glVertexAttrib2sNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB2SVNVPROC, glVertexAttrib2svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3DNVPROC, glVertexAttrib3dNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3DVNVPROC, glVertexAttrib3dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3FNVPROC, glVertexAttrib3fNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3FVNVPROC, glVertexAttrib3fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3SNVPROC, glVertexAttrib3sNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB3SVNVPROC, glVertexAttrib3svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4DNVPROC, glVertexAttrib4dNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4DVNVPROC, glVertexAttrib4dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4FNVPROC, glVertexAttrib4fNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4FVNVPROC, glVertexAttrib4fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4SNVPROC, glVertexAttrib4sNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4SVNVPROC, glVertexAttrib4svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIB4UBVNVPROC, glVertexAttrib4ubvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS1DVNVPROC, glVertexAttribs1dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS1FVNVPROC, glVertexAttribs1fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS1SVNVPROC, glVertexAttribs1svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS2DVNVPROC, glVertexAttribs2dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS2FVNVPROC, glVertexAttribs2fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS2SVNVPROC, glVertexAttribs2svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS3DVNVPROC, glVertexAttribs3dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS3FVNVPROC, glVertexAttribs3fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS3SVNVPROC, glVertexAttribs3svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS4DVNVPROC, glVertexAttribs4dvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS4FVNVPROC, glVertexAttribs4fvNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS4SVNVPROC, glVertexAttribs4svNV);
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBS4UBVNVPROC, glVertexAttribs4ubvNV);
+ CHECK_ADDRESS(PFNGLAREPROGRAMSRESIDENTNVPROC, glAreProgramsResidentNV);
+ CHECK_ADDRESS(PFNGLBINDPROGRAMNVPROC, glBindProgramNV);
+ CHECK_ADDRESS(PFNGLDELETEPROGRAMSNVPROC, glDeleteProgramsNV);
+ CHECK_ADDRESS(PFNGLEXECUTEPROGRAMNVPROC, glExecuteProgramNV);
+ CHECK_ADDRESS(PFNGLGENPROGRAMSNVPROC, glGenProgramsNV);
+ CHECK_ADDRESS(PFNGLGETPROGRAMPARAMETERDVNVPROC, glGetProgramParameterdvNV);
+ CHECK_ADDRESS(PFNGLGETPROGRAMPARAMETERFVNVPROC, glGetProgramParameterfvNV);
+ CHECK_ADDRESS(PFNGLGETPROGRAMIVNVPROC, glGetProgramivNV);
+ CHECK_ADDRESS(PFNGLGETPROGRAMSTRINGNVPROC, glGetProgramStringNV);
+ CHECK_ADDRESS(PFNGLGETTRACKMATRIXIVNVPROC, glGetTrackMatrixivNV);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBDVNVPROC, glGetVertexAttribdvNV);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBFVNVPROC, glGetVertexAttribfvNV);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBIVNVPROC, glGetVertexAttribivNV);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBPOINTERVNVPROC, glGetVertexAttribPointervNV);
+ CHECK_ADDRESS(PFNGLISPROGRAMNVPROC, glIsProgramNV);
+ CHECK_ADDRESS(PFNGLLOADPROGRAMNVPROC, glLoadProgramNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETER4DNVPROC, glProgramParameter4dNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETER4DVNVPROC, glProgramParameter4dvNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETER4FNVPROC, glProgramParameter4fNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETER4FVNVPROC, glProgramParameter4fvNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETERS4DVNVPROC, glProgramParameters4dvNV);
+ CHECK_ADDRESS(PFNGLPROGRAMPARAMETERS4FVNVPROC, glProgramParameters4fvNV);
+ CHECK_ADDRESS(PFNGLREQUESTRESIDENTPROGRAMSNVPROC, glRequestResidentProgramsNV);
+ CHECK_ADDRESS(PFNGLTRACKMATRIXNVPROC, glTrackMatrixNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBPOINTERNVPROC, glVertexAttribPointerNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1DNVPROC, glVertexAttrib1dNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1DVNVPROC, glVertexAttrib1dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1FNVPROC, glVertexAttrib1fNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1FVNVPROC, glVertexAttrib1fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1SNVPROC, glVertexAttrib1sNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB1SVNVPROC, glVertexAttrib1svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2DNVPROC, glVertexAttrib2dNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2DVNVPROC, glVertexAttrib2dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2FNVPROC, glVertexAttrib2fNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2FVNVPROC, glVertexAttrib2fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2SNVPROC, glVertexAttrib2sNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB2SVNVPROC, glVertexAttrib2svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3DNVPROC, glVertexAttrib3dNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3DVNVPROC, glVertexAttrib3dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3FNVPROC, glVertexAttrib3fNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3FVNVPROC, glVertexAttrib3fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3SNVPROC, glVertexAttrib3sNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB3SVNVPROC, glVertexAttrib3svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4DNVPROC, glVertexAttrib4dNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4DVNVPROC, glVertexAttrib4dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4FNVPROC, glVertexAttrib4fNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4FVNVPROC, glVertexAttrib4fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4SNVPROC, glVertexAttrib4sNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4SVNVPROC, glVertexAttrib4svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIB4UBVNVPROC, glVertexAttrib4ubvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS1DVNVPROC, glVertexAttribs1dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS1FVNVPROC, glVertexAttribs1fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS1SVNVPROC, glVertexAttribs1svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS2DVNVPROC, glVertexAttribs2dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS2FVNVPROC, glVertexAttribs2fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS2SVNVPROC, glVertexAttribs2svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS3DVNVPROC, glVertexAttribs3dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS3FVNVPROC, glVertexAttribs3fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS3SVNVPROC, glVertexAttribs3svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS4DVNVPROC, glVertexAttribs4dvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS4FVNVPROC, glVertexAttribs4fvNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS4SVNVPROC, glVertexAttribs4svNV);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBS4UBVNVPROC, glVertexAttribs4ubvNV);
#endif
return true;
@@ -913,40 +923,40 @@ static bool setupEXTVertexShader(const char *glext)
CHECK_EXT("GL_EXT_vertex_shader");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLBEGINVERTEXSHADEREXTPROC, glBeginVertexShaderEXT);
- CHECK_ADDRESS(NEL_PFNGLENDVERTEXSHADEREXTPROC, glEndVertexShaderEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDVERTEXSHADEREXTPROC, glBindVertexShaderEXT);
- CHECK_ADDRESS(NEL_PFNGLGENVERTEXSHADERSEXTPROC, glGenVertexShadersEXT);
- CHECK_ADDRESS(NEL_PFNGLDELETEVERTEXSHADEREXTPROC, glDeleteVertexShaderEXT);
- CHECK_ADDRESS(NEL_PFNGLSHADEROP1EXTPROC, glShaderOp1EXT);
- CHECK_ADDRESS(NEL_PFNGLSHADEROP2EXTPROC, glShaderOp2EXT);
- CHECK_ADDRESS(NEL_PFNGLSHADEROP3EXTPROC, glShaderOp3EXT);
- CHECK_ADDRESS(NEL_PFNGLSWIZZLEEXTPROC, glSwizzleEXT);
- CHECK_ADDRESS(NEL_PFNGLWRITEMASKEXTPROC, glWriteMaskEXT);
- CHECK_ADDRESS(NEL_PFNGLINSERTCOMPONENTEXTPROC, glInsertComponentEXT);
- CHECK_ADDRESS(NEL_PFNGLEXTRACTCOMPONENTEXTPROC, glExtractComponentEXT);
- CHECK_ADDRESS(NEL_PFNGLGENSYMBOLSEXTPROC, glGenSymbolsEXT);
- CHECK_ADDRESS(NEL_PFNGLSETINVARIANTEXTPROC, glSetInvariantEXT);
- CHECK_ADDRESS(NEL_PFNGLSETLOCALCONSTANTEXTPROC, glSetLocalConstantEXT);
- CHECK_ADDRESS(NEL_PFNGLVARIANTPOINTEREXTPROC, glVariantPointerEXT);
- CHECK_ADDRESS(NEL_PFNGLENABLEVARIANTCLIENTSTATEEXTPROC, glEnableVariantClientStateEXT);
- CHECK_ADDRESS(NEL_PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC, glDisableVariantClientStateEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDLIGHTPARAMETEREXTPROC, glBindLightParameterEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDMATERIALPARAMETEREXTPROC, glBindMaterialParameterEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDTEXGENPARAMETEREXTPROC, glBindTexGenParameterEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDTEXTUREUNITPARAMETEREXTPROC, glBindTextureUnitParameterEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDPARAMETEREXTPROC, glBindParameterEXT);
- CHECK_ADDRESS(NEL_PFNGLISVARIANTENABLEDEXTPROC, glIsVariantEnabledEXT);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTBOOLEANVEXTPROC, glGetVariantBooleanvEXT);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTINTEGERVEXTPROC, glGetVariantIntegervEXT);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTFLOATVEXTPROC, glGetVariantFloatvEXT);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTPOINTERVEXTPROC, glGetVariantPointervEXT);
- CHECK_ADDRESS(NEL_PFNGLGETINVARIANTBOOLEANVEXTPROC, glGetInvariantBooleanvEXT);
- CHECK_ADDRESS(NEL_PFNGLGETINVARIANTINTEGERVEXTPROC, glGetInvariantIntegervEXT);
- CHECK_ADDRESS(NEL_PFNGLGETINVARIANTFLOATVEXTPROC, glGetInvariantFloatvEXT);
- CHECK_ADDRESS(NEL_PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC, glGetLocalConstantBooleanvEXT);
- CHECK_ADDRESS(NEL_PFNGLGETLOCALCONSTANTINTEGERVEXTPROC, glGetLocalConstantIntegervEXT);
- CHECK_ADDRESS(NEL_PFNGLGETLOCALCONSTANTFLOATVEXTPROC, glGetLocalConstantFloatvEXT);
+ CHECK_ADDRESS(PFNGLBEGINVERTEXSHADEREXTPROC, glBeginVertexShaderEXT);
+ CHECK_ADDRESS(PFNGLENDVERTEXSHADEREXTPROC, glEndVertexShaderEXT);
+ CHECK_ADDRESS(PFNGLBINDVERTEXSHADEREXTPROC, glBindVertexShaderEXT);
+ CHECK_ADDRESS(PFNGLGENVERTEXSHADERSEXTPROC, glGenVertexShadersEXT);
+ CHECK_ADDRESS(PFNGLDELETEVERTEXSHADEREXTPROC, glDeleteVertexShaderEXT);
+ CHECK_ADDRESS(PFNGLSHADEROP1EXTPROC, glShaderOp1EXT);
+ CHECK_ADDRESS(PFNGLSHADEROP2EXTPROC, glShaderOp2EXT);
+ CHECK_ADDRESS(PFNGLSHADEROP3EXTPROC, glShaderOp3EXT);
+ CHECK_ADDRESS(PFNGLSWIZZLEEXTPROC, glSwizzleEXT);
+ CHECK_ADDRESS(PFNGLWRITEMASKEXTPROC, glWriteMaskEXT);
+ CHECK_ADDRESS(PFNGLINSERTCOMPONENTEXTPROC, glInsertComponentEXT);
+ CHECK_ADDRESS(PFNGLEXTRACTCOMPONENTEXTPROC, glExtractComponentEXT);
+ CHECK_ADDRESS(PFNGLGENSYMBOLSEXTPROC, glGenSymbolsEXT);
+ CHECK_ADDRESS(PFNGLSETINVARIANTEXTPROC, glSetInvariantEXT);
+ CHECK_ADDRESS(PFNGLSETLOCALCONSTANTEXTPROC, glSetLocalConstantEXT);
+ CHECK_ADDRESS(PFNGLVARIANTPOINTEREXTPROC, glVariantPointerEXT);
+ CHECK_ADDRESS(PFNGLENABLEVARIANTCLIENTSTATEEXTPROC, glEnableVariantClientStateEXT);
+ CHECK_ADDRESS(PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC, glDisableVariantClientStateEXT);
+ CHECK_ADDRESS(PFNGLBINDLIGHTPARAMETEREXTPROC, glBindLightParameterEXT);
+ CHECK_ADDRESS(PFNGLBINDMATERIALPARAMETEREXTPROC, glBindMaterialParameterEXT);
+ CHECK_ADDRESS(PFNGLBINDTEXGENPARAMETEREXTPROC, glBindTexGenParameterEXT);
+ CHECK_ADDRESS(PFNGLBINDTEXTUREUNITPARAMETEREXTPROC, glBindTextureUnitParameterEXT);
+ CHECK_ADDRESS(PFNGLBINDPARAMETEREXTPROC, glBindParameterEXT);
+ CHECK_ADDRESS(PFNGLISVARIANTENABLEDEXTPROC, glIsVariantEnabledEXT);
+ CHECK_ADDRESS(PFNGLGETVARIANTBOOLEANVEXTPROC, glGetVariantBooleanvEXT);
+ CHECK_ADDRESS(PFNGLGETVARIANTINTEGERVEXTPROC, glGetVariantIntegervEXT);
+ CHECK_ADDRESS(PFNGLGETVARIANTFLOATVEXTPROC, glGetVariantFloatvEXT);
+ CHECK_ADDRESS(PFNGLGETVARIANTPOINTERVEXTPROC, glGetVariantPointervEXT);
+ CHECK_ADDRESS(PFNGLGETINVARIANTBOOLEANVEXTPROC, glGetInvariantBooleanvEXT);
+ CHECK_ADDRESS(PFNGLGETINVARIANTINTEGERVEXTPROC, glGetInvariantIntegervEXT);
+ CHECK_ADDRESS(PFNGLGETINVARIANTFLOATVEXTPROC, glGetInvariantFloatvEXT);
+ CHECK_ADDRESS(PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC, glGetLocalConstantBooleanvEXT);
+ CHECK_ADDRESS(PFNGLGETLOCALCONSTANTINTEGERVEXTPROC, glGetLocalConstantIntegervEXT);
+ CHECK_ADDRESS(PFNGLGETLOCALCONSTANTFLOATVEXTPROC, glGetLocalConstantFloatvEXT);
// we require at least 128 instructions, 15 local register (r0, r1,..,r11) + 3 temporary vector for swizzle emulation + 1 vector for indexing temp + 3 temporary scalar for LOGG, EXPP and LIT emulation, 1 address register
// we require 11 variants (4 textures + position + normal + primary color + secondary color + weight + palette skin + fog)
@@ -989,23 +999,23 @@ static bool setupEXTSecondaryColor(const char *glext)
CHECK_EXT("GL_EXT_secondary_color");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3BEXTPROC, glSecondaryColor3bEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3BVEXTPROC, glSecondaryColor3bvEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3DEXTPROC, glSecondaryColor3dEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3DVEXTPROC, glSecondaryColor3dvEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3FEXTPROC, glSecondaryColor3fEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3FVEXTPROC, glSecondaryColor3fvEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3IEXTPROC, glSecondaryColor3iEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3IVEXTPROC, glSecondaryColor3ivEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3SEXTPROC, glSecondaryColor3sEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3SVEXTPROC, glSecondaryColor3svEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3UBEXTPROC, glSecondaryColor3ubEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3UBVEXTPROC, glSecondaryColor3ubvEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3UIEXTPROC, glSecondaryColor3uiEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3UIVEXTPROC, glSecondaryColor3uivEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3USEXTPROC, glSecondaryColor3usEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLOR3USVEXTPROC, glSecondaryColor3usvEXT);
- CHECK_ADDRESS(NEL_PFNGLSECONDARYCOLORPOINTEREXTPROC, glSecondaryColorPointerEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3BEXTPROC, glSecondaryColor3bEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3BVEXTPROC, glSecondaryColor3bvEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3DEXTPROC, glSecondaryColor3dEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3DVEXTPROC, glSecondaryColor3dvEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3FEXTPROC, glSecondaryColor3fEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3FVEXTPROC, glSecondaryColor3fvEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3IEXTPROC, glSecondaryColor3iEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3IVEXTPROC, glSecondaryColor3ivEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3SEXTPROC, glSecondaryColor3sEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3SVEXTPROC, glSecondaryColor3svEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3UBEXTPROC, glSecondaryColor3ubEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3UBVEXTPROC, glSecondaryColor3ubvEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3UIEXTPROC, glSecondaryColor3uiEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3UIVEXTPROC, glSecondaryColor3uivEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3USEXTPROC, glSecondaryColor3usEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLOR3USVEXTPROC, glSecondaryColor3usvEXT);
+ CHECK_ADDRESS(PFNGLSECONDARYCOLORPOINTEREXTPROC, glSecondaryColorPointerEXT);
#endif
return true;
@@ -1037,7 +1047,7 @@ static bool setupARBMultisample(const char *glext)
CHECK_EXT("GL_ARB_multisample");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLSAMPLECOVERAGEARBPROC, glSampleCoverageARB);
+ CHECK_ADDRESS(PFNGLSAMPLECOVERAGEARBPROC, glSampleCoverageARB);
#endif
return true;
@@ -1084,7 +1094,7 @@ static bool setupEXTBlendColor(const char *glext)
CHECK_EXT("GL_EXT_blend_color");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLBLENDCOLOREXTPROC, glBlendColorEXT);
+ CHECK_ADDRESS(PFNGLBLENDCOLOREXTPROC, glBlendColorEXT);
#endif
return true;
@@ -1106,31 +1116,22 @@ static bool setupATIVertexArrayObject(const char *glext)
CHECK_EXT("GL_ATI_vertex_array_object");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLNEWOBJECTBUFFERATIPROC, glNewObjectBufferATI);
- CHECK_ADDRESS(NEL_PFNGLISOBJECTBUFFERATIPROC, glIsObjectBufferATI);
- CHECK_ADDRESS(NEL_PFNGLUPDATEOBJECTBUFFERATIPROC, glUpdateObjectBufferATI);
- CHECK_ADDRESS(NEL_PFNGLGETOBJECTBUFFERFVATIPROC, glGetObjectBufferfvATI);
- CHECK_ADDRESS(NEL_PFNGLGETOBJECTBUFFERIVATIPROC, glGetObjectBufferivATI);
-
- nglDeleteObjectBufferATI = (NEL_PFNGLDELETEOBJECTBUFFERATIPROC)nglGetProcAddress("nglDeleteObjectBufferATI");
-
- if(!nglDeleteObjectBufferATI)
- {
- // seems that on matrox parhelia driver, this procedure is named nglFreeObjectBufferATI !!
- nglDeleteObjectBufferATI = (NEL_PFNGLDELETEOBJECTBUFFERATIPROC)nglGetProcAddress("nglFreeObjectBufferATI");
- if(!nglDeleteObjectBufferATI) return false;
- }
-
- CHECK_ADDRESS(NEL_PFNGLARRAYOBJECTATIPROC, glArrayObjectATI);
- CHECK_ADDRESS(NEL_PFNGLGETARRAYOBJECTFVATIPROC, glGetArrayObjectfvATI);
- CHECK_ADDRESS(NEL_PFNGLGETARRAYOBJECTIVATIPROC, glGetArrayObjectivATI);
+ CHECK_ADDRESS(PFNGLNEWOBJECTBUFFERATIPROC, glNewObjectBufferATI);
+ CHECK_ADDRESS(PFNGLISOBJECTBUFFERATIPROC, glIsObjectBufferATI);
+ CHECK_ADDRESS(PFNGLUPDATEOBJECTBUFFERATIPROC, glUpdateObjectBufferATI);
+ CHECK_ADDRESS(PFNGLGETOBJECTBUFFERFVATIPROC, glGetObjectBufferfvATI);
+ CHECK_ADDRESS(PFNGLGETOBJECTBUFFERIVATIPROC, glGetObjectBufferivATI);
+ CHECK_ADDRESS(PFNGLFREEOBJECTBUFFERATIPROC, glFreeObjectBufferATI);
+ CHECK_ADDRESS(PFNGLARRAYOBJECTATIPROC, glArrayObjectATI);
+ CHECK_ADDRESS(PFNGLGETARRAYOBJECTFVATIPROC, glGetArrayObjectfvATI);
+ CHECK_ADDRESS(PFNGLGETARRAYOBJECTIVATIPROC, glGetArrayObjectivATI);
if(strstr(glext, "GL_EXT_vertex_shader") != NULL)
{
// the following exist only if ext vertex shader is present
- CHECK_ADDRESS(NEL_PFNGLVARIANTARRAYOBJECTATIPROC, glVariantArrayObjectATI);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTARRAYOBJECTFVATIPROC, glGetVariantArrayObjectfvATI);
- CHECK_ADDRESS(NEL_PFNGLGETVARIANTARRAYOBJECTIVATIPROC, glGetVariantArrayObjectivATI);
+ CHECK_ADDRESS(PFNGLVARIANTARRAYOBJECTATIPROC, glVariantArrayObjectATI);
+ CHECK_ADDRESS(PFNGLGETVARIANTARRAYOBJECTFVATIPROC, glGetVariantArrayObjectfvATI);
+ CHECK_ADDRESS(PFNGLGETVARIANTARRAYOBJECTIVATIPROC, glGetVariantArrayObjectivATI);
}
#endif
@@ -1144,8 +1145,8 @@ static bool setupATIMapObjectBuffer(const char *glext)
CHECK_EXT("GL_ATI_map_object_buffer");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLMAPOBJECTBUFFERATIPROC, glMapObjectBufferATI);
- CHECK_ADDRESS(NEL_PFNGLUNMAPOBJECTBUFFERATIPROC, glUnmapObjectBufferATI);
+ CHECK_ADDRESS(PFNGLMAPOBJECTBUFFERATIPROC, glMapObjectBufferATI);
+ CHECK_ADDRESS(PFNGLUNMAPOBJECTBUFFERATIPROC, glUnmapObjectBufferATI);
#endif
return true;
@@ -1160,20 +1161,20 @@ static bool setupATIFragmentShader(const char *glext)
CHECK_EXT("GL_ATI_fragment_shader");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLGENFRAGMENTSHADERSATIPROC, glGenFragmentShadersATI);
- CHECK_ADDRESS(NEL_PFNGLBINDFRAGMENTSHADERATIPROC, glBindFragmentShaderATI);
- CHECK_ADDRESS(NEL_PFNGLDELETEFRAGMENTSHADERATIPROC, glDeleteFragmentShaderATI);
- CHECK_ADDRESS(NEL_PFNGLBEGINFRAGMENTSHADERATIPROC, glBeginFragmentShaderATI);
- CHECK_ADDRESS(NEL_PFNGLENDFRAGMENTSHADERATIPROC, glEndFragmentShaderATI);
- CHECK_ADDRESS(NEL_PFNGLPASSTEXCOORDATIPROC, glPassTexCoordATI);
- CHECK_ADDRESS(NEL_PFNGLSAMPLEMAPATIPROC, glSampleMapATI);
- CHECK_ADDRESS(NEL_PFNGLCOLORFRAGMENTOP1ATIPROC, glColorFragmentOp1ATI);
- CHECK_ADDRESS(NEL_PFNGLCOLORFRAGMENTOP2ATIPROC, glColorFragmentOp2ATI);
- CHECK_ADDRESS(NEL_PFNGLCOLORFRAGMENTOP3ATIPROC, glColorFragmentOp3ATI);
- CHECK_ADDRESS(NEL_PFNGLALPHAFRAGMENTOP1ATIPROC, glAlphaFragmentOp1ATI);
- CHECK_ADDRESS(NEL_PFNGLALPHAFRAGMENTOP2ATIPROC, glAlphaFragmentOp2ATI);
- CHECK_ADDRESS(NEL_PFNGLALPHAFRAGMENTOP3ATIPROC, glAlphaFragmentOp3ATI);
- CHECK_ADDRESS(NEL_PFNGLSETFRAGMENTSHADERCONSTANTATIPROC, glSetFragmentShaderConstantATI);
+ CHECK_ADDRESS(PFNGLGENFRAGMENTSHADERSATIPROC, glGenFragmentShadersATI);
+ CHECK_ADDRESS(PFNGLBINDFRAGMENTSHADERATIPROC, glBindFragmentShaderATI);
+ CHECK_ADDRESS(PFNGLDELETEFRAGMENTSHADERATIPROC, glDeleteFragmentShaderATI);
+ CHECK_ADDRESS(PFNGLBEGINFRAGMENTSHADERATIPROC, glBeginFragmentShaderATI);
+ CHECK_ADDRESS(PFNGLENDFRAGMENTSHADERATIPROC, glEndFragmentShaderATI);
+ CHECK_ADDRESS(PFNGLPASSTEXCOORDATIPROC, glPassTexCoordATI);
+ CHECK_ADDRESS(PFNGLSAMPLEMAPATIPROC, glSampleMapATI);
+ CHECK_ADDRESS(PFNGLCOLORFRAGMENTOP1ATIPROC, glColorFragmentOp1ATI);
+ CHECK_ADDRESS(PFNGLCOLORFRAGMENTOP2ATIPROC, glColorFragmentOp2ATI);
+ CHECK_ADDRESS(PFNGLCOLORFRAGMENTOP3ATIPROC, glColorFragmentOp3ATI);
+ CHECK_ADDRESS(PFNGLALPHAFRAGMENTOP1ATIPROC, glAlphaFragmentOp1ATI);
+ CHECK_ADDRESS(PFNGLALPHAFRAGMENTOP2ATIPROC, glAlphaFragmentOp2ATI);
+ CHECK_ADDRESS(PFNGLALPHAFRAGMENTOP3ATIPROC, glAlphaFragmentOp3ATI);
+ CHECK_ADDRESS(PFNGLSETFRAGMENTSHADERCONSTANTATIPROC, glSetFragmentShaderConstantATI);
#endif
return true;
@@ -1186,9 +1187,9 @@ static bool setupATIVertexAttribArrayObject(const char *glext)
CHECK_EXT("GL_ATI_vertex_attrib_array_object");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLVERTEXATTRIBARRAYOBJECTATIPROC, glVertexAttribArrayObjectATI);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC, glGetVertexAttribArrayObjectfvATI);
- CHECK_ADDRESS(NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC, glGetVertexAttribArrayObjectivATI);
+ CHECK_ADDRESS(PFNGLVERTEXATTRIBARRAYOBJECTATIPROC, glVertexAttribArrayObjectATI);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC, glGetVertexAttribArrayObjectfvATI);
+ CHECK_ADDRESS(PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC, glGetVertexAttribArrayObjectivATI);
#endif
return true;
@@ -1201,25 +1202,25 @@ static bool setupARBFragmentProgram(const char *glext)
CHECK_EXT("GL_ARB_fragment_program");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLPROGRAMSTRINGARBPROC, glProgramStringARB);
- CHECK_ADDRESS(NEL_PFNGLBINDPROGRAMARBPROC, glBindProgramARB);
- CHECK_ADDRESS(NEL_PFNGLDELETEPROGRAMSARBPROC, glDeleteProgramsARB);
- CHECK_ADDRESS(NEL_PFNGLGENPROGRAMSARBPROC, glGenProgramsARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMENVPARAMETER4DARBPROC, glProgramEnvParameter4dARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMENVPARAMETER4DVARBPROC, glProgramEnvParameter4dvARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMENVPARAMETER4FARBPROC, glProgramEnvParameter4fARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMENVPARAMETER4FVARBPROC, glProgramEnvParameter4fvARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMLOCALPARAMETER4DARBPROC, glProgramLocalParameter4dARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMLOCALPARAMETER4DVARBPROC, glProgramLocalParameter4dvARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMLOCALPARAMETER4FARBPROC, glProgramLocalParameter4fARB);
- CHECK_ADDRESS(NEL_PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glProgramLocalParameter4fvARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMENVPARAMETERDVARBPROC, glGetProgramEnvParameterdvARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMENVPARAMETERFVARBPROC, glGetProgramEnvParameterfvARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC, glGetProgramLocalParameterdvARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC, glGetProgramLocalParameterfvARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMIVARBPROC, glGetProgramivARB);
- CHECK_ADDRESS(NEL_PFNGLGETPROGRAMSTRINGARBPROC, glGetProgramStringARB);
- CHECK_ADDRESS(NEL_PFNGLISPROGRAMARBPROC, glIsProgramARB);
+ CHECK_ADDRESS(PFNGLPROGRAMSTRINGARBPROC, glProgramStringARB);
+ CHECK_ADDRESS(PFNGLBINDPROGRAMARBPROC, glBindProgramARB);
+ CHECK_ADDRESS(PFNGLDELETEPROGRAMSARBPROC, glDeleteProgramsARB);
+ CHECK_ADDRESS(PFNGLGENPROGRAMSARBPROC, glGenProgramsARB);
+ CHECK_ADDRESS(PFNGLPROGRAMENVPARAMETER4DARBPROC, glProgramEnvParameter4dARB);
+ CHECK_ADDRESS(PFNGLPROGRAMENVPARAMETER4DVARBPROC, glProgramEnvParameter4dvARB);
+ CHECK_ADDRESS(PFNGLPROGRAMENVPARAMETER4FARBPROC, glProgramEnvParameter4fARB);
+ CHECK_ADDRESS(PFNGLPROGRAMENVPARAMETER4FVARBPROC, glProgramEnvParameter4fvARB);
+ CHECK_ADDRESS(PFNGLPROGRAMLOCALPARAMETER4DARBPROC, glProgramLocalParameter4dARB);
+ CHECK_ADDRESS(PFNGLPROGRAMLOCALPARAMETER4DVARBPROC, glProgramLocalParameter4dvARB);
+ CHECK_ADDRESS(PFNGLPROGRAMLOCALPARAMETER4FARBPROC, glProgramLocalParameter4fARB);
+ CHECK_ADDRESS(PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glProgramLocalParameter4fvARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMENVPARAMETERDVARBPROC, glGetProgramEnvParameterdvARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMENVPARAMETERFVARBPROC, glGetProgramEnvParameterfvARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC, glGetProgramLocalParameterdvARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC, glGetProgramLocalParameterfvARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMIVARBPROC, glGetProgramivARB);
+ CHECK_ADDRESS(PFNGLGETPROGRAMSTRINGARBPROC, glGetProgramStringARB);
+ CHECK_ADDRESS(PFNGLISPROGRAMARBPROC, glIsProgramARB);
#endif
return true;
@@ -1339,13 +1340,13 @@ static bool setupNVOcclusionQuery(const char *glext)
CHECK_EXT("GL_NV_occlusion_query");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLGENOCCLUSIONQUERIESNVPROC, glGenOcclusionQueriesNV);
- CHECK_ADDRESS(NEL_PFNGLDELETEOCCLUSIONQUERIESNVPROC, glDeleteOcclusionQueriesNV);
- CHECK_ADDRESS(NEL_PFNGLISOCCLUSIONQUERYNVPROC, glIsOcclusionQueryNV);
- CHECK_ADDRESS(NEL_PFNGLBEGINOCCLUSIONQUERYNVPROC, glBeginOcclusionQueryNV);
- CHECK_ADDRESS(NEL_PFNGLENDOCCLUSIONQUERYNVPROC, glEndOcclusionQueryNV);
- CHECK_ADDRESS(NEL_PFNGLGETOCCLUSIONQUERYIVNVPROC, glGetOcclusionQueryivNV);
- CHECK_ADDRESS(NEL_PFNGLGETOCCLUSIONQUERYUIVNVPROC, glGetOcclusionQueryuivNV);
+ CHECK_ADDRESS(PFNGLGENOCCLUSIONQUERIESNVPROC, glGenOcclusionQueriesNV);
+ CHECK_ADDRESS(PFNGLDELETEOCCLUSIONQUERIESNVPROC, glDeleteOcclusionQueriesNV);
+ CHECK_ADDRESS(PFNGLISOCCLUSIONQUERYNVPROC, glIsOcclusionQueryNV);
+ CHECK_ADDRESS(PFNGLBEGINOCCLUSIONQUERYNVPROC, glBeginOcclusionQueryNV);
+ CHECK_ADDRESS(PFNGLENDOCCLUSIONQUERYNVPROC, glEndOcclusionQueryNV);
+ CHECK_ADDRESS(PFNGLGETOCCLUSIONQUERYIVNVPROC, glGetOcclusionQueryivNV);
+ CHECK_ADDRESS(PFNGLGETOCCLUSIONQUERYUIVNVPROC, glGetOcclusionQueryuivNV);
#endif
return true;
@@ -1396,38 +1397,38 @@ static bool setupFrameBufferObject(const char *glext)
#ifdef USE_OPENGLES
CHECK_EXT("GL_OES_framebuffer_object");
- CHECK_ADDRESS(NEL_PFNGLISRENDERBUFFEROESPROC, glIsRenderbufferOES);
- CHECK_ADDRESS(NEL_PFNGLBINDRENDERBUFFEROESPROC, glBindRenderbufferOES);
- CHECK_ADDRESS(NEL_PFNGLDELETERENDERBUFFERSOESPROC, glDeleteRenderbuffersOES);
- CHECK_ADDRESS(NEL_PFNGLGENRENDERBUFFERSOESPROC, glGenRenderbuffersOES);
- CHECK_ADDRESS(NEL_PFNGLRENDERBUFFERSTORAGEOESPROC, glRenderbufferStorageOES);
- CHECK_ADDRESS(NEL_PFNGLGETRENDERBUFFERPARAMETERIVOESPROC, glGetRenderbufferParameterivOES);
- CHECK_ADDRESS(NEL_PFNGLISFRAMEBUFFEROESPROC, glIsFramebufferOES);
- CHECK_ADDRESS(NEL_PFNGLBINDFRAMEBUFFEROESPROC, glBindFramebufferOES);
- CHECK_ADDRESS(NEL_PFNGLDELETEFRAMEBUFFERSOESPROC, glDeleteFramebuffersOES);
- CHECK_ADDRESS(NEL_PFNGLGENFRAMEBUFFERSOESPROC, glGenFramebuffersOES);
- CHECK_ADDRESS(NEL_PFNGLCHECKFRAMEBUFFERSTATUSOESPROC, glCheckFramebufferStatusOES);
- CHECK_ADDRESS(NEL_PFNGLFRAMEBUFFERRENDERBUFFEROESPROC, glFramebufferRenderbufferOES);
- CHECK_ADDRESS(NEL_PFNGLFRAMEBUFFERTEXTURE2DOESPROC, glFramebufferTexture2DOES);
- CHECK_ADDRESS(NEL_PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC, glGetFramebufferAttachmentParameterivOES);
- CHECK_ADDRESS(NEL_PFNGLGENERATEMIPMAPOESPROC, glGenerateMipmapOES);
+ CHECK_ADDRESS(PFNGLISRENDERBUFFEROESPROC, glIsRenderbufferOES);
+ CHECK_ADDRESS(PFNGLBINDRENDERBUFFEROESPROC, glBindRenderbufferOES);
+ CHECK_ADDRESS(PFNGLDELETERENDERBUFFERSOESPROC, glDeleteRenderbuffersOES);
+ CHECK_ADDRESS(PFNGLGENRENDERBUFFERSOESPROC, glGenRenderbuffersOES);
+ CHECK_ADDRESS(PFNGLRENDERBUFFERSTORAGEOESPROC, glRenderbufferStorageOES);
+ CHECK_ADDRESS(PFNGLGETRENDERBUFFERPARAMETERIVOESPROC, glGetRenderbufferParameterivOES);
+ CHECK_ADDRESS(PFNGLISFRAMEBUFFEROESPROC, glIsFramebufferOES);
+ CHECK_ADDRESS(PFNGLBINDFRAMEBUFFEROESPROC, glBindFramebufferOES);
+ CHECK_ADDRESS(PFNGLDELETEFRAMEBUFFERSOESPROC, glDeleteFramebuffersOES);
+ CHECK_ADDRESS(PFNGLGENFRAMEBUFFERSOESPROC, glGenFramebuffersOES);
+ CHECK_ADDRESS(PFNGLCHECKFRAMEBUFFERSTATUSOESPROC, glCheckFramebufferStatusOES);
+ CHECK_ADDRESS(PFNGLFRAMEBUFFERRENDERBUFFEROESPROC, glFramebufferRenderbufferOES);
+ CHECK_ADDRESS(PFNGLFRAMEBUFFERTEXTURE2DOESPROC, glFramebufferTexture2DOES);
+ CHECK_ADDRESS(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC, glGetFramebufferAttachmentParameterivOES);
+ CHECK_ADDRESS(PFNGLGENERATEMIPMAPOESPROC, glGenerateMipmapOES);
#else
CHECK_EXT("GL_EXT_framebuffer_object");
- CHECK_ADDRESS(NEL_PFNGLISRENDERBUFFEREXTPROC, glIsRenderbufferEXT);
- CHECK_ADDRESS(NEL_PFNGLISFRAMEBUFFEREXTPROC, glIsFramebufferEXT);
- CHECK_ADDRESS(NEL_PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, glCheckFramebufferStatusEXT);
- CHECK_ADDRESS(NEL_PFNGLGENFRAMEBUFFERSEXTPROC, glGenFramebuffersEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDFRAMEBUFFEREXTPROC, glBindFramebufferEXT);
- CHECK_ADDRESS(NEL_PFNGLFRAMEBUFFERTEXTURE2DEXTPROC, glFramebufferTexture2DEXT);
- CHECK_ADDRESS(NEL_PFNGLGENRENDERBUFFERSEXTPROC, glGenRenderbuffersEXT);
- CHECK_ADDRESS(NEL_PFNGLBINDRENDERBUFFEREXTPROC, glBindRenderbufferEXT);
- CHECK_ADDRESS(NEL_PFNGLRENDERBUFFERSTORAGEEXTPROC, glRenderbufferStorageEXT);
- CHECK_ADDRESS(NEL_PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, glFramebufferRenderbufferEXT);
- CHECK_ADDRESS(NEL_PFNGLDELETERENDERBUFFERSEXTPROC, glDeleteRenderbuffersEXT);
- CHECK_ADDRESS(NEL_PFNGLDELETEFRAMEBUFFERSEXTPROC, glDeleteFramebuffersEXT);
- CHECK_ADDRESS(NEL_PFNGETRENDERBUFFERPARAMETERIVEXTPROC, glGetRenderbufferParameterivEXT);
- CHECK_ADDRESS(NEL_PFNGENERATEMIPMAPEXTPROC, glGenerateMipmapEXT);
+ CHECK_ADDRESS(PFNGLISRENDERBUFFEREXTPROC, glIsRenderbufferEXT);
+ CHECK_ADDRESS(PFNGLISFRAMEBUFFEREXTPROC, glIsFramebufferEXT);
+ CHECK_ADDRESS(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, glCheckFramebufferStatusEXT);
+ CHECK_ADDRESS(PFNGLGENFRAMEBUFFERSEXTPROC, glGenFramebuffersEXT);
+ CHECK_ADDRESS(PFNGLBINDFRAMEBUFFEREXTPROC, glBindFramebufferEXT);
+ CHECK_ADDRESS(PFNGLFRAMEBUFFERTEXTURE2DEXTPROC, glFramebufferTexture2DEXT);
+ CHECK_ADDRESS(PFNGLGENRENDERBUFFERSEXTPROC, glGenRenderbuffersEXT);
+ CHECK_ADDRESS(PFNGLBINDRENDERBUFFEREXTPROC, glBindRenderbufferEXT);
+ CHECK_ADDRESS(PFNGLRENDERBUFFERSTORAGEEXTPROC, glRenderbufferStorageEXT);
+ CHECK_ADDRESS(PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, glFramebufferRenderbufferEXT);
+ CHECK_ADDRESS(PFNGLDELETERENDERBUFFERSEXTPROC, glDeleteRenderbuffersEXT);
+ CHECK_ADDRESS(PFNGLDELETEFRAMEBUFFERSEXTPROC, glDeleteFramebuffersEXT);
+ CHECK_ADDRESS(PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC, glGetRenderbufferParameterivEXT);
+ CHECK_ADDRESS(PFNGLGENERATEMIPMAPEXTPROC, glGenerateMipmapEXT);
#endif
return true;
@@ -1440,7 +1441,7 @@ static bool setupFrameBufferBlit(const char *glext)
CHECK_EXT("GL_EXT_framebuffer_blit");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLBLITFRAMEBUFFEREXTPROC, glBlitFramebufferEXT);
+ CHECK_ADDRESS(PFNGLBLITFRAMEBUFFEREXTPROC, glBlitFramebufferEXT);
#endif
return true;
@@ -1453,7 +1454,7 @@ static bool setupFrameBufferMultisample(const char *glext)
CHECK_EXT("GL_EXT_framebuffer_multisample");
#ifndef USE_OPENGLES
- CHECK_ADDRESS(NEL_PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glRenderbufferStorageMultisampleEXT);
+ CHECK_ADDRESS(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glRenderbufferStorageMultisampleEXT);
#endif
return true;
@@ -1473,6 +1474,22 @@ static bool setupPackedDepthStencil(const char *glext)
return true;
}
+// ***************************************************************************
+static bool setupNVXGPUMemoryInfo(const char *glext)
+{
+ H_AUTO_OGL(setupNVXGPUMemoryInfo);
+ CHECK_EXT("GL_NVX_gpu_memory_info");
+ return true;
+}
+
+// ***************************************************************************
+static bool setupATIMeminfo(const char *glext)
+{
+ H_AUTO_OGL(setupATIMeminfo);
+ CHECK_EXT("GL_ATI_meminfo");
+ return true;
+}
+
// ***************************************************************************
// Extension Check.
void registerGlExtensions(CGlExtensions &ext)
@@ -1688,6 +1705,35 @@ void registerGlExtensions(CGlExtensions &ext)
ext.ATIMapObjectBuffer = false;
ext.ATIVertexAttribArrayObject = false;
}
+
+#ifndef USE_OPENGLES
+ ext.NVXGPUMemoryInfo = setupNVXGPUMemoryInfo(glext);
+
+ if (ext.NVXGPUMemoryInfo)
+ {
+// GPU_MEMORY_INFO_EVICTION_COUNT_NVX;
+// GPU_MEMORY_INFO_EVICTED_MEMORY_NVX;
+
+ GLint nDedicatedMemoryInKB = 0;
+ glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &nDedicatedMemoryInKB);
+
+ GLint nTotalMemoryInKB = 0;
+ glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &nTotalMemoryInKB);
+
+ GLint nCurAvailMemoryInKB = 0;
+ glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &nCurAvailMemoryInKB);
+
+ nlinfo("Memory: total: %d available: %d dedicated: %d", nTotalMemoryInKB, nCurAvailMemoryInKB, nDedicatedMemoryInKB);
+ }
+
+ ext.ATIMeminfo = setupATIMeminfo(glext);
+
+ if (ext.ATIMeminfo)
+ {
+ GLint nCurAvailMemoryInKB = 0;
+ glGetIntegerv(GL_TEXTURE_FREE_MEMORY_ATI, &nCurAvailMemoryInKB);
+ }
+#endif
}
@@ -1707,6 +1753,27 @@ static bool setupWGLEXTSwapControl(const char *glext)
return true;
}
+// ***************************************************************************
+static bool setupWGLAMDGPUAssociation(const char *glext)
+{
+ H_AUTO_OGL(setupWGLAMDGPUAssociation);
+ CHECK_EXT("WGL_AMD_gpu_association");
+
+#if !defined(USE_OPENGLES) && defined(NL_OS_WINDOWS)
+ CHECK_ADDRESS(PFNWGLGETGPUIDSAMDPROC, wglGetGPUIDsAMD);
+ CHECK_ADDRESS(PFNWGLGETGPUINFOAMDPROC, wglGetGPUInfoAMD);
+ CHECK_ADDRESS(PFNWGLGETCONTEXTGPUIDAMDPROC, wglGetContextGPUIDAMD);
+ CHECK_ADDRESS(PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC, wglCreateAssociatedContextAMD);
+ CHECK_ADDRESS(PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC, wglCreateAssociatedContextAttribsAMD);
+ CHECK_ADDRESS(PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC, wglDeleteAssociatedContextAMD);
+ CHECK_ADDRESS(PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC, wglMakeAssociatedContextCurrentAMD);
+ CHECK_ADDRESS(PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC, wglGetCurrentAssociatedContextAMD);
+ CHECK_ADDRESS(PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC, wglBlitContextFramebufferAMD);
+#endif
+
+ return true;
+}
+
// *********************************
static bool setupGLXEXTSwapControl(const char *glext)
{
@@ -1714,7 +1781,7 @@ static bool setupGLXEXTSwapControl(const char *glext)
CHECK_EXT("GLX_EXT_swap_control");
#if defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
- CHECK_ADDRESS(NEL_PFNGLXSWAPINTERVALEXTPROC, glXSwapIntervalEXT);
+ CHECK_ADDRESS(PFNGLXSWAPINTERVALEXTPROC, glXSwapIntervalEXT);
#endif
return true;
@@ -1740,8 +1807,8 @@ static bool setupGLXMESASwapControl(const char *glext)
CHECK_EXT("GLX_MESA_swap_control");
#if defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
- CHECK_ADDRESS(NEL_PFNGLXSWAPINTERVALMESAPROC, glXSwapIntervalMESA);
- CHECK_ADDRESS(NEL_PFNGLXGETSWAPINTERVALMESAPROC, glXGetSwapIntervalMESA);
+ CHECK_ADDRESS(PFNGLXSWAPINTERVALMESAPROC, glXSwapIntervalMESA);
+ CHECK_ADDRESS(PFNGLXGETSWAPINTERVALMESAPROC, glXGetSwapIntervalMESA);
#endif
return true;
@@ -1819,6 +1886,20 @@ bool registerWGlExtensions(CGlExtensions &ext, HDC hDC)
// Check for swap control
ext.WGLEXTSwapControl= setupWGLEXTSwapControl(glext);
+ ext.WGLAMDGPUAssociation = setupWGLAMDGPUAssociation(glext);
+
+ if (ext.WGLAMDGPUAssociation)
+ {
+ GLuint uNoOfGPUs = nwglGetGPUIDsAMD(0, 0);
+ GLuint *uGPUIDs = new GLuint[uNoOfGPUs];
+ nwglGetGPUIDsAMD(uNoOfGPUs, uGPUIDs);
+
+ GLuint uTotalMemoryInMB = 0;
+ nwglGetGPUInfoAMD(uGPUIDs[0], WGL_GPU_RAM_AMD, GL_UNSIGNED_INT, sizeof(GLuint), &uTotalMemoryInMB);
+
+ delete [] uGPUIDs;
+ }
+
return true;
}
#elif defined(NL_OS_MAC)
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.h b/code/nel/src/3d/driver/opengl/driver_opengl_extension.h
index fe7738fd8..938473029 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.h
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.h
@@ -109,6 +109,17 @@ struct CGlExtensions
bool OESDrawTexture;
bool OESMapBuffer;
+ // extensions to get memory info
+
+ // GL_NVX_gpu_memory_info
+ bool NVXGPUMemoryInfo;
+
+ // GL_ATI_meminfo
+ bool ATIMeminfo;
+
+ // WGL_AMD_gpu_association
+ bool WGLAMDGPUAssociation;
+
public:
/// \name Disable Hardware feature. False by default. setuped by IDriver
@@ -151,7 +162,6 @@ public:
ATIVertexArrayObject= false;
ATIEnvMapBumpMap = false;
ATIFragmentShader = false;
- ATIVertexArrayObject = false;
ATIMapObjectBuffer = false;
ATIVertexAttribArrayObject = false;
EXTVertexShader= false;
@@ -176,6 +186,10 @@ public:
OESDrawTexture = false;
OESMapBuffer = false;
+ NVXGPUMemoryInfo = false;
+ ATIMeminfo = false;
+ WGLAMDGPUAssociation = false;
+
/// \name Disable Hardware feature. False by default. setuped by IDriver
DisableHardwareVertexProgram= false;
DisableHardwarePixelProgram= false;
@@ -225,12 +239,15 @@ public:
result += NVOcclusionQuery ? "NVOcclusionQuery " : "";
result += NVStateVARWithoutFlush ? "NVStateVARWithoutFlush " : "";
result += ARBMultisample ? "ARBMultisample " : "";
+ result += NVXGPUMemoryInfo ? "NVXGPUMemoryInfo " : "";
+ result += ATIMeminfo ? "ATIMeminfo " : "";
#ifdef NL_OS_WINDOWS
result += "\n WindowsGL: ";
result += WGLARBPBuffer ? "WGLARBPBuffer " : "";
result += WGLARBPixelFormat ? "WGLARBPixelFormat " : "";
result += WGLEXTSwapControl ? "WGLEXTSwapControl " : "";
+ result += WGLAMDGPUAssociation ? "WGLAMDGPUAssociation " : "";
#elif defined(NL_OS_MAC)
#elif defined(NL_OS_UNIX)
result += "\n GLX: ";
@@ -294,230 +311,228 @@ void registerGlExtensions(CGlExtensions &ext);
// OES_mapbuffer.
//===============
-extern NEL_PFNGLMAPBUFFEROESPROC nglMapBufferOES;
-extern NEL_PFNGLUNMAPBUFFEROESPROC nglUnmapBufferOES;
-extern NEL_PFNGLGETBUFFERPOINTERVOESPROC nglGetBufferPointervOES;
+extern PFNGLMAPBUFFEROESPROC nglMapBufferOES;
+extern PFNGLUNMAPBUFFEROESPROC nglUnmapBufferOES;
+extern PFNGLGETBUFFERPOINTERVOESPROC nglGetBufferPointervOES;
-extern NEL_PFNGLBUFFERSUBDATAPROC nglBufferSubData;
-
-extern PFNGLDRAWTEXFOESPROC nglDrawTexfOES;
+extern PFNGLDRAWTEXFOESPROC nglDrawTexfOES;
// GL_OES_framebuffer_object
-extern NEL_PFNGLISRENDERBUFFEROESPROC nglIsRenderbufferOES;
-extern NEL_PFNGLBINDRENDERBUFFEROESPROC nglBindRenderbufferOES;
-extern NEL_PFNGLDELETERENDERBUFFERSOESPROC nglDeleteRenderbuffersOES;
-extern NEL_PFNGLGENRENDERBUFFERSOESPROC nglGenRenderbuffersOES;
-extern NEL_PFNGLRENDERBUFFERSTORAGEOESPROC nglRenderbufferStorageOES;
-extern NEL_PFNGLGETRENDERBUFFERPARAMETERIVOESPROC nglGetRenderbufferParameterivOES;
-extern NEL_PFNGLISFRAMEBUFFEROESPROC nglIsFramebufferOES;
-extern NEL_PFNGLBINDFRAMEBUFFEROESPROC nglBindFramebufferOES;
-extern NEL_PFNGLDELETEFRAMEBUFFERSOESPROC nglDeleteFramebuffersOES;
-extern NEL_PFNGLGENFRAMEBUFFERSOESPROC nglGenFramebuffersOES;
-extern NEL_PFNGLCHECKFRAMEBUFFERSTATUSOESPROC nglCheckFramebufferStatusOES;
-extern NEL_PFNGLFRAMEBUFFERRENDERBUFFEROESPROC nglFramebufferRenderbufferOES;
-extern NEL_PFNGLFRAMEBUFFERTEXTURE2DOESPROC nglFramebufferTexture2DOES;
-extern NEL_PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC nglGetFramebufferAttachmentParameterivOES;
-extern NEL_PFNGLGENERATEMIPMAPOESPROC nglGenerateMipmapOES;
+extern PFNGLISRENDERBUFFEROESPROC nglIsRenderbufferOES;
+extern PFNGLBINDRENDERBUFFEROESPROC nglBindRenderbufferOES;
+extern PFNGLDELETERENDERBUFFERSOESPROC nglDeleteRenderbuffersOES;
+extern PFNGLGENRENDERBUFFERSOESPROC nglGenRenderbuffersOES;
+extern PFNGLRENDERBUFFERSTORAGEOESPROC nglRenderbufferStorageOES;
+extern PFNGLGETRENDERBUFFERPARAMETERIVOESPROC nglGetRenderbufferParameterivOES;
+extern PFNGLISFRAMEBUFFEROESPROC nglIsFramebufferOES;
+extern PFNGLBINDFRAMEBUFFEROESPROC nglBindFramebufferOES;
+extern PFNGLDELETEFRAMEBUFFERSOESPROC nglDeleteFramebuffersOES;
+extern PFNGLGENFRAMEBUFFERSOESPROC nglGenFramebuffersOES;
+extern PFNGLCHECKFRAMEBUFFERSTATUSOESPROC nglCheckFramebufferStatusOES;
+extern PFNGLFRAMEBUFFERRENDERBUFFEROESPROC nglFramebufferRenderbufferOES;
+extern PFNGLFRAMEBUFFERTEXTURE2DOESPROC nglFramebufferTexture2DOES;
+extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC nglGetFramebufferAttachmentParameterivOES;
+extern PFNGLGENERATEMIPMAPOESPROC nglGenerateMipmapOES;
// GL_OES_texture_cube_map
-extern NEL_PFNGLTEXGENFOESPROC nglTexGenfOES;
-extern NEL_PFNGLTEXGENFVOESPROC nglTexGenfvOES;
-extern NEL_PFNGLTEXGENIOESPROC nglTexGeniOES;
-extern NEL_PFNGLTEXGENIVOESPROC nglTexGenivOES;
-extern NEL_PFNGLTEXGENXOESPROC nglTexGenxOES;
-extern NEL_PFNGLTEXGENXVOESPROC nglTexGenxvOES;
-extern NEL_PFNGLGETTEXGENFVOESPROC nglGetTexGenfvOES;
-extern NEL_PFNGLGETTEXGENIVOESPROC nglGetTexGenivOES;
-extern NEL_PFNGLGETTEXGENXVOESPROC nglGetTexGenxvOES;
+extern PFNGLTEXGENFOESPROC nglTexGenfOES;
+extern PFNGLTEXGENFVOESPROC nglTexGenfvOES;
+extern PFNGLTEXGENIOESPROC nglTexGeniOES;
+extern PFNGLTEXGENIVOESPROC nglTexGenivOES;
+extern PFNGLTEXGENXOESPROC nglTexGenxOES;
+extern PFNGLTEXGENXVOESPROC nglTexGenxvOES;
+extern PFNGLGETTEXGENFVOESPROC nglGetTexGenfvOES;
+extern PFNGLGETTEXGENIVOESPROC nglGetTexGenivOES;
+extern PFNGLGETTEXGENXVOESPROC nglGetTexGenxvOES;
#else
// ARB_multitexture
//=================
-extern NEL_PFNGLACTIVETEXTUREARBPROC nglActiveTextureARB;
-extern NEL_PFNGLCLIENTACTIVETEXTUREARBPROC nglClientActiveTextureARB;
+extern PFNGLACTIVETEXTUREARBPROC nglActiveTextureARB;
+extern PFNGLCLIENTACTIVETEXTUREARBPROC nglClientActiveTextureARB;
-extern NEL_PFNGLMULTITEXCOORD1SARBPROC nglMultiTexCoord1sARB;
-extern NEL_PFNGLMULTITEXCOORD1IARBPROC nglMultiTexCoord1iARB;
-extern NEL_PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
-extern NEL_PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
-extern NEL_PFNGLMULTITEXCOORD1DARBPROC nglMultiTexCoord1dARB;
-extern NEL_PFNGLMULTITEXCOORD2SARBPROC nglMultiTexCoord2sARB;
-extern NEL_PFNGLMULTITEXCOORD2IARBPROC nglMultiTexCoord2iARB;
-extern NEL_PFNGLMULTITEXCOORD2FARBPROC nglMultiTexCoord2fARB;
-extern NEL_PFNGLMULTITEXCOORD2DARBPROC nglMultiTexCoord2dARB;
-extern NEL_PFNGLMULTITEXCOORD3SARBPROC nglMultiTexCoord3sARB;
-extern NEL_PFNGLMULTITEXCOORD3IARBPROC nglMultiTexCoord3iARB;
-extern NEL_PFNGLMULTITEXCOORD3FARBPROC nglMultiTexCoord3fARB;
-extern NEL_PFNGLMULTITEXCOORD3DARBPROC nglMultiTexCoord3dARB;
-extern NEL_PFNGLMULTITEXCOORD4SARBPROC nglMultiTexCoord4sARB;
-extern NEL_PFNGLMULTITEXCOORD4IARBPROC nglMultiTexCoord4iARB;
-extern NEL_PFNGLMULTITEXCOORD4FARBPROC nglMultiTexCoord4fARB;
-extern NEL_PFNGLMULTITEXCOORD4DARBPROC nglMultiTexCoord4dARB;
+extern PFNGLMULTITEXCOORD1SARBPROC nglMultiTexCoord1sARB;
+extern PFNGLMULTITEXCOORD1IARBPROC nglMultiTexCoord1iARB;
+extern PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
+extern PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB;
+extern PFNGLMULTITEXCOORD1DARBPROC nglMultiTexCoord1dARB;
+extern PFNGLMULTITEXCOORD2SARBPROC nglMultiTexCoord2sARB;
+extern PFNGLMULTITEXCOORD2IARBPROC nglMultiTexCoord2iARB;
+extern PFNGLMULTITEXCOORD2FARBPROC nglMultiTexCoord2fARB;
+extern PFNGLMULTITEXCOORD2DARBPROC nglMultiTexCoord2dARB;
+extern PFNGLMULTITEXCOORD3SARBPROC nglMultiTexCoord3sARB;
+extern PFNGLMULTITEXCOORD3IARBPROC nglMultiTexCoord3iARB;
+extern PFNGLMULTITEXCOORD3FARBPROC nglMultiTexCoord3fARB;
+extern PFNGLMULTITEXCOORD3DARBPROC nglMultiTexCoord3dARB;
+extern PFNGLMULTITEXCOORD4SARBPROC nglMultiTexCoord4sARB;
+extern PFNGLMULTITEXCOORD4IARBPROC nglMultiTexCoord4iARB;
+extern PFNGLMULTITEXCOORD4FARBPROC nglMultiTexCoord4fARB;
+extern PFNGLMULTITEXCOORD4DARBPROC nglMultiTexCoord4dARB;
-extern NEL_PFNGLMULTITEXCOORD1SVARBPROC nglMultiTexCoord1svARB;
-extern NEL_PFNGLMULTITEXCOORD1IVARBPROC nglMultiTexCoord1ivARB;
-extern NEL_PFNGLMULTITEXCOORD1FVARBPROC nglMultiTexCoord1fvARB;
-extern NEL_PFNGLMULTITEXCOORD1DVARBPROC nglMultiTexCoord1dvARB;
-extern NEL_PFNGLMULTITEXCOORD2SVARBPROC nglMultiTexCoord2svARB;
-extern NEL_PFNGLMULTITEXCOORD2IVARBPROC nglMultiTexCoord2ivARB;
-extern NEL_PFNGLMULTITEXCOORD2FVARBPROC nglMultiTexCoord2fvARB;
-extern NEL_PFNGLMULTITEXCOORD2DVARBPROC nglMultiTexCoord2dvARB;
-extern NEL_PFNGLMULTITEXCOORD3SVARBPROC nglMultiTexCoord3svARB;
-extern NEL_PFNGLMULTITEXCOORD3IVARBPROC nglMultiTexCoord3ivARB;
-extern NEL_PFNGLMULTITEXCOORD3FVARBPROC nglMultiTexCoord3fvARB;
-extern NEL_PFNGLMULTITEXCOORD3DVARBPROC nglMultiTexCoord3dvARB;
-extern NEL_PFNGLMULTITEXCOORD4SVARBPROC nglMultiTexCoord4svARB;
-extern NEL_PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB;
-extern NEL_PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
-extern NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
+extern PFNGLMULTITEXCOORD1SVARBPROC nglMultiTexCoord1svARB;
+extern PFNGLMULTITEXCOORD1IVARBPROC nglMultiTexCoord1ivARB;
+extern PFNGLMULTITEXCOORD1FVARBPROC nglMultiTexCoord1fvARB;
+extern PFNGLMULTITEXCOORD1DVARBPROC nglMultiTexCoord1dvARB;
+extern PFNGLMULTITEXCOORD2SVARBPROC nglMultiTexCoord2svARB;
+extern PFNGLMULTITEXCOORD2IVARBPROC nglMultiTexCoord2ivARB;
+extern PFNGLMULTITEXCOORD2FVARBPROC nglMultiTexCoord2fvARB;
+extern PFNGLMULTITEXCOORD2DVARBPROC nglMultiTexCoord2dvARB;
+extern PFNGLMULTITEXCOORD3SVARBPROC nglMultiTexCoord3svARB;
+extern PFNGLMULTITEXCOORD3IVARBPROC nglMultiTexCoord3ivARB;
+extern PFNGLMULTITEXCOORD3FVARBPROC nglMultiTexCoord3fvARB;
+extern PFNGLMULTITEXCOORD3DVARBPROC nglMultiTexCoord3dvARB;
+extern PFNGLMULTITEXCOORD4SVARBPROC nglMultiTexCoord4svARB;
+extern PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB;
+extern PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
+extern PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
// ARB_TextureCompression.
//========================
-extern NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
-extern NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
-extern NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
-extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
-extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
-extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
-extern NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
+extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
+extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
+extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
+extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
+extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
+extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
+extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
// VertexArrayRangeNV.
//====================
-extern NEL_PFNGLFLUSHVERTEXARRAYRANGENVPROC nglFlushVertexArrayRangeNV;
-extern NEL_PFNGLVERTEXARRAYRANGENVPROC nglVertexArrayRangeNV;
+extern PFNGLFLUSHVERTEXARRAYRANGENVPROC nglFlushVertexArrayRangeNV;
+extern PFNGLVERTEXARRAYRANGENVPROC nglVertexArrayRangeNV;
#ifdef NL_OS_WINDOWS
extern PFNWGLALLOCATEMEMORYNVPROC nwglAllocateMemoryNV;
extern PFNWGLFREEMEMORYNVPROC nwglFreeMemoryNV;
#elif defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
-extern NEL_PFNGLXALLOCATEMEMORYNVPROC nglXAllocateMemoryNV;
-extern NEL_PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV;
+extern PFNGLXALLOCATEMEMORYNVPROC nglXAllocateMemoryNV;
+extern PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV;
#endif
// FenceNV.
//====================
-extern NEL_PFNGLDELETEFENCESNVPROC nglDeleteFencesNV;
-extern NEL_PFNGLGENFENCESNVPROC nglGenFencesNV;
-extern NEL_PFNGLISFENCENVPROC nglIsFenceNV;
-extern NEL_PFNGLTESTFENCENVPROC nglTestFenceNV;
-extern NEL_PFNGLGETFENCEIVNVPROC nglGetFenceivNV;
-extern NEL_PFNGLFINISHFENCENVPROC nglFinishFenceNV;
-extern NEL_PFNGLSETFENCENVPROC nglSetFenceNV;
+extern PFNGLDELETEFENCESNVPROC nglDeleteFencesNV;
+extern PFNGLGENFENCESNVPROC nglGenFencesNV;
+extern PFNGLISFENCENVPROC nglIsFenceNV;
+extern PFNGLTESTFENCENVPROC nglTestFenceNV;
+extern PFNGLGETFENCEIVNVPROC nglGetFenceivNV;
+extern PFNGLFINISHFENCENVPROC nglFinishFenceNV;
+extern PFNGLSETFENCENVPROC nglSetFenceNV;
// VertexWeighting.
//==================
-extern NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
-extern NEL_PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT;
-extern NEL_PFNGLVERTEXWEIGHTPOINTEREXTPROC nglVertexWeightPointerEXT;
+extern PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
+extern PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT;
+extern PFNGLVERTEXWEIGHTPOINTEREXTPROC nglVertexWeightPointerEXT;
// VertexProgramExtension.
//========================
-extern NEL_PFNGLAREPROGRAMSRESIDENTNVPROC nglAreProgramsResidentNV;
-extern NEL_PFNGLBINDPROGRAMNVPROC nglBindProgramNV;
-extern NEL_PFNGLDELETEPROGRAMSNVPROC nglDeleteProgramsNV;
-extern NEL_PFNGLEXECUTEPROGRAMNVPROC nglExecuteProgramNV;
-extern NEL_PFNGLGENPROGRAMSNVPROC nglGenProgramsNV;
-extern NEL_PFNGLGETPROGRAMPARAMETERDVNVPROC nglGetProgramParameterdvNV;
-extern NEL_PFNGLGETPROGRAMPARAMETERFVNVPROC nglGetProgramParameterfvNV;
-extern NEL_PFNGLGETPROGRAMIVNVPROC nglGetProgramivNV;
-extern NEL_PFNGLGETPROGRAMSTRINGNVPROC nglGetProgramStringNV;
-extern NEL_PFNGLGETTRACKMATRIXIVNVPROC nglGetTrackMatrixivNV;
-extern NEL_PFNGLGETVERTEXATTRIBDVNVPROC nglGetVertexAttribdvNV;
-extern NEL_PFNGLGETVERTEXATTRIBFVNVPROC nglGetVertexAttribfvNV;
-extern NEL_PFNGLGETVERTEXATTRIBIVNVPROC nglGetVertexAttribivNV;
-extern NEL_PFNGLGETVERTEXATTRIBPOINTERVNVPROC nglGetVertexAttribPointervNV;
-extern NEL_PFNGLISPROGRAMNVPROC nglIsProgramNV;
-extern NEL_PFNGLLOADPROGRAMNVPROC nglLoadProgramNV;
-extern NEL_PFNGLPROGRAMPARAMETER4DNVPROC nglProgramParameter4dNV;
-extern NEL_PFNGLPROGRAMPARAMETER4DVNVPROC nglProgramParameter4dvNV;
-extern NEL_PFNGLPROGRAMPARAMETER4FNVPROC nglProgramParameter4fNV;
-extern NEL_PFNGLPROGRAMPARAMETER4FVNVPROC nglProgramParameter4fvNV;
-extern NEL_PFNGLPROGRAMPARAMETERS4DVNVPROC nglProgramParameters4dvNV;
-extern NEL_PFNGLPROGRAMPARAMETERS4FVNVPROC nglProgramParameters4fvNV;
-extern NEL_PFNGLREQUESTRESIDENTPROGRAMSNVPROC nglRequestResidentProgramsNV;
-extern NEL_PFNGLTRACKMATRIXNVPROC nglTrackMatrixNV;
-extern NEL_PFNGLVERTEXATTRIBPOINTERNVPROC nglVertexAttribPointerNV;
-extern NEL_PFNGLVERTEXATTRIB1DNVPROC nglVertexAttrib1dNV;
-extern NEL_PFNGLVERTEXATTRIB1DVNVPROC nglVertexAttrib1dvNV;
-extern NEL_PFNGLVERTEXATTRIB1FNVPROC nglVertexAttrib1fNV;
-extern NEL_PFNGLVERTEXATTRIB1FVNVPROC nglVertexAttrib1fvNV;
-extern NEL_PFNGLVERTEXATTRIB1SNVPROC nglVertexAttrib1sNV;
-extern NEL_PFNGLVERTEXATTRIB1SVNVPROC nglVertexAttrib1svNV;
-extern NEL_PFNGLVERTEXATTRIB2DNVPROC nglVertexAttrib2dNV;
-extern NEL_PFNGLVERTEXATTRIB2DVNVPROC nglVertexAttrib2dvNV;
-extern NEL_PFNGLVERTEXATTRIB2FNVPROC nglVertexAttrib2fNV;
-extern NEL_PFNGLVERTEXATTRIB2FVNVPROC nglVertexAttrib2fvNV;
-extern NEL_PFNGLVERTEXATTRIB2SNVPROC nglVertexAttrib2sNV;
-extern NEL_PFNGLVERTEXATTRIB2SVNVPROC nglVertexAttrib2svNV;
-extern NEL_PFNGLVERTEXATTRIB3DNVPROC nglVertexAttrib3dNV;
-extern NEL_PFNGLVERTEXATTRIB3DVNVPROC nglVertexAttrib3dvNV;
-extern NEL_PFNGLVERTEXATTRIB3FNVPROC nglVertexAttrib3fNV;
-extern NEL_PFNGLVERTEXATTRIB3FVNVPROC nglVertexAttrib3fvNV;
-extern NEL_PFNGLVERTEXATTRIB3SNVPROC nglVertexAttrib3sNV;
-extern NEL_PFNGLVERTEXATTRIB3SVNVPROC nglVertexAttrib3svNV;
-extern NEL_PFNGLVERTEXATTRIB4DNVPROC nglVertexAttrib4dNV;
-extern NEL_PFNGLVERTEXATTRIB4DVNVPROC nglVertexAttrib4dvNV;
-extern NEL_PFNGLVERTEXATTRIB4FNVPROC nglVertexAttrib4fNV;
-extern NEL_PFNGLVERTEXATTRIB4FVNVPROC nglVertexAttrib4fvNV;
-extern NEL_PFNGLVERTEXATTRIB4SNVPROC nglVertexAttrib4sNV;
-extern NEL_PFNGLVERTEXATTRIB4SVNVPROC nglVertexAttrib4svNV;
-extern NEL_PFNGLVERTEXATTRIB4UBVNVPROC nglVertexAttrib4ubvNV;
-extern NEL_PFNGLVERTEXATTRIBS1DVNVPROC nglVertexAttribs1dvNV;
-extern NEL_PFNGLVERTEXATTRIBS1FVNVPROC nglVertexAttribs1fvNV;
-extern NEL_PFNGLVERTEXATTRIBS1SVNVPROC nglVertexAttribs1svNV;
-extern NEL_PFNGLVERTEXATTRIBS2DVNVPROC nglVertexAttribs2dvNV;
-extern NEL_PFNGLVERTEXATTRIBS2FVNVPROC nglVertexAttribs2fvNV;
-extern NEL_PFNGLVERTEXATTRIBS2SVNVPROC nglVertexAttribs2svNV;
-extern NEL_PFNGLVERTEXATTRIBS3DVNVPROC nglVertexAttribs3dvNV;
-extern NEL_PFNGLVERTEXATTRIBS3FVNVPROC nglVertexAttribs3fvNV;
-extern NEL_PFNGLVERTEXATTRIBS3SVNVPROC nglVertexAttribs3svNV;
-extern NEL_PFNGLVERTEXATTRIBS4DVNVPROC nglVertexAttribs4dvNV;
-extern NEL_PFNGLVERTEXATTRIBS4FVNVPROC nglVertexAttribs4fvNV;
-extern NEL_PFNGLVERTEXATTRIBS4SVNVPROC nglVertexAttribs4svNV;
-extern NEL_PFNGLVERTEXATTRIBS4UBVNVPROC nglVertexAttribs4ubvNV;
+extern PFNGLAREPROGRAMSRESIDENTNVPROC nglAreProgramsResidentNV;
+extern PFNGLBINDPROGRAMNVPROC nglBindProgramNV;
+extern PFNGLDELETEPROGRAMSNVPROC nglDeleteProgramsNV;
+extern PFNGLEXECUTEPROGRAMNVPROC nglExecuteProgramNV;
+extern PFNGLGENPROGRAMSNVPROC nglGenProgramsNV;
+extern PFNGLGETPROGRAMPARAMETERDVNVPROC nglGetProgramParameterdvNV;
+extern PFNGLGETPROGRAMPARAMETERFVNVPROC nglGetProgramParameterfvNV;
+extern PFNGLGETPROGRAMIVNVPROC nglGetProgramivNV;
+extern PFNGLGETPROGRAMSTRINGNVPROC nglGetProgramStringNV;
+extern PFNGLGETTRACKMATRIXIVNVPROC nglGetTrackMatrixivNV;
+extern PFNGLGETVERTEXATTRIBDVNVPROC nglGetVertexAttribdvNV;
+extern PFNGLGETVERTEXATTRIBFVNVPROC nglGetVertexAttribfvNV;
+extern PFNGLGETVERTEXATTRIBIVNVPROC nglGetVertexAttribivNV;
+extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC nglGetVertexAttribPointervNV;
+extern PFNGLISPROGRAMNVPROC nglIsProgramNV;
+extern PFNGLLOADPROGRAMNVPROC nglLoadProgramNV;
+extern PFNGLPROGRAMPARAMETER4DNVPROC nglProgramParameter4dNV;
+extern PFNGLPROGRAMPARAMETER4DVNVPROC nglProgramParameter4dvNV;
+extern PFNGLPROGRAMPARAMETER4FNVPROC nglProgramParameter4fNV;
+extern PFNGLPROGRAMPARAMETER4FVNVPROC nglProgramParameter4fvNV;
+extern PFNGLPROGRAMPARAMETERS4DVNVPROC nglProgramParameters4dvNV;
+extern PFNGLPROGRAMPARAMETERS4FVNVPROC nglProgramParameters4fvNV;
+extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC nglRequestResidentProgramsNV;
+extern PFNGLTRACKMATRIXNVPROC nglTrackMatrixNV;
+extern PFNGLVERTEXATTRIBPOINTERNVPROC nglVertexAttribPointerNV;
+extern PFNGLVERTEXATTRIB1DNVPROC nglVertexAttrib1dNV;
+extern PFNGLVERTEXATTRIB1DVNVPROC nglVertexAttrib1dvNV;
+extern PFNGLVERTEXATTRIB1FNVPROC nglVertexAttrib1fNV;
+extern PFNGLVERTEXATTRIB1FVNVPROC nglVertexAttrib1fvNV;
+extern PFNGLVERTEXATTRIB1SNVPROC nglVertexAttrib1sNV;
+extern PFNGLVERTEXATTRIB1SVNVPROC nglVertexAttrib1svNV;
+extern PFNGLVERTEXATTRIB2DNVPROC nglVertexAttrib2dNV;
+extern PFNGLVERTEXATTRIB2DVNVPROC nglVertexAttrib2dvNV;
+extern PFNGLVERTEXATTRIB2FNVPROC nglVertexAttrib2fNV;
+extern PFNGLVERTEXATTRIB2FVNVPROC nglVertexAttrib2fvNV;
+extern PFNGLVERTEXATTRIB2SNVPROC nglVertexAttrib2sNV;
+extern PFNGLVERTEXATTRIB2SVNVPROC nglVertexAttrib2svNV;
+extern PFNGLVERTEXATTRIB3DNVPROC nglVertexAttrib3dNV;
+extern PFNGLVERTEXATTRIB3DVNVPROC nglVertexAttrib3dvNV;
+extern PFNGLVERTEXATTRIB3FNVPROC nglVertexAttrib3fNV;
+extern PFNGLVERTEXATTRIB3FVNVPROC nglVertexAttrib3fvNV;
+extern PFNGLVERTEXATTRIB3SNVPROC nglVertexAttrib3sNV;
+extern PFNGLVERTEXATTRIB3SVNVPROC nglVertexAttrib3svNV;
+extern PFNGLVERTEXATTRIB4DNVPROC nglVertexAttrib4dNV;
+extern PFNGLVERTEXATTRIB4DVNVPROC nglVertexAttrib4dvNV;
+extern PFNGLVERTEXATTRIB4FNVPROC nglVertexAttrib4fNV;
+extern PFNGLVERTEXATTRIB4FVNVPROC nglVertexAttrib4fvNV;
+extern PFNGLVERTEXATTRIB4SNVPROC nglVertexAttrib4sNV;
+extern PFNGLVERTEXATTRIB4SVNVPROC nglVertexAttrib4svNV;
+extern PFNGLVERTEXATTRIB4UBVNVPROC nglVertexAttrib4ubvNV;
+extern PFNGLVERTEXATTRIBS1DVNVPROC nglVertexAttribs1dvNV;
+extern PFNGLVERTEXATTRIBS1FVNVPROC nglVertexAttribs1fvNV;
+extern PFNGLVERTEXATTRIBS1SVNVPROC nglVertexAttribs1svNV;
+extern PFNGLVERTEXATTRIBS2DVNVPROC nglVertexAttribs2dvNV;
+extern PFNGLVERTEXATTRIBS2FVNVPROC nglVertexAttribs2fvNV;
+extern PFNGLVERTEXATTRIBS2SVNVPROC nglVertexAttribs2svNV;
+extern PFNGLVERTEXATTRIBS3DVNVPROC nglVertexAttribs3dvNV;
+extern PFNGLVERTEXATTRIBS3FVNVPROC nglVertexAttribs3fvNV;
+extern PFNGLVERTEXATTRIBS3SVNVPROC nglVertexAttribs3svNV;
+extern PFNGLVERTEXATTRIBS4DVNVPROC nglVertexAttribs4dvNV;
+extern PFNGLVERTEXATTRIBS4FVNVPROC nglVertexAttribs4fvNV;
+extern PFNGLVERTEXATTRIBS4SVNVPROC nglVertexAttribs4svNV;
+extern PFNGLVERTEXATTRIBS4UBVNVPROC nglVertexAttribs4ubvNV;
// VertexShaderExtension.
//========================
-extern NEL_PFNGLBEGINVERTEXSHADEREXTPROC nglBeginVertexShaderEXT;
-extern NEL_PFNGLENDVERTEXSHADEREXTPROC nglEndVertexShaderEXT;
-extern NEL_PFNGLBINDVERTEXSHADEREXTPROC nglBindVertexShaderEXT;
-extern NEL_PFNGLGENVERTEXSHADERSEXTPROC nglGenVertexShadersEXT;
-extern NEL_PFNGLDELETEVERTEXSHADEREXTPROC nglDeleteVertexShaderEXT;
-extern NEL_PFNGLSHADEROP1EXTPROC nglShaderOp1EXT;
-extern NEL_PFNGLSHADEROP2EXTPROC nglShaderOp2EXT;
-extern NEL_PFNGLSHADEROP3EXTPROC nglShaderOp3EXT;
-extern NEL_PFNGLSWIZZLEEXTPROC nglSwizzleEXT;
-extern NEL_PFNGLWRITEMASKEXTPROC nglWriteMaskEXT;
-extern NEL_PFNGLINSERTCOMPONENTEXTPROC nglInsertComponentEXT;
-extern NEL_PFNGLEXTRACTCOMPONENTEXTPROC nglExtractComponentEXT;
-extern NEL_PFNGLGENSYMBOLSEXTPROC nglGenSymbolsEXT;
-extern NEL_PFNGLSETINVARIANTEXTPROC nglSetInvariantEXT;
-extern NEL_PFNGLSETLOCALCONSTANTEXTPROC nglSetLocalConstantEXT;
-extern NEL_PFNGLVARIANTPOINTEREXTPROC nglVariantPointerEXT;
-extern NEL_PFNGLENABLEVARIANTCLIENTSTATEEXTPROC nglEnableVariantClientStateEXT;
-extern NEL_PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC nglDisableVariantClientStateEXT;
-extern NEL_PFNGLBINDLIGHTPARAMETEREXTPROC nglBindLightParameterEXT;
-extern NEL_PFNGLBINDMATERIALPARAMETEREXTPROC nglBindMaterialParameterEXT;
-extern NEL_PFNGLBINDTEXGENPARAMETEREXTPROC nglBindTexGenParameterEXT;
-extern NEL_PFNGLBINDTEXTUREUNITPARAMETEREXTPROC nglBindTextureUnitParameterEXT;
-extern NEL_PFNGLBINDPARAMETEREXTPROC nglBindParameterEXT;
-extern NEL_PFNGLISVARIANTENABLEDEXTPROC nglIsVariantEnabledEXT;
-extern NEL_PFNGLGETVARIANTBOOLEANVEXTPROC nglGetVariantBooleanvEXT;
-extern NEL_PFNGLGETVARIANTINTEGERVEXTPROC nglGetVariantIntegervEXT;
-extern NEL_PFNGLGETVARIANTFLOATVEXTPROC nglGetVariantFloatvEXT;
-extern NEL_PFNGLGETVARIANTPOINTERVEXTPROC nglGetVariantPointervEXT;
-extern NEL_PFNGLGETINVARIANTBOOLEANVEXTPROC nglGetInvariantBooleanvEXT;
-extern NEL_PFNGLGETINVARIANTINTEGERVEXTPROC nglGetInvariantIntegervEXT;
-extern NEL_PFNGLGETINVARIANTFLOATVEXTPROC nglGetInvariantFloatvEXT;
-extern NEL_PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC nglGetLocalConstantBooleanvEXT;
-extern NEL_PFNGLGETLOCALCONSTANTINTEGERVEXTPROC nglGetLocalConstantIntegervEXT;
-extern NEL_PFNGLGETLOCALCONSTANTFLOATVEXTPROC nglGetLocalConstantFloatvEXT;
+extern PFNGLBEGINVERTEXSHADEREXTPROC nglBeginVertexShaderEXT;
+extern PFNGLENDVERTEXSHADEREXTPROC nglEndVertexShaderEXT;
+extern PFNGLBINDVERTEXSHADEREXTPROC nglBindVertexShaderEXT;
+extern PFNGLGENVERTEXSHADERSEXTPROC nglGenVertexShadersEXT;
+extern PFNGLDELETEVERTEXSHADEREXTPROC nglDeleteVertexShaderEXT;
+extern PFNGLSHADEROP1EXTPROC nglShaderOp1EXT;
+extern PFNGLSHADEROP2EXTPROC nglShaderOp2EXT;
+extern PFNGLSHADEROP3EXTPROC nglShaderOp3EXT;
+extern PFNGLSWIZZLEEXTPROC nglSwizzleEXT;
+extern PFNGLWRITEMASKEXTPROC nglWriteMaskEXT;
+extern PFNGLINSERTCOMPONENTEXTPROC nglInsertComponentEXT;
+extern PFNGLEXTRACTCOMPONENTEXTPROC nglExtractComponentEXT;
+extern PFNGLGENSYMBOLSEXTPROC nglGenSymbolsEXT;
+extern PFNGLSETINVARIANTEXTPROC nglSetInvariantEXT;
+extern PFNGLSETLOCALCONSTANTEXTPROC nglSetLocalConstantEXT;
+extern PFNGLVARIANTPOINTEREXTPROC nglVariantPointerEXT;
+extern PFNGLENABLEVARIANTCLIENTSTATEEXTPROC nglEnableVariantClientStateEXT;
+extern PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC nglDisableVariantClientStateEXT;
+extern PFNGLBINDLIGHTPARAMETEREXTPROC nglBindLightParameterEXT;
+extern PFNGLBINDMATERIALPARAMETEREXTPROC nglBindMaterialParameterEXT;
+extern PFNGLBINDTEXGENPARAMETEREXTPROC nglBindTexGenParameterEXT;
+extern PFNGLBINDTEXTUREUNITPARAMETEREXTPROC nglBindTextureUnitParameterEXT;
+extern PFNGLBINDPARAMETEREXTPROC nglBindParameterEXT;
+extern PFNGLISVARIANTENABLEDEXTPROC nglIsVariantEnabledEXT;
+extern PFNGLGETVARIANTBOOLEANVEXTPROC nglGetVariantBooleanvEXT;
+extern PFNGLGETVARIANTINTEGERVEXTPROC nglGetVariantIntegervEXT;
+extern PFNGLGETVARIANTFLOATVEXTPROC nglGetVariantFloatvEXT;
+extern PFNGLGETVARIANTPOINTERVEXTPROC nglGetVariantPointervEXT;
+extern PFNGLGETINVARIANTBOOLEANVEXTPROC nglGetInvariantBooleanvEXT;
+extern PFNGLGETINVARIANTINTEGERVEXTPROC nglGetInvariantIntegervEXT;
+extern PFNGLGETINVARIANTFLOATVEXTPROC nglGetInvariantFloatvEXT;
+extern PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC nglGetLocalConstantBooleanvEXT;
+extern PFNGLGETLOCALCONSTANTINTEGERVEXTPROC nglGetLocalConstantIntegervEXT;
+extern PFNGLGETLOCALCONSTANTFLOATVEXTPROC nglGetLocalConstantFloatvEXT;
// ATI_envmap_bumpmap extension
@@ -530,100 +545,100 @@ extern PFNGLGETTEXBUMPPARAMETERFVATIPROC nglGetTexBumpParameterfvATI;
// SecondaryColor extension
//========================
-extern NEL_PFNGLSECONDARYCOLOR3BEXTPROC nglSecondaryColor3bEXT;
-extern NEL_PFNGLSECONDARYCOLOR3BVEXTPROC nglSecondaryColor3bvEXT;
-extern NEL_PFNGLSECONDARYCOLOR3DEXTPROC nglSecondaryColor3dEXT;
-extern NEL_PFNGLSECONDARYCOLOR3DVEXTPROC nglSecondaryColor3dvEXT;
-extern NEL_PFNGLSECONDARYCOLOR3FEXTPROC nglSecondaryColor3fEXT;
-extern NEL_PFNGLSECONDARYCOLOR3FVEXTPROC nglSecondaryColor3fvEXT;
-extern NEL_PFNGLSECONDARYCOLOR3IEXTPROC nglSecondaryColor3iEXT;
-extern NEL_PFNGLSECONDARYCOLOR3IVEXTPROC nglSecondaryColor3ivEXT;
-extern NEL_PFNGLSECONDARYCOLOR3SEXTPROC nglSecondaryColor3sEXT;
-extern NEL_PFNGLSECONDARYCOLOR3SVEXTPROC nglSecondaryColor3svEXT;
-extern NEL_PFNGLSECONDARYCOLOR3UBEXTPROC nglSecondaryColor3ubEXT;
-extern NEL_PFNGLSECONDARYCOLOR3UBVEXTPROC nglSecondaryColor3ubvEXT;
-extern NEL_PFNGLSECONDARYCOLOR3UIEXTPROC nglSecondaryColor3uiEXT;
-extern NEL_PFNGLSECONDARYCOLOR3UIVEXTPROC nglSecondaryColor3uivEXT;
-extern NEL_PFNGLSECONDARYCOLOR3USEXTPROC nglSecondaryColor3usEXT;
-extern NEL_PFNGLSECONDARYCOLOR3USVEXTPROC nglSecondaryColor3usvEXT;
-extern NEL_PFNGLSECONDARYCOLORPOINTEREXTPROC nglSecondaryColorPointerEXT;
+extern PFNGLSECONDARYCOLOR3BEXTPROC nglSecondaryColor3bEXT;
+extern PFNGLSECONDARYCOLOR3BVEXTPROC nglSecondaryColor3bvEXT;
+extern PFNGLSECONDARYCOLOR3DEXTPROC nglSecondaryColor3dEXT;
+extern PFNGLSECONDARYCOLOR3DVEXTPROC nglSecondaryColor3dvEXT;
+extern PFNGLSECONDARYCOLOR3FEXTPROC nglSecondaryColor3fEXT;
+extern PFNGLSECONDARYCOLOR3FVEXTPROC nglSecondaryColor3fvEXT;
+extern PFNGLSECONDARYCOLOR3IEXTPROC nglSecondaryColor3iEXT;
+extern PFNGLSECONDARYCOLOR3IVEXTPROC nglSecondaryColor3ivEXT;
+extern PFNGLSECONDARYCOLOR3SEXTPROC nglSecondaryColor3sEXT;
+extern PFNGLSECONDARYCOLOR3SVEXTPROC nglSecondaryColor3svEXT;
+extern PFNGLSECONDARYCOLOR3UBEXTPROC nglSecondaryColor3ubEXT;
+extern PFNGLSECONDARYCOLOR3UBVEXTPROC nglSecondaryColor3ubvEXT;
+extern PFNGLSECONDARYCOLOR3UIEXTPROC nglSecondaryColor3uiEXT;
+extern PFNGLSECONDARYCOLOR3UIVEXTPROC nglSecondaryColor3uivEXT;
+extern PFNGLSECONDARYCOLOR3USEXTPROC nglSecondaryColor3usEXT;
+extern PFNGLSECONDARYCOLOR3USVEXTPROC nglSecondaryColor3usvEXT;
+extern PFNGLSECONDARYCOLORPOINTEREXTPROC nglSecondaryColorPointerEXT;
// BlendColor extension
//========================
-extern NEL_PFNGLBLENDCOLOREXTPROC nglBlendColorEXT;
+extern PFNGLBLENDCOLOREXTPROC nglBlendColorEXT;
// GL_ATI_vertex_array_object extension
//========================
-extern NEL_PFNGLNEWOBJECTBUFFERATIPROC nglNewObjectBufferATI;
-extern NEL_PFNGLISOBJECTBUFFERATIPROC nglIsObjectBufferATI;
-extern NEL_PFNGLUPDATEOBJECTBUFFERATIPROC nglUpdateObjectBufferATI;
-extern NEL_PFNGLGETOBJECTBUFFERFVATIPROC nglGetObjectBufferfvATI;
-extern NEL_PFNGLGETOBJECTBUFFERIVATIPROC nglGetObjectBufferivATI;
-extern NEL_PFNGLDELETEOBJECTBUFFERATIPROC nglDeleteObjectBufferATI;
-extern NEL_PFNGLARRAYOBJECTATIPROC nglArrayObjectATI;
-extern NEL_PFNGLGETARRAYOBJECTFVATIPROC nglGetArrayObjectfvATI;
-extern NEL_PFNGLGETARRAYOBJECTIVATIPROC nglGetArrayObjectivATI;
-extern NEL_PFNGLVARIANTARRAYOBJECTATIPROC nglVariantArrayObjectATI;
-extern NEL_PFNGLGETVARIANTARRAYOBJECTFVATIPROC nglGetVariantArrayObjectfvATI;
-extern NEL_PFNGLGETVARIANTARRAYOBJECTIVATIPROC nglGetVariantArrayObjectivATI;
+extern PFNGLNEWOBJECTBUFFERATIPROC nglNewObjectBufferATI;
+extern PFNGLISOBJECTBUFFERATIPROC nglIsObjectBufferATI;
+extern PFNGLUPDATEOBJECTBUFFERATIPROC nglUpdateObjectBufferATI;
+extern PFNGLGETOBJECTBUFFERFVATIPROC nglGetObjectBufferfvATI;
+extern PFNGLGETOBJECTBUFFERIVATIPROC nglGetObjectBufferivATI;
+extern PFNGLFREEOBJECTBUFFERATIPROC nglFreeObjectBufferATI;
+extern PFNGLARRAYOBJECTATIPROC nglArrayObjectATI;
+extern PFNGLGETARRAYOBJECTFVATIPROC nglGetArrayObjectfvATI;
+extern PFNGLGETARRAYOBJECTIVATIPROC nglGetArrayObjectivATI;
+extern PFNGLVARIANTARRAYOBJECTATIPROC nglVariantArrayObjectATI;
+extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC nglGetVariantArrayObjectfvATI;
+extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC nglGetVariantArrayObjectivATI;
// GL_ATI_map_object_buffer
//===================================
-extern NEL_PFNGLMAPOBJECTBUFFERATIPROC nglMapObjectBufferATI;
-extern NEL_PFNGLUNMAPOBJECTBUFFERATIPROC nglUnmapObjectBufferATI;
+extern PFNGLMAPOBJECTBUFFERATIPROC nglMapObjectBufferATI;
+extern PFNGLUNMAPOBJECTBUFFERATIPROC nglUnmapObjectBufferATI;
// GL_ATI_fragment_shader extension
//===================================
-extern NEL_PFNGLGENFRAGMENTSHADERSATIPROC nglGenFragmentShadersATI;
-extern NEL_PFNGLBINDFRAGMENTSHADERATIPROC nglBindFragmentShaderATI;
-extern NEL_PFNGLDELETEFRAGMENTSHADERATIPROC nglDeleteFragmentShaderATI;
-extern NEL_PFNGLBEGINFRAGMENTSHADERATIPROC nglBeginFragmentShaderATI;
-extern NEL_PFNGLENDFRAGMENTSHADERATIPROC nglEndFragmentShaderATI;
-extern NEL_PFNGLPASSTEXCOORDATIPROC nglPassTexCoordATI;
-extern NEL_PFNGLSAMPLEMAPATIPROC nglSampleMapATI;
-extern NEL_PFNGLCOLORFRAGMENTOP1ATIPROC nglColorFragmentOp1ATI;
-extern NEL_PFNGLCOLORFRAGMENTOP2ATIPROC nglColorFragmentOp2ATI;
-extern NEL_PFNGLCOLORFRAGMENTOP3ATIPROC nglColorFragmentOp3ATI;
-extern NEL_PFNGLALPHAFRAGMENTOP1ATIPROC nglAlphaFragmentOp1ATI;
-extern NEL_PFNGLALPHAFRAGMENTOP2ATIPROC nglAlphaFragmentOp2ATI;
-extern NEL_PFNGLALPHAFRAGMENTOP3ATIPROC nglAlphaFragmentOp3ATI;
-extern NEL_PFNGLSETFRAGMENTSHADERCONSTANTATIPROC nglSetFragmentShaderConstantATI;
+extern PFNGLGENFRAGMENTSHADERSATIPROC nglGenFragmentShadersATI;
+extern PFNGLBINDFRAGMENTSHADERATIPROC nglBindFragmentShaderATI;
+extern PFNGLDELETEFRAGMENTSHADERATIPROC nglDeleteFragmentShaderATI;
+extern PFNGLBEGINFRAGMENTSHADERATIPROC nglBeginFragmentShaderATI;
+extern PFNGLENDFRAGMENTSHADERATIPROC nglEndFragmentShaderATI;
+extern PFNGLPASSTEXCOORDATIPROC nglPassTexCoordATI;
+extern PFNGLSAMPLEMAPATIPROC nglSampleMapATI;
+extern PFNGLCOLORFRAGMENTOP1ATIPROC nglColorFragmentOp1ATI;
+extern PFNGLCOLORFRAGMENTOP2ATIPROC nglColorFragmentOp2ATI;
+extern PFNGLCOLORFRAGMENTOP3ATIPROC nglColorFragmentOp3ATI;
+extern PFNGLALPHAFRAGMENTOP1ATIPROC nglAlphaFragmentOp1ATI;
+extern PFNGLALPHAFRAGMENTOP2ATIPROC nglAlphaFragmentOp2ATI;
+extern PFNGLALPHAFRAGMENTOP3ATIPROC nglAlphaFragmentOp3ATI;
+extern PFNGLSETFRAGMENTSHADERCONSTANTATIPROC nglSetFragmentShaderConstantATI;
// GL_ATI_vertex_attrib_array_object
//==================================
-extern NEL_PFNGLVERTEXATTRIBARRAYOBJECTATIPROC nglVertexAttribArrayObjectATI;
-extern NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC nglGetVertexAttribArrayObjectfvATI;
-extern NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC nglGetVertexAttribArrayObjectivATI;
+extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC nglVertexAttribArrayObjectATI;
+extern PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC nglGetVertexAttribArrayObjectfvATI;
+extern PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC nglGetVertexAttribArrayObjectivATI;
// GL_ARB_fragment_shader_extension
//==================================
-extern NEL_PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB;
-extern NEL_PFNGLBINDPROGRAMARBPROC nglBindProgramARB;
-extern NEL_PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB;
-extern NEL_PFNGLGENPROGRAMSARBPROC nglGenProgramsARB;
-extern NEL_PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB;
-extern NEL_PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB;
-extern NEL_PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB;
-extern NEL_PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB;
-extern NEL_PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglGetProgramLocalParameter4dARB;
-extern NEL_PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglGetProgramLocalParameter4dvARB;
-extern NEL_PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglGetProgramLocalParameter4fARB;
-extern NEL_PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglGetProgramLocalParameter4fvARB;
-extern NEL_PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB;
-extern NEL_PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB;
-extern NEL_PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB;
-extern NEL_PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB;
-extern NEL_PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB;
-extern NEL_PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB;
-extern NEL_PFNGLISPROGRAMARBPROC nglIsProgramARB;
+extern PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB;
+extern PFNGLBINDPROGRAMARBPROC nglBindProgramARB;
+extern PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB;
+extern PFNGLGENPROGRAMSARBPROC nglGenProgramsARB;
+extern PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB;
+extern PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB;
+extern PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB;
+extern PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB;
+extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglGetProgramLocalParameter4dARB;
+extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglGetProgramLocalParameter4dvARB;
+extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglGetProgramLocalParameter4fARB;
+extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglGetProgramLocalParameter4fvARB;
+extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB;
+extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB;
+extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB;
+extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB;
+extern PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB;
+extern PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB;
+extern PFNGLISPROGRAMARBPROC nglIsProgramARB;
// GL_ARB_vertex_buffer_object
//==================================
@@ -708,13 +723,13 @@ extern PFNGLISPROGRAMARBPROC nglIsProgramARB;
// GL_NV_occlusion_query
//==================================
-extern NEL_PFNGLGENOCCLUSIONQUERIESNVPROC nglGenOcclusionQueriesNV;
-extern NEL_PFNGLDELETEOCCLUSIONQUERIESNVPROC nglDeleteOcclusionQueriesNV;
-extern NEL_PFNGLISOCCLUSIONQUERYNVPROC nglIsOcclusionQueryNV;
-extern NEL_PFNGLBEGINOCCLUSIONQUERYNVPROC nglBeginOcclusionQueryNV;
-extern NEL_PFNGLENDOCCLUSIONQUERYNVPROC nglEndOcclusionQueryNV;
-extern NEL_PFNGLGETOCCLUSIONQUERYIVNVPROC nglGetOcclusionQueryivNV;
-extern NEL_PFNGLGETOCCLUSIONQUERYUIVNVPROC nglGetOcclusionQueryuivNV;
+extern PFNGLGENOCCLUSIONQUERIESNVPROC nglGenOcclusionQueriesNV;
+extern PFNGLDELETEOCCLUSIONQUERIESNVPROC nglDeleteOcclusionQueriesNV;
+extern PFNGLISOCCLUSIONQUERYNVPROC nglIsOcclusionQueryNV;
+extern PFNGLBEGINOCCLUSIONQUERYNVPROC nglBeginOcclusionQueryNV;
+extern PFNGLENDOCCLUSIONQUERYNVPROC nglEndOcclusionQueryNV;
+extern PFNGLGETOCCLUSIONQUERYIVNVPROC nglGetOcclusionQueryivNV;
+extern PFNGLGETOCCLUSIONQUERYUIVNVPROC nglGetOcclusionQueryuivNV;
@@ -743,46 +758,60 @@ extern PFNWGLGETSWAPINTERVALEXTPROC nwglGetSwapIntervalEXT;
// WGL_ARB_extensions_string
-extern PFNWGLGETEXTENSIONSSTRINGARBPROC nwglGetExtensionsStringARB;
+extern PFNWGLGETEXTENSIONSSTRINGARBPROC nwglGetExtensionsStringARB;
+
+
+// WGL_AMD_gpu_association
+//========================
+extern PFNWGLGETGPUIDSAMDPROC nwglGetGPUIDsAMD;
+extern PFNWGLGETGPUINFOAMDPROC nwglGetGPUInfoAMD;
+extern PFNWGLGETCONTEXTGPUIDAMDPROC nwglGetContextGPUIDAMD;
+extern PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC nwglCreateAssociatedContextAMD;
+extern PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC nwglCreateAssociatedContextAttribsAMD;
+extern PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC nwglDeleteAssociatedContextAMD;
+extern PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC nwglMakeAssociatedContextCurrentAMD;
+extern PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC nwglGetCurrentAssociatedContextAMD;
+extern PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC nwglBlitContextFramebufferAMD;
+
#elif defined(NL_OS_MAC)
#elif defined(NL_OS_UNIX)
// Swap control extensions
//===========================
-extern NEL_PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT;
+extern PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT;
-extern PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI;
+extern PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI;
-extern NEL_PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA;
-extern NEL_PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA;
+extern PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA;
+extern PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA;
#endif
// GL_EXT_framebuffer_object
-extern NEL_PFNGLISRENDERBUFFEREXTPROC nglIsRenderbufferEXT;
-extern NEL_PFNGLISFRAMEBUFFEREXTPROC nglIsFramebufferEXT;
-extern NEL_PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC nglCheckFramebufferStatusEXT;
-extern NEL_PFNGLGENFRAMEBUFFERSEXTPROC nglGenFramebuffersEXT;
-extern NEL_PFNGLBINDFRAMEBUFFEREXTPROC nglBindFramebufferEXT;
-extern NEL_PFNGLFRAMEBUFFERTEXTURE2DEXTPROC nglFramebufferTexture2DEXT;
-extern NEL_PFNGLGENRENDERBUFFERSEXTPROC nglGenRenderbuffersEXT;
-extern NEL_PFNGLBINDRENDERBUFFEREXTPROC nglBindRenderbufferEXT;
-extern NEL_PFNGLRENDERBUFFERSTORAGEEXTPROC nglRenderbufferStorageEXT;
-extern NEL_PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC nglFramebufferRenderbufferEXT;
-extern NEL_PFNGLDELETERENDERBUFFERSEXTPROC nglDeleteRenderbuffersEXT;
-extern NEL_PFNGLDELETEFRAMEBUFFERSEXTPROC nglDeleteFramebuffersEXT;
-extern NEL_PFNGETRENDERBUFFERPARAMETERIVEXTPROC nglGetRenderbufferParameterivEXT;
-extern NEL_PFNGENERATEMIPMAPEXTPROC nglGenerateMipmapEXT;
+extern PFNGLISRENDERBUFFEREXTPROC nglIsRenderbufferEXT;
+extern PFNGLISFRAMEBUFFEREXTPROC nglIsFramebufferEXT;
+extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC nglCheckFramebufferStatusEXT;
+extern PFNGLGENFRAMEBUFFERSEXTPROC nglGenFramebuffersEXT;
+extern PFNGLBINDFRAMEBUFFEREXTPROC nglBindFramebufferEXT;
+extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC nglFramebufferTexture2DEXT;
+extern PFNGLGENRENDERBUFFERSEXTPROC nglGenRenderbuffersEXT;
+extern PFNGLBINDRENDERBUFFEREXTPROC nglBindRenderbufferEXT;
+extern PFNGLRENDERBUFFERSTORAGEEXTPROC nglRenderbufferStorageEXT;
+extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC nglFramebufferRenderbufferEXT;
+extern PFNGLDELETERENDERBUFFERSEXTPROC nglDeleteRenderbuffersEXT;
+extern PFNGLDELETEFRAMEBUFFERSEXTPROC nglDeleteFramebuffersEXT;
+extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC nglGetRenderbufferParameterivEXT;
+extern PFNGLGENERATEMIPMAPEXTPROC nglGenerateMipmapEXT;
// GL_EXT_framebuffer_blit
-extern NEL_PFNGLBLITFRAMEBUFFEREXTPROC nglBlitFramebufferEXT;
+extern PFNGLBLITFRAMEBUFFEREXTPROC nglBlitFramebufferEXT;
// GL_EXT_framebuffer_multisample
-extern NEL_PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC nglRenderbufferStorageMultisampleEXT;
+extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC nglRenderbufferStorageMultisampleEXT;
// GL_ARB_multisample
-extern NEL_PFNGLSAMPLECOVERAGEARBPROC nglSampleCoverageARB;
+extern PFNGLSAMPLECOVERAGEARBPROC nglSampleCoverageARB;
#endif // USE_OPENGLES
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension_def.h b/code/nel/src/3d/driver/opengl/driver_opengl_extension_def.h
index a11d0cd1c..41d2c1366 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_extension_def.h
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension_def.h
@@ -25,44 +25,8 @@ extern "C" {
#endif
#ifdef USE_OPENGLES
-// OES_mapbuffer
-//==============
-typedef void* (APIENTRY * NEL_PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
-typedef GLboolean (APIENTRY * NEL_PFNGLUNMAPBUFFEROESPROC) (GLenum target);
-typedef void (APIENTRY * NEL_PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params);
-
-typedef void (APIENTRY * NEL_PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-
-// GL_OES_framebuffer_object
-//==================================
-typedef GLboolean (APIENTRY * NEL_PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer);
-typedef void (APIENTRY * NEL_PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer);
-typedef void (APIENTRY * NEL_PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers);
-typedef void (APIENTRY * NEL_PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (APIENTRY * NEL_PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (APIENTRY * NEL_PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (APIENTRY * NEL_PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer);
-typedef void (APIENTRY * NEL_PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer);
-typedef void (APIENTRY * NEL_PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers);
-typedef void (APIENTRY * NEL_PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers);
-typedef GLenum (APIENTRY * NEL_PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target);
-typedef void (APIENTRY * NEL_PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (APIENTRY * NEL_PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (APIENTRY * NEL_PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-typedef void (APIENTRY * NEL_PFNGLGENERATEMIPMAPOESPROC) (GLenum target);
-
-// GL_OES_texture_cube_map
-//==================================
-typedef void (APIENTRY * NEL_PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param);
-typedef void (APIENTRY * NEL_PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param);
-typedef void (APIENTRY * NEL_PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params);
-typedef void (APIENTRY * NEL_PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
-typedef void (APIENTRY * NEL_PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params);
-typedef void (APIENTRY * NEL_PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params);
+// use same defines for OpenGL and OpenGL ES to simplify the code
#define GL_MULTISAMPLE_ARB GL_MULTISAMPLE
#define GL_TEXTURE_CUBE_MAP_ARB GL_TEXTURE_CUBE_MAP_OES
#define GL_NONE 0
@@ -86,346 +50,6 @@ typedef void (APIENTRY * NEL_PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pnam
#else
-// ***************************************************************************
-// ***************************************************************************
-// The NEL Functions Typedefs.
-// Must do it for compatibilities with futures version of gl.h
-// eg: version 1.2 does not define PFNGLACTIVETEXTUREARBPROC. Hence, do it now, with our special name
-// ***************************************************************************
-// ***************************************************************************
-
-#define WGL_COVERAGE_SAMPLES_NV 0x2042
-#define WGL_COLOR_SAMPLES_NV 0x20B9
-
-// ARB_multitexture
-//=================
-typedef void (APIENTRY * NEL_PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRY * NEL_PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (APIENTRY * NEL_PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
-
-
-// ARB_TextureCompression.
-//========================
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRY * NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img);
-
-
-// VertexArrayRangeNV.
-//====================
-typedef void (APIENTRY * NEL_PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
-typedef void (APIENTRY * NEL_PFNGLVERTEXARRAYRANGENVPROC) (GLsizei size, const GLvoid *pointer);
-
-
-// FenceNV.
-//====================
-typedef void (APIENTRY * NEL_PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
-typedef void (APIENTRY * NEL_PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
-typedef GLboolean (APIENTRY * NEL_PFNGLISFENCENVPROC) (GLuint fence);
-typedef GLboolean (APIENTRY * NEL_PFNGLTESTFENCENVPROC) (GLuint fence);
-typedef void (APIENTRY * NEL_PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (APIENTRY * NEL_PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-
-
-// VertexWeighting.
-//==================
-typedef void (APIENTRY * NEL_PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
-typedef void (APIENTRY * NEL_PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
-typedef void (APIENTRY * NEL_PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
-
-
-// VertexProgramExtension.
-//========================
-typedef GLboolean (APIENTRY * NEL_PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
-typedef void (APIENTRY * NEL_PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
-typedef void (APIENTRY * NEL_PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
-typedef void (APIENTRY * NEL_PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
-typedef void (APIENTRY * NEL_PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRY * NEL_PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
-typedef void (APIENTRY * NEL_PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRY * NEL_PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (APIENTRY * NEL_PFNGLISPROGRAMNVPROC) (GLuint id);
-typedef void (APIENTRY * NEL_PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
-typedef void (APIENTRY * NEL_PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
-
-// VertexShaderExtension (EXT)
-//============================
-typedef void (APIENTRY * NEL_PFNGLBEGINVERTEXSHADEREXTPROC) ( void );
-typedef void (APIENTRY * NEL_PFNGLENDVERTEXSHADEREXTPROC) ( void );
-typedef void (APIENTRY * NEL_PFNGLBINDVERTEXSHADEREXTPROC) ( GLuint id );
-typedef GLuint (APIENTRY * NEL_PFNGLGENVERTEXSHADERSEXTPROC) ( GLuint range );
-typedef void (APIENTRY * NEL_PFNGLDELETEVERTEXSHADEREXTPROC) ( GLuint id );
-typedef void (APIENTRY * NEL_PFNGLSHADEROP1EXTPROC) ( GLenum op, GLuint res, GLuint arg1 );
-typedef void (APIENTRY * NEL_PFNGLSHADEROP2EXTPROC) ( GLenum op, GLuint res, GLuint arg1, GLuint arg2 );
-typedef void (APIENTRY * NEL_PFNGLSHADEROP3EXTPROC) ( GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3 );
-typedef void (APIENTRY * NEL_PFNGLSWIZZLEEXTPROC) ( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW );
-typedef void (APIENTRY * NEL_PFNGLWRITEMASKEXTPROC) ( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW );
-typedef void (APIENTRY * NEL_PFNGLINSERTCOMPONENTEXTPROC) ( GLuint res, GLuint src, GLuint num );
-typedef void (APIENTRY * NEL_PFNGLEXTRACTCOMPONENTEXTPROC) ( GLuint res, GLuint src, GLuint num );
-typedef GLuint (APIENTRY * NEL_PFNGLGENSYMBOLSEXTPROC) ( GLenum datatype, GLenum storagetype, GLenum range, GLuint components ) ;
-typedef void (APIENTRY * NEL_PFNGLSETINVARIANTEXTPROC) ( GLuint id, GLenum type, void *addr );
-typedef void (APIENTRY * NEL_PFNGLSETLOCALCONSTANTEXTPROC) ( GLuint id, GLenum type, void *addr );
-typedef void (APIENTRY * NEL_PFNGLVARIANTPOINTEREXTPROC) ( GLuint id, GLenum type, GLuint stride, void *addr );
-typedef void (APIENTRY * NEL_PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) ( GLuint id);
-typedef void (APIENTRY * NEL_PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) ( GLuint id);
-typedef GLuint (APIENTRY * NEL_PFNGLBINDLIGHTPARAMETEREXTPROC) ( GLenum light, GLenum value);
-typedef GLuint (APIENTRY * NEL_PFNGLBINDMATERIALPARAMETEREXTPROC) ( GLenum face, GLenum value);
-typedef GLuint (APIENTRY * NEL_PFNGLBINDTEXGENPARAMETEREXTPROC) ( GLenum unit, GLenum coord, GLenum value);
-typedef GLuint (APIENTRY * NEL_PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) ( GLenum unit, GLenum value);
-typedef GLuint (APIENTRY * NEL_PFNGLBINDPARAMETEREXTPROC) ( GLenum value);
-typedef GLboolean (APIENTRY * NEL_PFNGLISVARIANTENABLEDEXTPROC) ( GLuint id, GLenum cap);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTBOOLEANVEXTPROC) ( GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTINTEGERVEXTPROC) ( GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTFLOATVEXTPROC) ( GLuint id, GLenum value, GLfloat *data);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTPOINTERVEXTPROC) ( GLuint id, GLenum value, void **data);
-typedef void (APIENTRY * NEL_PFNGLGETINVARIANTBOOLEANVEXTPROC) ( GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRY * NEL_PFNGLGETINVARIANTINTEGERVEXTPROC) ( GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRY * NEL_PFNGLGETINVARIANTFLOATVEXTPROC) ( GLuint id, GLenum value, GLfloat *data);
-typedef void (APIENTRY * NEL_PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) ( GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRY * NEL_PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) ( GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRY * NEL_PFNGLGETLOCALCONSTANTFLOATVEXTPROC) ( GLuint id, GLenum value, GLfloat *data);
-
-
-// SecondaryColor extension
-//========================
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
-typedef void (APIENTRY * NEL_PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
-
-
-// BlendColor extension
-//========================
-typedef void (APIENTRY * NEL_PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-
-
-// GL_ATI_vertex_array_object extension
-//========================
-typedef GLuint (APIENTRY * NEL_PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
-typedef GLboolean (APIENTRY * NEL_PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (APIENTRY * NEL_PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
-typedef void (APIENTRY * NEL_PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLDELETEOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (APIENTRY * NEL_PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (APIENTRY * NEL_PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
-typedef void (APIENTRY * NEL_PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
-typedef void (APIENTRY * NEL_PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
-
-
-// GL_ATI_fragment_shader extension
-//==================================
-typedef GLuint (APIENTRY *NEL_PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
-typedef GLvoid (APIENTRY *NEL_PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
-typedef GLvoid (APIENTRY *NEL_PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
-typedef GLvoid (APIENTRY *NEL_PFNGLBEGINFRAGMENTSHADERATIPROC)();
-typedef GLvoid (APIENTRY *NEL_PFNGLENDFRAGMENTSHADERATIPROC)();
-typedef GLvoid (APIENTRY *NEL_PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
-typedef GLvoid (APIENTRY *NEL_PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
-typedef GLvoid (APIENTRY *NEL_PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
- GLuint dstMod, GLuint arg1, GLuint arg1Rep,
- GLuint arg1Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
- GLuint dstMod, GLuint arg1, GLuint arg1Rep,
- GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
- GLuint arg2Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
- GLuint dstMod, GLuint arg1, GLuint arg1Rep,
- GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
- GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
- GLuint arg3Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
- GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
- GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
- GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
- GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
- GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,
- GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef GLvoid (APIENTRY *NEL_PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value);
-
-
-
-// GL_ATI_map_object_buffer
-//==================================
-typedef void *(APIENTRY * NEL_PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);
-typedef void (APIENTRY * NEL_PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer);
-
-
-// GL_ATI_vertex_attrib_array_object
-//==================================
-
-typedef GLvoid (APIENTRY * NEL_PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
-typedef GLvoid (APIENTRY * NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, GLfloat *params);
-typedef GLvoid (APIENTRY * NEL_PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, GLint *params);
-
-
-
-
-// GL_ARB_fragment_program
-//==================================
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len,const GLvoid *string);
-typedef GLvoid (APIENTRY *NEL_PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
-typedef GLvoid (APIENTRY *NEL_PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs);
-typedef GLvoid (APIENTRY *NEL_PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef GLvoid (APIENTRY *NEL_PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, int *params);
-typedef GLvoid (APIENTRY *NEL_PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, GLvoid *string);
-typedef GLboolean (APIENTRY *NEL_PFNGLISPROGRAMARBPROC)(GLuint program);
-
-
-typedef GLboolean (APIENTRY * NEL_PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
-typedef GLboolean (APIENTRY * NEL_PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
-typedef GLenum (APIENTRY * NEL_PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum pname);
-typedef GLvoid (APIENTRY * NEL_PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
-typedef GLvoid (APIENTRY * NEL_PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
-typedef GLvoid (APIENTRY * NEL_PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef GLvoid (APIENTRY * NEL_PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
-typedef GLvoid (APIENTRY * NEL_PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
-typedef GLvoid (APIENTRY * NEL_PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef GLvoid (APIENTRY * NEL_PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef GLvoid (APIENTRY * NEL_PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
-typedef GLvoid (APIENTRY * NEL_PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
-typedef GLvoid (APIENTRY * NEL_PFNGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef GLvoid (APIENTRY * NEL_PFNGENERATEMIPMAPEXTPROC) (GLenum target);
-
-typedef GLvoid (APIENTRY * NEL_PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-
-typedef GLvoid (APIENTRY * NEL_PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#ifndef NL_GL_NV_occlusion_query
-#define NL_GL_NV_occlusion_query 1
-
-typedef GLvoid (APIENTRY * NEL_PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
-typedef GLvoid (APIENTRY * NEL_PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (APIENTRY * NEL_PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef GLvoid (APIENTRY * NEL_PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef GLvoid (APIENTRY * NEL_PFNGLENDOCCLUSIONQUERYNVPROC) ();
-typedef GLvoid (APIENTRY * NEL_PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef GLvoid (APIENTRY * NEL_PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
-
-#endif /* GL_NV_occlusion_query */
-
-#ifndef NL_GL_ARB_multisample
-#define NL_GL_ARB_multisample 1
-typedef GLvoid (APIENTRY * NEL_PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
-#endif
-
#if defined(NL_OS_MAC)
// Mac GL extensions
@@ -433,18 +57,6 @@ typedef GLvoid (APIENTRY * NEL_PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, G
#elif defined(NL_OS_UNIX)
// GLX extensions
-#ifndef NL_GLX_EXT_swap_control
-#define NL_GLX_EXT_swap_control 1
-
-#ifndef GLX_EXT_swap_control
-#define GLX_SWAP_INTERVAL_EXT 0x20F1
-#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
-#endif
-
-typedef GLint (APIENTRY * NEL_PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, GLint interval);
-
-#endif // NL_GLX_EXT_swap_control
-
#ifndef NL_GLX_MESA_swap_control
#define NL_GLX_MESA_swap_control 1
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_vertex.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_vertex.cpp
index 6df62dfc3..c71e82ce4 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_vertex.cpp
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_vertex.cpp
@@ -1809,7 +1809,7 @@ void CDriverGL::fenceOnCurVBHardIfNeeded(IVertexBufferHardGL *newVBHard)
#ifndef USE_OPENGLES
// If old is not a VBHard, or if not a NVidia VBHard, no-op.
- if( _CurrentVertexBufferHard==NULL || !_CurrentVertexBufferHard->VBType == IVertexBufferHardGL::NVidiaVB)
+ if( _CurrentVertexBufferHard==NULL || _CurrentVertexBufferHard->VBType != IVertexBufferHardGL::NVidiaVB)
return;
// if we do not activate the same (NB: newVBHard==NULL if not a VBHard).
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.cpp
index 60109cfb6..79c55ea16 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.cpp
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.cpp
@@ -551,7 +551,7 @@ void CVertexArrayRangeATI::free()
_HeapMemory.reset();
// Free special memory.
- nglDeleteObjectBufferATI(_VertexObjectId);
+ nglFreeObjectBufferATI(_VertexObjectId);
_Allocated= false;
_VertexArraySize= 0;
@@ -839,7 +839,7 @@ bool CVertexArrayRangeMapObjectATI::allocate(uint32 size, CVertexBuffer::TPrefer
if (vertexObjectId)
{
// free the object
- nglDeleteObjectBufferATI(vertexObjectId);
+ nglFreeObjectBufferATI(vertexObjectId);
//
_SizeAllocated = size;
_VBType = vbType;
@@ -924,7 +924,7 @@ CVertexBufferHardGLMapObjectATI::CVertexBufferHardGLMapObjectATI(CDriverGL *drv,
CVertexBufferHardGLMapObjectATI::~CVertexBufferHardGLMapObjectATI()
{
H_AUTO_OGL(CVertexBufferHardGLMapObjectATI_CVertexBufferHardGLMapObjectATIDtor)
- if (_VertexObjectId) nglDeleteObjectBufferATI(_VertexObjectId);
+ if (_VertexObjectId) nglFreeObjectBufferATI(_VertexObjectId);
#ifdef NL_DEBUG
if (_VertexPtr)
{
@@ -1114,7 +1114,7 @@ void CVertexArrayRangeMapObjectATI::updateLostBuffers()
{
nlassert((*it)->_VertexObjectId);
nlassert(nglIsObjectBufferATI((*it)->_VertexObjectId));
- nglDeleteObjectBufferATI((*it)->_VertexObjectId);
+ nglFreeObjectBufferATI((*it)->_VertexObjectId);
(*it)->_VertexObjectId = 0;
(*it)->VB->setLocation(CVertexBuffer::NotResident);
}
diff --git a/code/nel/src/3d/driver/opengl/stdopengl.h b/code/nel/src/3d/driver/opengl/stdopengl.h
index 336f15f47..544829b19 100644
--- a/code/nel/src/3d/driver/opengl/stdopengl.h
+++ b/code/nel/src/3d/driver/opengl/stdopengl.h
@@ -14,6 +14,9 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
+#ifndef STDOPENGL_H
+#define STDOPENGL_H
+
#include "nel/misc/types_nl.h"
#include
@@ -67,5 +70,33 @@
#include "nel/misc/mem_stream.h"
#include "nel/misc/time_nl.h"
#include "nel/misc/command.h"
+#include "nel/misc/matrix.h"
+#include "nel/misc/smart_ptr.h"
+#include "nel/misc/rgba.h"
+#include "nel/misc/event_emitter.h"
+#include "nel/misc/bit_set.h"
+#include "nel/misc/hierarchical_timer.h"
+#include "nel/misc/bitmap.h"
+#include "nel/misc/heap_memory.h"
+#include "nel/misc/event_emitter_multi.h"
+#include "nel/misc/time_nl.h"
+#include "nel/misc/rect.h"
+#include "nel/misc/mouse_device.h"
+#include "nel/misc/dynloadlib.h"
+#include "nel/misc/file.h"
#include "nel/3d/driver.h"
+#include "nel/3d/material.h"
+#include "nel/3d/vertex_buffer.h"
+#include "nel/3d/ptr_set.h"
+#include "nel/3d/texture_cube.h"
+#include "nel/3d/vertex_program_parse.h"
+#include "nel/3d/viewport.h"
+#include "nel/3d/scissor.h"
+#include "nel/3d/light.h"
+#include "nel/3d/occlusion_query.h"
+#include "nel/3d/u_driver.h"
+#include "nel/3d/light.h"
+#include "nel/3d/index_buffer.h"
+
+#endif
diff --git a/code/nel/src/3d/stereo_ng_hmd.cpp b/code/nel/src/3d/stereo_ng_hmd.cpp
new file mode 100644
index 000000000..1011b33e4
--- /dev/null
+++ b/code/nel/src/3d/stereo_ng_hmd.cpp
@@ -0,0 +1,55 @@
+/**
+ * \file stereo_hmd.cpp
+ * \brief IStereoNGHMD
+ * \date 2014-04-01 10:53GMT
+ * \author Jan Boon (Kaetemi)
+ * IStereoNGHMD
+ */
+
+/*
+ * Copyright (C) 2014 by authors
+ *
+ * This file is part of NL3D.
+ * NL3D is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * NL3D is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with NL3D. If not, see
+ * .
+ */
+
+#include
+#include
+
+// STL includes
+
+// NeL includes
+// #include
+
+// Project includes
+
+using namespace std;
+// using namespace NLMISC;
+
+namespace NL3D {
+
+IStereoNGHMD::IStereoNGHMD()
+{
+
+}
+
+IStereoNGHMD::~IStereoNGHMD()
+{
+
+}
+
+} /* namespace NL3D */
+
+/* end of file */
diff --git a/code/nel/src/gui/ctrl_base.cpp b/code/nel/src/gui/ctrl_base.cpp
index f3dcd3712..4f9b616b8 100644
--- a/code/nel/src/gui/ctrl_base.cpp
+++ b/code/nel/src/gui/ctrl_base.cpp
@@ -39,6 +39,9 @@ namespace NLGUI
// ***************************************************************************
bool CCtrlBase::handleEvent(const NLGUI::CEventDescriptor &event)
{
+ if( CViewBase::handleEvent( event ) )
+ return true;
+
if (event.getType() == NLGUI::CEventDescriptor::system)
{
NLGUI::CEventDescriptorSystem &eds = (NLGUI::CEventDescriptorSystem&)event;
diff --git a/code/nel/src/gui/ctrl_base_button.cpp b/code/nel/src/gui/ctrl_base_button.cpp
index 4a0c53cf4..f7d452ca0 100644
--- a/code/nel/src/gui/ctrl_base_button.cpp
+++ b/code/nel/src/gui/ctrl_base_button.cpp
@@ -669,12 +669,6 @@ namespace NLGUI
if (CWidgetManager::getInstance()->getCapturePointerLeft() != this)
return false;
- if( editorMode )
- {
- CWidgetManager::getInstance()->setCurrentEditorSelection( getId() );
- return true;
- }
-
if (_LeftDblClickHandled) // no effect on mouse up after double click has been handled
{
_LeftDblClickHandled = false;
diff --git a/code/nel/src/gui/ctrl_button.cpp b/code/nel/src/gui/ctrl_button.cpp
index 3f30105cc..bc54003da 100644
--- a/code/nel/src/gui/ctrl_button.cpp
+++ b/code/nel/src/gui/ctrl_button.cpp
@@ -356,7 +356,7 @@ namespace NLGUI
- if ( ( _Over && !editorMode ) || editorSelected )
+ if ( ( _Over && !editorMode ) )
{
if( !editorMode && (lastOver == false) && (_AHOnOver != NULL))
diff --git a/code/nel/src/gui/ctrl_text_button.cpp b/code/nel/src/gui/ctrl_text_button.cpp
index ad0ba93aa..cdf006a51 100644
--- a/code/nel/src/gui/ctrl_text_button.cpp
+++ b/code/nel/src/gui/ctrl_text_button.cpp
@@ -62,6 +62,17 @@ namespace NLGUI
_ForceTextOver = false;
}
+ CCtrlTextButton::~CCtrlTextButton()
+ {
+ if( _ViewText != NULL )
+ {
+ if( _Parent != NULL )
+ _Parent->delView( _ViewText, true );
+ delete _ViewText;
+ _ViewText = NULL;
+ }
+ }
+
std::string CCtrlTextButton::getProperty( const std::string &name ) const
{
std::string prop;
@@ -113,7 +124,10 @@ namespace NLGUI
else
if( name == "hardtext" )
{
- return _ViewText->getText().toString();
+ if( _ViewText != NULL )
+ return _ViewText->getText().toString();
+ else
+ return std::string( "" );
}
else
if( name == "text_y" )
@@ -128,7 +142,10 @@ namespace NLGUI
else
if( name == "text_underlined" )
{
- return toString( _ViewText->getUnderlined() );
+ if( _ViewText != NULL )
+ return toString( _ViewText->getUnderlined() );
+ else
+ return std::string( "" );
}
else
if( name == "text_posref" )
@@ -220,6 +237,11 @@ namespace NLGUI
_TextureIdNormal[ 0 ].setTexture( std::string( value + "_l.tga" ).c_str() );
_TextureIdNormal[ 1 ].setTexture( std::string( value + "_m.tga" ).c_str() );
_TextureIdNormal[ 2 ].setTexture( std::string( value + "_r.tga" ).c_str() );
+
+ CViewRenderer &rVR = *CViewRenderer::getInstance();
+ rVR.getTextureSizeFromId(_TextureIdNormal[0], _BmpLeftW, _BmpH);
+ rVR.getTextureSizeFromId(_TextureIdNormal[1], _BmpMiddleW, _BmpH);
+ rVR.getTextureSizeFromId(_TextureIdNormal[2], _BmpRightW, _BmpH);
return;
}
else
@@ -269,7 +291,8 @@ namespace NLGUI
else
if( name == "hardtext" )
{
- _ViewText->setText( value );
+ if( _ViewText != NULL )
+ _ViewText->setText( value );
return;
}
else
@@ -292,8 +315,10 @@ namespace NLGUI
if( name == "text_underlined" )
{
bool b;
- if( fromString( value, b ) )
- _ViewText->setUnderlined( b );
+ if( _ViewText != NULL )
+ if( fromString( value, b ) )
+ _ViewText->setUnderlined( b );
+
return;
}
else
@@ -766,8 +791,7 @@ namespace NLGUI
CCtrlBase *capturePointerLeft = CWidgetManager::getInstance()->getCapturePointerLeft();
// *** Draw Over
- if( editorSelected ||
- ( !editorMode && _Over && (_OverWhenPushed || !(_Pushed || capturePointerLeft == this ) ) )
+ if( ( !editorMode && _Over && (_OverWhenPushed || !(_Pushed || capturePointerLeft == this ) ) )
)
{
if( !editorMode && (lastOver == false) && (_AHOnOver != NULL) )
@@ -803,32 +827,35 @@ namespace NLGUI
}
}
// Setup ViewText color
- if ( pTxId==_TextureIdNormal || editorMode )
+ if( _ViewText != NULL )
{
- if(_TextHeaderColor) viewTextColor.A= _TextColorNormal.A;
- else viewTextColor= _TextColorNormal;
- _ViewText->setColor(viewTextColor);
- _ViewText->setShadowColor(_TextShadowColorNormal);
- _ViewText->setModulateGlobalColor(_TextModulateGlobalColorNormal);
+ if ( pTxId==_TextureIdNormal || editorMode )
+ {
+ if(_TextHeaderColor) viewTextColor.A= _TextColorNormal.A;
+ else viewTextColor= _TextColorNormal;
+ _ViewText->setColor(viewTextColor);
+ _ViewText->setShadowColor(_TextShadowColorNormal);
+ _ViewText->setModulateGlobalColor(_TextModulateGlobalColorNormal);
+ }
+ else if ( pTxId==_TextureIdPushed )
+ {
+ if(_TextHeaderColor) viewTextColor.A= _TextColorPushed.A;
+ else viewTextColor= _TextColorPushed;
+ _ViewText->setColor(viewTextColor);
+ _ViewText->setShadowColor(_TextShadowColorPushed);
+ _ViewText->setModulateGlobalColor(_TextModulateGlobalColorPushed);
+ }
+ else if ( pTxId==_TextureIdOver )
+ {
+ if(_TextHeaderColor) viewTextColor.A= _TextColorOver.A;
+ else viewTextColor= _TextColorOver;
+ _ViewText->setColor(viewTextColor);
+ _ViewText->setShadowColor(_TextShadowColorOver);
+ _ViewText->setModulateGlobalColor(_TextModulateGlobalColorOver);
+ }
+ if(getFrozen() && getFrozenHalfTone())
+ _ViewText->setAlpha(_ViewText->getAlpha()>>2);
}
- else if ( pTxId==_TextureIdPushed )
- {
- if(_TextHeaderColor) viewTextColor.A= _TextColorPushed.A;
- else viewTextColor= _TextColorPushed;
- _ViewText->setColor(viewTextColor);
- _ViewText->setShadowColor(_TextShadowColorPushed);
- _ViewText->setModulateGlobalColor(_TextModulateGlobalColorPushed);
- }
- else if ( pTxId==_TextureIdOver )
- {
- if(_TextHeaderColor) viewTextColor.A= _TextColorOver.A;
- else viewTextColor= _TextColorOver;
- _ViewText->setColor(viewTextColor);
- _ViewText->setShadowColor(_TextShadowColorOver);
- _ViewText->setModulateGlobalColor(_TextModulateGlobalColorOver);
- }
- if(getFrozen() && getFrozenHalfTone())
- _ViewText->setAlpha(_ViewText->getAlpha()>>2);
}
@@ -864,6 +891,16 @@ namespace NLGUI
{
_Setuped= true;
+ if( _ViewText == NULL )
+ {
+ CViewBase *v = CWidgetManager::getInstance()->getParser()->createClass( "text" );
+ nlassert( v != NULL );
+ _ViewText = dynamic_cast< CViewText* >( v );
+ _ViewText->setId( _Id + "_text" );
+ _ViewText->setText( ucstring( "text" ) );
+ _ViewText->setSerializable( false );
+ }
+
// setup the viewText and add to parent
_ViewText->setParent (getParent());
_ViewText->setParentPos (this);
@@ -960,6 +997,19 @@ namespace NLGUI
}
// ***************************************************************************
+ void CCtrlTextButton::onRemoved()
+ {
+ if( _ViewText != NULL )
+ {
+ if( _Parent != NULL )
+ _Parent->delView( _ViewText, true );
+ }
+ }
+ void CCtrlTextButton::onWidgetDeleted( CInterfaceElement *e )
+ {
+ if( e == _ViewText )
+ _ViewText = NULL;
+ }
}
diff --git a/code/nel/src/gui/group_editbox.cpp b/code/nel/src/gui/group_editbox.cpp
index 5c2f3bf1d..bfd56dbb4 100644
--- a/code/nel/src/gui/group_editbox.cpp
+++ b/code/nel/src/gui/group_editbox.cpp
@@ -1411,7 +1411,8 @@ namespace NLGUI
// ----------------------------------------------------------------------------
void CGroupEditBox::checkCoords()
{
- setupDisplayText();
+ if( !editorMode )
+ setupDisplayText();
CInterfaceGroup::checkCoords();
}
@@ -1530,7 +1531,29 @@ namespace NLGUI
_ViewText = dynamic_cast(CInterfaceGroup::getView("edit_text"));
if(_ViewText == NULL)
+ {
nlwarning("Interface: CGroupEditBox: text 'edit_text' missing or bad type");
+ if( editorMode )
+ {
+ nlwarning( "Trying to create a new 'edit_text' for %s", getId().c_str() );
+ _ViewText = dynamic_cast< CViewText* >( CWidgetManager::getInstance()->getParser()->createClass( "text" ) );
+ if( _ViewText != NULL )
+ {
+ _ViewText->setParent( this );
+ _ViewText->setIdRecurse( "edit_text" );
+ _ViewText->setHardText( "sometext" );
+ _ViewText->setPosRef( Hotspot_TL );
+ _ViewText->setParentPosRef( Hotspot_TL );
+ addView( _ViewText );
+
+ setH( _ViewText->getFontHeight() );
+ setW( _ViewText->getFontWidth() * _ViewText->getText().size() );
+
+ }
+ else
+ nlwarning( "Failed to create new 'edit_text' for %s", getId().c_str() );
+ }
+ }
// For MultiLine editbox, clip the end space, else weird when edit space at end of line (nothing happens)
if(_ViewText)
diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp
index d0fcd050e..9f19f383a 100644
--- a/code/nel/src/gui/group_html.cpp
+++ b/code/nel/src/gui/group_html.cpp
@@ -4094,7 +4094,8 @@ namespace NLGUI
void CGroupHTML::requestTerminated(HTRequest * request )
{
// this callback is being called for every request terminated
- if( request == _LibWWW->Request ){
+ if (request == _LibWWW->Request)
+ {
// set the browser as complete
_Browsing = false;
updateRefreshButton();
diff --git a/code/nel/src/gui/interface_element.cpp b/code/nel/src/gui/interface_element.cpp
index c7a0c234b..93705074a 100644
--- a/code/nel/src/gui/interface_element.cpp
+++ b/code/nel/src/gui/interface_element.cpp
@@ -34,6 +34,7 @@ using namespace NLMISC;
namespace NLGUI
{
bool CInterfaceElement::editorMode = false;
+ std::vector< CInterfaceElement::IDeletionWatcher* > CInterfaceElement::deletionWatchers;
// ------------------------------------------------------------------------------------------------
CInterfaceElement::~CInterfaceElement()
@@ -46,6 +47,13 @@ namespace NLGUI
}
delete _Links;
}
+
+ if( editorMode )
+ {
+ notifyDeletionWatchers();
+ if( _Parent != NULL )
+ _Parent->onWidgetDeleted( this );
+ }
}
// ------------------------------------------------------------------------------------------------
@@ -1296,6 +1304,11 @@ namespace NLGUI
}
+ void CInterfaceElement::drawHighlight()
+ {
+ CViewRenderer::getInstance()->drawWiredQuad( _XReal, _YReal, _WReal, _HReal );
+ }
+
// ***************************************************************************
void CInterfaceElement::invalidateContent()
{
@@ -1542,6 +1555,36 @@ namespace NLGUI
}
}
+ void CInterfaceElement::registerDeletionWatcher( IDeletionWatcher *watcher )
+ {
+ std::vector< IDeletionWatcher* >::iterator itr
+ = std::find( deletionWatchers.begin(), deletionWatchers.end(), watcher );
+ // Already registered
+ if( itr != deletionWatchers.end() )
+ return;
+ deletionWatchers.push_back( watcher );
+ }
+
+ void CInterfaceElement::unregisterDeletionWatcher( IDeletionWatcher *watcher )
+ {
+ std::vector< IDeletionWatcher* >::iterator itr
+ = std::find( deletionWatchers.begin(), deletionWatchers.end(), watcher );
+ // Not registered
+ if( itr == deletionWatchers.end() )
+ return;
+ deletionWatchers.erase( itr );
+ }
+
+ void CInterfaceElement::notifyDeletionWatchers()
+ {
+ std::vector< IDeletionWatcher* >::iterator itr = deletionWatchers.begin();
+ while( itr != deletionWatchers.end() )
+ {
+ (*itr)->onDeleted( _Id );
+ ++itr;
+ }
+ }
+
CStringMapper* CStringShared::_UIStringMapper = NULL;
diff --git a/code/nel/src/gui/interface_group.cpp b/code/nel/src/gui/interface_group.cpp
index b2de26527..5fa83e1c5 100644
--- a/code/nel/src/gui/interface_group.cpp
+++ b/code/nel/src/gui/interface_group.cpp
@@ -143,12 +143,12 @@ namespace NLGUI
// initStart = ryzomGetLocalTime ();
clearGroups();
// nlinfo ("%d seconds for clearGroups '%s'", (uint32)(ryzomGetLocalTime ()-initStart)/1000, _Id.c_str());
- // initStart = ryzomGetLocalTime ();
- clearViews();
- // nlinfo ("%d seconds for clearViews '%s'", (uint32)(ryzomGetLocalTime ()-initStart)/1000, _Id.c_str());
// initStart = ryzomGetLocalTime ();
clearControls();
// nlinfo ("%d seconds for clearControls '%s'", (uint32)(ryzomGetLocalTime ()-initStart)/1000, _Id.c_str());
+ // initStart = ryzomGetLocalTime ();
+ clearViews();
+ // nlinfo ("%d seconds for clearViews '%s'", (uint32)(ryzomGetLocalTime ()-initStart)/1000, _Id.c_str());
CWidgetManager::getInstance()->removeRefOnGroup (this);
#ifdef AJM_DEBUG_TRACK_INTERFACE_GROUPS
@@ -1086,9 +1086,11 @@ namespace NLGUI
{
if (_Views[i] == child)
{
- if (!dontDelete) delete _Views[i];
+ CViewBase *v = _Views[i];
_Views.erase(_Views.begin()+i);
delEltOrder (child);
+ child->onRemoved();
+ if (!dontDelete) delete v;
return true;
}
}
@@ -1102,9 +1104,11 @@ namespace NLGUI
{
if (_Controls[i] == child)
{
- if (!dontDelete) delete _Controls[i];
+ CCtrlBase *c = _Controls[i];
_Controls.erase(_Controls.begin()+i);
delEltOrder (child);
+ child->onRemoved();
+ if (!dontDelete) delete c;
return true;
}
}
@@ -1118,9 +1122,11 @@ namespace NLGUI
{
if (_ChildrenGroups[i] == child)
{
- if (!dontDelete) delete _ChildrenGroups[i];
+ CInterfaceGroup *g = _ChildrenGroups[i];
_ChildrenGroups.erase(_ChildrenGroups.begin()+i);
delEltOrder (child);
+ child->onRemoved();
+ if (!dontDelete) delete g;
return true;
}
}
@@ -2471,4 +2477,16 @@ namespace NLGUI
return "IMPLEMENT ME!";
}
-}
\ No newline at end of file
+ void CInterfaceGroup::onWidgetDeleted( CInterfaceElement *e )
+ {
+ for( std::vector< CViewBase* >::iterator itr = _Views.begin(); itr != _Views.end(); ++itr )
+ (*itr)->onWidgetDeleted( e );
+
+ for( std::vector< CCtrlBase* >::iterator itr = _Controls.begin(); itr != _Controls.end(); ++itr )
+ (*itr)->onWidgetDeleted( e );
+
+ for( std::vector< CInterfaceGroup* >::iterator itr = _ChildrenGroups.begin(); itr != _ChildrenGroups.end(); ++itr )
+ (*itr)->onWidgetDeleted( e );
+ }
+}
+
diff --git a/code/nel/src/gui/interface_parser.cpp b/code/nel/src/gui/interface_parser.cpp
index 2bc1a70dd..3d7a1c849 100644
--- a/code/nel/src/gui/interface_parser.cpp
+++ b/code/nel/src/gui/interface_parser.cpp
@@ -3149,5 +3149,10 @@ namespace NLGUI
return true;
}
+
+ CViewBase* CInterfaceParser::createClass( const std::string &name )
+ {
+ return NLMISC_GET_FACTORY( CViewBase, std::string ).createObject( std::string( name ) , CViewBase::TCtorParam() );
+ }
}
diff --git a/code/nel/src/gui/view_base.cpp b/code/nel/src/gui/view_base.cpp
index a4c8f6643..05d958d3e 100644
--- a/code/nel/src/gui/view_base.cpp
+++ b/code/nel/src/gui/view_base.cpp
@@ -47,5 +47,23 @@ namespace NLGUI
CInterfaceElement::visit(visitor);
}
+
+ bool CViewBase::handleEvent( const NLGUI::CEventDescriptor &evnt )
+ {
+ if( evnt.getType() == NLGUI::CEventDescriptor::mouse )
+ {
+ const NLGUI::CEventDescriptorMouse &eventDesc = ( const NLGUI::CEventDescriptorMouse& )evnt;
+ if( eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouseleftdown )
+ {
+ if( editorMode )
+ {
+ CWidgetManager::getInstance()->setCurrentEditorSelection( getId() );
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
}
diff --git a/code/nel/src/gui/widget_manager.cpp b/code/nel/src/gui/widget_manager.cpp
index ccfa14c63..16357d373 100644
--- a/code/nel/src/gui/widget_manager.cpp
+++ b/code/nel/src/gui/widget_manager.cpp
@@ -33,6 +33,8 @@
#include "nel/gui/proc.h"
#include "nel/gui/interface_expr.h"
#include "nel/gui/reflect_register.h"
+#include "nel/gui/editor_selection_watcher.h"
+#include "nel/gui/widget_addition_watcher.h"
#include "nel/misc/events.h"
namespace NLGUI
@@ -1033,6 +1035,7 @@ namespace NLGUI
_OldCaptureKeyboard = NULL;
setCapturePointerLeft(NULL);
setCapturePointerRight(NULL);
+ _CapturedView = NULL;
resetColorProps();
resetAlphaRolloverSpeedProps();
@@ -2067,6 +2070,16 @@ namespace NLGUI
getPointer()->draw ();
}
+ if( CInterfaceElement::getEditorMode() )
+ {
+ if( !currentEditorSelection.empty() )
+ {
+ CInterfaceElement *e = getElementFromId( currentEditorSelection );
+ if( e != NULL )
+ e->drawHighlight();
+ }
+ }
+
// flush layers
CViewRenderer::getInstance()->flush();
@@ -2099,6 +2112,12 @@ namespace NLGUI
getCapturePointerRight()->handleEvent( evnt );
setCapturePointerRight( NULL );
}
+
+ if( _CapturedView != NULL )
+ {
+ _CapturedView->handleEvent( evnt );
+ _CapturedView = NULL;
+ }
}
}
@@ -2262,6 +2281,9 @@ namespace NLGUI
getCapturePointerLeft() != getCapturePointerRight() )
handled|= getCapturePointerRight()->handleEvent(evnt);
+ if( _CapturedView != NULL )
+ _CapturedView->handleEvent( evnt );
+
CInterfaceGroup *ptr = getWindowUnder (eventDesc.getX(), eventDesc.getY());
setCurrentWindowUnder( ptr );
@@ -2339,6 +2361,8 @@ namespace NLGUI
}
}
+ bool captured = false;
+
// must not capture a new element if a sheet is currentlty being dragged.
// This may happen when alt-tab has been used => the sheet is dragged but the left button is up
if (!CCtrlDraggable::getDraggedSheet())
@@ -2356,9 +2380,25 @@ namespace NLGUI
{
nMaxDepth = d;
setCapturePointerLeft( ctrl );
+ captured = true;
}
}
}
+
+ if( CInterfaceElement::getEditorMode() && !captured )
+ {
+ for( sint32 i = _ViewsUnderPointer.size()-1; i >= 0; i-- )
+ {
+ CViewBase *v = _ViewsUnderPointer[i];
+ if( ( v != NULL ) && v->isInGroup( pNewCurrentWnd ) )
+ {
+ _CapturedView = v;
+ captured = true;
+ break;
+ }
+ }
+ }
+
notifyElementCaptured( getCapturePointerLeft() );
if (clickedOutModalWindow && !clickedOutModalWindow->OnPostClickOut.empty())
{
@@ -2366,13 +2406,16 @@ namespace NLGUI
}
}
//if found
- if ( getCapturePointerLeft() != NULL)
+ if ( captured )
{
// consider clicking on a control implies handling of the event.
handled= true;
// handle the capture
- getCapturePointerLeft()->handleEvent(evnt);
+ if( getCapturePointerLeft() != NULL )
+ getCapturePointerLeft()->handleEvent(evnt);
+ else
+ _CapturedView->handleEvent( evnt );
}
}
@@ -2601,6 +2644,8 @@ namespace NLGUI
// ***************************************************************************
void CWidgetManager::setCapturePointerLeft(CCtrlBase *c)
{
+ _CapturedView = NULL;
+
// additionally, abort any dragging
if( CCtrlDraggable::getDraggedSheet() != NULL )
CCtrlDraggable::getDraggedSheet()->abortDragging();
@@ -3179,8 +3224,114 @@ namespace NLGUI
prev->setEditorSelected( false );
}
e->setEditorSelected( true );
- currentEditorSelection = name;
}
+ else
+ if( !name.empty() )
+ return;
+
+ currentEditorSelection = name;
+ notifySelectionWatchers();
+ }
+
+ void CWidgetManager::notifySelectionWatchers()
+ {
+ std::vector< IEditorSelectionWatcher* >::iterator itr = selectionWatchers.begin();
+ while( itr != selectionWatchers.end() )
+ {
+ (*itr)->selectionChanged( currentEditorSelection );
+ ++itr;
+ }
+ }
+
+ void CWidgetManager::registerSelectionWatcher( IEditorSelectionWatcher *watcher )
+ {
+ std::vector< IEditorSelectionWatcher* >::iterator itr =
+ std::find( selectionWatchers.begin(), selectionWatchers.end(), watcher );
+
+ // We already have this watcher
+ if( itr != selectionWatchers.end() )
+ return;
+
+ selectionWatchers.push_back( watcher );
+ }
+
+ void CWidgetManager::unregisterSelectionWatcher( IEditorSelectionWatcher *watcher )
+ {
+ std::vector< IEditorSelectionWatcher* >::iterator itr =
+ std::find( selectionWatchers.begin(), selectionWatchers.end(), watcher );
+
+ // We don't have this watcher
+ if( itr == selectionWatchers.end() )
+ return;
+
+ selectionWatchers.erase( itr );
+ }
+
+ void CWidgetManager::notifyAdditionWatchers( const std::string &widgetName )
+ {
+ std::vector< IWidgetAdditionWatcher* >::const_iterator itr = additionWatchers.begin();
+ while( itr != additionWatchers.end() )
+ {
+ (*itr)->widgetAdded( widgetName );
+ ++itr;
+ }
+ }
+
+ void CWidgetManager::registerAdditionWatcher( IWidgetAdditionWatcher *watcher )
+ {
+ std::vector< IWidgetAdditionWatcher* >::const_iterator itr
+ = std::find( additionWatchers.begin(), additionWatchers.end(), watcher );
+ // already exists
+ if( itr != additionWatchers.end() )
+ return;
+
+ additionWatchers.push_back( watcher );
+ }
+
+ void CWidgetManager::unregisterAdditionWatcher( IWidgetAdditionWatcher *watcher )
+ {
+ std::vector< IWidgetAdditionWatcher* >::iterator itr
+ = std::find( additionWatchers.begin(), additionWatchers.end(), watcher );
+ // doesn't exist
+ if( itr == additionWatchers.end() )
+ return;
+
+ additionWatchers.erase( itr );
+ }
+
+ CInterfaceElement* CWidgetManager::addWidgetToGroup( std::string &group, std::string &widgetClass, std::string &widgetName )
+ {
+ // Check if this group exists
+ CInterfaceElement *e = getElementFromId( group );
+ if( e == NULL )
+ return NULL;
+ CInterfaceGroup *g = dynamic_cast< CInterfaceGroup* >( e );
+ if( g == NULL )
+ return NULL;
+
+ // Check if an element already exists with that name
+ if( g->getElement( widgetName ) != NULL )
+ return NULL;
+
+ // Create and add the new widget
+ CViewBase *v = getParser()->createClass( widgetClass );
+ if( v == NULL )
+ return NULL;
+
+ v->setId( std::string( g->getId() + ":" + widgetName ) );
+ v->setParent( g );
+
+ if( v->isGroup() )
+ g->addGroup( dynamic_cast< CInterfaceGroup* >( v ) );
+ else
+ if( v->isCtrl() )
+ g->addCtrl( dynamic_cast< CCtrlBase* >( v ) );
+ else
+ g->addView( v );
+
+ notifyAdditionWatchers( v->getId() );
+
+ return v;
}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt
index 1e1cbced3..fd1283db8 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt
@@ -28,6 +28,9 @@ SET(OVQT_PLUGIN_GUI_EDITOR_HDR
nelgui_widget.h
new_property_widget.h
new_widget_widget.h
+ add_widget_widget.h
+ editor_selection_watcher.h
+ editor_message_processor.h
)
SET(OVQT_PLUGIN_GUI_EDITOR_UIS
@@ -42,6 +45,7 @@ SET(OVQT_PLUGIN_GUI_EDITOR_UIS
project_window.ui
new_property_widget.ui
new_widget_widget.ui
+ add_widget_widget.ui
)
SET(QT_USE_QTGUI TRUE)
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.cpp
new file mode 100644
index 000000000..3f32586b6
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.cpp
@@ -0,0 +1,77 @@
+#include "add_widget_widget.h"
+#include "widget_info_tree.h"
+#include
+#include
+#include
+
+namespace GUIEditor
+{
+
+ AddWidgetWidget::AddWidgetWidget( QWidget *parent ) :
+ QWidget( parent )
+ {
+ setupUi( this );
+ setupConnections();
+ }
+
+ AddWidgetWidget::~AddWidgetWidget()
+ {
+ }
+
+ void AddWidgetWidget::setCurrentGroup( const QString &g )
+ {
+ groupEdit->setText( g );
+ }
+
+ void AddWidgetWidget::setupWidgetInfo( const CWidgetInfoTree *tree )
+ {
+ std::vector< std::string > names;
+ tree->getNames( names, false );
+
+ widgetCB->clear();
+
+ std::sort( names.begin(), names.end() );
+
+ std::vector< std::string >::const_iterator itr = names.begin();
+ while( itr != names.end() )
+ {
+ widgetCB->addItem( QString( itr->c_str() ) );
+ ++itr;
+ }
+
+ }
+
+ void AddWidgetWidget::setupConnections()
+ {
+ connect( cancelButton, SIGNAL( clicked( bool ) ), this, SLOT( close() ) );
+ connect( addButton, SIGNAL( clicked( bool ) ), this, SLOT( onAddClicked() ) );
+ }
+
+ void AddWidgetWidget::onAddClicked()
+ {
+ if( groupEdit->text().isEmpty() )
+ {
+ QMessageBox::warning( NULL,
+ tr( "WARNING" ),
+ tr( "You need to be adding the new widget into a group!" ),
+ QMessageBox::Ok );
+
+ return;
+ }
+
+ if( nameEdit->text().isEmpty() )
+ {
+ QMessageBox::warning( NULL,
+ tr( "WARNING" ),
+ tr( "You need to specify a name for your new widget!" ),
+ QMessageBox::Ok );
+
+ return;
+ }
+
+ close();
+
+ Q_EMIT adding( groupEdit->text(), widgetCB->currentText(), nameEdit->text() );
+ }
+}
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.h
new file mode 100644
index 000000000..8f9f6a0be
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.h
@@ -0,0 +1,32 @@
+#ifndef ADD_WIDGET_WIDGET_H
+#define ADD_WIDGET_WIDGET_H
+
+#include "ui_add_widget_widget.h"
+
+namespace GUIEditor
+{
+ class CWidgetInfoTree;
+
+ class AddWidgetWidget : public QWidget, public Ui::AddWidgetWidget
+ {
+ Q_OBJECT
+ public:
+ AddWidgetWidget( QWidget *parent = NULL );
+ ~AddWidgetWidget();
+
+ void setCurrentGroup( const QString &g );
+ void setupWidgetInfo( const CWidgetInfoTree *tree );
+
+ private:
+ void setupConnections();
+
+ private Q_SLOTS:
+ void onAddClicked();
+
+ Q_SIGNALS:
+ void adding( const QString &parentGroup, const QString &widgetType, const QString &name );
+ };
+
+}
+
+#endif
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.ui b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.ui
new file mode 100644
index 000000000..58a1890f4
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.ui
@@ -0,0 +1,79 @@
+
+
+ AddWidgetWidget
+
+
+ Qt::ApplicationModal
+
+
+
+ 0
+ 0
+ 318
+ 132
+
+
+
+ Add new widget
+
+
+ -
+
+
-
+
+
+ Group
+
+
+
+ -
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ Widget
+
+
+
+ -
+
+
+ -
+
+
+ Name
+
+
+
+ -
+
+
+
+
+ -
+
+
+ Add
+
+
+
+ -
+
+
+ Cancel
+
+
+
+
+
+
+
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.cpp
new file mode 100644
index 000000000..691dbdead
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.cpp
@@ -0,0 +1,134 @@
+// Object Viewer Qt GUI Editor plugin
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+#include "editor_message_processor.h"
+
+#include "nel/gui/interface_group.h"
+#include "nel/gui/widget_manager.h"
+#include "widget_info_tree.h"
+
+namespace GUIEditor
+{
+ void CEditorMessageProcessor::onDelete()
+ {
+ std::string selection = CWidgetManager::getInstance()->getCurrentEditorSelection();
+ if( selection.empty() )
+ return;
+
+ QMessageBox::StandardButton r =
+ QMessageBox::question( NULL,
+ tr( "Deleting widget" ),
+ tr( "Are you sure you want to delete %1?" ).arg( selection.c_str() ),
+ QMessageBox::Yes | QMessageBox::No );
+ if( r != QMessageBox::Yes )
+ return;
+
+ CInterfaceElement *e =
+ CWidgetManager::getInstance()->getElementFromId( selection );
+ if( e == NULL )
+ return;
+
+ CInterfaceElement *p = e->getParent();
+ if( p == NULL )
+ return;
+
+ CInterfaceGroup *g = dynamic_cast< CInterfaceGroup* >( p );
+ if( g == NULL )
+ return;
+
+ if( g->delElement( e ) )
+ {
+ CWidgetManager::getInstance()->setCurrentEditorSelection( "" );
+ }
+ }
+
+ void CEditorMessageProcessor::onAdd( const QString &parentGroup, const QString &widgetType, const QString &name )
+ {
+ CWidgetInfoTreeNode *node = tree->findNodeByName( std::string( widgetType.toUtf8() ) );
+ // No such widget
+ if( node == NULL )
+ {
+ QMessageBox::critical(
+ NULL,
+ tr( "Error" ),
+ tr( "Error adding the new widget! No such widget type!" ),
+ QMessageBox::Ok
+ );
+
+ return;
+ }
+
+ // No class name defined
+ std::string className = node->getInfo().className;
+ if( className.empty() )
+ {
+ QMessageBox::critical(
+ NULL,
+ tr( "Error" ),
+ tr( "Error adding the new widget! Missing classname!" ),
+ QMessageBox::Ok
+ );
+
+ return;
+ }
+
+ std::string pgName = std::string( parentGroup.toUtf8() );
+ std::string wName = std::string( name.toUtf8() );
+
+ CInterfaceElement *e =
+ CWidgetManager::getInstance()->addWidgetToGroup(
+ pgName,
+ className,
+ wName
+ );
+
+ // Failed to add widget
+ if( e == NULL )
+ {
+ QMessageBox::critical(
+ NULL,
+ tr( "Error" ),
+ tr( "Error adding the new widget!" ),
+ QMessageBox::Ok
+ );
+
+ return;
+ }
+
+ // Setting the defaults will override the Id too
+ std::string id = e->getId();
+
+ // Set up the defaults
+ std::vector< SPropEntry >::const_iterator itr = node->getInfo().props.begin();
+ while( itr != node->getInfo().props.end() )
+ {
+ e->setProperty( itr->propName, itr->propDefault );
+ ++itr;
+ }
+
+ // Restore the Id
+ e->setId( id );
+ // Make the widget aligned to the top left corner
+ e->setParentPosRef( Hotspot_TL );
+ e->setPosRef( Hotspot_TL );
+
+ // Apply the new settings
+ e->setActive( false );
+ e->setActive( true );
+ }
+}
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.h
new file mode 100644
index 000000000..ffeedd7f1
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.h
@@ -0,0 +1,46 @@
+// Object Viewer Qt GUI Editor plugin
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+
+namespace GUIEditor
+{
+ class CWidgetInfoTree;
+
+ /// Processes the GUI Editor's editor messages like delete, new, etc...
+ class CEditorMessageProcessor : public QObject
+ {
+ Q_OBJECT
+ public:
+ CEditorMessageProcessor( QObject *parent = NULL ) :
+ QObject( parent )
+ {
+ tree = NULL;
+ }
+
+ ~CEditorMessageProcessor(){}
+
+ void setTree( CWidgetInfoTree *tree ){ this->tree = tree; }
+
+ public Q_SLOTS:
+ void onDelete();
+ void onAdd( const QString &parentGroup, const QString &widgetType, const QString &name );
+
+ private:
+ CWidgetInfoTree *tree;
+ };
+}
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.cpp
new file mode 100644
index 000000000..ee3a079ad
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.cpp
@@ -0,0 +1,26 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "editor_selection_watcher.h"
+
+namespace GUIEditor
+{
+ void CEditorSelectionWatcher::selectionChanged( std::string &newSelection )
+ {
+ Q_EMIT sgnSelectionChanged( newSelection );
+ }
+}
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.h
new file mode 100644
index 000000000..61218c0cd
--- /dev/null
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.h
@@ -0,0 +1,36 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "nel/gui/editor_selection_watcher.h"
+#include
+
+namespace GUIEditor
+{
+ /// Watches the Editor selection, and emits a signal when it changes
+ class CEditorSelectionWatcher : public QObject, public NLGUI::IEditorSelectionWatcher
+ {
+ Q_OBJECT
+
+ public:
+ CEditorSelectionWatcher() : QObject( NULL ){}
+
+ void selectionChanged( std::string &newSelection );
+
+ Q_SIGNALS:
+ void sgnSelectionChanged( std::string &id );
+ };
+}
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp
index 5a0aff4de..341338d8d 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp
@@ -41,6 +41,9 @@
#include "project_file_serializer.h"
#include "project_window.h"
#include "nelgui_widget.h"
+#include "editor_selection_watcher.h"
+#include "editor_message_processor.h"
+#include "add_widget_widget.h"
namespace GUIEditor
{
@@ -53,11 +56,13 @@ namespace GUIEditor
QMainWindow(parent)
{
m_ui.setupUi(this);
+ messageProcessor = new CEditorMessageProcessor;
m_undoStack = new QUndoStack(this);
widgetProps = new CWidgetProperties;
linkList = new LinkList;
procList = new ProcList;
projectWindow = new ProjectWindow;
+ addWidgetWidget = new AddWidgetWidget;
connect( projectWindow, SIGNAL( projectFilesChanged() ), this, SLOT( onProjectFilesChanged() ) );
viewPort = new NelGUIWidget;
setCentralWidget( viewPort );
@@ -73,6 +78,8 @@ namespace GUIEditor
parser.setWidgetInfoTree( widgetInfoTree );
parser.parseGUIWidgets();
widgetProps->setupWidgetInfo( widgetInfoTree );
+ addWidgetWidget->setupWidgetInfo( widgetInfoTree );
+ messageProcessor->setTree( widgetInfoTree );
QDockWidget *dock = new QDockWidget( "Widget Hierarchy", this );
dock->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
@@ -91,17 +98,23 @@ namespace GUIEditor
viewPort->init();
- connect( viewPort, SIGNAL( guiLoadComplete() ), hierarchyView, SLOT( onGUILoaded() ) );
- connect( viewPort, SIGNAL( guiLoadComplete() ), procList, SLOT( onGUILoaded() ) );
- connect( viewPort, SIGNAL( guiLoadComplete() ), linkList, SLOT( onGUILoaded() ) );
- connect( hierarchyView, SIGNAL( selectionChanged( std::string& ) ),
- &browserCtrl, SLOT( onSelectionChanged( std::string& ) ) );
+ connect( viewPort, SIGNAL( guiLoadComplete() ), this, SLOT( onGUILoaded() ) );
+ connect( widgetProps, SIGNAL( treeChanged() ), this, SLOT( onTreeChanged() ) );
+ connect(
+ addWidgetWidget,
+ SIGNAL( adding( const QString&, const QString&, const QString& ) ),
+ messageProcessor,
+ SLOT( onAdd( const QString&, const QString&, const QString& ) )
+ );
}
GUIEditorWindow::~GUIEditorWindow()
{
writeSettings();
+ delete messageProcessor;
+ messageProcessor = NULL;
+
delete widgetProps;
widgetProps = NULL;
@@ -117,6 +130,9 @@ namespace GUIEditor
delete viewPort;
viewPort = NULL;
+ delete addWidgetWidget;
+ addWidgetWidget = NULL;
+
// no deletion needed for these, since dockwidget owns them
hierarchyView = NULL;
propBrowser = NULL;
@@ -262,6 +278,11 @@ namespace GUIEditor
if( reply != QMessageBox::Yes )
return false;
+
+ CEditorSelectionWatcher *w = viewPort->getWatcher();
+ disconnect( w, SIGNAL( sgnSelectionChanged( std::string& ) ), hierarchyView, SLOT( onSelectionChanged( std::string& ) ) );
+ disconnect( w, SIGNAL( sgnSelectionChanged( std::string& ) ), &browserCtrl, SLOT( onSelectionChanged( std::string& ) ) );
+
projectFiles.clearAll();
projectWindow->clear();
hierarchyView->clearHierarchy();
@@ -291,6 +312,30 @@ namespace GUIEditor
setCursor( Qt::ArrowCursor );
}
+ void GUIEditorWindow::onGUILoaded()
+ {
+ hierarchyView->onGUILoaded();
+ procList->onGUILoaded();
+ linkList->onGUILoaded();
+
+ CEditorSelectionWatcher *w = viewPort->getWatcher();
+ connect( w, SIGNAL( sgnSelectionChanged( std::string& ) ), hierarchyView, SLOT( onSelectionChanged( std::string& ) ) );
+ connect( w, SIGNAL( sgnSelectionChanged( std::string& ) ), &browserCtrl, SLOT( onSelectionChanged( std::string& ) ) );
+ }
+
+ void GUIEditorWindow::onAddWidgetClicked()
+ {
+ QString g;
+ hierarchyView->getCurrentGroup( g );
+
+ addWidgetWidget->setCurrentGroup( g );
+ addWidgetWidget->show();
+ }
+
+ void GUIEditorWindow::onTreeChanged()
+ {
+ addWidgetWidget->setupWidgetInfo( widgetInfoTree );
+ }
void GUIEditorWindow::createMenus()
{
@@ -299,6 +344,7 @@ namespace GUIEditor
QAction *saveAction = mm->action( Core::Constants::SAVE );
QAction *saveAsAction = mm->action( Core::Constants::SAVE_AS );
QAction *closeAction = mm->action( Core::Constants::CLOSE );
+ QAction *delAction = mm->action( Core::Constants::DEL );
//if( newAction != NULL )
// newAction->setEnabled( true );
@@ -308,6 +354,11 @@ namespace GUIEditor
saveAsAction->setEnabled( true );
if( closeAction != NULL )
closeAction->setEnabled( true );
+ if( delAction != NULL )
+ {
+ delAction->setEnabled( true );
+ connect( delAction, SIGNAL( triggered( bool ) ), messageProcessor, SLOT( onDelete() ) );
+ }
QMenu *menu = mm->menu( Core::Constants::M_TOOLS );
if( menu != NULL )
@@ -329,6 +380,10 @@ namespace GUIEditor
a = new QAction( "Project Window", this );
connect( a, SIGNAL( triggered( bool ) ), projectWindow, SLOT( show() ) );
m->addAction( a );
+
+ a = new QAction( "Add Widget", this );
+ connect( a, SIGNAL( triggered( bool ) ), this, SLOT( onAddWidgetClicked() ) );
+ m->addAction( a );
}
}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h
index d4327d3d9..e1a8b8b2d 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h
@@ -36,6 +36,8 @@ namespace GUIEditor
class ProjectWindow;
class NelGUIWidget;
class CWidgetInfoTree;
+ class CEditorMessageProcessor;
+ class AddWidgetWidget;
class GUIEditorWindow: public QMainWindow
{
@@ -58,6 +60,9 @@ public Q_SLOTS:
private Q_SLOTS:
void onProjectFilesChanged();
+ void onGUILoaded();
+ void onAddWidgetClicked();
+ void onTreeChanged();
private:
void createMenus();
@@ -76,8 +81,9 @@ private:
ProcList *procList;
ProjectWindow *projectWindow;
NelGUIWidget *viewPort;
-
CWidgetInfoTree *widgetInfoTree;
+ CEditorMessageProcessor *messageProcessor;
+ AddWidgetWidget *addWidgetWidget;
CPropBrowserCtrl browserCtrl;
QString currentProject;
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp
index 85525e428..d86d31269 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp
@@ -27,6 +27,7 @@
#include
#include
#include
+#include "editor_selection_watcher.h"
namespace GUIEditor
{
@@ -37,6 +38,7 @@ namespace GUIEditor
{
timerID = 0;
guiLoaded = false;
+ watcher = NULL;
}
NelGUIWidget::~NelGUIWidget()
@@ -70,6 +72,8 @@ namespace GUIEditor
NLGUI::CViewRenderer::getInstance()->init();
CWidgetManager::getInstance()->getParser()->setEditorMode( true );
+
+ watcher = new CEditorSelectionWatcher();
}
bool NelGUIWidget::parse( SProjectFiles &files )
@@ -106,6 +110,8 @@ namespace GUIEditor
guiLoaded = true;
Q_EMIT guiLoadComplete();
+ CWidgetManager::getInstance()->registerSelectionWatcher( watcher );
+
return true;
}
@@ -115,6 +121,7 @@ namespace GUIEditor
if( timerID != 0 )
killTimer( timerID );
timerID = 0;
+ CWidgetManager::getInstance()->unregisterSelectionWatcher( watcher );
CWidgetManager::getInstance()->reset();
CWidgetManager::getInstance()->getParser()->removeAll();
CViewRenderer::getInstance()->reset();
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h
index 5a45cc351..34c510507 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h
@@ -23,6 +23,8 @@
namespace GUIEditor
{
+ class CEditorSelectionWatcher;
+
/// Qt viewport for the Nel GUI library
class NelGUIWidget : public Nel3DWidget
{
@@ -35,6 +37,7 @@ namespace GUIEditor
bool parse( SProjectFiles &files );
void draw();
void reset();
+ CEditorSelectionWatcher* getWatcher(){ return watcher; }
Q_SIGNALS:
void guiLoadComplete();
@@ -49,6 +52,7 @@ Q_SIGNALS:
private:
int timerID;
bool guiLoaded;
+ CEditorSelectionWatcher *watcher;
};
}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp
index 1612ea803..82330bfaf 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp
@@ -78,7 +78,12 @@ namespace GUIEditor
CInterfaceElement *e = CWidgetManager::getInstance()->getElementFromId( id );
if( e == NULL )
+ {
+ connect( propertyMgr, SIGNAL( propertyChanged( QtProperty* ) ),
+ this, SLOT( onPropertyChanged( QtProperty* ) ) );
+
return;
+ }
currentElement = id;
@@ -106,6 +111,12 @@ namespace GUIEditor
if( e == NULL )
return;
e->setProperty( propName.toUtf8().constData(), propValue.toUtf8().constData() );
+
+
+ // Make sure the changes are applied
+ bool active = e->getActive();
+ e->setActive( !active );
+ e->setActive( active );
}
void CPropBrowserCtrl::setupProperties( const std::string &type, const CInterfaceElement *element )
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp
index 9c3a74fd7..24208f4a3 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp
@@ -18,6 +18,7 @@
#include "widget_hierarchy.h"
#include "nel/gui/interface_group.h"
#include "nel/gui/widget_manager.h"
+#include "nel/gui/widget_addition_watcher.h"
namespace
{
@@ -56,6 +57,45 @@ namespace
name = s.toUtf8().constData();
return name;
}
+
+ class CWidgetDeletionWatcher : public CInterfaceElement::IDeletionWatcher
+ {
+ public:
+ CWidgetDeletionWatcher(){ h = NULL; }
+
+ ~CWidgetDeletionWatcher(){}
+
+ void onDeleted( const std::string &id ){
+ if( h != NULL )
+ h->onWidgetDeleted( id );
+ }
+
+ void setWidgetHierarchy( GUIEditor::WidgetHierarchy *h ){ this->h = h; }
+
+ private:
+ GUIEditor::WidgetHierarchy *h;
+ };
+
+ class CWidgetAdditionWatcher : public IWidgetAdditionWatcher
+ {
+ public:
+ CWidgetAdditionWatcher(){ h = NULL; }
+ ~CWidgetAdditionWatcher(){}
+
+ void widgetAdded( const std::string &name )
+ {
+ if( h != NULL )
+ h->onWidgetAdded( name );
+ }
+
+ void setWidgetHierarchy( GUIEditor::WidgetHierarchy *h ){ this->h = h; }
+
+ private:
+ GUIEditor::WidgetHierarchy *h;
+ };
+
+ CWidgetDeletionWatcher deletionWatcher;
+ CWidgetAdditionWatcher additionWatcher;
}
namespace GUIEditor
@@ -66,6 +106,8 @@ namespace GUIEditor
setupUi( this );
connect( widgetHT, SIGNAL( itemDoubleClicked( QTreeWidgetItem*, int ) ),
this, SLOT( onItemDblClicked( QTreeWidgetItem* ) ) );
+ deletionWatcher.setWidgetHierarchy( this );
+ additionWatcher.setWidgetHierarchy( this );
}
WidgetHierarchy::~WidgetHierarchy()
@@ -74,12 +116,17 @@ namespace GUIEditor
void WidgetHierarchy::clearHierarchy()
{
+ CInterfaceElement::unregisterDeletionWatcher( &deletionWatcher );
+ CWidgetManager::getInstance()->unregisterAdditionWatcher( &additionWatcher );
widgetHT->clear();
+ widgetHierarchyMap.clear();
}
void WidgetHierarchy::buildHierarchy( std::string &masterGroup )
{
clearHierarchy();
+ CInterfaceElement::registerDeletionWatcher( &deletionWatcher );
+ CWidgetManager::getInstance()->registerAdditionWatcher( &additionWatcher );
CInterfaceGroup *mg = CWidgetManager::getInstance()->getMasterGroupFromId( masterGroup );
if( mg != NULL )
@@ -87,6 +134,7 @@ namespace GUIEditor
QTreeWidgetItem *item = new QTreeWidgetItem( static_cast(NULL) );
item->setText( 0, "ui" );
widgetHT->addTopLevelItem( item );
+ widgetHierarchyMap[ "ui" ] = item;
buildHierarchy( item, mg );
}
@@ -96,7 +144,9 @@ namespace GUIEditor
{
// First add ourselves
QTreeWidgetItem *item = new QTreeWidgetItem( parent );
+
item->setText( 0, makeNodeName( group->getId() ).c_str() );
+ widgetHierarchyMap[ group->getId() ] = item;
// Then add recursively our subgroups
const std::vector< CInterfaceGroup* > &groups = group->getGroups();
@@ -113,6 +163,7 @@ namespace GUIEditor
{
QTreeWidgetItem *subItem = new QTreeWidgetItem( item );
subItem->setText( 0, makeNodeName( (*citr)->getId() ).c_str() );
+ widgetHierarchyMap[ (*citr)->getId() ] = subItem;
}
// Add our views
@@ -122,14 +173,134 @@ namespace GUIEditor
{
QTreeWidgetItem *subItem = new QTreeWidgetItem( item );
subItem->setText( 0, makeNodeName( (*vitr)->getId() ).c_str() );
+ widgetHierarchyMap[ (*vitr)->getId() ] = subItem;
}
}
+ void WidgetHierarchy::onWidgetDeleted( const std::string &id )
+ {
+ std::map< std::string, QTreeWidgetItem* >::iterator itr
+ = widgetHierarchyMap.find( id );
+ if( itr == widgetHierarchyMap.end() )
+ return;
+
+ if( widgetHT->currentItem() == itr->second )
+ {
+ QTreeWidgetItem *item = itr->second;
+ QTreeWidgetItem *p = item;
+
+ // Deselect item
+ item->setSelected( false );
+ widgetHT->setCurrentItem( NULL );
+
+ // Collapse the tree
+ while( p != NULL )
+ {
+ p->setExpanded( false );
+ p = p->parent();
+ }
+
+ currentSelection = "";
+ }
+
+ itr->second->setSelected( false );
+
+ delete itr->second;
+ itr->second = NULL;
+ widgetHierarchyMap.erase( itr );
+ }
+
+ void WidgetHierarchy::onWidgetAdded( const std::string &id )
+ {
+ // Get the parent's name
+ std::string::size_type p = id.find_last_of( ':' );
+ if( p == std::string::npos )
+ return;
+ std::string parentId = id.substr( 0, p );
+
+ // Do we have the parent in the hierarchy?
+ std::map< std::string, QTreeWidgetItem* >::iterator itr
+ = widgetHierarchyMap.find( parentId );
+ if( itr == widgetHierarchyMap.end() )
+ return;
+
+ // Add the new widget to the hierarchy
+ QTreeWidgetItem *parent = itr->second;
+ QTreeWidgetItem *item = new QTreeWidgetItem( parent );
+ item->setText( 0, makeNodeName( id ).c_str() );
+ widgetHierarchyMap[ id ] = item;
+ }
+
+ void WidgetHierarchy::getCurrentGroup( QString &g )
+ {
+ std::string s = CWidgetManager::getInstance()->getCurrentEditorSelection();
+ if( s.empty() )
+ {
+ g = "";
+ return;
+ }
+
+ NLGUI::CInterfaceElement *e = CWidgetManager::getInstance()->getElementFromId( s );
+ if( e == NULL )
+ {
+ g = "";
+ return;
+ }
+
+ if( e->isGroup() )
+ {
+ g = e->getId().c_str();
+ return;
+ }
+
+ NLGUI::CInterfaceGroup *p = e->getParent();
+ if( p == NULL )
+ {
+ g = "";
+ return;
+ }
+
+ g = p->getId().c_str();
+ }
+
void WidgetHierarchy::onGUILoaded()
{
if( masterGroup.empty() )
return;
buildHierarchy( masterGroup );
+ currentSelection.clear();
+ }
+
+ void WidgetHierarchy::onSelectionChanged( std::string &newSelection )
+ {
+ if( newSelection == currentSelection )
+ return;
+
+ if( newSelection.empty() )
+ return;
+
+ std::map< std::string, QTreeWidgetItem* >::iterator itr =
+ widgetHierarchyMap.find( newSelection );
+ if( itr == widgetHierarchyMap.end() )
+ return;
+
+ // deselect current item
+ if( widgetHT->currentItem() != NULL )
+ widgetHT->currentItem()->setSelected( false );
+
+ // expand the tree items, so that we can see the selected item
+ QTreeWidgetItem *item = itr->second;
+ QTreeWidgetItem *currItem = item;
+ while( currItem != NULL )
+ {
+ currItem->setExpanded( true );
+ currItem = currItem->parent();
+ }
+
+ // select the current item
+ item->setSelected( true );
+ widgetHT->setCurrentItem( item );
+ currentSelection = newSelection;
}
void WidgetHierarchy::onItemDblClicked( QTreeWidgetItem *item )
@@ -138,9 +309,7 @@ namespace GUIEditor
return;
std::string n = item->text( 0 ).toUtf8().constData();
- std::string selection = makeFullName( item, n );
- CWidgetManager::getInstance()->setCurrentEditorSelection( selection );
-
- Q_EMIT selectionChanged( selection );
+ currentSelection = makeFullName( item, n );
+ CWidgetManager::getInstance()->setCurrentEditorSelection( currentSelection );
}
}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h
index 493fd2a08..4641c8ce8 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h
+++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h
@@ -18,6 +18,8 @@
#define WIDGET_HA_H
#include "ui_widget_hierarchy.h"
+#include
+#include