mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-08-19 06:35:56 +08:00
FIX:external transparent material display error
JIRA: STUDIO-5845 Change-Id: I0a4f05ac5d5c0ac49d85a704ee65a7221c5f1e1d
This commit is contained in:
parent
8c34a3caac
commit
7f54245b67
@ -1122,6 +1122,7 @@ ColorPicker::ColorPicker(wxWindow* parent, wxWindowID id, const wxPoint& pos /*=
|
||||
|
||||
m_bitmap_border = create_scaled_bitmap("color_picker_border", nullptr, 25);
|
||||
m_bitmap_border_dark = create_scaled_bitmap("color_picker_border_dark", nullptr, 25);
|
||||
m_bitmap_transparent_def = create_scaled_bitmap("transparent_color_picker", nullptr, 25);
|
||||
m_bitmap_transparent = create_scaled_bitmap("transparent_color_picker", nullptr, 25);
|
||||
}
|
||||
|
||||
@ -1185,12 +1186,12 @@ void ColorPicker::doRender(wxDC& dc)
|
||||
if (m_selected) radius -= FromDIP(1);
|
||||
|
||||
if (alpha == 0) {
|
||||
dc.DrawBitmap(m_bitmap_transparent, 0, 0);
|
||||
dc.DrawBitmap(m_bitmap_transparent_def, 0, 0);
|
||||
}
|
||||
else if (alpha != 254 && alpha != 255) {
|
||||
if (transparent_changed) {
|
||||
std::string rgb = (m_colour.GetAsString(wxC2S_HTML_SYNTAX)).ToStdString();
|
||||
if (rgb.size() == 8) {
|
||||
if (rgb.size() == 9) {
|
||||
//delete alpha value
|
||||
rgb = rgb.substr(0, rgb.size() - 2);
|
||||
}
|
||||
@ -1201,8 +1202,8 @@ void ColorPicker::doRender(wxDC& dc)
|
||||
replace.push_back(fill_replace);
|
||||
m_bitmap_transparent = ScalableBitmap(this, "transparent_color_picker", 25, false, false, true, replace).bmp();
|
||||
transparent_changed = false;
|
||||
dc.DrawBitmap(m_bitmap_transparent, 0, 0);
|
||||
}
|
||||
dc.DrawBitmap(m_bitmap_transparent, 0, 0);
|
||||
}
|
||||
else {
|
||||
dc.SetPen(wxPen(m_colour));
|
||||
|
@ -35,6 +35,7 @@ public:
|
||||
wxBitmap m_bitmap_border;
|
||||
wxBitmap m_bitmap_border_dark;
|
||||
wxBitmap m_bitmap_transparent;
|
||||
wxBitmap m_bitmap_transparent_def; //default transparent material
|
||||
|
||||
wxColour m_colour;
|
||||
std::vector<wxColour> m_cols;
|
||||
|
@ -3477,12 +3477,19 @@ void StatusPanel::on_ext_spool_edit(wxCommandEvent &event)
|
||||
wxColor color = AmsTray::decode_color(obj->vt_tray.color);
|
||||
m_filament_setting_dlg->ams_filament_id = obj->vt_tray.setting_id;
|
||||
|
||||
std::vector<wxColour> cols;
|
||||
for (auto col : obj->vt_tray.cols) {
|
||||
cols.push_back(AmsTray::decode_color(col));
|
||||
}
|
||||
m_filament_setting_dlg->set_ctype(obj->vt_tray.ctype);
|
||||
|
||||
if (m_filament_setting_dlg->ams_filament_id.empty()) {
|
||||
m_filament_setting_dlg->set_empty_color(color);
|
||||
}
|
||||
else {
|
||||
m_filament_setting_dlg->set_color(color);
|
||||
m_filament_setting_dlg->set_colors(cols);
|
||||
|
||||
}
|
||||
|
||||
m_filament_setting_dlg->m_is_third = !MachineObject::is_bbl_filament(obj->vt_tray.tag_uid);
|
||||
|
@ -646,6 +646,7 @@ void AMSLib::create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const w
|
||||
m_bitmap_readonly = ScalableBitmap(this, "ams_readonly", 14);
|
||||
m_bitmap_readonly_light = ScalableBitmap(this, "ams_readonly_light", 14);
|
||||
m_bitmap_transparent = ScalableBitmap(this, "transparent_ams_lib", 68);
|
||||
m_bitmap_transparent_def = ScalableBitmap(this, "transparent_ams_lib", 68);
|
||||
|
||||
m_bitmap_extra_tray_left = ScalableBitmap(this, "extra_ams_tray_left", 80);
|
||||
m_bitmap_extra_tray_right = ScalableBitmap(this, "extra_ams_tray_right", 80);
|
||||
@ -1151,7 +1152,7 @@ void AMSLib::render_generic_lib(wxDC &dc)
|
||||
//transparent
|
||||
|
||||
if (alpha == 0) {
|
||||
dc.DrawBitmap(m_bitmap_transparent.bmp(), FromDIP(4), FromDIP(4));
|
||||
dc.DrawBitmap(m_bitmap_transparent_def.bmp(), FromDIP(4), FromDIP(4));
|
||||
}
|
||||
else if (alpha != 255 && alpha != 254) {
|
||||
if (transparent_changed) {
|
||||
@ -1348,7 +1349,9 @@ bool AMSLib::Enable(bool enable) { return wxWindow::Enable(enable); }
|
||||
|
||||
void AMSLib::msw_rescale()
|
||||
{
|
||||
m_bitmap_transparent.msw_rescale();
|
||||
//m_bitmap_transparent.msw_rescale();
|
||||
m_bitmap_transparent_def.msw_rescale();
|
||||
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
@ -3287,6 +3290,10 @@ void AMSControl::update_vams_kn_value(AmsTray tray, MachineObject* obj)
|
||||
m_vams_info.material_name = tray.get_display_filament_type();
|
||||
m_vams_info.material_colour = tray.get_color();
|
||||
m_vams_lib->m_info.material_name = tray.get_display_filament_type();
|
||||
auto col= tray.get_color();
|
||||
if (col.Alpha() != 0 && col.Alpha() != 255 && col.Alpha() != 254 && m_vams_lib->m_info.material_colour != col) {
|
||||
m_vams_lib->transparent_changed = true;
|
||||
}
|
||||
m_vams_lib->m_info.material_colour = tray.get_color();
|
||||
m_vams_lib->Refresh();
|
||||
}
|
||||
|
@ -299,6 +299,7 @@ public:
|
||||
Caninfo m_info;
|
||||
MachineObject* m_obj = {nullptr};
|
||||
int m_can_index = 0;
|
||||
bool transparent_changed = { false };
|
||||
AMSModel m_ams_model;
|
||||
|
||||
void Update(Caninfo info, bool refresh = true);
|
||||
@ -323,6 +324,7 @@ protected:
|
||||
ScalableBitmap m_bitmap_readonly;
|
||||
ScalableBitmap m_bitmap_readonly_light;
|
||||
ScalableBitmap m_bitmap_transparent;
|
||||
ScalableBitmap m_bitmap_transparent_def;
|
||||
|
||||
ScalableBitmap m_bitmap_extra_tray_left;
|
||||
ScalableBitmap m_bitmap_extra_tray_right;
|
||||
@ -339,7 +341,7 @@ protected:
|
||||
bool m_hover = {false};
|
||||
bool m_show_kn = {false};
|
||||
bool m_support_cali = {false};
|
||||
bool transparent_changed = {false};
|
||||
|
||||
|
||||
double m_radius = {4};
|
||||
wxColour m_border_color;
|
||||
|
Loading…
x
Reference in New Issue
Block a user