3DScene layer_editing_allowed method moved to c++
This commit is contained in:
parent
c51ce63b9b
commit
a8311bd1bd
@ -350,16 +350,16 @@ sub Destroy {
|
|||||||
# }
|
# }
|
||||||
# return $self->{layer_editing_enabled};
|
# return $self->{layer_editing_enabled};
|
||||||
#}
|
#}
|
||||||
|
#
|
||||||
|
#sub layer_editing_allowed {
|
||||||
|
# my ($self) = @_;
|
||||||
|
# # Allow layer editing if either the shaders were not initialized yet and we don't know
|
||||||
|
# # whether it will be possible to initialize them,
|
||||||
|
# # or if the initialization was done already and it failed.
|
||||||
|
# return ! (defined($self->{layer_editing_initialized}) && $self->{layer_editing_initialized} == 2);
|
||||||
|
#}
|
||||||
#==============================================================================================================================
|
#==============================================================================================================================
|
||||||
|
|
||||||
sub layer_editing_allowed {
|
|
||||||
my ($self) = @_;
|
|
||||||
# Allow layer editing if either the shaders were not initialized yet and we don't know
|
|
||||||
# whether it will be possible to initialize them,
|
|
||||||
# or if the initialization was done already and it failed.
|
|
||||||
return ! (defined($self->{layer_editing_initialized}) && $self->{layer_editing_initialized} == 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub _first_selected_object_id_for_variable_layer_height_editing {
|
sub _first_selected_object_id_for_variable_layer_height_editing {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
for my $i (0..$#{$self->volumes}) {
|
for my $i (0..$#{$self->volumes}) {
|
||||||
|
@ -1836,7 +1836,10 @@ sub on_config_change {
|
|||||||
#==============================================================================================================================
|
#==============================================================================================================================
|
||||||
$self->{canvas3D}->Refresh;
|
$self->{canvas3D}->Refresh;
|
||||||
$self->{canvas3D}->Update;
|
$self->{canvas3D}->Update;
|
||||||
} elsif ($self->{canvas3D}->layer_editing_allowed) {
|
#==============================================================================================================================
|
||||||
|
} elsif (Slic3r::GUI::_3DScene::is_layers_editing_allowed($self->{canvas3D})) {
|
||||||
|
# } elsif ($self->{canvas3D}->layer_editing_allowed) {
|
||||||
|
#==============================================================================================================================
|
||||||
# Want to allow the layer editing, but do it only if the OpenGL supports it.
|
# Want to allow the layer editing, but do it only if the OpenGL supports it.
|
||||||
if ($self->{htoolbar}) {
|
if ($self->{htoolbar}) {
|
||||||
$self->{htoolbar}->EnableTool(TB_LAYER_EDITING, 1);
|
$self->{htoolbar}->EnableTool(TB_LAYER_EDITING, 1);
|
||||||
@ -1997,7 +2000,10 @@ sub object_list_changed {
|
|||||||
|
|
||||||
# Enable/disable buttons depending on whether there are any objects on the platter.
|
# Enable/disable buttons depending on whether there are any objects on the platter.
|
||||||
my $have_objects = @{$self->{objects}} ? 1 : 0;
|
my $have_objects = @{$self->{objects}} ? 1 : 0;
|
||||||
my $variable_layer_height_allowed = $self->{config}->variable_layer_height && $self->{canvas3D}->layer_editing_allowed;
|
#==============================================================================================================================
|
||||||
|
my $variable_layer_height_allowed = $self->{config}->variable_layer_height && Slic3r::GUI::_3DScene::is_layers_editing_allowed($self->{canvas3D});
|
||||||
|
# my $variable_layer_height_allowed = $self->{config}->variable_layer_height && $self->{canvas3D}->layer_editing_allowed;
|
||||||
|
#==============================================================================================================================
|
||||||
if ($self->{htoolbar}) {
|
if ($self->{htoolbar}) {
|
||||||
# On OSX or Linux
|
# On OSX or Linux
|
||||||
$self->{htoolbar}->EnableTool($_, $have_objects)
|
$self->{htoolbar}->EnableTool($_, $have_objects)
|
||||||
|
@ -1939,6 +1939,11 @@ bool _3DScene::is_picking_enabled(wxGLCanvas* canvas)
|
|||||||
return s_canvas_mgr.is_picking_enabled(canvas);
|
return s_canvas_mgr.is_picking_enabled(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool _3DScene::is_layers_editing_allowed(wxGLCanvas* canvas)
|
||||||
|
{
|
||||||
|
return s_canvas_mgr.is_layers_editing_allowed(canvas);
|
||||||
|
}
|
||||||
|
|
||||||
bool _3DScene::is_multisample_allowed(wxGLCanvas* canvas)
|
bool _3DScene::is_multisample_allowed(wxGLCanvas* canvas)
|
||||||
{
|
{
|
||||||
return s_canvas_mgr.is_multisample_allowed(canvas);
|
return s_canvas_mgr.is_multisample_allowed(canvas);
|
||||||
|
@ -598,6 +598,7 @@ public:
|
|||||||
|
|
||||||
static bool is_layers_editing_enabled(wxGLCanvas* canvas);
|
static bool is_layers_editing_enabled(wxGLCanvas* canvas);
|
||||||
static bool is_picking_enabled(wxGLCanvas* canvas);
|
static bool is_picking_enabled(wxGLCanvas* canvas);
|
||||||
|
static bool is_layers_editing_allowed(wxGLCanvas* canvas);
|
||||||
static bool is_multisample_allowed(wxGLCanvas* canvas);
|
static bool is_multisample_allowed(wxGLCanvas* canvas);
|
||||||
|
|
||||||
static void enable_layers_editing(wxGLCanvas* canvas, bool enable);
|
static void enable_layers_editing(wxGLCanvas* canvas, bool enable);
|
||||||
|
@ -589,7 +589,7 @@ GLCanvas3D::LayersEditing::GLTextureData::GLTextureData(unsigned int id, int wid
|
|||||||
}
|
}
|
||||||
|
|
||||||
GLCanvas3D::LayersEditing::LayersEditing()
|
GLCanvas3D::LayersEditing::LayersEditing()
|
||||||
: m_allowed(false)
|
: m_use_legacy_opengl(false)
|
||||||
, m_enabled(false)
|
, m_enabled(false)
|
||||||
, m_z_texture_id(0)
|
, m_z_texture_id(0)
|
||||||
, m_band_width(2.0f)
|
, m_band_width(2.0f)
|
||||||
@ -636,12 +636,12 @@ bool GLCanvas3D::LayersEditing::init(const std::string& vertex_shader_filename,
|
|||||||
|
|
||||||
bool GLCanvas3D::LayersEditing::is_allowed() const
|
bool GLCanvas3D::LayersEditing::is_allowed() const
|
||||||
{
|
{
|
||||||
return m_allowed;
|
return m_use_legacy_opengl && m_shader.is_initialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLCanvas3D::LayersEditing::set_allowed(bool allowed)
|
void GLCanvas3D::LayersEditing::set_use_legacy_opengl(bool use_legacy_opengl)
|
||||||
{
|
{
|
||||||
m_allowed = allowed;
|
m_use_legacy_opengl = use_legacy_opengl;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GLCanvas3D::LayersEditing::is_enabled() const
|
bool GLCanvas3D::LayersEditing::is_enabled() const
|
||||||
@ -651,7 +651,7 @@ bool GLCanvas3D::LayersEditing::is_enabled() const
|
|||||||
|
|
||||||
void GLCanvas3D::LayersEditing::set_enabled(bool enabled)
|
void GLCanvas3D::LayersEditing::set_enabled(bool enabled)
|
||||||
{
|
{
|
||||||
m_enabled = m_allowed && m_shader.is_initialized() && enabled;
|
m_enabled = is_allowed() && enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int GLCanvas3D::LayersEditing::get_z_texture_id() const
|
unsigned int GLCanvas3D::LayersEditing::get_z_texture_id() const
|
||||||
@ -1030,7 +1030,7 @@ bool GLCanvas3D::init(bool useVBOs, bool use_legacy_opengl)
|
|||||||
if (useVBOs && !m_layers_editing.init("variable_layer_height.vs", "variable_layer_height.fs"))
|
if (useVBOs && !m_layers_editing.init("variable_layer_height.vs", "variable_layer_height.fs"))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_layers_editing.set_allowed(!use_legacy_opengl);
|
m_layers_editing.set_use_legacy_opengl(!use_legacy_opengl);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1335,6 +1335,11 @@ bool GLCanvas3D::is_picking_enabled() const
|
|||||||
return m_picking_enabled;
|
return m_picking_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GLCanvas3D::is_layers_editing_allowed() const
|
||||||
|
{
|
||||||
|
return m_layers_editing.is_allowed();
|
||||||
|
}
|
||||||
|
|
||||||
bool GLCanvas3D::is_multisample_allowed() const
|
bool GLCanvas3D::is_multisample_allowed() const
|
||||||
{
|
{
|
||||||
return m_multisample_allowed;
|
return m_multisample_allowed;
|
||||||
|
@ -211,7 +211,7 @@ public:
|
|||||||
GLTextureData(unsigned int id, int width, int height);
|
GLTextureData(unsigned int id, int width, int height);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool m_allowed;
|
bool m_use_legacy_opengl;
|
||||||
bool m_enabled;
|
bool m_enabled;
|
||||||
Shader m_shader;
|
Shader m_shader;
|
||||||
unsigned int m_z_texture_id;
|
unsigned int m_z_texture_id;
|
||||||
@ -226,7 +226,7 @@ public:
|
|||||||
bool init(const std::string& vertex_shader_filename, const std::string& fragment_shader_filename);
|
bool init(const std::string& vertex_shader_filename, const std::string& fragment_shader_filename);
|
||||||
|
|
||||||
bool is_allowed() const;
|
bool is_allowed() const;
|
||||||
void set_allowed(bool allowed);
|
void set_use_legacy_opengl(bool use_legacy_opengl);
|
||||||
|
|
||||||
bool is_enabled() const;
|
bool is_enabled() const;
|
||||||
void set_enabled(bool enabled);
|
void set_enabled(bool enabled);
|
||||||
@ -360,6 +360,7 @@ public:
|
|||||||
|
|
||||||
bool is_layers_editing_enabled() const;
|
bool is_layers_editing_enabled() const;
|
||||||
bool is_picking_enabled() const;
|
bool is_picking_enabled() const;
|
||||||
|
bool is_layers_editing_allowed() const;
|
||||||
bool is_multisample_allowed() const;
|
bool is_multisample_allowed() const;
|
||||||
|
|
||||||
void enable_layers_editing(bool enable);
|
void enable_layers_editing(bool enable);
|
||||||
|
@ -380,6 +380,12 @@ bool GLCanvas3DManager::is_picking_enabled(wxGLCanvas* canvas) const
|
|||||||
return (it != m_canvases.end()) ? it->second->is_picking_enabled() : false;
|
return (it != m_canvases.end()) ? it->second->is_picking_enabled() : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GLCanvas3DManager::is_layers_editing_allowed(wxGLCanvas* canvas) const
|
||||||
|
{
|
||||||
|
CanvasesMap::const_iterator it = _get_canvas(canvas);
|
||||||
|
return (it != m_canvases.end()) ? it->second->is_layers_editing_allowed() : false;
|
||||||
|
}
|
||||||
|
|
||||||
bool GLCanvas3DManager::is_multisample_allowed(wxGLCanvas* canvas) const
|
bool GLCanvas3DManager::is_multisample_allowed(wxGLCanvas* canvas) const
|
||||||
{
|
{
|
||||||
CanvasesMap::const_iterator it = _get_canvas(canvas);
|
CanvasesMap::const_iterator it = _get_canvas(canvas);
|
||||||
|
@ -98,6 +98,7 @@ public:
|
|||||||
|
|
||||||
bool is_layers_editing_enabled(wxGLCanvas* canvas) const;
|
bool is_layers_editing_enabled(wxGLCanvas* canvas) const;
|
||||||
bool is_picking_enabled(wxGLCanvas* canvas) const;
|
bool is_picking_enabled(wxGLCanvas* canvas) const;
|
||||||
|
bool is_layers_editing_allowed(wxGLCanvas* canvas) const;
|
||||||
bool is_multisample_allowed(wxGLCanvas* canvas) const;
|
bool is_multisample_allowed(wxGLCanvas* canvas) const;
|
||||||
|
|
||||||
void enable_layers_editing(wxGLCanvas* canvas, bool enable);
|
void enable_layers_editing(wxGLCanvas* canvas, bool enable);
|
||||||
|
@ -468,6 +468,14 @@ is_picking_enabled(canvas)
|
|||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
bool
|
||||||
|
is_layers_editing_allowed(canvas)
|
||||||
|
SV *canvas;
|
||||||
|
CODE:
|
||||||
|
RETVAL = _3DScene::is_layers_editing_allowed((wxGLCanvas*)wxPli_sv_2_object(aTHX_ canvas, "Wx::GLCanvas"));
|
||||||
|
OUTPUT:
|
||||||
|
RETVAL
|
||||||
|
|
||||||
bool
|
bool
|
||||||
is_multisample_allowed(canvas)
|
is_multisample_allowed(canvas)
|
||||||
SV *canvas;
|
SV *canvas;
|
||||||
|
Loading…
Reference in New Issue
Block a user