aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Native
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-05 15:08:10 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-05 15:08:10 +0300
commit3c717c1430b17c479e3ccbf3715512f9b4334c53 (patch)
tree750904e077a23852e2838474dd203973b8d6c32b /Software/Visual_Studio/Native
parent332be5196027097bcd6c0ffb8f988f1493c5437c (diff)
downloadTango-3c717c1430b17c479e3ccbf3715512f9b4334c53.tar.gz
Tango-3c717c1430b17c479e3ccbf3715512f9b4334c53.zip
Optimized use of color conversion in machine studio.
Improved color conversion memory leak. Added dispenser step division to brush stops. Machine Studio 3.4.43
Diffstat (limited to 'Software/Visual_Studio/Native')
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
index 48cb9f3df..87c389c43 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
@@ -1028,18 +1028,22 @@ VectorXd Tango::ColorLib::ColorConverter::DoubleToVector(double *doub, int nSize
size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t input_buffer_size, uint8_t *& output_buffer)
{
+ ConversionInput* conversionInput = NULL;
+ InputLiquid** original_input_liquids = NULL;
+ int original_input_liquids_count = 0;
+
try
{
//Get Input
- ConversionInput* conversionInput = (ConversionInput*)malloc(sizeof(ConversionInput));
+ conversionInput = (ConversionInput*)malloc(sizeof(ConversionInput));
conversionInput = conversion_input__unpack(NULL, input_buffer_size, input_buffer);
//Filter and arrange colors (Should change from 3 to 4 if black ink is included)
int expected_liquids = 3;
- int original_input_liquids_count = conversionInput->inputcoordinates->n_inputliquids;
- InputLiquid** original_input_liquids = conversionInput->inputcoordinates->inputliquids;
+ original_input_liquids_count = conversionInput->inputcoordinates->n_inputliquids;
+ original_input_liquids = conversionInput->inputcoordinates->inputliquids;
InputLiquid** filteredInputLiquids = (InputLiquid**)malloc(sizeof(InputLiquid*) * expected_liquids);
@@ -1246,6 +1250,16 @@ size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t i
output_buffer = (uint8_t*)malloc(conversion_output__get_packed_size(conversionOutput));
int size = conversion_output__pack(conversionOutput, output_buffer);
+
+#pragma region Free Conversion Input & Output
+
+ conversionInput->inputcoordinates->inputliquids = original_input_liquids;
+ conversionInput->inputcoordinates->n_inputliquids = original_input_liquids_count;
+
+ conversion_input__free_unpacked(conversionInput, NULL);
+
+#pragma endregion
+
return (size);
}
}