Merge branch 'master' of github.com:supertuxkart/stk-code
This commit is contained in:
commit
3a14b38947
@ -57,28 +57,31 @@ NewsManager::~NewsManager()
|
||||
*/
|
||||
void NewsManager::init(bool force_refresh)
|
||||
{
|
||||
// The rest (which potentially involves downloading news.xml) is handled
|
||||
// in a separate thread, so that the GUI remains responsive.
|
||||
|
||||
pthread_attr_t attr;
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
|
||||
// Should be the default, but just in case:
|
||||
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
|
||||
//pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
|
||||
|
||||
m_force_refresh = force_refresh;
|
||||
|
||||
pthread_t thread_id;
|
||||
int error = pthread_create(&thread_id, &attr,
|
||||
&NewsManager::downloadNews, this);
|
||||
if(error)
|
||||
// The rest (which potentially involves downloading news.xml) is handled
|
||||
// in a separate thread, so that the GUI remains responsive. It is only
|
||||
// started if internet access is enabled, else nothing is done in the
|
||||
// thread anyway (and the addons menu is disabled as a result).
|
||||
if(UserConfigParams::m_internet_status==RequestManager::IPERM_ALLOWED)
|
||||
{
|
||||
Log::warn("news", "Could not create thread, error=%d", error);
|
||||
// In this case just execute the downloading code with this thread
|
||||
downloadNews(this);
|
||||
pthread_attr_t attr;
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
|
||||
// Should be the default, but just in case:
|
||||
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
|
||||
//pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
|
||||
pthread_t thread_id;
|
||||
int error = pthread_create(&thread_id, &attr,
|
||||
&NewsManager::downloadNews, this);
|
||||
if (error)
|
||||
{
|
||||
Log::warn("news", "Could not create thread, error=%d", error);
|
||||
// In this case just execute the downloading code with this thread
|
||||
downloadNews(this);
|
||||
}
|
||||
pthread_attr_destroy(&attr);
|
||||
}
|
||||
pthread_attr_destroy(&attr);
|
||||
|
||||
} //init
|
||||
|
||||
|
@ -145,6 +145,8 @@ GLuint LoadShader(const char * file, unsigned type)
|
||||
char versionString[20];
|
||||
sprintf(versionString, "#version %d\n", irr_driver->getGLSLVersion());
|
||||
std::string Code = versionString;
|
||||
if (irr_driver->hasVSLayerExtension())
|
||||
Code += "#extension GL_AMD_vertex_shader_layer : enable\n";
|
||||
if (UserConfigParams::m_azdo)
|
||||
Code += "#extension GL_ARB_bindless_texture : enable\n";
|
||||
else
|
||||
|
@ -351,20 +351,22 @@ void IrrDriver::initDevice()
|
||||
core::dimension2d<u32> res = core::dimension2du(UserConfigParams::m_width,
|
||||
UserConfigParams::m_height);
|
||||
|
||||
|
||||
if (modes->getVideoModeCount() > 0)
|
||||
if (UserConfigParams::m_fullscreen)
|
||||
{
|
||||
res = modes->getVideoModeResolution(res, res);
|
||||
|
||||
UserConfigParams::m_width = res.Width;
|
||||
UserConfigParams::m_height = res.Height;
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::verbose("irr_driver", "Cannot get information about "
|
||||
"resolutions. Try to use the default one.");
|
||||
UserConfigParams::m_width = MIN_SUPPORTED_WIDTH;
|
||||
UserConfigParams::m_height = MIN_SUPPORTED_HEIGHT;
|
||||
if (modes->getVideoModeCount() > 0)
|
||||
{
|
||||
res = modes->getVideoModeResolution(res, res);
|
||||
|
||||
UserConfigParams::m_width = res.Width;
|
||||
UserConfigParams::m_height = res.Height;
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::verbose("irr_driver", "Cannot get information about "
|
||||
"resolutions. Try to use the default one.");
|
||||
UserConfigParams::m_width = MIN_SUPPORTED_WIDTH;
|
||||
UserConfigParams::m_height = MIN_SUPPORTED_HEIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
m_device->closeDevice();
|
||||
|
@ -498,7 +498,6 @@ void DynamicRibbonWidget::clearItems()
|
||||
m_items.clear();
|
||||
m_animated_contents = false;
|
||||
m_scroll_offset = 0;
|
||||
GUIEngine::needsUpdate.remove(this);
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
void DynamicRibbonWidget::elementRemoved()
|
||||
|
@ -813,7 +813,8 @@ void FileManager::checkAndCreateConfigDir()
|
||||
if(m_user_config_dir.size()>0 && *m_user_config_dir.rbegin()!='/')
|
||||
m_user_config_dir += "/";
|
||||
|
||||
if(!checkAndCreateDirectory(m_user_config_dir))
|
||||
m_user_config_dir +="0.8.2/";
|
||||
if(!checkAndCreateDirectoryP(m_user_config_dir))
|
||||
{
|
||||
Log::warn("FileManager", "Can not create config dir '%s', "
|
||||
"falling back to '.'.", m_user_config_dir.c_str());
|
||||
@ -830,7 +831,7 @@ void FileManager::checkAndCreateConfigDir()
|
||||
void FileManager::checkAndCreateAddonsDir()
|
||||
{
|
||||
#if defined(WIN32) || defined(__CYGWIN__)
|
||||
m_addons_dir = m_user_config_dir+"addons/";
|
||||
m_addons_dir = m_user_config_dir+"../addons/";
|
||||
#elif defined(__APPLE__)
|
||||
m_addons_dir = getenv("HOME");
|
||||
m_addons_dir += "/Library/Application Support/SuperTuxKart/Addons/";
|
||||
|
@ -1127,8 +1127,17 @@ void askForInternetPermission()
|
||||
public:
|
||||
virtual void onConfirm()
|
||||
{
|
||||
// Typically internet is disabled here (just better safe
|
||||
// than sorry). If internet should be allowed, the news
|
||||
// manager needs to be started (which in turn activates
|
||||
// the addons manager).
|
||||
bool need_to_start_news_manager =
|
||||
UserConfigParams::m_internet_status!=
|
||||
Online::RequestManager::IPERM_ALLOWED;
|
||||
UserConfigParams::m_internet_status =
|
||||
Online::RequestManager::IPERM_ALLOWED;
|
||||
if(need_to_start_news_manager)
|
||||
NewsManager::get()->init(false);
|
||||
GUIEngine::ModalDialog::dismiss();
|
||||
} // onConfirm
|
||||
// --------------------------------------------------------
|
||||
|
@ -439,31 +439,31 @@ bool onEvent(const SEvent &event)
|
||||
{
|
||||
#if !defined(__APPLE__)
|
||||
DebugSliderDialog *dsd = new DebugSliderDialog();
|
||||
dsd->setSliderHook( "red_slider", 0, 255, [](){ return irr_driver->getAmbientLight().r * 255.f; },
|
||||
dsd->setSliderHook( "red_slider", 0, 255, [](){ return int(irr_driver->getAmbientLight().r * 255.f); },
|
||||
[](int v){
|
||||
video::SColorf ambient = irr_driver->getAmbientLight();
|
||||
ambient.setColorComponentValue(0, v / 255.f);
|
||||
irr_driver->setAmbientLight(ambient); }
|
||||
);
|
||||
dsd->setSliderHook("green_slider", 0, 255, [](){ return irr_driver->getAmbientLight().g * 255.f; },
|
||||
dsd->setSliderHook("green_slider", 0, 255, [](){ return int(irr_driver->getAmbientLight().g * 255.f); },
|
||||
[](int v){
|
||||
video::SColorf ambient = irr_driver->getAmbientLight();
|
||||
ambient.setColorComponentValue(1, v / 255.f);
|
||||
irr_driver->setAmbientLight(ambient); }
|
||||
);
|
||||
dsd->setSliderHook("blue_slider", 0, 255, [](){ return irr_driver->getAmbientLight().b * 255.f; },
|
||||
dsd->setSliderHook("blue_slider", 0, 255, [](){ return int(irr_driver->getAmbientLight().b * 255.f); },
|
||||
[](int v){
|
||||
video::SColorf ambient = irr_driver->getAmbientLight();
|
||||
ambient.setColorComponentValue(2, v / 255.f);
|
||||
irr_driver->setAmbientLight(ambient); }
|
||||
);
|
||||
dsd->setSliderHook("ssao_radius", 0, 100, [](){ return irr_driver->getSSAORadius() * 10.f; },
|
||||
dsd->setSliderHook("ssao_radius", 0, 100, [](){ return int(irr_driver->getSSAORadius() * 10.f); },
|
||||
[](int v){irr_driver->setSSAORadius(v / 10.f); }
|
||||
);
|
||||
dsd->setSliderHook("ssao_k", 0, 100, [](){ return irr_driver->getSSAOK() * 10.f; },
|
||||
dsd->setSliderHook("ssao_k", 0, 100, [](){ return int(irr_driver->getSSAOK() * 10.f); },
|
||||
[](int v){irr_driver->setSSAOK(v / 10.f); }
|
||||
);
|
||||
dsd->setSliderHook("ssao_sigma", 0, 100, [](){ return irr_driver->getSSAOSigma() * 10.f; },
|
||||
dsd->setSliderHook("ssao_sigma", 0, 100, [](){ return int(irr_driver->getSSAOSigma() * 10.f); },
|
||||
[](int v){irr_driver->setSSAOSigma(v / 10.f); }
|
||||
);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user