diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-09-05 15:08:10 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-09-05 15:08:10 +0300 |
| commit | 3c717c1430b17c479e3ccbf3715512f9b4334c53 (patch) | |
| tree | 750904e077a23852e2838474dd203973b8d6c32b /Software/Visual_Studio/Native | |
| parent | 332be5196027097bcd6c0ffb8f988f1493c5437c (diff) | |
| download | Tango-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.cpp | 20 |
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); } } |
