Add a common GLSL check.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@12836 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
5513ca08cb
commit
304dceae8c
@ -381,6 +381,17 @@ void IrrDriver::initDevice()
|
||||
m_scene_manager = m_device->getSceneManager();
|
||||
m_gui_env = m_device->getGUIEnvironment();
|
||||
m_video_driver = m_device->getVideoDriver();
|
||||
m_glsl = m_video_driver->queryFeature(video::EVDF_ARB_GLSL) &&
|
||||
m_video_driver->queryFeature(video::EVDF_TEXTURE_NPOT);
|
||||
|
||||
if (m_glsl)
|
||||
{
|
||||
Log::info("irr_driver", "GLSL supported.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::warn("irr_driver", "Too old GPU; using the fixed pipeline.");
|
||||
}
|
||||
|
||||
// Only change video driver settings if we are showing graphics
|
||||
if (!ProfileWorld::isNoGraphics())
|
||||
@ -1741,9 +1752,7 @@ bool IrrDriver::OnEvent(const irr::SEvent &event)
|
||||
|
||||
bool IrrDriver::supportsSplatting()
|
||||
{
|
||||
return UserConfigParams::m_pixel_shaders &&
|
||||
m_video_driver->queryFeature(video::EVDF_ARB_GLSL) &&
|
||||
m_video_driver->queryFeature(video::EVDF_MULTITEXTURE );
|
||||
return UserConfigParams::m_pixel_shaders && m_glsl;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -103,6 +103,9 @@ private:
|
||||
/** Whether the mouse cursor is currently shown */
|
||||
bool m_pointer_shown;
|
||||
|
||||
/** Supports GLSL */
|
||||
bool m_glsl;
|
||||
|
||||
/** Internal method that applies the resolution in user settings. */
|
||||
void applyResolutionSettings();
|
||||
void createListOfVideoModes();
|
||||
@ -227,6 +230,9 @@ public:
|
||||
/** Returns a pointer to the post processing object. */
|
||||
inline PostProcessing* getPostProcessing() {return m_post_processing;}
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
inline bool isGLSL() const { return m_glsl; }
|
||||
// ------------------------------------------------------------------------
|
||||
#ifdef DEBUG
|
||||
/** Removes debug meshes. */
|
||||
void clearDebugMesh() { m_debug_meshes.clear(); }
|
||||
|
@ -1014,7 +1014,7 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
{
|
||||
IVideoDriver* video_driver = irr_driver->getVideoDriver();
|
||||
if (UserConfigParams::m_pixel_shaders &&
|
||||
video_driver->queryFeature(video::EVDF_ARB_GLSL))
|
||||
irr_driver->isGLSL())
|
||||
{
|
||||
if (m_shaders[SHADER_SPHERE_MAP] == NULL)
|
||||
{
|
||||
@ -1093,7 +1093,7 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
{
|
||||
IVideoDriver* video_driver = irr_driver->getVideoDriver();
|
||||
if (UserConfigParams::m_pixel_shaders &&
|
||||
video_driver->queryFeature(video::EVDF_ARB_GLSL))
|
||||
irr_driver->isGLSL())
|
||||
{
|
||||
ITexture* tex = irr_driver->getTexture(m_normal_map_tex);
|
||||
if (m_is_heightmap)
|
||||
@ -1267,7 +1267,7 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
{
|
||||
IVideoDriver* video_driver = irr_driver->getVideoDriver();
|
||||
if (UserConfigParams::m_pixel_shaders &&
|
||||
video_driver->queryFeature(video::EVDF_ARB_GLSL))
|
||||
irr_driver->isGLSL())
|
||||
{
|
||||
if (m_bubble_provider.find(mb) == m_bubble_provider.end())
|
||||
{
|
||||
@ -1300,7 +1300,7 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
{
|
||||
IVideoDriver* video_driver = irr_driver->getVideoDriver();
|
||||
if (UserConfigParams::m_pixel_shaders &&
|
||||
video_driver->queryFeature(video::EVDF_ARB_GLSL))
|
||||
irr_driver->isGLSL())
|
||||
{
|
||||
if (m_shaders[SHADER_WATER] == NULL)
|
||||
{
|
||||
@ -1337,7 +1337,7 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
{
|
||||
IVideoDriver* video_driver = irr_driver->getVideoDriver();
|
||||
if (UserConfigParams::m_pixel_shaders &&
|
||||
video_driver->queryFeature(video::EVDF_ARB_GLSL))
|
||||
irr_driver->isGLSL())
|
||||
{
|
||||
if (m_shaders[SHADER_GRASS] == NULL)
|
||||
{
|
||||
|
@ -37,8 +37,7 @@ PostProcessing::PostProcessing(video::IVideoDriver* video_driver)
|
||||
{
|
||||
// Check if post-processing is supported on this hardware
|
||||
m_supported = false;
|
||||
if( video_driver->queryFeature(video::EVDF_ARB_GLSL) &&
|
||||
video_driver->queryFeature(video::EVDF_RENDER_TO_TARGET))
|
||||
if( irr_driver->isGLSL() )
|
||||
{
|
||||
m_supported = true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user