mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 21:16:01 +08:00
SPE-2124: Added command line option 'opengl-aa' to allow the user to turn on the automatic selection of max number of supported samples for OpenGL antialising
This commit is contained in:
parent
8c51fce5ed
commit
82001626dd
@ -181,13 +181,23 @@ int CLI::run(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
#ifdef SLIC3R_GUI
|
#ifdef SLIC3R_GUI
|
||||||
|
std::vector<std::string>::iterator it;
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
bool opengl_aa = false;
|
||||||
|
it = std::find(m_actions.begin(), m_actions.end(), "opengl-aa");
|
||||||
|
if (it != m_actions.end()) {
|
||||||
|
start_gui = true;
|
||||||
|
opengl_aa = true;
|
||||||
|
m_actions.erase(it);
|
||||||
|
}
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
#if ENABLE_GL_CORE_PROFILE
|
#if ENABLE_GL_CORE_PROFILE
|
||||||
std::pair<int, int> opengl_version = { 0, 0 };
|
std::pair<int, int> opengl_version = { 0, 0 };
|
||||||
bool opengl_debug = false;
|
bool opengl_debug = false;
|
||||||
bool opengl_compatibility_profile = false;
|
bool opengl_compatibility_profile = false;
|
||||||
|
|
||||||
// search for special keys into command line parameters
|
// search for special keys into command line parameters
|
||||||
auto it = std::find(m_actions.begin(), m_actions.end(), "gcodeviewer");
|
it = std::find(m_actions.begin(), m_actions.end(), "gcodeviewer");
|
||||||
if (it != m_actions.end()) {
|
if (it != m_actions.end()) {
|
||||||
start_gui = true;
|
start_gui = true;
|
||||||
start_as_gcodeviewer = true;
|
start_as_gcodeviewer = true;
|
||||||
@ -242,14 +252,18 @@ int CLI::run(int argc, char **argv)
|
|||||||
#endif // ENABLE_GL_CORE_PROFILE
|
#endif // ENABLE_GL_CORE_PROFILE
|
||||||
#else // SLIC3R_GUI
|
#else // SLIC3R_GUI
|
||||||
// If there is no GUI, we shall ignore the parameters. Remove them from the list.
|
// If there is no GUI, we shall ignore the parameters. Remove them from the list.
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
for (const std::string& s : { "opengl-version", "opengl-compatibility", "opengl-debug", "opengl-aa", "gcodeviewer" }) {
|
||||||
|
#else
|
||||||
for (const std::string& s : { "opengl-version", "opengl-compatibility", "opengl-debug", "gcodeviewer" }) {
|
for (const std::string& s : { "opengl-version", "opengl-compatibility", "opengl-debug", "gcodeviewer" }) {
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
auto it = std::find(m_actions.cbegin(), m_actions.cend(), s);
|
auto it = std::find(m_actions.cbegin(), m_actions.cend(), s);
|
||||||
if (it != m_actions.end()) {
|
if (it != m_actions.end()) {
|
||||||
boost::nowide::cerr << "Parameter '" << s << "' is ignored, this PrusaSlicer build is CLI only." << std::endl;
|
boost::nowide::cerr << "Parameter '" << s << "' is ignored, this PrusaSlicer build is CLI only." << std::endl;
|
||||||
m_actions.erase(it);
|
m_actions.erase(it);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif // SLIC3R_GUI
|
||||||
|
|
||||||
|
|
||||||
// Read input file(s) if any.
|
// Read input file(s) if any.
|
||||||
@ -743,6 +757,9 @@ int CLI::run(int argc, char **argv)
|
|||||||
params.start_downloader = start_downloader;
|
params.start_downloader = start_downloader;
|
||||||
params.download_url = download_url;
|
params.download_url = download_url;
|
||||||
params.delete_after_load = delete_after_load;
|
params.delete_after_load = delete_after_load;
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
params.opengl_aa = opengl_aa;
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
#if ENABLE_GL_CORE_PROFILE
|
#if ENABLE_GL_CORE_PROFILE
|
||||||
params.opengl_version = opengl_version;
|
params.opengl_version = opengl_version;
|
||||||
params.opengl_debug = opengl_debug;
|
params.opengl_debug = opengl_debug;
|
||||||
|
@ -4915,6 +4915,14 @@ CLIActionsConfigDef::CLIActionsConfigDef()
|
|||||||
def->cli = "gcodeviewer";
|
def->cli = "gcodeviewer";
|
||||||
def->set_default_value(new ConfigOptionBool(false));
|
def->set_default_value(new ConfigOptionBool(false));
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
def = this->add("opengl-aa", coBool);
|
||||||
|
def->label = L("Automatic OpenGL antialising samples number selection");
|
||||||
|
def->tooltip = L("Automatically select the highest number of samples for OpenGL antialising.");
|
||||||
|
def->cli = "opengl-aa";
|
||||||
|
def->set_default_value(new ConfigOptionBool(false));
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
|
||||||
#if ENABLE_GL_CORE_PROFILE
|
#if ENABLE_GL_CORE_PROFILE
|
||||||
def = this->add("opengl-version", coString);
|
def = this->add("opengl-version", coString);
|
||||||
def->label = L("OpenGL version");
|
def->label = L("OpenGL version");
|
||||||
|
@ -54,6 +54,9 @@
|
|||||||
// Enable OpenGL core profile context (tested against Mesa 20.1.8 on Windows)
|
// Enable OpenGL core profile context (tested against Mesa 20.1.8 on Windows)
|
||||||
#define ENABLE_GL_CORE_PROFILE (1 && !ENABLE_OPENGL_ES)
|
#define ENABLE_GL_CORE_PROFILE (1 && !ENABLE_OPENGL_ES)
|
||||||
|
|
||||||
|
// Enable automatic detection of highest number of samples supported for OpenGL antialising
|
||||||
|
#define ENABLE_OPENGL_AUTO_AA_SAMPLES 1
|
||||||
|
|
||||||
// Enable imgui dialog which allows to set the parameters used to export binarized gcode
|
// Enable imgui dialog which allows to set the parameters used to export binarized gcode
|
||||||
#define ENABLE_BINARIZED_GCODE_DEBUG_WINDOW 0
|
#define ENABLE_BINARIZED_GCODE_DEBUG_WINDOW 0
|
||||||
|
|
||||||
|
@ -2652,11 +2652,7 @@ void GUI_App::open_preferences(const std::string& highlight_option /*= std::stri
|
|||||||
if (mainframe->preferences_dialog->recreate_GUI())
|
if (mainframe->preferences_dialog->recreate_GUI())
|
||||||
recreate_GUI(_L("Restart application") + dots);
|
recreate_GUI(_L("Restart application") + dots);
|
||||||
|
|
||||||
#if ENABLE_GCODE_LINES_ID_IN_H_SLIDER
|
|
||||||
if (dlg.seq_top_layer_only_changed() || dlg.seq_seq_top_gcode_indices_changed())
|
|
||||||
#else
|
|
||||||
if (mainframe->preferences_dialog->seq_top_layer_only_changed())
|
if (mainframe->preferences_dialog->seq_top_layer_only_changed())
|
||||||
#endif // ENABLE_GCODE_LINES_ID_IN_H_SLIDER
|
|
||||||
this->plater_->refresh_print();
|
this->plater_->refresh_print();
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -38,6 +38,9 @@ struct GUI_InitParams
|
|||||||
bool opengl_debug;
|
bool opengl_debug;
|
||||||
bool opengl_compatibiity_profile;
|
bool opengl_compatibiity_profile;
|
||||||
#endif // ENABLE_GL_CORE_PROFILE
|
#endif // ENABLE_GL_CORE_PROFILE
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
bool opengl_aa;
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
};
|
};
|
||||||
|
|
||||||
int GUI_Run(GUI_InitParams ¶ms);
|
int GUI_Run(GUI_InitParams ¶ms);
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
#include "GUI_Preview.hpp"
|
#include "GUI_Preview.hpp"
|
||||||
#include "GUI_App.hpp"
|
#include "GUI_App.hpp"
|
||||||
#include "GUI.hpp"
|
#include "GUI.hpp"
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
#include "GUI_Init.hpp"
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
#include "I18N.hpp"
|
#include "I18N.hpp"
|
||||||
#include "3DScene.hpp"
|
#include "3DScene.hpp"
|
||||||
#include "BackgroundSlicingProcess.hpp"
|
#include "BackgroundSlicingProcess.hpp"
|
||||||
@ -61,7 +64,12 @@ bool View3D::init(wxWindow* parent, Bed3D& bed, Model* model, DynamicPrintConfig
|
|||||||
if (!Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 /* disable wxTAB_TRAVERSAL */))
|
if (!Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 /* disable wxTAB_TRAVERSAL */))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
const GUI_InitParams* const init_params = wxGetApp().init_params;
|
||||||
|
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this, (init_params != nullptr) ? init_params->opengl_aa : false);
|
||||||
|
#else
|
||||||
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this);
|
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this);
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
if (m_canvas_widget == nullptr)
|
if (m_canvas_widget == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -205,7 +213,12 @@ bool Preview::init(wxWindow* parent, Bed3D& bed, Model* model)
|
|||||||
SetBackgroundColour(GetParent()->GetBackgroundColour());
|
SetBackgroundColour(GetParent()->GetBackgroundColour());
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
const GUI_InitParams* const init_params = wxGetApp().init_params;
|
||||||
|
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this, (init_params != nullptr) ? init_params->opengl_aa : false);
|
||||||
|
#else
|
||||||
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this);
|
m_canvas_widget = OpenGLManager::create_wxglcanvas(*this);
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
if (m_canvas_widget == nullptr)
|
if (m_canvas_widget == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -131,8 +131,10 @@ void OpenGLManager::GLInfo::detect() const
|
|||||||
if (!GLEW_ARB_compatibility)
|
if (!GLEW_ARB_compatibility)
|
||||||
*const_cast<bool*>(&m_core_profile) = true;
|
*const_cast<bool*>(&m_core_profile) = true;
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
int* samples = const_cast<int*>(&m_samples);
|
int* samples = const_cast<int*>(&m_samples);
|
||||||
glsafe(::glGetIntegerv(GL_SAMPLES, samples));
|
glsafe(::glGetIntegerv(GL_SAMPLES, samples));
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
|
||||||
*const_cast<bool*>(&m_detected) = true;
|
*const_cast<bool*>(&m_detected) = true;
|
||||||
}
|
}
|
||||||
@ -212,7 +214,9 @@ std::string OpenGLManager::GLInfo::to_string(bool for_github) const
|
|||||||
out << b_start << "Renderer: " << b_end << m_renderer << line_end;
|
out << b_start << "Renderer: " << b_end << m_renderer << line_end;
|
||||||
out << b_start << "GLSL version: " << b_end << m_glsl_version << line_end;
|
out << b_start << "GLSL version: " << b_end << m_glsl_version << line_end;
|
||||||
out << b_start << "Textures compression: " << b_end << (are_compressed_textures_supported() ? "Enabled" : "Disabled") << line_end;
|
out << b_start << "Textures compression: " << b_end << (are_compressed_textures_supported() ? "Enabled" : "Disabled") << line_end;
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
out << b_start << "Mutisampling: " << b_end << (can_multisample() ? "Enabled (" + std::to_string(m_samples) + " samples)" : "Disabled") << line_end;
|
out << b_start << "Mutisampling: " << b_end << (can_multisample() ? "Enabled (" + std::to_string(m_samples) + " samples)" : "Disabled") << line_end;
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
|
||||||
{
|
{
|
||||||
#if ENABLE_GL_CORE_PROFILE
|
#if ENABLE_GL_CORE_PROFILE
|
||||||
@ -541,15 +545,20 @@ wxGLContext* OpenGLManager::init_glcontext(wxGLCanvas& canvas)
|
|||||||
return m_context;
|
return m_context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent, bool enable_auto_aa_samples)
|
||||||
|
#else
|
||||||
wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent)
|
wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent)
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
{
|
{
|
||||||
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
wxGLAttributes attribList;
|
wxGLAttributes attribList;
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
s_multisample = EMultisampleState::Disabled;
|
s_multisample = EMultisampleState::Disabled;
|
||||||
// Disable multi-sampling on ChromeOS, as the OpenGL virtualization swaps Red/Blue channels with multi-sampling enabled,
|
// Disable multi-sampling on ChromeOS, as the OpenGL virtualization swaps Red/Blue channels with multi-sampling enabled,
|
||||||
// at least on some platforms.
|
// at least on some platforms.
|
||||||
if (platform_flavor() != PlatformFlavor::LinuxOnChromium) {
|
if (platform_flavor() != PlatformFlavor::LinuxOnChromium) {
|
||||||
for (int i = 16; i >= 4; i /= 2) {
|
for (int i = enable_auto_aa_samples ? 16 : 4; i >= 4; i /= 2) {
|
||||||
attribList.Reset();
|
attribList.Reset();
|
||||||
attribList.PlatformDefaults().RGBA().DoubleBuffer().MinRGBA(8, 8, 8, 8).Depth(24).SampleBuffers(1).Samplers(i).EndList();
|
attribList.PlatformDefaults().RGBA().DoubleBuffer().MinRGBA(8, 8, 8, 8).Depth(24).SampleBuffers(1).Samplers(i).EndList();
|
||||||
if (wxGLCanvas::IsDisplaySupported(attribList)) {
|
if (wxGLCanvas::IsDisplaySupported(attribList)) {
|
||||||
@ -558,6 +567,9 @@ wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
attribList.PlatformDefaults().RGBA().DoubleBuffer().MinRGBA(8, 8, 8, 8).Depth(24).SampleBuffers(1).Samplers(4).EndList();
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
// on MAC the method RGBA() has no effect
|
// on MAC the method RGBA() has no effect
|
||||||
attribList.SetNeedsARB(true);
|
attribList.SetNeedsARB(true);
|
||||||
@ -580,7 +592,14 @@ wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent)
|
|||||||
};
|
};
|
||||||
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
|
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
if (s_multisample != EMultisampleState::Enabled)
|
if (s_multisample != EMultisampleState::Enabled)
|
||||||
|
#else
|
||||||
|
if (s_multisample == EMultisampleState::Unknown)
|
||||||
|
detect_multisample(attribList);
|
||||||
|
|
||||||
|
if (!can_multisample())
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
{
|
{
|
||||||
attribList.Reset();
|
attribList.Reset();
|
||||||
@ -599,8 +618,12 @@ wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent)
|
|||||||
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !ENABLE_GL_CORE_PROFILE && !ENABLE_OPENGL_ES
|
#if !ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
|
void OpenGLManager::detect_multisample(const wxGLAttributes& attribList)
|
||||||
|
#else
|
||||||
void OpenGLManager::detect_multisample(int* attribList)
|
void OpenGLManager::detect_multisample(int* attribList)
|
||||||
|
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
{
|
{
|
||||||
int wxVersion = wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + wxRELEASE_NUMBER;
|
int wxVersion = wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + wxRELEASE_NUMBER;
|
||||||
bool enable_multisample = wxVersion >= 30003;
|
bool enable_multisample = wxVersion >= 30003;
|
||||||
@ -614,7 +637,7 @@ void OpenGLManager::detect_multisample(int* attribList)
|
|||||||
// Alternative method: it was working on previous version of wxWidgets but not with the latest, at least on Windows
|
// Alternative method: it was working on previous version of wxWidgets but not with the latest, at least on Windows
|
||||||
// s_multisample = enable_multisample && wxGLCanvas::IsExtensionSupported("WGL_ARB_multisample");
|
// s_multisample = enable_multisample && wxGLCanvas::IsExtensionSupported("WGL_ARB_multisample");
|
||||||
}
|
}
|
||||||
#endif // !ENABLE_GL_CORE_PROFILE && !ENABLE_OPENGL_ES
|
#endif // !ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
} // namespace Slic3r
|
} // namespace Slic3r
|
||||||
|
@ -34,9 +34,9 @@ public:
|
|||||||
bool m_core_profile{ false };
|
bool m_core_profile{ false };
|
||||||
int m_max_tex_size{ 0 };
|
int m_max_tex_size{ 0 };
|
||||||
float m_max_anisotropy{ 0.0f };
|
float m_max_anisotropy{ 0.0f };
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
int m_samples{ 0 };
|
int m_samples{ 0 };
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
|
||||||
std::string m_version_string;
|
std::string m_version_string;
|
||||||
Semver m_version = Semver::invalid();
|
Semver m_version = Semver::invalid();
|
||||||
@ -136,14 +136,22 @@ public:
|
|||||||
static bool can_multisample() { return s_multisample == EMultisampleState::Enabled; }
|
static bool can_multisample() { return s_multisample == EMultisampleState::Enabled; }
|
||||||
static bool are_framebuffers_supported() { return (s_framebuffers_type != EFramebufferType::Unknown); }
|
static bool are_framebuffers_supported() { return (s_framebuffers_type != EFramebufferType::Unknown); }
|
||||||
static EFramebufferType get_framebuffers_type() { return s_framebuffers_type; }
|
static EFramebufferType get_framebuffers_type() { return s_framebuffers_type; }
|
||||||
|
#if ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
static wxGLCanvas* create_wxglcanvas(wxWindow& parent, bool enable_auto_aa_samples);
|
||||||
|
#else
|
||||||
static wxGLCanvas* create_wxglcanvas(wxWindow& parent);
|
static wxGLCanvas* create_wxglcanvas(wxWindow& parent);
|
||||||
|
#endif // ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
static const GLInfo& get_gl_info() { return s_gl_info; }
|
static const GLInfo& get_gl_info() { return s_gl_info; }
|
||||||
static bool force_power_of_two_textures() { return s_force_power_of_two_textures; }
|
static bool force_power_of_two_textures() { return s_force_power_of_two_textures; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#if !ENABLE_GL_CORE_PROFILE && !ENABLE_OPENGL_ES
|
#if !ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
|
#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
|
static void detect_multisample(const wxGLAttributes& attribList);
|
||||||
|
#else
|
||||||
static void detect_multisample(int* attribList);
|
static void detect_multisample(int* attribList);
|
||||||
#endif // !ENABLE_GL_CORE_PROFILE && !ENABLE_OPENGL_ES
|
#endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
|
||||||
|
#endif // !ENABLE_OPENGL_AUTO_AA_SAMPLES
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
|
Loading…
x
Reference in New Issue
Block a user