mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 00:32:57 -04:00
Exposes Opengl Vendor, Driver, Shader Model information to python
This commit is contained in:
parent
b4fcbfff0a
commit
a56760cbcf
@ -130,6 +130,7 @@ TypeHandle GraphicsStateGuardian::_type_handle;
|
||||
// Access: Public
|
||||
// Description:
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
GraphicsStateGuardian::
|
||||
GraphicsStateGuardian(CoordinateSystem internal_coordinate_system,
|
||||
GraphicsEngine *engine, GraphicsPipe *pipe) :
|
||||
@ -2664,3 +2665,52 @@ make_shadow_buffer(const NodePath &light_np, GraphicsOutputBase *host) {
|
||||
return tex;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_vendor
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns the vendor of the video card driver
|
||||
////////////////////////////////////////////////////////////////////
|
||||
string GraphicsStateGuardian::get_driver_vendor() { return string("0"); }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_vendor
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns GL_Renderer
|
||||
////////////////////////////////////////////////////////////////////
|
||||
string GraphicsStateGuardian::get_driver_renderer() { return string("0"); }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_version
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns driver version
|
||||
////////////////////////////////////////////////////////////////////
|
||||
string GraphicsStateGuardian::get_driver_version() { return string("0"); }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_version_major
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns major version of the video driver
|
||||
////////////////////////////////////////////////////////////////////
|
||||
int GraphicsStateGuardian::get_driver_version_major() { return -1; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_version_minor
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns the minor version of the video driver
|
||||
////////////////////////////////////////////////////////////////////
|
||||
int GraphicsStateGuardian::get_driver_version_minor() { return -1; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_shader_version_major
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns the major version of the shader model
|
||||
////////////////////////////////////////////////////////////////////
|
||||
int GraphicsStateGuardian::get_driver_shader_version_major() { return -1; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GraphicsStateGuardian::get_driver_shader_version_minor
|
||||
// Access: Public, Virtual
|
||||
// Description: Returns the minor version of the shader model
|
||||
////////////////////////////////////////////////////////////////////
|
||||
int GraphicsStateGuardian::get_driver_shader_version_minor() { return -1; }
|
||||
|
||||
|
@ -191,6 +191,15 @@ PUBLISHED:
|
||||
#endif
|
||||
|
||||
PUBLISHED:
|
||||
|
||||
virtual string get_driver_vendor();
|
||||
virtual string get_driver_renderer();
|
||||
virtual string get_driver_version();
|
||||
virtual int get_driver_version_major();
|
||||
virtual int get_driver_version_minor();
|
||||
virtual int get_driver_shader_version_major();
|
||||
virtual int get_driver_shader_version_minor();
|
||||
|
||||
bool set_scene(SceneSetup *scene_setup);
|
||||
virtual SceneSetup *get_scene() const;
|
||||
|
||||
|
@ -276,6 +276,16 @@ fix_component_ordering(PTA_uchar &new_image,
|
||||
return result;
|
||||
}
|
||||
|
||||
//#--- Zhao Nov/2011
|
||||
string CLP(GraphicsStateGuardian)::get_driver_vendor() { return _gl_vendor; }
|
||||
string CLP(GraphicsStateGuardian)::get_driver_renderer() { return _gl_renderer; }
|
||||
|
||||
string CLP(GraphicsStateGuardian)::get_driver_version() { return _gl_version; }
|
||||
int CLP(GraphicsStateGuardian)::get_driver_version_major() { return _gl_version_major; }
|
||||
int CLP(GraphicsStateGuardian)::get_driver_version_minor() { return _gl_version_minor; }
|
||||
int CLP(GraphicsStateGuardian)::get_driver_shader_version_major() { return _gl_shadlang_ver_major; }
|
||||
int CLP(GraphicsStateGuardian)::get_driver_shader_version_minor() { return _gl_shadlang_ver_minor; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: GLGraphicsStateGuardian::Constructor
|
||||
// Access: Public
|
||||
@ -5398,6 +5408,24 @@ query_gl_version() {
|
||||
<< _gl_version_major << "." << _gl_version_minor
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
if (_gl_version_major==1) {
|
||||
const char *extstr = (const char *) GLP(GetString)(GL_EXTENSIONS);
|
||||
if (extstr != NULL) {
|
||||
if (strstr( extstr, "GL_ARB_shading_language_100") != NULL)
|
||||
{
|
||||
_gl_shadlang_ver_major = 1;
|
||||
_gl_shadlang_ver_minor = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (_gl_version_major >= 2) {
|
||||
const char *verstr = (const char *) GLP(GetString)(GL_SHADING_LANGUAGE_VERSION);
|
||||
if ((verstr == NULL) || (sscanf(verstr, "%d.%d", &_gl_shadlang_ver_major, &_gl_shadlang_ver_minor) != 2))
|
||||
{
|
||||
GLCAT.warning() << "Invalid GL_SHADING_LANGUAGE_VERSION format.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -186,6 +186,15 @@ public:
|
||||
CLP(GraphicsStateGuardian)(GraphicsEngine *engine, GraphicsPipe *pipe);
|
||||
virtual ~CLP(GraphicsStateGuardian)();
|
||||
|
||||
//#--- Zhao Nov/2011
|
||||
virtual string get_driver_vendor();
|
||||
virtual string get_driver_renderer();
|
||||
virtual string get_driver_version();
|
||||
virtual int get_driver_version_major();
|
||||
virtual int get_driver_version_minor();
|
||||
virtual int get_driver_shader_version_major();
|
||||
virtual int get_driver_shader_version_minor();
|
||||
|
||||
virtual void reset();
|
||||
|
||||
virtual void prepare_display_region(DisplayRegionPipelineReader *dr);
|
||||
@ -520,6 +529,8 @@ protected:
|
||||
string _gl_renderer;
|
||||
string _gl_version;
|
||||
int _gl_version_major, _gl_version_minor;
|
||||
//#--- Zhao Nov/2011
|
||||
int _gl_shadlang_ver_major, _gl_shadlang_ver_minor;
|
||||
pset<string> _extensions;
|
||||
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user