Removed VBO override switch and some unnecessary code
parent
26ec927b37
commit
ff44637d49
|
@ -224,7 +224,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
||||||
OPT_DATADIR,
|
OPT_DATADIR,
|
||||||
OPT_SAVEDIR,
|
OPT_SAVEDIR,
|
||||||
OPT_MOD,
|
OPT_MOD,
|
||||||
OPT_VBO,
|
|
||||||
OPT_RESOLUTION,
|
OPT_RESOLUTION,
|
||||||
OPT_HEADLESS,
|
OPT_HEADLESS,
|
||||||
OPT_DEVICE
|
OPT_DEVICE
|
||||||
|
@ -242,7 +241,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
||||||
{ "datadir", required_argument, nullptr, OPT_DATADIR },
|
{ "datadir", required_argument, nullptr, OPT_DATADIR },
|
||||||
{ "savedir", required_argument, nullptr, OPT_SAVEDIR },
|
{ "savedir", required_argument, nullptr, OPT_SAVEDIR },
|
||||||
{ "mod", required_argument, nullptr, OPT_MOD },
|
{ "mod", required_argument, nullptr, OPT_MOD },
|
||||||
{ "vbo", required_argument, nullptr, OPT_VBO },
|
|
||||||
{ "resolution", required_argument, nullptr, OPT_RESOLUTION },
|
{ "resolution", required_argument, nullptr, OPT_RESOLUTION },
|
||||||
{ "headless", no_argument, nullptr, OPT_HEADLESS },
|
{ "headless", no_argument, nullptr, OPT_HEADLESS },
|
||||||
{ "graphics", required_argument, nullptr, OPT_DEVICE },
|
{ "graphics", required_argument, nullptr, OPT_DEVICE },
|
||||||
|
@ -286,7 +284,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
||||||
GetLogger()->Message(" -datadir path set custom data directory path\n");
|
GetLogger()->Message(" -datadir path set custom data directory path\n");
|
||||||
GetLogger()->Message(" -savedir path set custom save directory path (must be writable)\n");
|
GetLogger()->Message(" -savedir path set custom save directory path (must be writable)\n");
|
||||||
GetLogger()->Message(" -mod path load datadir mod from given path\n");
|
GetLogger()->Message(" -mod path load datadir mod from given path\n");
|
||||||
GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n");
|
|
||||||
GetLogger()->Message(" -resolution WxH set resolution\n");
|
GetLogger()->Message(" -resolution WxH set resolution\n");
|
||||||
GetLogger()->Message(" -headless headless mode - disables graphics, sound and user interaction\n");
|
GetLogger()->Message(" -headless headless mode - disables graphics, sound and user interaction\n");
|
||||||
GetLogger()->Message(" -graphics changes graphics device (defaults to opengl)\n");
|
GetLogger()->Message(" -graphics changes graphics device (defaults to opengl)\n");
|
||||||
|
@ -351,24 +348,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
||||||
m_language = language;
|
m_language = language;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OPT_VBO:
|
|
||||||
{
|
|
||||||
std::string vbo;
|
|
||||||
vbo = optarg;
|
|
||||||
if (vbo == "auto")
|
|
||||||
m_deviceConfig.vboMode = Gfx::VBO_MODE_AUTO;
|
|
||||||
else if (vbo == "enable")
|
|
||||||
m_deviceConfig.vboMode = Gfx::VBO_MODE_ENABLE;
|
|
||||||
else if (vbo == "disable")
|
|
||||||
m_deviceConfig.vboMode = Gfx::VBO_MODE_DISABLE;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GetLogger()->Error("Invalid vbo mode: '%s'\n", optarg);
|
|
||||||
return PARSE_ARGS_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case OPT_DATADIR:
|
case OPT_DATADIR:
|
||||||
{
|
{
|
||||||
m_pathManager->SetDataPath(optarg);
|
m_pathManager->SetDataPath(optarg);
|
||||||
|
@ -718,7 +697,7 @@ bool CApplication::IsRestarting()
|
||||||
return m_restart;
|
return m_restart;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig)
|
bool CApplication::ChangeVideoConfig(const Gfx::DeviceConfig &newConfig)
|
||||||
{
|
{
|
||||||
static bool restore = false;
|
static bool restore = false;
|
||||||
|
|
||||||
|
@ -765,7 +744,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
( static_cast<Gfx::CGLDevice*>(m_device) )->ConfigChanged(m_deviceConfig);
|
m_device->ConfigChanged(m_deviceConfig);
|
||||||
|
|
||||||
m_engine->ResetAfterDeviceChanged();
|
m_engine->ResetAfterDeviceChanged();
|
||||||
m_controller->GetRobotMain()->ResetAfterDeviceChanged();
|
m_controller->GetRobotMain()->ResetAfterDeviceChanged();
|
||||||
|
@ -1060,7 +1039,7 @@ Event CApplication::ProcessSystemEvent()
|
||||||
}
|
}
|
||||||
else if (m_private->currentEvent.type == SDL_VIDEORESIZE)
|
else if (m_private->currentEvent.type == SDL_VIDEORESIZE)
|
||||||
{
|
{
|
||||||
Gfx::GLDeviceConfig newConfig = m_deviceConfig;
|
Gfx::DeviceConfig newConfig = m_deviceConfig;
|
||||||
newConfig.size.x = m_private->currentEvent.resize.w;
|
newConfig.size.x = m_private->currentEvent.resize.w;
|
||||||
newConfig.size.y = m_private->currentEvent.resize.h;
|
newConfig.size.y = m_private->currentEvent.resize.h;
|
||||||
if (newConfig.size != m_deviceConfig.size)
|
if (newConfig.size != m_deviceConfig.size)
|
||||||
|
@ -1384,7 +1363,7 @@ long long CApplication::GetRealRelTime() const
|
||||||
return m_realRelTime;
|
return m_realRelTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
Gfx::GLDeviceConfig CApplication::GetVideoConfig() const
|
Gfx::DeviceConfig CApplication::GetVideoConfig() const
|
||||||
{
|
{
|
||||||
return m_deviceConfig;
|
return m_deviceConfig;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
#include "graphics/core/device.h"
|
#include "graphics/core/device.h"
|
||||||
#include "graphics/engine/engine.h"
|
#include "graphics/engine/engine.h"
|
||||||
#include "graphics/opengl/gldevice.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -223,10 +222,10 @@ public:
|
||||||
bool fullScreen, bool resizeable) const;
|
bool fullScreen, bool resizeable) const;
|
||||||
|
|
||||||
//! Returns the current video mode
|
//! Returns the current video mode
|
||||||
Gfx::GLDeviceConfig GetVideoConfig() const;
|
Gfx::DeviceConfig GetVideoConfig() const;
|
||||||
|
|
||||||
//! Change the video mode to given mode
|
//! Change the video mode to given mode
|
||||||
bool ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig);
|
bool ChangeVideoConfig(const Gfx::DeviceConfig &newConfig);
|
||||||
|
|
||||||
//! Suspends animation (time will not be updated)
|
//! Suspends animation (time will not be updated)
|
||||||
void SuspendSimulation();
|
void SuspendSimulation();
|
||||||
|
@ -394,9 +393,9 @@ protected:
|
||||||
std::string m_errorMessage;
|
std::string m_errorMessage;
|
||||||
|
|
||||||
//! Current configuration of OpenGL display device
|
//! Current configuration of OpenGL display device
|
||||||
Gfx::GLDeviceConfig m_deviceConfig;
|
Gfx::DeviceConfig m_deviceConfig;
|
||||||
//! Previous configuration of OpenGL display device
|
//! Previous configuration of OpenGL display device
|
||||||
Gfx::GLDeviceConfig m_lastDeviceConfig;
|
Gfx::DeviceConfig m_lastDeviceConfig;
|
||||||
|
|
||||||
//! Text set as window title
|
//! Text set as window title
|
||||||
std::string m_windowTitle;
|
std::string m_windowTitle;
|
||||||
|
|
|
@ -286,6 +286,9 @@ public:
|
||||||
//! Destroys the device, releasing every acquired resource
|
//! Destroys the device, releasing every acquired resource
|
||||||
virtual void Destroy() = 0;
|
virtual void Destroy() = 0;
|
||||||
|
|
||||||
|
//! Changes configuration
|
||||||
|
virtual void ConfigChanged(const DeviceConfig &newConfig) = 0;
|
||||||
|
|
||||||
//! Begins drawing the 3D scene
|
//! Begins drawing the 3D scene
|
||||||
virtual void BeginScene() = 0;
|
virtual void BeginScene() = 0;
|
||||||
//! Ends drawing the 3D scene
|
//! Ends drawing the 3D scene
|
||||||
|
|
|
@ -57,6 +57,10 @@ void CNullDevice::Destroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CNullDevice::ConfigChanged(const DeviceConfig &newConfig)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void CNullDevice::BeginScene()
|
void CNullDevice::BeginScene()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,8 @@ public:
|
||||||
|
|
||||||
virtual bool Create();
|
virtual bool Create();
|
||||||
virtual void Destroy();
|
virtual void Destroy();
|
||||||
|
|
||||||
|
virtual void ConfigChanged(const DeviceConfig &newConfig);
|
||||||
|
|
||||||
virtual void BeginScene();
|
virtual void BeginScene();
|
||||||
virtual void EndScene();
|
virtual void EndScene();
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
// Graphics module namespace
|
// Graphics module namespace
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
CGL21Device::CGL21Device(const GLDeviceConfig &config)
|
CGL21Device::CGL21Device(const DeviceConfig &config)
|
||||||
{
|
{
|
||||||
m_config = config;
|
m_config = config;
|
||||||
m_lighting = false;
|
m_lighting = false;
|
||||||
|
@ -378,7 +378,7 @@ void CGL21Device::Destroy()
|
||||||
m_textureStageParams.clear();
|
m_textureStageParams.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGL21Device::ConfigChanged(const GLDeviceConfig& newConfig)
|
void CGL21Device::ConfigChanged(const DeviceConfig& newConfig)
|
||||||
{
|
{
|
||||||
m_config = newConfig;
|
m_config = newConfig;
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ struct GLDevicePrivate;
|
||||||
class CGL21Device : public CDevice
|
class CGL21Device : public CDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CGL21Device(const GLDeviceConfig &config);
|
CGL21Device(const DeviceConfig &config);
|
||||||
virtual ~CGL21Device();
|
virtual ~CGL21Device();
|
||||||
|
|
||||||
virtual void DebugHook() OVERRIDE;
|
virtual void DebugHook() OVERRIDE;
|
||||||
|
@ -61,7 +61,7 @@ public:
|
||||||
virtual bool Create() OVERRIDE;
|
virtual bool Create() OVERRIDE;
|
||||||
virtual void Destroy() OVERRIDE;
|
virtual void Destroy() OVERRIDE;
|
||||||
|
|
||||||
void ConfigChanged(const GLDeviceConfig &newConfig);
|
virtual void ConfigChanged(const DeviceConfig &newConfig) OVERRIDE;
|
||||||
|
|
||||||
virtual void BeginScene() OVERRIDE;
|
virtual void BeginScene() OVERRIDE;
|
||||||
virtual void EndScene() OVERRIDE;
|
virtual void EndScene() OVERRIDE;
|
||||||
|
@ -157,7 +157,7 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Current config
|
//! Current config
|
||||||
GLDeviceConfig m_config;
|
DeviceConfig m_config;
|
||||||
|
|
||||||
//! Current world matrix
|
//! Current world matrix
|
||||||
Math::Matrix m_worldMat;
|
Math::Matrix m_worldMat;
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
// Graphics module namespace
|
// Graphics module namespace
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
CGL33Device::CGL33Device(const GLDeviceConfig &config)
|
CGL33Device::CGL33Device(const DeviceConfig &config)
|
||||||
{
|
{
|
||||||
m_config = config;
|
m_config = config;
|
||||||
m_lighting = false;
|
m_lighting = false;
|
||||||
|
@ -408,7 +408,7 @@ void CGL33Device::Destroy()
|
||||||
m_textureStageParams.clear();
|
m_textureStageParams.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGL33Device::ConfigChanged(const GLDeviceConfig& newConfig)
|
void CGL33Device::ConfigChanged(const DeviceConfig& newConfig)
|
||||||
{
|
{
|
||||||
m_config = newConfig;
|
m_config = newConfig;
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace Gfx {
|
||||||
class CGL33Device : public CDevice
|
class CGL33Device : public CDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CGL33Device(const GLDeviceConfig &config);
|
CGL33Device(const DeviceConfig &config);
|
||||||
virtual ~CGL33Device();
|
virtual ~CGL33Device();
|
||||||
|
|
||||||
virtual void DebugHook() OVERRIDE;
|
virtual void DebugHook() OVERRIDE;
|
||||||
|
@ -59,7 +59,7 @@ public:
|
||||||
virtual bool Create() OVERRIDE;
|
virtual bool Create() OVERRIDE;
|
||||||
virtual void Destroy() OVERRIDE;
|
virtual void Destroy() OVERRIDE;
|
||||||
|
|
||||||
void ConfigChanged(const GLDeviceConfig &newConfig);
|
virtual void ConfigChanged(const DeviceConfig &newConfig) OVERRIDE;
|
||||||
|
|
||||||
virtual void BeginScene() OVERRIDE;
|
virtual void BeginScene() OVERRIDE;
|
||||||
virtual void EndScene() OVERRIDE;
|
virtual void EndScene() OVERRIDE;
|
||||||
|
@ -158,7 +158,7 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Current config
|
//! Current config
|
||||||
GLDeviceConfig m_config;
|
DeviceConfig m_config;
|
||||||
|
|
||||||
//! Current world matrix
|
//! Current world matrix
|
||||||
Math::Matrix m_worldMat;
|
Math::Matrix m_worldMat;
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
// Graphics module namespace
|
// Graphics module namespace
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
CGLDevice::CGLDevice(const GLDeviceConfig &config)
|
CGLDevice::CGLDevice(const DeviceConfig &config)
|
||||||
{
|
{
|
||||||
m_config = config;
|
m_config = config;
|
||||||
m_lighting = false;
|
m_lighting = false;
|
||||||
|
@ -244,40 +244,27 @@ bool CGLDevice::Create()
|
||||||
GetLogger()->Info("Anisotropic filtering not available\n");
|
GetLogger()->Info("Anisotropic filtering not available\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.vboMode == VBO_MODE_ENABLE)
|
GetLogger()->Info("Auto-detecting VBO support\n");
|
||||||
{
|
|
||||||
GetLogger()->Info("VBO enabled by override - using VBOs\n");
|
|
||||||
SetVertexBufferType(VBT_VBO_CORE);
|
|
||||||
}
|
|
||||||
else if (m_config.vboMode == VBO_MODE_DISABLE)
|
|
||||||
{
|
|
||||||
GetLogger()->Info("VBO disabled by override - using display lists\n");
|
|
||||||
SetVertexBufferType(VBT_DISPLAY_LIST);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GetLogger()->Info("Auto-detecting VBO support\n");
|
|
||||||
|
|
||||||
// detecting VBO ARB extension
|
|
||||||
bool vboARB = glewIsSupported("GL_ARB_vertex_buffer_object");
|
|
||||||
|
|
||||||
// VBO is core OpenGL feature since 1.5
|
// detecting VBO ARB extension
|
||||||
// everything below 1.5 means no VBO support
|
bool vboARB = glewIsSupported("GL_ARB_vertex_buffer_object");
|
||||||
if (m_glMajor > 1 || m_glMinor > 4)
|
|
||||||
{
|
// VBO is core OpenGL feature since 1.5
|
||||||
GetLogger()->Info("Core VBO supported\n", m_glMajor, m_glMinor);
|
// everything below 1.5 means no VBO support
|
||||||
SetVertexBufferType(VBT_VBO_CORE);
|
if (m_glMajor > 1 || m_glMinor > 4)
|
||||||
}
|
{
|
||||||
else if(vboARB) // VBO ARB extension available
|
GetLogger()->Info("Core VBO supported\n", m_glMajor, m_glMinor);
|
||||||
{
|
m_vertexBufferType = VBT_VBO_CORE;
|
||||||
GetLogger()->Info("ARB VBO supported\n");
|
}
|
||||||
SetVertexBufferType(VBT_VBO_ARB);
|
else if(vboARB) // VBO ARB extension available
|
||||||
}
|
{
|
||||||
else // no VBO support
|
GetLogger()->Info("ARB VBO supported\n");
|
||||||
{
|
m_vertexBufferType = VBT_VBO_ARB;
|
||||||
GetLogger()->Info("VBO not supported\n");
|
}
|
||||||
SetVertexBufferType(VBT_DISPLAY_LIST);
|
else // no VBO support
|
||||||
}
|
{
|
||||||
|
GetLogger()->Info("VBO not supported\n");
|
||||||
|
m_vertexBufferType = VBT_DISPLAY_LIST;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,7 +323,7 @@ void CGLDevice::Destroy()
|
||||||
m_textureStageParams.clear();
|
m_textureStageParams.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGLDevice::ConfigChanged(const GLDeviceConfig& newConfig)
|
void CGLDevice::ConfigChanged(const DeviceConfig& newConfig)
|
||||||
{
|
{
|
||||||
m_config = newConfig;
|
m_config = newConfig;
|
||||||
|
|
||||||
|
@ -346,18 +333,6 @@ void CGLDevice::ConfigChanged(const GLDeviceConfig& newConfig)
|
||||||
Create();
|
Create();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGLDevice::SetUseVbo(bool vboAvailable)
|
|
||||||
{
|
|
||||||
m_vboAvailable = vboAvailable;
|
|
||||||
m_vertexBufferType = vboAvailable ? VBT_VBO_CORE : VBT_DISPLAY_LIST;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CGLDevice::SetVertexBufferType(VertexBufferType type)
|
|
||||||
{
|
|
||||||
m_vertexBufferType = type;
|
|
||||||
m_vboAvailable = (type != VBT_DISPLAY_LIST);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CGLDevice::BeginScene()
|
void CGLDevice::BeginScene()
|
||||||
{
|
{
|
||||||
Clear();
|
Clear();
|
||||||
|
|
|
@ -70,7 +70,7 @@ struct GLDevicePrivate;
|
||||||
class CGLDevice : public CDevice
|
class CGLDevice : public CDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CGLDevice(const GLDeviceConfig &config);
|
CGLDevice(const DeviceConfig &config);
|
||||||
virtual ~CGLDevice();
|
virtual ~CGLDevice();
|
||||||
|
|
||||||
virtual void DebugHook() OVERRIDE;
|
virtual void DebugHook() OVERRIDE;
|
||||||
|
@ -79,10 +79,7 @@ public:
|
||||||
virtual bool Create() OVERRIDE;
|
virtual bool Create() OVERRIDE;
|
||||||
virtual void Destroy() OVERRIDE;
|
virtual void Destroy() OVERRIDE;
|
||||||
|
|
||||||
void ConfigChanged(const GLDeviceConfig &newConfig);
|
virtual void ConfigChanged(const DeviceConfig &newConfig) OVERRIDE;
|
||||||
|
|
||||||
void SetUseVbo(bool useVbo);
|
|
||||||
void SetVertexBufferType(VertexBufferType type);
|
|
||||||
|
|
||||||
virtual void BeginScene() OVERRIDE;
|
virtual void BeginScene() OVERRIDE;
|
||||||
virtual void EndScene() OVERRIDE;
|
virtual void EndScene() OVERRIDE;
|
||||||
|
@ -176,7 +173,7 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Current config
|
//! Current config
|
||||||
GLDeviceConfig m_config;
|
DeviceConfig m_config;
|
||||||
|
|
||||||
//! Current world matrix
|
//! Current world matrix
|
||||||
Math::Matrix m_worldMat;
|
Math::Matrix m_worldMat;
|
||||||
|
|
|
@ -28,22 +28,10 @@
|
||||||
// Graphics module namespace
|
// Graphics module namespace
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
GLDeviceConfig::GLDeviceConfig()
|
|
||||||
{
|
|
||||||
LoadDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
GLuint textureCoordinates[] = { GL_S, GL_T, GL_R, GL_Q };
|
GLuint textureCoordinates[] = { GL_S, GL_T, GL_R, GL_Q };
|
||||||
GLuint textureCoordGen[] = { GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R, GL_TEXTURE_GEN_Q };
|
GLuint textureCoordGen[] = { GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R, GL_TEXTURE_GEN_Q };
|
||||||
|
|
||||||
void GLDeviceConfig::LoadDefault()
|
CDevice* CreateDevice(const DeviceConfig &config, const char *name)
|
||||||
{
|
|
||||||
DeviceConfig::LoadDefault();
|
|
||||||
|
|
||||||
vboMode = VBO_MODE_AUTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
CDevice* CreateDevice(const GLDeviceConfig &config, const char *name)
|
|
||||||
{
|
{
|
||||||
if (name == nullptr) return nullptr;
|
if (name == nullptr) return nullptr;
|
||||||
else if (std::strcmp(name, "default") == 0) return new CGLDevice(config);
|
else if (std::strcmp(name, "default") == 0) return new CGLDevice(config);
|
||||||
|
|
|
@ -31,34 +31,8 @@
|
||||||
namespace Gfx
|
namespace Gfx
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
\enum VBOMode
|
|
||||||
\brief VBO autodetect/override
|
|
||||||
*/
|
|
||||||
enum VBOMode
|
|
||||||
{
|
|
||||||
VBO_MODE_ENABLE, //! < override: enable
|
|
||||||
VBO_MODE_DISABLE, //! < override: disable
|
|
||||||
VBO_MODE_AUTO //! < autodetect
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
\struct GLDeviceConfig
|
|
||||||
\brief Additional config with OpenGL-specific settings */
|
|
||||||
struct GLDeviceConfig : public DeviceConfig
|
|
||||||
{
|
|
||||||
//! VBO override/autodetect
|
|
||||||
VBOMode vboMode;
|
|
||||||
|
|
||||||
//! Constructor calls LoadDefaults()
|
|
||||||
GLDeviceConfig();
|
|
||||||
|
|
||||||
//! Loads the default values
|
|
||||||
void LoadDefault();
|
|
||||||
};
|
|
||||||
|
|
||||||
//! Creates OpenGL device
|
//! Creates OpenGL device
|
||||||
CDevice* CreateDevice(const GLDeviceConfig &config, const char *name);
|
CDevice* CreateDevice(const DeviceConfig &config, const char *name);
|
||||||
|
|
||||||
//! Returns OpenGL version as one number.
|
//! Returns OpenGL version as one number.
|
||||||
// First digit is major part, second digit is minor part.
|
// First digit is major part, second digit is minor part.
|
||||||
|
|
Loading…
Reference in New Issue