mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-06 07:15:11 +08:00
Merge branch 'master' of https://github.com/Prusa3d/Slic3r
This commit is contained in:
commit
fc97ec9cd9
@ -62,3 +62,5 @@
|
|||||||
#define ENABLE_GENERIC_SUBPARTS_PLACEMENT (1 && ENABLE_1_42_0_ALPHA4)
|
#define ENABLE_GENERIC_SUBPARTS_PLACEMENT (1 && ENABLE_1_42_0_ALPHA4)
|
||||||
// Reworked management of bed shape changes
|
// Reworked management of bed shape changes
|
||||||
#define ENABLE_REWORKED_BED_SHAPE_CHANGE (1 && ENABLE_1_42_0_ALPHA4)
|
#define ENABLE_REWORKED_BED_SHAPE_CHANGE (1 && ENABLE_1_42_0_ALPHA4)
|
||||||
|
// Use anisotropic filtering on bed plate texture
|
||||||
|
#define ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES (1 && ENABLE_1_42_0_ALPHA4)
|
||||||
|
@ -545,6 +545,11 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
|
|||||||
std::string model_path = resources_dir() + "/models/" + key;
|
std::string model_path = resources_dir() + "/models/" + key;
|
||||||
#endif // ENABLE_PRINT_BED_MODELS
|
#endif // ENABLE_PRINT_BED_MODELS
|
||||||
|
|
||||||
|
#if ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
|
GLfloat max_anisotropy = 0.0f;
|
||||||
|
::glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max_anisotropy);
|
||||||
|
#endif // ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
|
|
||||||
std::string filename = tex_path + "_top.png";
|
std::string filename = tex_path + "_top.png";
|
||||||
if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename))
|
if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename))
|
||||||
{
|
{
|
||||||
@ -553,6 +558,14 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
|
|||||||
_render_custom();
|
_render_custom();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#if ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
|
if (max_anisotropy > 0.0f)
|
||||||
|
{
|
||||||
|
::glBindTexture(GL_TEXTURE_2D, m_top_texture.get_id());
|
||||||
|
::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy);
|
||||||
|
::glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
|
}
|
||||||
|
#endif // ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
}
|
}
|
||||||
|
|
||||||
filename = tex_path + "_bottom.png";
|
filename = tex_path + "_bottom.png";
|
||||||
@ -563,6 +576,14 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
|
|||||||
_render_custom();
|
_render_custom();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#if ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
|
if (max_anisotropy > 0.0f)
|
||||||
|
{
|
||||||
|
::glBindTexture(GL_TEXTURE_2D, m_bottom_texture.get_id());
|
||||||
|
::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy);
|
||||||
|
::glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
|
}
|
||||||
|
#endif // ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLE_PRINT_BED_MODELS
|
#if ENABLE_PRINT_BED_MODELS
|
||||||
@ -5823,6 +5844,7 @@ void GLCanvas3D::set_camera_zoom(float zoom)
|
|||||||
void GLCanvas3D::update_gizmos_on_off_state()
|
void GLCanvas3D::update_gizmos_on_off_state()
|
||||||
{
|
{
|
||||||
set_as_dirty();
|
set_as_dirty();
|
||||||
|
_update_gizmos_data();
|
||||||
m_gizmos.update_on_off_state(get_selection());
|
m_gizmos.update_on_off_state(get_selection());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1511,7 +1511,7 @@ void GLGizmoFlatten::set_flattening_data(const ModelObject* model_object)
|
|||||||
bool object_changed = m_model_object != model_object;
|
bool object_changed = m_model_object != model_object;
|
||||||
m_model_object = model_object;
|
m_model_object = model_object;
|
||||||
|
|
||||||
if (object_changed && is_plane_update_necessary())
|
if (model_object && (object_changed || is_plane_update_necessary()))
|
||||||
update_planes();
|
update_planes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,10 @@
|
|||||||
#define _(s) Slic3r::GUI::I18N::translate((s))
|
#define _(s) Slic3r::GUI::I18N::translate((s))
|
||||||
#endif /* _ */
|
#endif /* _ */
|
||||||
|
|
||||||
|
#ifndef _CTX
|
||||||
|
#define _CTX(s, ctx) Slic3r::GUI::I18N::translate((s), (ctx))
|
||||||
|
#endif /* _ */
|
||||||
|
|
||||||
#ifndef L
|
#ifndef L
|
||||||
// !!! If you needed to translate some wxString,
|
// !!! If you needed to translate some wxString,
|
||||||
// !!! please use _(L(string))
|
// !!! please use _(L(string))
|
||||||
@ -21,6 +25,7 @@
|
|||||||
#define slic3r_GUI_I18N_hpp_
|
#define slic3r_GUI_I18N_hpp_
|
||||||
|
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
#include <wx/version.h>
|
||||||
|
|
||||||
namespace Slic3r { namespace GUI {
|
namespace Slic3r { namespace GUI {
|
||||||
|
|
||||||
@ -29,7 +34,20 @@ namespace I18N {
|
|||||||
inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); }
|
inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); }
|
||||||
inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); }
|
inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); }
|
||||||
inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); }
|
inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); }
|
||||||
}
|
|
||||||
|
#if wxCHECK_VERSION(3, 1, 1)
|
||||||
|
#define _wxGetTranslation_ctx(S, CTX) wxGetTranslation((S), wxEmptyString, (CTX))
|
||||||
|
#else
|
||||||
|
#define _wxGetTranslation_ctx(S, CTX) ((void)(CTX), wxGetTranslation((S)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
inline wxString translate(const char *s, const char* ctx) { return _wxGetTranslation_ctx(wxString(s, wxConvUTF8), ctx); }
|
||||||
|
inline wxString translate(const wchar_t *s, const char* ctx) { return _wxGetTranslation_ctx(s, ctx); }
|
||||||
|
inline wxString translate(const std::string &s, const char* ctx) { return _wxGetTranslation_ctx(wxString(s.c_str(), wxConvUTF8), ctx); }
|
||||||
|
inline wxString translate(const std::wstring &s, const char* ctx) { return _wxGetTranslation_ctx(s.c_str(), ctx); }
|
||||||
|
|
||||||
|
#undef _wxGetTranslation_ctx
|
||||||
|
}
|
||||||
|
|
||||||
// Return translated std::string as a wxString
|
// Return translated std::string as a wxString
|
||||||
wxString L_str(const std::string &str);
|
wxString L_str(const std::string &str);
|
||||||
|
@ -234,7 +234,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** full_Label/* = n
|
|||||||
// wxString str_label = _(option.label);
|
// wxString str_label = _(option.label);
|
||||||
//! To correct translation by context have to use wxGETTEXT_IN_CONTEXT macro from wxWidget 3.1.1
|
//! To correct translation by context have to use wxGETTEXT_IN_CONTEXT macro from wxWidget 3.1.1
|
||||||
wxString str_label = (option.label == "Top" || option.label == "Bottom") ?
|
wxString str_label = (option.label == "Top" || option.label == "Bottom") ?
|
||||||
wxGETTEXT_IN_CONTEXT("Layers", wxString(option.label)) :
|
_CTX(option.label, "Layers") :
|
||||||
_(option.label);
|
_(option.label);
|
||||||
label = new wxStaticText(parent(), wxID_ANY, str_label + ":", wxDefaultPosition, wxDefaultSize);
|
label = new wxStaticText(parent(), wxID_ANY, str_label + ":", wxDefaultPosition, wxDefaultSize);
|
||||||
label->SetFont(label_font);
|
label->SetFont(label_font);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user